{"version":3,"file":"@microsoft-BOCHfBwB.mjs","sources":["../../node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","../../node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","../../node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/InitActiveStatusEnum.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ResponseHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/SenderPostManager.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/ThrottleMgr.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Offline.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncPlugin.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { getGlobal, objCreate, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n    o: (_a = {},\r\n        _a[strSetInstFuncs] = true,\r\n        _a[strUseBaseInst] = true,\r\n        _a),\r\n    n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n    return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n    return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n    var newProto;\r\n    if (target) {\r\n        // This method doesn't exist in older browsers (e.g. IE8)\r\n        if (_objGetPrototypeOf) {\r\n            return _objGetPrototypeOf(target);\r\n        }\r\n        var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n        // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n        newProto = target[DynProtoBaseProto] || curProto;\r\n        if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n            // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n            // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n            delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n            newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n            target[DynProtoCurrent] = curProto;\r\n        }\r\n    }\r\n    return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n    var props = [];\r\n    if (_objGetOwnProps) {\r\n        props = _objGetOwnProps(target);\r\n    }\r\n    else {\r\n        for (var name_1 in target) {\r\n            if (typeof name_1 === \"string\" && objHasOwnProperty(target, name_1)) {\r\n                props.push(name_1);\r\n            }\r\n        }\r\n    }\r\n    if (props && props.length > 0) {\r\n        for (var lp = 0; lp < props.length; lp++) {\r\n            func(props[lp]);\r\n        }\r\n    }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n    return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n    throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n    // Get the base proto\r\n    var instFuncs = objCreate(null);\r\n    // Save any existing instance functions\r\n    _forEachProp(thisTarget, function (name) {\r\n        // Don't include any dynamic prototype instances - as we only want the real functions\r\n        if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n            // Create an instance callback for passing the base function to the caller\r\n            instFuncs[name] = thisTarget[name];\r\n        }\r\n    });\r\n    return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value  The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n    for (var lp = values.length - 1; lp >= 0; lp--) {\r\n        if (values[lp] === value) {\r\n            return true;\r\n        }\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n    function _instFuncProxy(target, funcHost, funcName) {\r\n        var theFunc = funcHost[funcName];\r\n        if (theFunc[DynProxyTag] && useBaseInst) {\r\n            // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n            var instFuncTable = target[DynInstFuncTable] || {};\r\n            if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n                theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n            }\r\n        }\r\n        return function () {\r\n            // eslint-disable-next-line prefer-rest-params\r\n            return theFunc.apply(target, arguments);\r\n        };\r\n    }\r\n    // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n    var baseFuncs = objCreate(null);\r\n    _forEachProp(instFuncs, function (name) {\r\n        // Create an instance callback for passing the base function to the caller\r\n        baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n    });\r\n    // Get the base prototype functions\r\n    var baseProto = _getObjProto(classProto);\r\n    var visited = [];\r\n    // Don't include base object functions for Object, Array or Function\r\n    while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n        // look for prototype functions\r\n        _forEachProp(baseProto, function (name) {\r\n            // Don't include any dynamic prototype instances - as we only want the real functions\r\n            // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n            // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n            // the Object prototype methods while bypassing the check\r\n            if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n                // Create an instance callback for passing the base function to the caller\r\n                baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n            }\r\n        });\r\n        // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n        // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n        // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n        visited.push(baseProto);\r\n        baseProto = _getObjProto(baseProto);\r\n    }\r\n    return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n    var instFunc = null;\r\n    // We need to check whether the class name is defined directly on this prototype otherwise\r\n    // it will walk the proto chain and return any parent proto classname.\r\n    if (target && objHasOwnProperty(proto, DynClassName)) {\r\n        var instFuncTable = target[DynInstFuncTable] || objCreate(null);\r\n        instFunc = (instFuncTable[proto[DynClassName]] || objCreate(null))[funcName];\r\n        if (!instFunc) {\r\n            // Avoid stack overflow from recursive calling the same function\r\n            _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n        }\r\n        // We have the instance function, lets check it we can speed up further calls\r\n        // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n        if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n            // If the instance already has an instance function we can't replace it\r\n            var canAddInst = !objHasOwnProperty(target, funcName);\r\n            // Get current prototype\r\n            var objProto = _getObjProto(target);\r\n            var visited = [];\r\n            // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n            // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n            while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n                var protoFunc = objProto[funcName];\r\n                if (protoFunc) {\r\n                    canAddInst = (protoFunc === currentDynProtoProxy);\r\n                    break;\r\n                }\r\n                // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n                visited.push(objProto);\r\n                objProto = _getObjProto(objProto);\r\n            }\r\n            try {\r\n                if (canAddInst) {\r\n                    // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n                    // so it's safe to directly assign for any subsequent calls (for better performance)\r\n                    target[funcName] = instFunc;\r\n                }\r\n                // Block further attempts to set the instance function for any\r\n                instFunc[DynInstChkTag] = 1;\r\n            }\r\n            catch (e) {\r\n                // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n                // And set a flag so we don't try again for any function\r\n                instFuncTable[DynAllowInstChkTag] = false;\r\n            }\r\n        }\r\n    }\r\n    return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n    var protoFunc = proto[funcName];\r\n    // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n    if (protoFunc === currentDynProtoProxy) {\r\n        // It is so lookup the base prototype\r\n        protoFunc = _getObjProto(proto)[funcName];\r\n    }\r\n    if (typeof protoFunc !== strFunction) {\r\n        _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n    }\r\n    return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n    function _createDynamicPrototype(proto, funcName) {\r\n        var dynProtoProxy = function () {\r\n            // Use the instance or prototype function\r\n            var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n            // eslint-disable-next-line prefer-rest-params\r\n            return instFunc.apply(this, arguments);\r\n        };\r\n        // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n        // via which can dynamically replace the prototype function reference)\r\n        dynProtoProxy[DynProxyTag] = 1;\r\n        return dynProtoProxy;\r\n    }\r\n    if (!_isObjectOrArrayPrototype(proto)) {\r\n        var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || objCreate(null);\r\n        if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n            var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || objCreate(null)); // fetch and assign if as it may not exist yet\r\n            // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n            if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n                instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n            }\r\n            if (!_isObjectOrArrayPrototype(instFuncs_1)) {\r\n                _forEachProp(target, function (name) {\r\n                    // Only add overridden functions\r\n                    if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n                        // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n                        instFuncs_1[name] = target[name];\r\n                        delete target[name];\r\n                        // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n                        if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n                            proto[name] = _createDynamicPrototype(proto, name);\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n    }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n    // This method doesn't existing in older browsers (e.g. IE8)\r\n    if (_objGetPrototypeOf) {\r\n        // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n        var visited = [];\r\n        var thisProto = _getObjProto(thisTarget);\r\n        while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n            if (thisProto === classProto) {\r\n                return true;\r\n            }\r\n            // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n            // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n            visited.push(thisProto);\r\n            thisProto = _getObjProto(thisProto);\r\n        }\r\n        return false;\r\n    }\r\n    // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n    return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n    if (objHasOwnProperty(target, Prototype)) {\r\n        // Look like a prototype\r\n        return target.name || unknownValue || UnknownValue;\r\n    }\r\n    return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n *     constructor() {\r\n *         dynamicProto(ExampleClass, this, (_self, base) => {\r\n *             // This will define a function that will be converted to a prototype function\r\n *             _self.newFunc = () => {\r\n *                 // Access any \"this\" instance property\r\n *                 if (_self.someProperty) {\r\n *                     ...\r\n *                 }\r\n *             }\r\n *             // This will define a function that will be converted to a prototype function\r\n *             _self.myFunction = () => {\r\n *                 // Access any \"this\" instance property\r\n *                 if (_self.someProperty) {\r\n *                     // Call the base version of the function that we are overriding\r\n *                     base.myFunction();\r\n *                 }\r\n *                 ...\r\n *             }\r\n *             _self.initialize = () => {\r\n *                 ...\r\n *             }\r\n *             // Warnings: While the following will work as _self is simply a reference to\r\n *             // this, if anyone overrides myFunction() the overridden will be called first\r\n *             // as the normal JavaScript method resolution will occur and the defined\r\n *             // _self.initialize() function is actually gets removed from the instance and\r\n *             // a proxy prototype version is created to reference the created method.\r\n *             _self.initialize();\r\n *         });\r\n *     }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n    // Make sure that the passed theClass argument looks correct\r\n    if (!objHasOwnProperty(theClass, Prototype)) {\r\n        _throwTypeError(\"theClass is an invalid class definition.\");\r\n    }\r\n    // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n    var classProto = theClass[Prototype];\r\n    if (!_checkPrototype(classProto, target)) {\r\n        _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n    }\r\n    var className = null;\r\n    if (objHasOwnProperty(classProto, DynClassName)) {\r\n        // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n        className = classProto[DynClassName];\r\n    }\r\n    else {\r\n        // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n        // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n        // function table lookup.\r\n        className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n        _gblInst.n++;\r\n        classProto[DynClassName] = className;\r\n    }\r\n    var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n    var useBaseInst = !!perfOptions[strUseBaseInst];\r\n    if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n        useBaseInst = !!options[strUseBaseInst];\r\n    }\r\n    // Get the current instance functions\r\n    var instFuncs = _getInstanceFuncs(target);\r\n    // Get all of the functions for any base instance (before they are potentially overridden)\r\n    var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n    // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n    // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n    delegateFunc(target, baseFuncs);\r\n    // Don't allow setting instance functions for older IE instances\r\n    var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n    if (setInstanceFunc && options) {\r\n        setInstanceFunc = !!options[strSetInstFuncs];\r\n    }\r\n    // Populate the Prototype for any overridden instance functions\r\n    _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { ObjClass, ObjProto, strDefault, strShimFunction, strShimPrototype } from \"./Constants\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nexport var __objAssignFnImpl = function (t) {\r\n    // tslint:disable-next-line: ban-comma-operator\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) {\r\n            if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n                t[p] = s[p];\r\n            }\r\n        }\r\n    }\r\n    return t;\r\n};\r\nexport var __assignFn = objAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n    extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n        // tslint:disable-next-line: only-arrow-functions\r\n        ({ __proto__: [] } instanceof Array && function (d, b) {\r\n            d.__proto__ = b;\r\n        }) ||\r\n        // tslint:disable-next-line: only-arrow-functions\r\n        function (d, b) {\r\n            for (var p in b) {\r\n                if (b[strHasOwnProperty](p)) {\r\n                    d[p] = b[p];\r\n                }\r\n            }\r\n        };\r\n    return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n    if (typeof b !== strShimFunction && b !== null) {\r\n        throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    }\r\n    extendStaticsFn(d, b);\r\n    function __() {\r\n        this.constructor = d;\r\n    }\r\n    // tslint:disable-next-line: ban-comma-operator\r\n    d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n    var t = {};\r\n    for (var k in s) {\r\n        if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n            t[k] = s[k];\r\n        }\r\n    }\r\n    if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n        for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n                t[p[i]] = s[p[i]];\r\n            }\r\n        }\r\n    }\r\n    return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n    if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n        r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n    }\r\n    else {\r\n        for (var i = decorators.length - 1; i >= 0; i--) {\r\n            // eslint-disable-next-line no-cond-assign\r\n            if (d = decorators[i]) {\r\n                r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n            }\r\n        }\r\n    }\r\n    // tslint:disable-next-line:ban-comma-operator\r\n    return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n    return function (target, key) {\r\n        decorator(target, key, paramIndex);\r\n    };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n    if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n        return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n    }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n    for (var p in m) {\r\n        if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n            __createBindingFn(o, m, p);\r\n        }\r\n    }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n    if (k2 === undefined) {\r\n        k2 = k;\r\n    }\r\n    if (!!objDefineProp) {\r\n        objDefineProp(o, k2, {\r\n            enumerable: true,\r\n            get: function () {\r\n                return m[k];\r\n            }\r\n        });\r\n    }\r\n    else {\r\n        o[k2] = m[k];\r\n    }\r\n}\r\nexport function __valuesFn(o) {\r\n    var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n    if (m) {\r\n        return m.call(o);\r\n    }\r\n    if (o && typeof o.length === \"number\") {\r\n        return {\r\n            next: function () {\r\n                if (o && i >= o.length) {\r\n                    o = void 0;\r\n                }\r\n                return { value: o && o[i++], done: !o };\r\n            }\r\n        };\r\n    }\r\n    throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n    var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n    if (!m) {\r\n        return o;\r\n    }\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n            ar.push(r.value);\r\n        }\r\n    }\r\n    catch (error) {\r\n        e = {\r\n            error: error\r\n        };\r\n    }\r\n    finally {\r\n        try {\r\n            // tslint:disable-next-line:no-conditional-assignment\r\n            if (r && !r.done && (m = i[\"return\"])) {\r\n                m.call(i);\r\n            }\r\n        }\r\n        finally {\r\n            if (e) {\r\n                // eslint-disable-next-line no-unsafe-finally\r\n                throw e.error;\r\n            }\r\n        }\r\n    }\r\n    return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n    var theArgs = arguments;\r\n    // Calculate new total size\r\n    for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n        s += theArgs[i].length;\r\n    }\r\n    // Create new full array\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n        for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n            r[k] = a[j];\r\n        }\r\n    }\r\n    return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n    for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n        to[j] = from[i];\r\n    }\r\n    return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n    if (objDefineProp) {\r\n        objDefineProp(cooked, \"raw\", { value: raw });\r\n    }\r\n    else {\r\n        cooked.raw = raw;\r\n    }\r\n    return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n    if (mod && mod.__esModule) {\r\n        return mod;\r\n    }\r\n    var result = {};\r\n    if (mod != null) {\r\n        for (var k in mod) {\r\n            if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n                __createBindingFn(result, mod, k);\r\n            }\r\n        }\r\n    }\r\n    // Set default module\r\n    if (!!objDefineProp) {\r\n        objDefineProp(result, strDefault, { enumerable: true, value: mod });\r\n    }\r\n    else {\r\n        result[strDefault] = mod;\r\n    }\r\n    return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n    return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key \\=\\> value and value \\=\\> key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] \\=\\> mapValue and X[0] \\=\\> mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createEnumStyle } from \"./EnumHelperFuncs\";\r\nexport var ActiveStatus = ( /* @__PURE__ */createEnumStyle({\r\n    NONE: 0 /* eActiveStatus.NONE */,\r\n    PENDING: 3 /* eActiveStatus.PENDING */,\r\n    INACTIVE: 1 /* eActiveStatus.INACTIVE */,\r\n    ACTIVE: 2 /* eActiveStatus.ACTIVE */\r\n}));\r\n//# sourceMappingURL=InitActiveStatusEnum.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 11\r\nexport var _DYN_LENGTH = \"length\"; // Count: 64\r\nexport var _DYN_WARN_TO_CONSOLE = \"warnToConsole\"; // Count: 4\r\nexport var _DYN_THROW_INTERNAL = \"throwInternal\"; // Count: 5\r\nexport var _DYN_WATCH = \"watch\"; // Count: 7\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 42\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 9\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 20\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 9\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 5\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_REMOVE_NOTIFICATION_0 = \"removeNotificationListener\"; // Count: 4\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 11\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 5\r\nexport var _DYN_NAME = \"name\"; // Count: 9\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT2 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_VALUE = \"value\"; // Count: 7\r\nexport var _DYN_ENABLED = \"enabled\"; // Count: 6\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_UNLOAD = \"unload\"; // Count: 7\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 4\r\nexport var _DYN_VERSION = \"version\"; // Count: 4\r\nexport var _DYN_LOGGING_LEVEL_CONSOL4 = \"loggingLevelConsole\"; // Count: 2\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 7\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 9\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 9\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 5\r\nexport var _DYN_UPDATE = \"update\"; // Count: 5\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 10\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 8\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 9\r\nexport var _DYN_SUBSTRING = \"substring\"; // Count: 4\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 5\r\nexport var _DYN_TYPE = \"type\"; // Count: 17\r\nexport var _DYN_EVT_NAME = \"evtName\"; // Count: 4\r\nexport var _DYN_STATUS = \"status\"; // Count: 9\r\nexport var _DYN_GET_ALL_RESPONSE_HEA5 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 11\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_URL_STRING = \"urlString\"; // Count: 5\r\nexport var _DYN_TIMEOUT = \"timeout\"; // Count: 6\r\nexport var _DYN_TOTAL_REQUEST = \"totalRequest\"; // Count: 4\r\nexport var _DYN_REQUEST_DURATION = \"requestDuration\"; // Count: 3\r\nexport var _DYN_FAILURE = \"failure\"; // Count: 4\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 4\r\nexport var _DYN_THROTTLE = \"throttle\"; // Count: 4\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 5\r\nexport var _DYN_GET_ATTRIBUTE = \"getAttribute\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n    if (!aggregationErrorType) {\r\n        aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n            if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n                // Save the provided errors\r\n                self.errors = args[1];\r\n            }\r\n        });\r\n    }\r\n    var theMessage = message || \"One or more errors occurred.\";\r\n    arrForEach(sourceErrors, function (srcError, idx) {\r\n        theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n    });\r\n    throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n//# sourceMappingURL=AggregationError.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_OFFLINE_STORE = \"offlineEventsStored\";\r\nexport var STR_OFFLINE_SENT = \"offlineBatchSent\";\r\nexport var STR_OFFLINE_DROP = \"offlineBatchDrop\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\nexport var STR_REDACTED = \"REDACTED\";\r\nexport var DEFAULT_SENSITIVE_PARAMS = [\"sig\", \"Signature\", \"AWSAccessKeyId\", \"X-Goog-Signature\"];\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isNumber, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_GET_ALL_RESPONSE_HEA5, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE, _DYN_SPLIT, _DYN_STATUS, _DYN_SUBSTRING, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n    return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n    return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n    var value = name;\r\n    if (value && isString(value)) {\r\n        // CamelCase everything after the \"-\" and remove the dash\r\n        value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n            return letter.toUpperCase();\r\n        });\r\n        value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n        value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n            return \"_\" + match;\r\n        });\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n    if (value && search) {\r\n        return strIndexOf(value, search) !== -1;\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n    return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n    if (isError(object)) {\r\n        return object[_DYN_NAME /* @min:%2ename */];\r\n    }\r\n    return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n    var theValue = value;\r\n    if (target) {\r\n        theValue = target[field];\r\n        if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n            theValue = value;\r\n            target[field] = theValue;\r\n        }\r\n    }\r\n    return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n    var theValue;\r\n    if (target) {\r\n        theValue = target[field];\r\n        if (!theValue && isNullOrUndefined(theValue)) {\r\n            // Supports having the default as null\r\n            theValue = !isUndefined(defValue) ? defValue : {};\r\n            target[field] = theValue;\r\n        }\r\n    }\r\n    else {\r\n        // Expanded for performance so we only check defValue if required\r\n        theValue = !isUndefined(defValue) ? defValue : {};\r\n    }\r\n    return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n    var srcFunc = null;\r\n    var src = null;\r\n    if (isFunction(source)) {\r\n        srcFunc = source;\r\n    }\r\n    else {\r\n        src = source;\r\n    }\r\n    return function () {\r\n        // Capture the original arguments passed to the method\r\n        var originalArguments = arguments;\r\n        if (srcFunc) {\r\n            src = srcFunc();\r\n        }\r\n        if (src) {\r\n            return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n        }\r\n    };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 =\\> will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -\\> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n    if (target && source && isObject(target) && isObject(source)) {\r\n        var _loop_1 = function (field) {\r\n            if (isString(field)) {\r\n                var value = source[field];\r\n                if (isFunction(value)) {\r\n                    if (!chkSet || chkSet(field, true, source, target)) {\r\n                        // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n                        target[field] = _createProxyFunction(source, field);\r\n                    }\r\n                }\r\n                else if (!chkSet || chkSet(field, false, source, target)) {\r\n                    if (objHasOwn(target, field)) {\r\n                        // Remove any previous instance property\r\n                        delete target[field];\r\n                    }\r\n                    objDefine(target, field, {\r\n                        g: function () {\r\n                            return source[field];\r\n                        },\r\n                        s: function (theValue) {\r\n                            source[field] = theValue;\r\n                        }\r\n                    });\r\n                }\r\n            }\r\n        };\r\n        // effectively apply/proxy full source to the target instance\r\n        for (var field in source) {\r\n            _loop_1(field);\r\n        }\r\n    }\r\n    return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n    if (target && name && source) {\r\n        if (overwriteTarget !== false || isUndefined(target[name])) {\r\n            target[name] = _createProxyFunction(source, theFunc);\r\n        }\r\n    }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n    if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n        arrForEach(functionsToProxy, function (theFuncName) {\r\n            if (isString(theFuncName)) {\r\n                proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n            }\r\n        });\r\n    }\r\n    return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            var _this = this;\r\n            if (defaults) {\r\n                objForEachKey(defaults, function (field, value) {\r\n                    _this[field] = value;\r\n                });\r\n            }\r\n        }\r\n        return class_1;\r\n    }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n    // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n    // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n    if (theObject && ObjAssign) {\r\n        theObject = ObjClass(ObjAssign({}, theObject));\r\n    }\r\n    return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n    // Variables\r\n    var theArgs = arguments;\r\n    var extended = theArgs[0] || {};\r\n    var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n    var deep = false;\r\n    var idx = 1;\r\n    // Check for \"Deep\" flag\r\n    if (argLen > 0 && isBoolean(extended)) {\r\n        deep = extended;\r\n        extended = theArgs[idx] || {};\r\n        idx++;\r\n    }\r\n    // Handle case when target is a string or something (possible in deep copy)\r\n    if (!isObject(extended)) {\r\n        extended = {};\r\n    }\r\n    // Loop through each remaining object and conduct a merge\r\n    for (; idx < argLen; idx++) {\r\n        var arg = theArgs[idx];\r\n        var isArgArray = isArray(arg);\r\n        var isArgObj = isObject(arg);\r\n        for (var prop in arg) {\r\n            var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n            if (!propOk) {\r\n                continue;\r\n            }\r\n            var newValue = arg[prop];\r\n            var isNewArray = void 0;\r\n            // If deep merge and property is an object, merge properties\r\n            if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n                // Grab the current value of the extended object\r\n                var clone = extended[prop];\r\n                if (isNewArray) {\r\n                    if (!isArray(clone)) {\r\n                        // We can't \"merge\" an array with a non-array so overwrite the original\r\n                        clone = [];\r\n                    }\r\n                }\r\n                else if (!isPlainObject(clone)) {\r\n                    // We can't \"merge\" an object with a non-object\r\n                    clone = {};\r\n                }\r\n                // Never move the original objects always clone them\r\n                newValue = objExtend(deep, clone, newValue);\r\n            }\r\n            // Assign the new (or previous) value (unless undefined)\r\n            if (newValue !== undefined) {\r\n                extended[prop] = newValue;\r\n            }\r\n        }\r\n    }\r\n    return extended;\r\n}\r\nexport var asString = asString21;\r\n/**\r\n * Checks if the feature is enabled on not. If the feature is not defined, it will return the default state if provided or undefined.\r\n * If the feature is defined, it will check the mode and return true if the mode is enable or false if the mode is disable.\r\n * @param feature - The feature name to check\r\n * @param cfg - The configuration object to check the feature state against\r\n * @param sdkDefaultState - Optional default state to return if the feature is not defined\r\n * @returns True if the feature is enabled, false if the feature is disabled, or undefined if the feature is not defined and no default state is provided.\r\n */\r\nexport function isFeatureEnabled(feature, cfg, sdkDefaultState) {\r\n    var ft = cfg && cfg.featureOptIn && cfg.featureOptIn[feature];\r\n    if (feature && ft) {\r\n        var mode = ft.mode;\r\n        // NOTE: None will be considered as true\r\n        if (mode === 3 /* FeatureOptInMode.enable */) {\r\n            return true;\r\n        }\r\n        else if (mode === 2 /* FeatureOptInMode.disable */) {\r\n            return false;\r\n        }\r\n    }\r\n    // Return the default state if provided or undefined\r\n    return sdkDefaultState;\r\n}\r\nexport function getResponseText(xhr) {\r\n    try {\r\n        return xhr.responseText;\r\n    }\r\n    catch (e) {\r\n        // Best effort, as XHR may throw while XDR wont so just ignore\r\n    }\r\n    return null;\r\n}\r\nexport function formatErrorMessageXdr(xdr, message) {\r\n    if (xdr) {\r\n        return \"XDomainRequest,Response:\" + getResponseText(xdr) || \"\";\r\n    }\r\n    return message;\r\n}\r\nexport function formatErrorMessageXhr(xhr, message) {\r\n    if (xhr) {\r\n        return \"XMLHttpRequest,Status:\" + xhr[_DYN_STATUS /* @min:%2estatus */] + \",Response:\" + getResponseText(xhr) || xhr.response || \"\";\r\n    }\r\n    return message;\r\n}\r\nexport function prependTransports(theTransports, newTransports) {\r\n    if (newTransports) {\r\n        if (isNumber(newTransports)) {\r\n            theTransports = [newTransports].concat(theTransports);\r\n        }\r\n        else if (isArray(newTransports)) {\r\n            theTransports = newTransports.concat(theTransports);\r\n        }\r\n    }\r\n    return theTransports;\r\n}\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n    if (disabled === void 0) { disabled = false; }\r\n    if (isSync === void 0) { isSync = false; }\r\n    function _wrapSetXhrProp(xhr, prop, value) {\r\n        try {\r\n            xhr[prop] = value;\r\n        }\r\n        catch (e) {\r\n            // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n        }\r\n    }\r\n    var xhr = new XMLHttpRequest();\r\n    if (disabled) {\r\n        // Tag the instance so it's not tracked (trackDependency)\r\n        // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n        // cause the request to fail and we no telemetry would be sent\r\n        _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n    }\r\n    if (withCredentials) {\r\n        // Some libraries require that the withCredentials flag is set \"before\" open and\r\n        // - Wrapping as IE 10 has started throwing when setting before open\r\n        _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n    }\r\n    xhr.open(method, urlString, !isSync);\r\n    if (withCredentials) {\r\n        // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n        // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n        _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n    }\r\n    // Only set the timeout for asynchronous requests as\r\n    // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n    // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n    if (!isSync && timeout) {\r\n        _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n    }\r\n    return xhr;\r\n}\r\n/**\r\n* Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n* @internal\r\n*/\r\n// tslint:disable-next-line: align\r\nexport function convertAllHeadersToMap(headersString) {\r\n    var headers = {};\r\n    if (isString(headersString)) {\r\n        var headersArray = strTrim(headersString)[_DYN_SPLIT /* @min:%2esplit */](/[\\r\\n]+/);\r\n        arrForEach(headersArray, function (headerEntry) {\r\n            if (headerEntry) {\r\n                var idx = headerEntry[_DYN_INDEX_OF /* @min:%2eindexOf */](\": \");\r\n                if (idx !== -1) {\r\n                    // The new spec has the headers returning all as lowercase -- but not all browsers do this yet\r\n                    var header = strTrim(headerEntry.substring(0, idx))[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n                    var value = strTrim(headerEntry[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n                    headers[header] = value;\r\n                }\r\n                else {\r\n                    headers[strTrim(headerEntry)] = 1;\r\n                }\r\n            }\r\n        });\r\n    }\r\n    return headers;\r\n}\r\n/**\r\n* append the XHR headers.\r\n* @internal\r\n*/\r\nexport function _appendHeader(theHeaders, xhr, name) {\r\n    if (!theHeaders[name] && xhr && xhr.getResponseHeader) {\r\n        var value = xhr.getResponseHeader(name);\r\n        if (value) {\r\n            theHeaders[name] = strTrim(value);\r\n        }\r\n    }\r\n    return theHeaders;\r\n}\r\nvar STR_KILL_DURATION_HEADER = \"kill-duration\";\r\nvar STR_KILL_DURATION_SECONDS_HEADER = \"kill-duration-seconds\";\r\nvar STR_TIME_DELTA_HEADER = \"time-delta-millis\";\r\n/**\r\n* get the XHR getAllResponseHeaders.\r\n* @internal\r\n*/\r\nexport function _getAllResponseHeaders(xhr, isOneDs) {\r\n    var theHeaders = {};\r\n    if (!xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]) {\r\n        // Firefox 2-63 doesn't have getAllResponseHeaders function but it does have getResponseHeader\r\n        // Only call these if getAllResponseHeaders doesn't exist, otherwise we can get invalid response errors\r\n        // as collector is not currently returning the correct header to allow JS to access these headers\r\n        if (!!isOneDs) {\r\n            theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);\r\n            theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);\r\n            theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);\r\n        }\r\n    }\r\n    else {\r\n        theHeaders = convertAllHeadersToMap(xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]());\r\n    }\r\n    return theHeaders;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isFunction, isString, isUndefined, mathMax, strIndexOf, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLIT, _DYN_SUBSTRING, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { DEFAULT_SENSITIVE_PARAMS, STR_EMPTY, STR_REDACTED } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n    var supported = false;\r\n    if (theClass) {\r\n        try {\r\n            supported = property in theClass;\r\n            if (!supported) {\r\n                var proto = theClass[strShimPrototype];\r\n                if (proto) {\r\n                    supported = property in proto;\r\n                }\r\n            }\r\n        }\r\n        catch (e) {\r\n            // Do Nothing\r\n        }\r\n        if (!supported) {\r\n            try {\r\n                var tmp = new theClass();\r\n                supported = !isUndefined(tmp[property]);\r\n            }\r\n            catch (e) {\r\n                // Do Nothing\r\n            }\r\n        }\r\n    }\r\n    return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled - A flag to enable or disable the mock\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n    _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n    if (checkForMock && _enableMocks) {\r\n        var mockLocation = getInst(\"__mockLocation\");\r\n        if (mockLocation) {\r\n            return mockLocation;\r\n        }\r\n    }\r\n    if (typeof location === strShimObject && location) {\r\n        return location;\r\n    }\r\n    return getInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n    if (typeof console !== strShimUndefined) {\r\n        return console;\r\n    }\r\n    return getInst(strConsole);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n    return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n    if (hasJSON()) {\r\n        return JSON || getInst(strJSON);\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n    return getInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n    return getInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n    // If running in React Native, navigator.product will be populated\r\n    var nav = getNavigator();\r\n    if (nav && nav.product) {\r\n        return nav.product === strReactNative;\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n    var nav = getNavigator();\r\n    if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n        // Added to support test mocking of the user agent\r\n        _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n        var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n        _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n    }\r\n    return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n    if (userAgentStr === void 0) { userAgentStr = null; }\r\n    if (!userAgentStr) {\r\n        var navigator_1 = getNavigator() || {};\r\n        userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n    }\r\n    var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n    // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n    if (strContains(ua, strMsie)) {\r\n        var doc = getDocument() || {};\r\n        return mathMax(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n    }\r\n    else if (strContains(ua, strTrident)) {\r\n        var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n        if (tridentVer) {\r\n            return tridentVer + 4;\r\n        }\r\n    }\r\n    return null;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n    if (!userAgentStr || !isString(userAgentStr)) {\r\n        var navigator_2 = getNavigator() || {};\r\n        userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n    }\r\n    var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n    return (strIndexOf(ua, \"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported(useCached) {\r\n    if (_beaconsSupported === null || useCached === false) {\r\n        _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n    }\r\n    return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n    var isSupported = false;\r\n    try {\r\n        isSupported = !!getInst(\"fetch\");\r\n        var request = getInst(\"Request\");\r\n        if (isSupported && withKeepAlive && request) {\r\n            isSupported = _hasProperty(request, \"keepalive\");\r\n        }\r\n    }\r\n    catch (e) {\r\n        // Just Swallow any failure during availability checks\r\n    }\r\n    return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n    if (_useXDomainRequest === null) {\r\n        _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n        if (_useXDomainRequest && isXhrSupported()) {\r\n            _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n        }\r\n    }\r\n    return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n    var isSupported = false;\r\n    try {\r\n        var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n        isSupported = !!xmlHttpRequest;\r\n    }\r\n    catch (e) {\r\n        // Just Swallow any failure during availability checks\r\n    }\r\n    return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n    if (values) {\r\n        for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n            var value = values[i];\r\n            if (value[_DYN_NAME /* @min:%2ename */]) {\r\n                if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n                    return value;\r\n                }\r\n            }\r\n        }\r\n    }\r\n    return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name - The name of the meta-tag to find.\r\n */\r\nexport function findMetaTag(name) {\r\n    var doc = getDocument();\r\n    if (doc && name) {\r\n        // Look for a meta-tag\r\n        return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name - The name of the server timing value to find.\r\n */\r\nexport function findNamedServerTiming(name) {\r\n    var value;\r\n    var perf = getPerformance();\r\n    if (perf) {\r\n        // Try looking for a server-timing header\r\n        var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n        value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n    }\r\n    return value;\r\n}\r\n// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n    if (target && target.dispatchEvent && evnt) {\r\n        target.dispatchEvent(evnt);\r\n        return true;\r\n    }\r\n    return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n    var event = null;\r\n    var detail = { detail: details || null };\r\n    if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n        event = new CustomEvent(eventName, detail);\r\n    }\r\n    else { // CustomEvent has no constructor in IE\r\n        var doc = getDocument();\r\n        if (doc && doc.createEvent) {\r\n            event = doc.createEvent(\"CustomEvent\");\r\n            event.initCustomEvent(eventName, true, true, detail);\r\n        }\r\n    }\r\n    return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n    var global = getGlobal();\r\n    if (global && global.CustomEvent) {\r\n        try {\r\n            var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n            return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n        }\r\n        catch (e) {\r\n            // eslint-disable-next-line no-empty\r\n        }\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * Redacts user information from a URL\r\n * @param url - The URL string to redact\r\n * @returns The URL with user information redacted\r\n */\r\nfunction redactUserInfo(url) {\r\n    return url.replace(/^([a-zA-Z][a-zA-Z0-9+.-]*:\\/\\/)([^:@]{1,200}):([^@]{1,200})@(.*)$/, \"$1REDACTED:REDACTED@$4\");\r\n}\r\n/**\r\n * Redacts sensitive query parameters from a URL\r\n * @param url - The URL string to redact\r\n * @returns The URL with sensitive query parameters redacted\r\n */\r\nfunction redactQueryParameters(url, config) {\r\n    var sensitiveParams;\r\n    var questionMarkIndex = strIndexOf(url, \"?\");\r\n    if (questionMarkIndex === -1) {\r\n        return url;\r\n    }\r\n    if (config && config.redactQueryParams) {\r\n        sensitiveParams = DEFAULT_SENSITIVE_PARAMS.concat(config.redactQueryParams);\r\n    }\r\n    else {\r\n        sensitiveParams = DEFAULT_SENSITIVE_PARAMS;\r\n    }\r\n    var baseUrl = strSubstring(url, 0, questionMarkIndex + 1);\r\n    var queryString = strSubstring(url, questionMarkIndex + 1);\r\n    var fragment = STR_EMPTY;\r\n    var hashIndex = strIndexOf(queryString, \"#\");\r\n    if (hashIndex !== -1) {\r\n        fragment = strSubstring(queryString, hashIndex);\r\n        queryString = strSubstring(queryString, 0, hashIndex);\r\n    }\r\n    var hasPotentialSensitiveParam = false;\r\n    for (var i = 0; i < sensitiveParams[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n        var paramCheck = sensitiveParams[i] + \"=\";\r\n        if (strIndexOf(queryString, paramCheck) !== -1) {\r\n            hasPotentialSensitiveParam = true;\r\n            break;\r\n        }\r\n    }\r\n    if (!hasPotentialSensitiveParam) {\r\n        return url;\r\n    }\r\n    var resultParts = [];\r\n    var anyParamRedacted = false;\r\n    if (queryString && queryString[_DYN_LENGTH /* @min:%2elength */]) {\r\n        var pairs = queryString[_DYN_SPLIT /* @min:%2esplit */](\"&\");\r\n        for (var i = 0; i < pairs[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n            var pair = pairs[i];\r\n            if (!pair) {\r\n                continue;\r\n            }\r\n            var equalsIndex = strIndexOf(pair, \"=\");\r\n            if (equalsIndex === -1) {\r\n                // Parameter without value\r\n                resultParts[_DYN_PUSH /* @min:%2epush */](pair);\r\n            }\r\n            else {\r\n                var paramName = pair[_DYN_SUBSTRING /* @min:%2esubstring */](0, equalsIndex);\r\n                var paramValue = pair[_DYN_SUBSTRING /* @min:%2esubstring */](equalsIndex + 1);\r\n                if (paramValue === STR_EMPTY) {\r\n                    resultParts[_DYN_PUSH /* @min:%2epush */](pair);\r\n                }\r\n                else {\r\n                    var shouldRedact = false;\r\n                    for (var j = 0; j < sensitiveParams[_DYN_LENGTH /* @min:%2elength */]; j++) {\r\n                        if (paramName === sensitiveParams[j]) {\r\n                            shouldRedact = true;\r\n                            anyParamRedacted = true;\r\n                            break;\r\n                        }\r\n                    }\r\n                    if (shouldRedact) {\r\n                        resultParts[_DYN_PUSH /* @min:%2epush */](paramName + \"=\" + STR_REDACTED);\r\n                    }\r\n                    else {\r\n                        resultParts[_DYN_PUSH /* @min:%2epush */](pair);\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    // If no parameters were redacted, return the original URL\r\n    if (!anyParamRedacted) {\r\n        return url;\r\n    }\r\n    return baseUrl + resultParts.join(\"&\") + fragment;\r\n}\r\n/**\r\n * Redacts sensitive information from a URL string, including credentials and specific query parameters.\r\n * @param input - The URL string to be redacted.\r\n * @param config - Configuration object that contain redactUrls setting.\r\n * @returns The redacted URL string or the original string if no redaction was needed or possible.\r\n */\r\nexport function fieldRedaction(input, config) {\r\n    if (!input || !isString(input) || input[_DYN_INDEX_OF /* @min:%2eindexOf */](\" \") !== -1) {\r\n        return input;\r\n    }\r\n    var isRedactionDisabled = config && config.redactUrls === false;\r\n    if (isRedactionDisabled) {\r\n        return input;\r\n    }\r\n    var hasCredentials = strIndexOf(input, \"@\") !== -1;\r\n    var hasQueryParams = strIndexOf(input, \"?\") !== -1;\r\n    // If no credentials and no query params, return original\r\n    if (!hasCredentials && !hasQueryParams) {\r\n        return input;\r\n    }\r\n    try {\r\n        var result = input;\r\n        if (hasCredentials) {\r\n            result = redactUserInfo(input);\r\n        }\r\n        if (hasQueryParams) {\r\n            result = redactQueryParameters(result, config);\r\n        }\r\n        return result;\r\n    }\r\n    catch (e) {\r\n        return input;\r\n    }\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { mathFloor, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\nvar SEED1 = 123456789;\r\nvar SEED2 = 987654321;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = SEED1;\r\nvar _mwcZ = SEED2;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n    if (seedValue < 0) {\r\n        // Make sure we end up with a positive number and not -ve one.\r\n        seedValue >>>= 0;\r\n    }\r\n    _mwcW = (SEED1 + seedValue) & MaxUInt32;\r\n    _mwcZ = (SEED2 - seedValue) & MaxUInt32;\r\n    _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n    // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n    // and bitwise XOR with the current milliseconds\r\n    try {\r\n        var now = utcNow() & 0x7fffffff;\r\n        _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n    }\r\n    catch (e) {\r\n        // Don't crash if something goes wrong\r\n    }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue - The max value for the range\r\n */\r\nexport function randomValue(maxValue) {\r\n    if (maxValue > 0) {\r\n        return mathFloor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n    }\r\n    return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n    var value = 0;\r\n    var c = getCrypto() || getMsCrypto();\r\n    if (c && c.getRandomValues) {\r\n        // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n        value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n    }\r\n    if (value === 0 && isIE()) {\r\n        // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n        if (!_mwcSeeded) {\r\n            // Set the seed for the Mwc algorithm\r\n            _autoSeedMwc();\r\n        }\r\n        // Don't use Math.random for IE\r\n        // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n        value = mwcRandom32() & MaxUInt32;\r\n    }\r\n    if (value === 0) {\r\n        // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n        value = mathFloor((UInt32Mask * Math.random()) | 0);\r\n    }\r\n    if (!signed) {\r\n        // Make sure we end up with a positive number and not -ve one.\r\n        value >>>= 0;\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n    if (!value) {\r\n        _autoSeedMwc();\r\n    }\r\n    else {\r\n        _mwcSeed(value);\r\n    }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n    _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n    _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n    var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n    if (!signed) {\r\n        // Make sure we end up with a positive number and not -ve one.\r\n        value >>>= 0;\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n    if (maxLength === void 0) { maxLength = 22; }\r\n    var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n    // Start with an initial random number, consuming the value in reverse byte order\r\n    var number = random32() >>> 0; // Make sure it's a +ve number\r\n    var chars = 0;\r\n    var result = STR_EMPTY;\r\n    while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n        chars++;\r\n        result += base64chars.charAt(number & 0x3F);\r\n        number >>>= 6; // Zero fill with right shift\r\n        if (chars === 5) {\r\n            // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n            // So add on another 30 bits and make sure it's +ve\r\n            number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n            chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n        }\r\n    }\r\n    return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.3.11';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\n// Accepts only:\r\n//  - Node\r\n//    - Node.ELEMENT_NODE\r\n//    - Node.DOCUMENT_NODE\r\n//  - Object\r\n//    - Any\r\nfunction _canAcceptData(target) {\r\n    return target.nodeType === 1 || target.nodeType === 9 || !(+target.nodeType);\r\n}\r\nfunction _getCache(data, target) {\r\n    var theCache = target[data.id];\r\n    if (!theCache) {\r\n        theCache = {};\r\n        try {\r\n            if (_canAcceptData(target)) {\r\n                objDefine(target, data.id, {\r\n                    e: false,\r\n                    v: theCache\r\n                });\r\n            }\r\n        }\r\n        catch (e) {\r\n            // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n        }\r\n    }\r\n    return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n    if (includeVersion === void 0) { includeVersion = false; }\r\n    return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n    var data = {\r\n        id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n        accept: function (target) {\r\n            return _canAcceptData(target);\r\n        },\r\n        get: function (target, name, defValue, addDefault) {\r\n            var theCache = target[data.id];\r\n            if (!theCache) {\r\n                if (addDefault) {\r\n                    // Side effect is adds the cache\r\n                    theCache = _getCache(data, target);\r\n                    theCache[normalizeJsName(name)] = defValue;\r\n                }\r\n                return defValue;\r\n            }\r\n            return theCache[normalizeJsName(name)];\r\n        },\r\n        kill: function (target, name) {\r\n            if (target && target[name]) {\r\n                try {\r\n                    delete target[name];\r\n                }\r\n                catch (e) {\r\n                    // Just cleaning up, so if this fails -- ignore\r\n                }\r\n            }\r\n        }\r\n    };\r\n    return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nfunction _isConfigDefaults(value) {\r\n    return (value && isObject(value) && !isArray(value) && (value.isVal || value.fb || objHasOwn(value, \"v\") || objHasOwn(value, \"mrg\") || objHasOwn(value, \"ref\") || value.set));\r\n}\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n    var defValue;\r\n    var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n    // There is a fallback config key so try and grab that first\r\n    if (theConfig && cfgDefaults.fb) {\r\n        var fallbacks = cfgDefaults.fb;\r\n        if (!isArray(fallbacks)) {\r\n            fallbacks = [fallbacks];\r\n        }\r\n        for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n            var fallback = fallbacks[lp];\r\n            var fbValue = theConfig[fallback];\r\n            if (isDefaultValid(fbValue)) {\r\n                defValue = fbValue;\r\n            }\r\n            else if (dynamicHandler) {\r\n                // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n                fbValue = dynamicHandler.cfg[fallback];\r\n                if (isDefaultValid(fbValue)) {\r\n                    defValue = fbValue;\r\n                }\r\n                // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n                dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n            }\r\n            if (isDefaultValid(defValue)) {\r\n                // We have a valid default so break out of the look\r\n                break;\r\n            }\r\n        }\r\n    }\r\n    // If the value is still not defined and we have a default value then use that\r\n    if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n        defValue = cfgDefaults.v;\r\n    }\r\n    return defValue;\r\n}\r\n/**\r\n * Recursively resolve the default value\r\n * @param dynamicHandler\r\n * @param theConfig\r\n * @param cfgDefaults\r\n * @returns\r\n */\r\nfunction _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {\r\n    var theValue = cfgDefaults;\r\n    if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {\r\n        theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n    }\r\n    if (theValue) {\r\n        if (_isConfigDefaults(theValue)) {\r\n            theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);\r\n        }\r\n        var newValue_1;\r\n        if (isArray(theValue)) {\r\n            newValue_1 = [];\r\n            newValue_1[_DYN_LENGTH /* @min:%2elength */] = theValue[_DYN_LENGTH /* @min:%2elength */];\r\n        }\r\n        else if (isPlainObject(theValue)) {\r\n            newValue_1 = {};\r\n        }\r\n        if (newValue_1) {\r\n            objForEachKey(theValue, function (key, value) {\r\n                if (value && _isConfigDefaults(value)) {\r\n                    value = _resolveDefaultValue(dynamicHandler, theConfig, value);\r\n                }\r\n                newValue_1[key] = value;\r\n            });\r\n            theValue = newValue_1;\r\n        }\r\n    }\r\n    return theValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n    // Resolve the initial config value from the provided value or use the defined default\r\n    var isValid;\r\n    var setFn;\r\n    var defValue;\r\n    var cfgDefaults = defaultValue;\r\n    var mergeDf;\r\n    var reference;\r\n    var readOnly;\r\n    var blkDynamicValue;\r\n    if (_isConfigDefaults(cfgDefaults)) {\r\n        // looks like a IConfigDefault\r\n        isValid = cfgDefaults.isVal;\r\n        setFn = cfgDefaults.set;\r\n        readOnly = cfgDefaults.rdOnly;\r\n        blkDynamicValue = cfgDefaults.blkVal;\r\n        mergeDf = cfgDefaults.mrg;\r\n        reference = cfgDefaults.ref;\r\n        if (!reference && isUndefined(reference)) {\r\n            reference = !!mergeDf;\r\n        }\r\n        defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n    }\r\n    else {\r\n        defValue = defaultValue;\r\n    }\r\n    if (blkDynamicValue) {\r\n        // Mark the property so that any value assigned will be blocked from conversion, we need to do this\r\n        // before assigning or fetching the value to ensure it's not converted\r\n        dynamicHandler.blkVal(theConfig, name);\r\n    }\r\n    // Set the value to the default value;\r\n    var theValue;\r\n    var usingDefault = true;\r\n    var cfgValue = theConfig[name];\r\n    // try and get and user provided values\r\n    if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n        // Use the defined theConfig[name] value\r\n        theValue = cfgValue;\r\n        usingDefault = false;\r\n        // The values are different and we have a special default value check, which is used to\r\n        // override config values like empty strings to continue using the default\r\n        if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n            theValue = defValue;\r\n            usingDefault = true;\r\n        }\r\n        if (setFn) {\r\n            theValue = setFn(theValue, defValue, theConfig);\r\n            usingDefault = theValue === defValue;\r\n        }\r\n    }\r\n    if (!usingDefault) {\r\n        if (isPlainObject(theValue) || isArray(defValue)) {\r\n            // we are using the user supplied value and it's an object\r\n            if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {\r\n                // Resolve/apply the defaults\r\n                objForEachKey(defValue, function (dfName, dfValue) {\r\n                    // Sets the value and makes it dynamic (if it doesn't already exist)\r\n                    _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);\r\n                });\r\n            }\r\n        }\r\n    }\r\n    else if (defValue) {\r\n        // Just resolve the default\r\n        theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);\r\n    }\r\n    else {\r\n        theValue = defValue;\r\n    }\r\n    // if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n    //     theValue = _cfgDeepCopy(theValue);\r\n    // }\r\n    // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n    dynamicHandler.set(theConfig, name, theValue);\r\n    if (reference) {\r\n        dynamicHandler.ref(theConfig, name);\r\n    }\r\n    if (readOnly) {\r\n        dynamicHandler.rdOnly(theConfig, name);\r\n    }\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n    if (source) {\r\n        var target_1;\r\n        if (isArray(source)) {\r\n            target_1 = [];\r\n            target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n        }\r\n        else if (isPlainObject(source)) {\r\n            target_1 = {};\r\n        }\r\n        if (target_1) {\r\n            // Copying index values by property name as the extensionConfig can be an array or object\r\n            objForEachKey(source, function (key, value) {\r\n                // Perform a deep copy of the object\r\n                target_1[key] = _cfgDeepCopy(value);\r\n            });\r\n            return target_1;\r\n        }\r\n    }\r\n    return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n    if (value) {\r\n        var handler = value[CFG_HANDLER_LINK] || value;\r\n        if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n            return handler;\r\n        }\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Mark the provided value so that if it's included into the configuration it will NOT have\r\n * its properties converted into a dynamic (reactive) object. If the object is not a plain object\r\n * or an array (ie. a class) this function has not affect as only Objects and Arrays are converted\r\n * into dynamic objects in the dynamic configuration.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * You should only need to use this function, if you are creating dynamic \"classes\" from objects\r\n * which confirm to the require interface. A common case for this is during unit testing where it's\r\n * easier to create mock extensions.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed\r\n *\r\n * @example\r\n * ```ts\r\n * // This is a valid \"extension\", but it is technically an object\r\n * // So when included in the config.extensions it WILL be cloned and then\r\n * // converted into a dynamic object, where all of its properties will become\r\n * // get/set object properties and will be tracked. While this WILL still\r\n * // function, when attempt to use a mocking framework on top of this the\r\n * // functions are now technically get accessors which return a function\r\n * // and this can cause some mocking frameworks to fail.\r\n * let mockChannel = {\r\n *      pause: () => { },\r\n*      resume: () => { },\r\n*      teardown: () => { },\r\n*      flush: (async: any, callBack: any) => { },\r\n*      processTelemetry: (env: any) => { },\r\n*      setNextPlugin: (next: any) => { },\r\n*      initialize: (config: any, core: any, extensions: any) => { },\r\n*      identifier: \"testChannel\",\r\n*      priority: 1003\r\n* };\r\n * ```\r\n * @param value - The object that you want to block from being converted into a\r\n * trackable dynamic object\r\n * @returns The original value\r\n */\r\nexport function blockDynamicConversion(value) {\r\n    if (value && (isPlainObject(value) || isArray(value))) {\r\n        try {\r\n            value[BLOCK_DYNAMIC] = true;\r\n        }\r\n        catch (e) {\r\n            // Don't throw for this case as it's an ask only\r\n        }\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * This is the reverse case of {@link blockDynamicConversion} in that this will tag an\r\n * object to indicate that it should always be converted into a dynamic trackable object\r\n * even when not an object or array. So all properties of this object will become\r\n * get / set accessor functions.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed.\r\n * @param value - The object that should be tagged and converted if included into a dynamic\r\n * configuration.\r\n * @returns The original value\r\n */\r\nexport function forceDynamicConversion(value) {\r\n    if (value) {\r\n        try {\r\n            value[FORCE_DYNAMIC] = true;\r\n        }\r\n        catch (e) {\r\n            // Don't throw for this case as it's an ask only\r\n        }\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to check whether an object can or should be converted into a dynamic\r\n * object.\r\n * @param value - The object to check whether it should be converted\r\n * @returns `true` if the value should be converted otherwise `false`.\r\n */\r\nexport function _canMakeDynamic(getFunc, state, value) {\r\n    var result = false;\r\n    // Object must exist and be truthy\r\n    if (value && !getFunc[state.blkVal]) {\r\n        // Tagged as always convert\r\n        result = value[FORCE_DYNAMIC];\r\n        // Check that it's not explicitly tagged as blocked\r\n        if (!result && !value[BLOCK_DYNAMIC]) {\r\n            // Only convert plain objects or arrays by default\r\n            result = isPlainObject(value) || isArray(value);\r\n        }\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n    throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n//# sourceMappingURL=DynamicSupport.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, _canMakeDynamic, blockDynamicConversion, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n    \"push\",\r\n    \"pop\",\r\n    \"shift\",\r\n    \"unshift\",\r\n    \"splice\"\r\n];\r\nexport var _throwDynamicError = function (logger, name, desc, e) {\r\n    logger && logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](3 /* eLoggingSeverity.DEBUG */, 108 /* _eInternalMessageId.DynamicConfigException */, \"\".concat(desc, \" [\").concat(name, \"] failed - \") + dumpObj(e));\r\n};\r\nfunction _patchArray(state, target, name) {\r\n    if (isArray(target)) {\r\n        // Monkey Patch the methods that might change the array\r\n        arrForEach(arrayMethodsToPatch, function (method) {\r\n            var orgMethod = target[method];\r\n            target[method] = function () {\r\n                var args = [];\r\n                for (var _i = 0; _i < arguments.length; _i++) {\r\n                    args[_i] = arguments[_i];\r\n                }\r\n                var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n                // items may be added, removed or moved so need to make some new dynamic properties\r\n                _makeDynamicObject(state, target, name, \"Patching\");\r\n                return result;\r\n            };\r\n        });\r\n    }\r\n}\r\nfunction _getOwnPropGetter(target, name) {\r\n    var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n    return propDesc && propDesc.get;\r\n}\r\nfunction _createDynamicProperty(state, theConfig, name, value) {\r\n    // Does not appear to be dynamic so lets make it so\r\n    var detail = {\r\n        n: name,\r\n        h: [],\r\n        trk: function (handler) {\r\n            if (handler && handler.fn) {\r\n                if (arrIndexOf(detail.h, handler) === -1) {\r\n                    // Add this handler to the collection that should be notified when the value changes\r\n                    detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n                }\r\n                state.trk(handler, detail);\r\n            }\r\n        },\r\n        clr: function (handler) {\r\n            var idx = arrIndexOf(detail.h, handler);\r\n            if (idx !== -1) {\r\n                detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n            }\r\n        }\r\n    };\r\n    // Flag to optimize lookup response time by avoiding additional function calls\r\n    var checkDynamic = true;\r\n    var isObjectOrArray = false;\r\n    function _getProperty() {\r\n        if (checkDynamic) {\r\n            isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n            // Make sure that if it's an object that we make it dynamic\r\n            if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {\r\n                // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n                value = _makeDynamicObject(state, value, name, \"Converting\");\r\n            }\r\n            // If it needed to be converted it now has been\r\n            checkDynamic = false;\r\n        }\r\n        // If there is an active handler then add it to the tracking set of handlers\r\n        var activeHandler = state.act;\r\n        if (activeHandler) {\r\n            detail.trk(activeHandler);\r\n        }\r\n        return value;\r\n    }\r\n    // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n    _getProperty[state.prop] = {\r\n        chng: function () {\r\n            state.add(detail);\r\n        }\r\n    };\r\n    function _setProperty(newValue) {\r\n        if (value !== newValue) {\r\n            if (!!_getProperty[state.ro] && !state.upd) {\r\n                // field is marked as readonly so return false\r\n                throwInvalidAccess(\"[\" + name + \"] is read-only:\" + dumpObj(theConfig));\r\n            }\r\n            if (checkDynamic) {\r\n                isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n                checkDynamic = false;\r\n            }\r\n            // The value must be a plain object or an array to enforce the reference (in-place updates)\r\n            var isReferenced = isObjectOrArray && _getProperty[state.rf];\r\n            if (isObjectOrArray) {\r\n                // We are about to replace a plain object or an array\r\n                if (isReferenced) {\r\n                    // Reassign the properties from the current value to the same properties from the newValue\r\n                    // This will set properties not in the newValue to undefined\r\n                    objForEachKey(value, function (key) {\r\n                        value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;\r\n                    });\r\n                    // Now assign / re-assign value with all of the keys from newValue\r\n                    try {\r\n                        objForEachKey(newValue, function (key, theValue) {\r\n                            _setDynamicProperty(state, value, key, theValue);\r\n                        });\r\n                        // Now drop newValue so when we assign value later it keeps the existing reference\r\n                        newValue = value;\r\n                    }\r\n                    catch (e) {\r\n                        // Unable to convert to dynamic property so just leave as non-dynamic\r\n                        _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Assigning\", e);\r\n                        // Mark as not an object or array so we don't try and do this again\r\n                        isObjectOrArray = false;\r\n                    }\r\n                }\r\n                else if (value && value[CFG_HANDLER_LINK]) {\r\n                    // As we are replacing the value, if it's already dynamic then we need to notify the listeners\r\n                    // for every property it has already\r\n                    objForEachKey(value, function (key) {\r\n                        // Check if the value is dynamic\r\n                        var getter = _getOwnPropGetter(value, key);\r\n                        if (getter) {\r\n                            // And if it is tell it's listeners that the value has changed\r\n                            var valueState = getter[state.prop];\r\n                            valueState && valueState.chng();\r\n                        }\r\n                    });\r\n                }\r\n            }\r\n            if (newValue !== value) {\r\n                var newIsObjectOrArray = newValue && _canMakeDynamic(_getProperty, state, newValue);\r\n                if (!isReferenced && newIsObjectOrArray) {\r\n                    // As the newValue is an object/array lets preemptively make it dynamic\r\n                    newValue = _makeDynamicObject(state, newValue, name, \"Converting\");\r\n                }\r\n                // Now assign the internal \"value\" to the newValue\r\n                value = newValue;\r\n                isObjectOrArray = newIsObjectOrArray;\r\n            }\r\n            // Cause any listeners to be scheduled for notification\r\n            state.add(detail);\r\n        }\r\n    }\r\n    objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n    if (target) {\r\n        // To be a dynamic property it needs to have a get function\r\n        var getter = _getOwnPropGetter(target, name);\r\n        var isDynamic = getter && !!getter[state.prop];\r\n        if (!isDynamic) {\r\n            _createDynamicProperty(state, target, name, value);\r\n        }\r\n        else {\r\n            // Looks like it's already dynamic just assign the new value\r\n            target[name] = value;\r\n        }\r\n    }\r\n    return target;\r\n}\r\nexport function _setDynamicPropertyState(state, target, name, flags) {\r\n    if (target) {\r\n        // To be a dynamic property it needs to have a get function\r\n        var getter = _getOwnPropGetter(target, name);\r\n        var isDynamic = getter && !!getter[state.prop];\r\n        var inPlace = flags && flags[0 /* _eSetDynamicPropertyFlags.inPlace */];\r\n        var rdOnly = flags && flags[1 /* _eSetDynamicPropertyFlags.readOnly */];\r\n        var blkProp = flags && flags[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */];\r\n        if (!isDynamic) {\r\n            if (blkProp) {\r\n                try {\r\n                    // Attempt to mark the target as blocked from conversion\r\n                    blockDynamicConversion(target);\r\n                }\r\n                catch (e) {\r\n                    _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Blocking\", e);\r\n                }\r\n            }\r\n            try {\r\n                // Make sure it's dynamic so that we can tag the property as per the state\r\n                _setDynamicProperty(state, target, name, target[name]);\r\n                getter = _getOwnPropGetter(target, name);\r\n            }\r\n            catch (e) {\r\n                // Unable to convert to dynamic property so just leave as non-dynamic\r\n                _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"State\", e);\r\n            }\r\n        }\r\n        // Assign the optional flags if true\r\n        if (inPlace) {\r\n            getter[state.rf] = inPlace;\r\n        }\r\n        if (rdOnly) {\r\n            getter[state.ro] = rdOnly;\r\n        }\r\n        if (blkProp) {\r\n            getter[state.blkVal] = true;\r\n        }\r\n    }\r\n    return target;\r\n}\r\nexport function _makeDynamicObject(state, target, name, desc) {\r\n    try {\r\n        // Assign target with new value properties (converting into dynamic properties in the process)\r\n        objForEachKey(target, function (key, value) {\r\n            // Assign and/or make the property dynamic\r\n            _setDynamicProperty(state, target, key, value);\r\n        });\r\n        if (!target[CFG_HANDLER_LINK]) {\r\n            // Link the config back to the dynamic config details\r\n            objDefineProp(target, CFG_HANDLER_LINK, {\r\n                get: function () {\r\n                    return state.hdlr;\r\n                }\r\n            });\r\n            _patchArray(state, target, name);\r\n        }\r\n    }\r\n    catch (e) {\r\n        // Unable to convert to dynamic property so just leave as non-dynamic\r\n        _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, desc, e);\r\n    }\r\n    return target;\r\n}\r\n//# sourceMappingURL=DynamicProperty.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_CANCEL, _DYN_LENGTH, _DYN_LOGGER, _DYN_PUSH, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n    var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n    var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n    var dynamicPropertyReferenced = newSymbol(symPrefix + \"rf\" + cfgHandler.uid + symPostfix);\r\n    var dynamicPropertyBlockValue = newSymbol(symPrefix + \"blkVal\" + cfgHandler.uid + symPostfix);\r\n    var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n    var _waitingHandlers = null;\r\n    var _watcherTimer = null;\r\n    var theState;\r\n    function _useHandler(activeHandler, callback) {\r\n        var prevWatcher = theState.act;\r\n        try {\r\n            theState.act = activeHandler;\r\n            if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n                // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n                arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n                    detail.clr(activeHandler);\r\n                });\r\n                activeHandler[dynamicPropertyDetail] = [];\r\n            }\r\n            callback({\r\n                cfg: cfgHandler.cfg,\r\n                set: cfgHandler.set.bind(cfgHandler),\r\n                setDf: cfgHandler.setDf.bind(cfgHandler),\r\n                ref: cfgHandler.ref.bind(cfgHandler),\r\n                rdOnly: cfgHandler.rdOnly.bind(cfgHandler)\r\n            });\r\n        }\r\n        catch (e) {\r\n            var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n            if (logger) {\r\n                // Don't let one individual failure break everyone\r\n                logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n            }\r\n            // Re-throw the exception so that any true \"error\" is reported back to the called\r\n            throw e;\r\n        }\r\n        finally {\r\n            theState.act = prevWatcher || null;\r\n        }\r\n    }\r\n    function _notifyWatchers() {\r\n        if (_waitingHandlers) {\r\n            var notifyHandlers = _waitingHandlers;\r\n            _waitingHandlers = null;\r\n            // Stop any timer as we are running them now anyway\r\n            _watcherTimer && _watcherTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n            _watcherTimer = null;\r\n            var watcherFailures_1 = [];\r\n            // Now run the handlers\r\n            arrForEach(notifyHandlers, function (handler) {\r\n                if (handler) {\r\n                    if (handler[dynamicPropertyDetail]) {\r\n                        arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n                            // Clear out this handler from  previously tracked details, so that access are re-evaluated\r\n                            detail.clr(handler);\r\n                        });\r\n                        handler[dynamicPropertyDetail] = null;\r\n                    }\r\n                    // The handler may have self removed as part of another handler so re-check\r\n                    if (handler.fn) {\r\n                        try {\r\n                            _useHandler(handler, handler.fn);\r\n                        }\r\n                        catch (e) {\r\n                            // Don't let a single failing watcher cause other watches to fail\r\n                            watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n                        }\r\n                    }\r\n                }\r\n            });\r\n            // During notification we may have had additional updates -- so notify those updates as well\r\n            if (_waitingHandlers) {\r\n                try {\r\n                    _notifyWatchers();\r\n                }\r\n                catch (e) {\r\n                    watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n                }\r\n            }\r\n            if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n            }\r\n        }\r\n    }\r\n    function _addWatcher(detail) {\r\n        if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n            if (!_waitingHandlers) {\r\n                _waitingHandlers = [];\r\n            }\r\n            if (!_watcherTimer) {\r\n                _watcherTimer = scheduleTimeout(function () {\r\n                    _watcherTimer = null;\r\n                    _notifyWatchers();\r\n                }, 0);\r\n            }\r\n            // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n            for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n                var handler = detail.h[idx];\r\n                // Add this handler to the collection of handlers to re-execute\r\n                if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n                    _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n                }\r\n            }\r\n        }\r\n    }\r\n    function _trackHandler(handler, detail) {\r\n        if (handler) {\r\n            var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n            if (arrIndexOf(details, detail) === -1) {\r\n                // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n                details[_DYN_PUSH /* @min:%2epush */](detail);\r\n            }\r\n        }\r\n    }\r\n    theState = {\r\n        prop: dynamicPropertySymbol,\r\n        ro: dynamicPropertyReadOnly,\r\n        rf: dynamicPropertyReferenced,\r\n        blkVal: dynamicPropertyBlockValue,\r\n        hdlr: cfgHandler,\r\n        add: _addWatcher,\r\n        notify: _notifyWatchers,\r\n        use: _useHandler,\r\n        trk: _trackHandler\r\n    };\r\n    return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_THROW_INTERNAL, _DYN_WARN_TO_CONSOLE, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty, _setDynamicPropertyState, _throwDynamicError } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n    var handler = {\r\n        fn: configHandler,\r\n        rm: function () {\r\n            // Clear all references to the handler so it can be garbage collected\r\n            // This will also cause this handler to never get called and eventually removed\r\n            handler.fn = null;\r\n            state = null;\r\n            configHandler = null;\r\n        }\r\n    };\r\n    objDefine(handler, \"toJSON\", { v: function () { return \"WatcherHandler\" + (handler.fn ? \"\" : \"[X]\"); } });\r\n    state.use(handler, configHandler);\r\n    return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n    var dynamicHandler = getDynamicConfigHandler(target);\r\n    if (dynamicHandler) {\r\n        // The passed config is already dynamic so return it's tracker\r\n        return dynamicHandler;\r\n    }\r\n    var uid = createUniqueNamespace(\"dyncfg\", true);\r\n    var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n    var theState;\r\n    function _notifyWatchers() {\r\n        theState.notify();\r\n    }\r\n    function _setValue(target, name, value) {\r\n        try {\r\n            target = _setDynamicProperty(theState, target, name, value);\r\n        }\r\n        catch (e) {\r\n            // Unable to convert to dynamic property so just leave as non-dynamic\r\n            _throwDynamicError(logger, name, \"Setting value\", e);\r\n        }\r\n        return target[name];\r\n    }\r\n    function _watch(configHandler) {\r\n        return _createAndUseHandler(theState, configHandler);\r\n    }\r\n    function _block(configHandler, allowUpdate) {\r\n        theState.use(null, function (details) {\r\n            var prevUpd = theState.upd;\r\n            try {\r\n                if (!isUndefined(allowUpdate)) {\r\n                    theState.upd = allowUpdate;\r\n                }\r\n                configHandler(details);\r\n            }\r\n            finally {\r\n                theState.upd = prevUpd;\r\n            }\r\n        });\r\n    }\r\n    function _ref(target, name) {\r\n        var _a;\r\n        // Make sure it's dynamic and mark as referenced with it's current value\r\n        return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[0 /* _eSetDynamicPropertyFlags.inPlace */] = true, _a))[name];\r\n    }\r\n    function _rdOnly(target, name) {\r\n        var _a;\r\n        // Make sure it's dynamic and mark as readonly with it's current value\r\n        return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[1 /* _eSetDynamicPropertyFlags.readOnly */] = true, _a))[name];\r\n    }\r\n    function _blkPropValue(target, name) {\r\n        var _a;\r\n        // Make sure it's dynamic and mark as readonly with it's current value\r\n        return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */] = true, _a))[name];\r\n    }\r\n    function _applyDefaults(theConfig, defaultValues) {\r\n        if (defaultValues) {\r\n            // Resolve/apply the defaults\r\n            objForEachKey(defaultValues, function (name, value) {\r\n                // Sets the value and makes it dynamic (if it doesn't already exist)\r\n                _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n            });\r\n        }\r\n        return theConfig;\r\n    }\r\n    var cfgHandler = {\r\n        uid: null,\r\n        cfg: newTarget,\r\n        logger: logger,\r\n        notify: _notifyWatchers,\r\n        set: _setValue,\r\n        setDf: _applyDefaults,\r\n        watch: _watch,\r\n        ref: _ref,\r\n        rdOnly: _rdOnly,\r\n        blkVal: _blkPropValue,\r\n        _block: _block\r\n    };\r\n    objDefine(cfgHandler, \"uid\", {\r\n        c: false,\r\n        e: false,\r\n        w: false,\r\n        v: uid\r\n    });\r\n    theState = _createState(cfgHandler);\r\n    // Setup tracking for all defined default keys\r\n    _makeDynamicObject(theState, newTarget, \"config\", \"Creating\");\r\n    return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n    if (logger) {\r\n        logger[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n        logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n    }\r\n    else {\r\n        // We don't have a logger so just throw an exception\r\n        throwInvalidAccess(message);\r\n    }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n    var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n    if (defaultConfig) {\r\n        dynamicHandler.setDf(dynamicHandler.cfg, defaultConfig);\r\n    }\r\n    return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n    var handler = config[CFG_HANDLER_LINK] || config;\r\n    if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n        return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n    }\r\n    _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n    return createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n//# sourceMappingURL=DynamicConfig.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n    if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n        return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n    }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously.  Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n    var result;\r\n    if (!done) {\r\n        result = createPromise(function (resolved) {\r\n            done = resolved;\r\n        });\r\n    }\r\n    if (targets && getLength(targets) > 0) {\r\n        doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n            doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n        });\r\n    }\r\n    else {\r\n        done();\r\n    }\r\n    return result;\r\n}\r\n//# sourceMappingURL=AsyncUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var ChannelControllerPriority = 500;\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\n// export const SampleRate = \"sampleRate\";\r\n// export const ProcessLegacy = \"ProcessLegacy\";\r\n// export const HttpMethod = \"http.method\";\r\n// export const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\n// export const DEFAULT_BREEZE_PATH = \"/v2/track\";\r\n// export const strNotSpecified = \"not_specified\";\r\n// export const strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param str\r\n * @param defaultValue\r\n * @returns\r\n */\r\nfunction _stringToBoolOrDefault(theValue, defaultValue, theConfig) {\r\n    if (!theValue && isNullOrUndefined(theValue)) {\r\n        return defaultValue;\r\n    }\r\n    if (isBoolean(theValue)) {\r\n        return theValue;\r\n    }\r\n    return asString(theValue)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the field defined as an object\r\n * that should be merged\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfMerge(defaultValue) {\r\n    return {\r\n        mrg: true,\r\n        v: defaultValue\r\n    };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field set function\r\n * @param setter - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfSet(setter, defaultValue) {\r\n    return {\r\n        set: setter,\r\n        v: defaultValue\r\n    };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field validator\r\n * @param validator - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfValidate(validator, defaultValue, fallBackName) {\r\n    return {\r\n        fb: fallBackName,\r\n        isVal: validator,\r\n        v: defaultValue\r\n    };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user\r\n * provided value to a boolean from a string or boolean value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBoolean(defaultValue, fallBackName) {\r\n    return {\r\n        fb: fallBackName,\r\n        set: _stringToBoolOrDefault,\r\n        v: !!defaultValue\r\n    };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfFunc(defaultValue) {\r\n    return {\r\n        isVal: isFunction,\r\n        v: defaultValue || null\r\n    };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfString(defaultValue) {\r\n    return {\r\n        isVal: isString,\r\n        v: asString(defaultValue || STR_EMPTY)\r\n    };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance identifying that value associated with this property\r\n * should not have it's properties converted into a dynamic config properties.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBlockPropValue(defaultValue) {\r\n    return {\r\n        blkVal: true,\r\n        v: defaultValue\r\n    };\r\n}\r\n//# sourceMappingURL=ConfigDefaultHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n    return function () {\r\n        var args = arguments;\r\n        var dbgExt = getDebugExt(config);\r\n        if (dbgExt) {\r\n            var listener = dbgExt.listener;\r\n            if (listener && listener[name]) {\r\n                listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n            }\r\n        }\r\n    };\r\n}\r\nfunction _getExtensionNamespace() {\r\n    // Cache the lookup of the global namespace object\r\n    var target = getInst(\"Microsoft\");\r\n    if (target) {\r\n        _aiNamespace = target[\"ApplicationInsights\"];\r\n    }\r\n    return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n    var ns = _aiNamespace;\r\n    if (!ns && config.disableDbgExt !== true) {\r\n        ns = _aiNamespace || _getExtensionNamespace();\r\n    }\r\n    return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n    if (!_debugListener) {\r\n        _debugListener = {};\r\n        for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n            _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n        }\r\n    }\r\n    return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE, _DYN_THROW_INTERNAL, _DYN_UNLOAD, _DYN_WARN_TO_CONSOLE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n *  Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar defaultValues = {\r\n    loggingLevelConsole: 0,\r\n    loggingLevelTelemetry: 1,\r\n    maxMessageLimit: 25,\r\n    enableDebug: false\r\n};\r\nvar _logFuncs = (_a = {},\r\n    _a[0 /* eLoggingSeverity.DISABLED */] = null,\r\n    _a[1 /* eLoggingSeverity.CRITICAL */] = \"errorToConsole\",\r\n    _a[2 /* eLoggingSeverity.WARNING */] = STR_WARN_TO_CONSOLE,\r\n    _a[3 /* eLoggingSeverity.DEBUG */] = \"debugToConsole\",\r\n    _a);\r\nfunction _sanitizeDiagnosticText(text) {\r\n    if (text) {\r\n        return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n    }\r\n    return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n    var theConsole = getConsole();\r\n    if (!!theConsole) {\r\n        var logFunc = \"log\";\r\n        if (theConsole[func]) {\r\n            logFunc = func;\r\n        }\r\n        if (isFunction(theConsole[logFunc])) {\r\n            theConsole[logFunc](message);\r\n        }\r\n    }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n    function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n        if (isUserAct === void 0) { isUserAct = false; }\r\n        var _self = this;\r\n        _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n        _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n            (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n                msgId;\r\n        var strProps = STR_EMPTY;\r\n        if (hasJSON()) {\r\n            strProps = getJSON().stringify(properties);\r\n        }\r\n        var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n            (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n        _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n    }\r\n    _InternalLogMessage.dataType = \"MessageData\";\r\n    return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n    return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n    function DiagnosticLogger(config) {\r\n        this.identifier = \"DiagnosticLogger\";\r\n        /**\r\n         * The internal logging queue\r\n         */\r\n        this.queue = [];\r\n        /**\r\n         * Count of internal messages sent\r\n         */\r\n        var _messageCount = 0;\r\n        /**\r\n         * Holds information about what message types were already logged to console or sent to server.\r\n         */\r\n        var _messageLogged = {};\r\n        var _loggingLevelConsole;\r\n        var _loggingLevelTelemetry;\r\n        var _maxInternalMessageLimit;\r\n        var _enableDebug;\r\n        var _unloadHandler;\r\n        dynamicProto(DiagnosticLogger, this, function (_self) {\r\n            _unloadHandler = _setDefaultsFromConfig(config || {});\r\n            _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n            /**\r\n             * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n             * @param severity - The severity of the log message\r\n             * @param message  - The log message.\r\n             */\r\n            _self[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */] = function (severity, msgId, msg, properties, isUserAct) {\r\n                if (isUserAct === void 0) { isUserAct = false; }\r\n                var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n                if (_enableDebug) {\r\n                    throw dumpObj(message);\r\n                }\r\n                else {\r\n                    // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n                    var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;\r\n                    if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n                        if (isUserAct) {\r\n                            // check if this message type was already logged to console for this page view and if so, don't log it again\r\n                            var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n                            if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n                                _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n                                _messageLogged[messageKey] = true;\r\n                            }\r\n                        }\r\n                        else {\r\n                            // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n                            if (_loggingLevelConsole >= severity) {\r\n                                _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n                            }\r\n                        }\r\n                        _logInternalMessage(severity, message);\r\n                    }\r\n                    else {\r\n                        _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n                    }\r\n                }\r\n            };\r\n            _self.debugToConsole = function (message) {\r\n                _logToConsole(\"debug\", message);\r\n                _debugExtMsg(\"warning\", message);\r\n            };\r\n            _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n                _logToConsole(\"warn\", message);\r\n                _debugExtMsg(\"warning\", message);\r\n            };\r\n            _self.errorToConsole = function (message) {\r\n                _logToConsole(\"error\", message);\r\n                _debugExtMsg(\"error\", message);\r\n            };\r\n            _self.resetInternalMessageCount = function () {\r\n                _messageCount = 0;\r\n                _messageLogged = {};\r\n            };\r\n            _self.logInternalMessage = _logInternalMessage;\r\n            _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n                _unloadHandler && _unloadHandler.rm();\r\n                _unloadHandler = null;\r\n            };\r\n            function _logInternalMessage(severity, message) {\r\n                if (_areInternalMessagesThrottled()) {\r\n                    return;\r\n                }\r\n                // check if this message type was already logged for this session and if so, don't log it again\r\n                var logMessage = true;\r\n                var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n                // if the session storage is not available, limit to only one message type per page view\r\n                if (_messageLogged[messageKey]) {\r\n                    logMessage = false;\r\n                }\r\n                else {\r\n                    _messageLogged[messageKey] = true;\r\n                }\r\n                if (logMessage) {\r\n                    // Push the event in the internal queue\r\n                    if (severity <= _loggingLevelTelemetry) {\r\n                        _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n                        _messageCount++;\r\n                        _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n                    }\r\n                    // When throttle limit reached, send a special event\r\n                    if (_messageCount === _maxInternalMessageLimit) {\r\n                        var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n                        var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n                        _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n                        if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n                            _self.errorToConsole(throttleLimitMessage);\r\n                        }\r\n                        else {\r\n                            _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            function _setDefaultsFromConfig(config) {\r\n                // make sure the config is dynamic\r\n                return onConfigChange(createDynamicConfig(config, defaultValues, _self).cfg, function (details) {\r\n                    var config = details.cfg;\r\n                    _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */];\r\n                    _loggingLevelTelemetry = config.loggingLevelTelemetry;\r\n                    _maxInternalMessageLimit = config.maxMessageLimit;\r\n                    _enableDebug = config.enableDebug;\r\n                });\r\n            }\r\n            function _areInternalMessagesThrottled() {\r\n                return _messageCount >= _maxInternalMessageLimit;\r\n            }\r\n            function _debugExtMsg(name, data) {\r\n                var dbgExt = getDebugExt(config || {});\r\n                if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n                    dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n                }\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.debugToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n// Removed Stub for DiagnosticLogger.prototype.unload.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    DiagnosticLogger.__ieDyn=1;\n\n    return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n    return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - The severity of the log message\r\n * @param message  - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n    if (isUserAct === void 0) { isUserAct = false; }\r\n    _getLogger(logger)[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message  - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n    _getLogger(logger)[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity  - The severity of the log message\r\n * @param message - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n    _getLogger(logger).logInternalMessage(severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_SPLIT, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n        cookieCfg: cfgDfMerge((_b = {},\r\n            _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n            _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n            _b.enabled = UNDEFINED_VALUE,\r\n            _b.ignoreCookies = UNDEFINED_VALUE,\r\n            _b.blockedCookies = UNDEFINED_VALUE,\r\n            _b.disableCookieDefer = false,\r\n            _b)),\r\n        cookieDomain: UNDEFINED_VALUE,\r\n        cookiePath: UNDEFINED_VALUE\r\n    },\r\n    _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n    _a);\r\nfunction _getDoc() {\r\n    !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n    // Stash the global instance against the BaseCookieMgr class\r\n    var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n    if (!inst) {\r\n        // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n        // that ultimately is never used\r\n        inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n        _globalCookieConfig[strConfigCookieMgr] = inst;\r\n    }\r\n    return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n    if (cookieMgr) {\r\n        return cookieMgr.isEnabled();\r\n    }\r\n    return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n    if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n        return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n    }\r\n    return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n    if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n        if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n            return true;\r\n        }\r\n    }\r\n    return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n    var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n    if (isNullOrUndefined(isCfgEnabled)) {\r\n        // Set the enabled from the provided setting or the legacy root values\r\n        var cookieEnabled = void 0;\r\n        // This field is deprecated and dynamic updates will not be fully supported\r\n        if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n            cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n        }\r\n        // If this value is defined it takes precedent over the above\r\n        if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n            cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n        }\r\n        // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n        // So future \"updates\" then may not be as expected\r\n        isCfgEnabled = cookieEnabled;\r\n    }\r\n    return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core - The AppInsightsCore instance to get the cookie manager from\r\n * @param config - The config to use if the core is not available\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n    var cookieMgr;\r\n    if (core) {\r\n        // Always returns an instance\r\n        cookieMgr = core.getCookieMgr();\r\n    }\r\n    else if (config) {\r\n        var cookieCfg = config.cookieCfg;\r\n        if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n            cookieMgr = cookieCfg[strConfigCookieMgr];\r\n        }\r\n        else {\r\n            cookieMgr = createCookieMgr(config);\r\n        }\r\n    }\r\n    if (!cookieMgr) {\r\n        // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n        cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n    }\r\n    return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n    var cookieMgrConfig;\r\n    var _path;\r\n    var _domain;\r\n    var unloadHandler;\r\n    // Explicitly checking against false, so that setting to undefined will === true\r\n    var _enabled;\r\n    var _getCookieFn;\r\n    var _setCookieFn;\r\n    var _delCookieFn;\r\n    // Buffer for storing cookie operations when cookies are disabled\r\n    // null = deferral disabled, array = deferral enabled with pending operations\r\n    var _pendingCookies = [];\r\n    // Helper function to format deletion cookie value\r\n    function _formatDeletionValue(path) {\r\n        var _a;\r\n        var values = (_a = {},\r\n            _a[STR_PATH] = path ? path : \"/\",\r\n            _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n            _a);\r\n        if (!isIE()) {\r\n            // Set max age to expire now\r\n            values[\"max-age\"] = \"0\";\r\n        }\r\n        return _formatCookieValue(STR_EMPTY, values);\r\n    }\r\n    // Helper function to format a cookie value with all attributes\r\n    function _formatSetCookieValue(value, maxAgeSec, domain, path) {\r\n        var values = {};\r\n        var theValue = strTrim(value || STR_EMPTY);\r\n        var idx = strIndexOf(theValue, \";\");\r\n        if (idx !== -1) {\r\n            theValue = strTrim(strLeft(value, idx));\r\n            values = _extractParts(strSubstring(value, idx + 1));\r\n        }\r\n        // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n        setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n        if (!isNullOrUndefined(maxAgeSec)) {\r\n            var _isIE = isIE();\r\n            if (isUndefined(values[strExpires])) {\r\n                var nowMs = utcNow();\r\n                // Only add expires if not already present\r\n                var expireMs = nowMs + (maxAgeSec * 1000);\r\n                // Sanity check, if zero or -ve then ignore\r\n                if (expireMs > 0) {\r\n                    var expiry = new Date();\r\n                    expiry.setTime(expireMs);\r\n                    setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n                }\r\n            }\r\n            if (!_isIE) {\r\n                // Only replace if not already present\r\n                setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n            }\r\n        }\r\n        var location = getLocation();\r\n        if (location && location.protocol === \"https:\") {\r\n            setValue(values, \"secure\", null, null, isUndefined);\r\n            // Only set same site if not also secure\r\n            if (_allowUaSameSite === null) {\r\n                _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n            }\r\n            if (_allowUaSameSite) {\r\n                setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n            }\r\n        }\r\n        setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n        return _formatCookieValue(theValue, values);\r\n    }\r\n    // Helper function to remove any existing pending operations for a cookie name\r\n    function _removePendingCookie(name) {\r\n        if (_pendingCookies) {\r\n            // Remove all existing entries for this cookie name (iterate backwards to handle multiple entries safely)\r\n            for (var i = _pendingCookies[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n                if (_pendingCookies[i].n === name) {\r\n                    _pendingCookies[_DYN_SPLICE /* @min:%2esplice */](i, 1);\r\n                }\r\n            }\r\n        }\r\n    }\r\n    // Helper function to flush pending cookies when cookies become enabled\r\n    function _flushPendingCookies() {\r\n        if (areCookiesSupported(logger) && _pendingCookies) {\r\n            // Process all pending cookie operations in order\r\n            arrForEach(_pendingCookies, function (pendingData) {\r\n                if (!_isBlockedCookie(cookieMgrConfig, pendingData.n)) {\r\n                    if (pendingData.o === 0 /* ePendingOp.Set */) {\r\n                        // Apply the cached cookie value directly\r\n                        _setCookieFn(pendingData.n, pendingData.v);\r\n                    }\r\n                    else if (pendingData.o === 1 /* ePendingOp.Purge */) {\r\n                        // Apply the cached deletion\r\n                        _delCookieFn(pendingData.n, pendingData.v);\r\n                    }\r\n                }\r\n            });\r\n            // Clear the cache after flushing\r\n            _pendingCookies = [];\r\n        }\r\n    }\r\n    // Make sure the root config is dynamic as it may be the global config\r\n    rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n    // Will get recalled if the referenced configuration is changed\r\n    unloadHandler = onConfigChange(rootConfig, function (details) {\r\n        // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n        details.setDf(details.cfg, rootDefaultConfig);\r\n        // Create and apply the defaults to the cookieCfg element\r\n        cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n        _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n        _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n        // Handle deferral state changes based on disableCookieDefer setting\r\n        if (cookieMgrConfig.disableCookieDefer) {\r\n            // When deferral is disabled, set to null to disable any deferral behavior\r\n            // All pending operations are dropped\r\n            _pendingCookies = null;\r\n        }\r\n        else if (_pendingCookies === null) {\r\n            // When deferral is enabled and was previously disabled, initialize empty buffer\r\n            _pendingCookies = [];\r\n        }\r\n        // Check if enabled state is changing\r\n        var wasEnabled = _enabled;\r\n        // Explicitly checking against false, so that setting to undefined will === true\r\n        _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n        _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n        _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n        _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n        // If cookies were just enabled via config change and we have pending cookies, flush them\r\n        if (!wasEnabled && _enabled && _pendingCookies) {\r\n            _flushPendingCookies();\r\n        }\r\n    }, logger);\r\n    var cookieMgr = {\r\n        isEnabled: function () {\r\n            var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n            // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n            // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n            var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n            if (enabled && gblManager && cookieMgr !== gblManager) {\r\n                // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n                // As the global (deprecated) functions may have been called (for backward compatibility)\r\n                enabled = _isMgrEnabled(gblManager);\r\n            }\r\n            return enabled;\r\n        },\r\n        setEnabled: function (value) {\r\n            // Change the default config and allow the asynchronous dynamic config logic\r\n            // to process all of the changes at once (like handling change to the enabled and\r\n            // disabling caching at the same time)\r\n            cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n            // If this value is defined someone else might be listening to it so also update it,\r\n            // this also handles the edge case if the default above is not dynamic\r\n            if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n                rootConfig[strDisableCookiesUsage] = !value;\r\n            }\r\n        },\r\n        set: function (name, value, maxAgeSec, domain, path) {\r\n            var result = false;\r\n            var isBlocked = _isBlockedCookie(cookieMgrConfig, name);\r\n            if (!isBlocked) {\r\n                var cookieValue = _formatSetCookieValue(value, maxAgeSec, domain, path);\r\n                if (_isMgrEnabled(cookieMgr)) {\r\n                    _setCookieFn(name, cookieValue);\r\n                    result = true;\r\n                }\r\n                else if (_pendingCookies) {\r\n                    // Defer the fully formatted cookie value if cookies are disabled and deferral is enabled\r\n                    // Remove any previous operation for this cookie name (latest operation wins)\r\n                    _removePendingCookie(name);\r\n                    // Append new operation to the array\r\n                    _pendingCookies[_DYN_PUSH /* @min:%2epush */]({\r\n                        n: name,\r\n                        o: 0 /* ePendingOp.Set */,\r\n                        v: cookieValue\r\n                    });\r\n                    result = true; // Return true to indicate the operation was \"successful\" (deferred)\r\n                }\r\n            }\r\n            return result;\r\n        },\r\n        get: function (name) {\r\n            var value = STR_EMPTY;\r\n            var isIgnored = _isIgnoredCookie(cookieMgrConfig, name);\r\n            if (!isIgnored) {\r\n                if (_isMgrEnabled(cookieMgr)) {\r\n                    value = _getCookieFn(name);\r\n                }\r\n                else if (_pendingCookies) {\r\n                    // Search for the most recent operation for this cookie (search backwards through array)\r\n                    for (var i = _pendingCookies[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n                        var pendingData = _pendingCookies[i];\r\n                        if (pendingData.n === name) {\r\n                            // Found the most recent operation for this cookie name\r\n                            if (pendingData.o === 0 /* ePendingOp.Set */) {\r\n                                // Return deferred value if it was a set operation\r\n                                // Extract the value part from the formatted cookie string (before first semicolon)\r\n                                var cookieValue = pendingData.v;\r\n                                var idx = strIndexOf(cookieValue, \";\");\r\n                                value = idx !== -1 ? strTrim(strLeft(cookieValue, idx)) : strTrim(cookieValue);\r\n                            }\r\n                            // If it was a Purge operation, value remains empty (STR_EMPTY)\r\n                            break;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            return value;\r\n        },\r\n        del: function (name, path) {\r\n            var result = false;\r\n            if (_isMgrEnabled(cookieMgr)) {\r\n                // Only remove the cookie if the manager and cookie support has not been disabled\r\n                result = cookieMgr.purge(name, path);\r\n            }\r\n            else if (_pendingCookies) {\r\n                // Defer the deletion operation when cookies are disabled and deferral is enabled\r\n                // Remove any previous operation for this cookie name (latest operation wins)\r\n                _removePendingCookie(name);\r\n                // Append new deletion operation to the array\r\n                _pendingCookies[_DYN_PUSH /* @min:%2epush */]({\r\n                    n: name,\r\n                    o: 1 /* ePendingOp.Purge */,\r\n                    v: _formatDeletionValue(path)\r\n                });\r\n                result = true;\r\n            }\r\n            return result;\r\n        },\r\n        purge: function (name, path) {\r\n            var result = false;\r\n            if (areCookiesSupported(logger)) {\r\n                // Setting the expiration date in the past immediately removes the cookie\r\n                _delCookieFn(name, _formatDeletionValue(path));\r\n                result = true;\r\n            }\r\n            return result;\r\n        },\r\n        unload: function (isAsync) {\r\n            unloadHandler && unloadHandler.rm();\r\n            unloadHandler = null;\r\n            // Clear any pending cookies on unload\r\n            _pendingCookies = null;\r\n        }\r\n    };\r\n    // Associated this cookie manager with the config\r\n    cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n    return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n    if (_supportsCookies === null) {\r\n        _supportsCookies = false;\r\n        !_doc && _getDoc();\r\n        try {\r\n            var doc = _doc.v || {};\r\n            _supportsCookies = doc[strCookie] !== undefined;\r\n        }\r\n        catch (e) {\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n    var values = {};\r\n    if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n        var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n        arrForEach(parts, function (thePart) {\r\n            thePart = strTrim(thePart || STR_EMPTY);\r\n            if (thePart) {\r\n                var idx = strIndexOf(thePart, \"=\");\r\n                if (idx === -1) {\r\n                    values[thePart] = null;\r\n                }\r\n                else {\r\n                    values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n                }\r\n            }\r\n        });\r\n    }\r\n    return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n    if (isFunction(theDate[func])) {\r\n        return theDate[func]();\r\n    }\r\n    return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n    var cookieValue = value || STR_EMPTY;\r\n    objForEachKey(values, function (name, theValue) {\r\n        cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n    });\r\n    return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n    var cookieValue = STR_EMPTY;\r\n    !_doc && _getDoc();\r\n    if (_doc.v) {\r\n        var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n        if (_parsedCookieValue !== theCookie) {\r\n            _cookieCache = _extractParts(theCookie);\r\n            _parsedCookieValue = theCookie;\r\n        }\r\n        cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n    }\r\n    return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n    !_doc && _getDoc();\r\n    if (_doc.v) {\r\n        _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n    }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n    if (!isString(userAgent)) {\r\n        return false;\r\n    }\r\n    // Cover all iOS based browsers here. This includes:\r\n    // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n    // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n    // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n    // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n    if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n        return true;\r\n    }\r\n    // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n    // - Safari on Mac OS X\r\n    // This does not include:\r\n    // - Internal browser on Mac OS X\r\n    // - Chrome on Mac OS X\r\n    // - Chromium on Mac OS X\r\n    // Because they do not use the Mac OS networking stack.\r\n    if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n        return true;\r\n    }\r\n    // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n    // - Internal browser on Mac OS X\r\n    // This does not include:\r\n    // - Safari on Mac OS X\r\n    // - Chrome on Mac OS X\r\n    // - Chromium on Mac OS X\r\n    // Because they do not use the Mac OS networking stack.\r\n    if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n        return true;\r\n    }\r\n    // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n    // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n    // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n    if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n        return true;\r\n    }\r\n    // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n    // that don't specify their Chrome version as lacking support for SameSite=None.\r\n    if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n        return true;\r\n    }\r\n    // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n    // NB: this rule isn't complete - you need regex to make a complete rule.\r\n    // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n    if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n        return true;\r\n    }\r\n    return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, safe, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_DATA, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_OFFLINE_DROP, STR_OFFLINE_SENT, STR_OFFLINE_STORE, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n    perfEvtsSendAll: false\r\n};\r\nfunction _runScheduledListeners(asyncNotifications) {\r\n    asyncNotifications.h = null;\r\n    var callbacks = asyncNotifications.cb;\r\n    asyncNotifications.cb = [];\r\n    arrForEach(callbacks, function (cb) {\r\n        // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n        safe(cb.fn, [cb.arg]);\r\n    });\r\n}\r\n// This function is used to combine the logic of running the listeners and handling the async notifications so that they don't\r\n// create multiple timers if there are multiple async listeners.\r\nfunction _runListeners(listeners, name, asyncNotifications, callback) {\r\n    arrForEach(listeners, function (listener) {\r\n        if (listener && listener[name]) {\r\n            if (asyncNotifications) {\r\n                // Schedule the callback to be called after the current call stack has cleared.\r\n                asyncNotifications.cb[_DYN_PUSH /* @min:%2epush */]({\r\n                    fn: callback,\r\n                    arg: listener\r\n                });\r\n                asyncNotifications.h = asyncNotifications.h || scheduleTimeout(_runScheduledListeners, 0, asyncNotifications);\r\n            }\r\n            else {\r\n                // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n                safe(callback, [listener]);\r\n            }\r\n        }\r\n    });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n    function NotificationManager(config) {\r\n        this.listeners = [];\r\n        var perfEvtsSendAll;\r\n        var unloadHandler;\r\n        var _listeners = [];\r\n        var _asyncNotifications = {\r\n            h: null,\r\n            cb: []\r\n        };\r\n        var cfgHandler = createDynamicConfig(config, defaultValues);\r\n        unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n            perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n        });\r\n        dynamicProto(NotificationManager, this, function (_self) {\r\n            objDefine(_self, \"listeners\", {\r\n                g: function () { return _listeners; }\r\n            });\r\n            _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n                _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n            };\r\n            /**\r\n             * Removes all instances of the listener.\r\n             * @param listener - AWTNotificationListener to remove.\r\n             */\r\n            _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n                var index = arrIndexOf(_listeners, listener);\r\n                while (index > -1) {\r\n                    _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n                    index = arrIndexOf(_listeners, listener);\r\n                }\r\n            };\r\n            /**\r\n             * Notification for events sent.\r\n             * @param events - The array of events that have been sent.\r\n             */\r\n            _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n                _runListeners(_listeners, STR_EVENTS_SENT, _asyncNotifications, function (listener) {\r\n                    listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n                });\r\n            };\r\n            /**\r\n             * Notification for events being discarded.\r\n             * @param events - The array of events that have been discarded by the SDK.\r\n             * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n             * constant should be used to check the different values.\r\n             * @param sendType - [Optional] The send type used when the events were discarded.\r\n             */\r\n            _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason, sendType) {\r\n                _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {\r\n                    listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason, sendType);\r\n                });\r\n            };\r\n            /**\r\n             * [Optional] A function called when the events have been requested to be sent to the sever.\r\n             * @param sendReason - The reason why the event batch is being sent.\r\n             * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n             */\r\n            _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n                _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync ? _asyncNotifications : null, function (listener) {\r\n                    listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n                });\r\n            };\r\n            _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n                if (perfEvent) {\r\n                    // Send all events or only parent events\r\n                    if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n                        _runListeners(_listeners, STR_PERF_EVENT, null, function (listener) {\r\n                            if (perfEvent.isAsync) {\r\n                                scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n                            }\r\n                            else {\r\n                                listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n            };\r\n            _self[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */] = function (events) {\r\n                if (events && events[_DYN_LENGTH /* @min:%2elength */]) {\r\n                    _runListeners(_listeners, STR_OFFLINE_STORE, _asyncNotifications, function (listener) {\r\n                        listener[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */](events);\r\n                    });\r\n                }\r\n            };\r\n            _self[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */] = function (batch) {\r\n                if (batch && batch[_DYN_DATA /* @min:%2edata */]) {\r\n                    _runListeners(_listeners, STR_OFFLINE_SENT, _asyncNotifications, function (listener) {\r\n                        listener[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */](batch);\r\n                    });\r\n                }\r\n            };\r\n            _self[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */] = function (cnt, reason) {\r\n                if (cnt > 0) {\r\n                    var rn_1 = reason || 0; // default is unknown\r\n                    _runListeners(_listeners, STR_OFFLINE_DROP, _asyncNotifications, function (listener) {\r\n                        listener[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */](cnt, rn_1);\r\n                    });\r\n                }\r\n            };\r\n            _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n                var _finishUnload = function () {\r\n                    unloadHandler && unloadHandler.rm();\r\n                    unloadHandler = null;\r\n                    _listeners = [];\r\n                    // Clear any async listener\r\n                    _asyncNotifications.h && _asyncNotifications.h[_DYN_CANCEL /* @min:%2ecancel */]();\r\n                    _asyncNotifications.h = null;\r\n                    _asyncNotifications.cb = [];\r\n                };\r\n                var waiting;\r\n                _runListeners(_listeners, \"unload\", null, function (listener) {\r\n                    var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n                    if (asyncUnload) {\r\n                        if (!waiting) {\r\n                            waiting = [];\r\n                        }\r\n                        waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n                    }\r\n                });\r\n                if (waiting) {\r\n                    return createPromise(function (resolve) {\r\n                        return doAwaitResponse(createAllPromise(waiting), function () {\r\n                            _finishUnload();\r\n                            resolve();\r\n                        });\r\n                    });\r\n                }\r\n                else {\r\n                    _finishUnload();\r\n                }\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n// Removed Stub for NotificationManager.prototype.perfEvent.\r\n// Removed Stub for NotificationManager.prototype.unload.\r\n// Removed Stub for NotificationManager.prototype.offlineEventsStored.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchSent.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchDrop.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    NotificationManager.__ieDyn=1;\n\n    return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_CTX, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX } from \"../__DynamicConstants\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n    function PerfEvent(name, payloadDetails, isAsync) {\r\n        var _self = this;\r\n        _self.start = utcNow();\r\n        _self[_DYN_NAME /* @min:%2ename */] = name;\r\n        _self.isAsync = isAsync;\r\n        _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n        if (isFunction(payloadDetails)) {\r\n            // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n            var theDetails_1;\r\n            objDefine(_self, \"payload\", {\r\n                g: function () {\r\n                    // Delay the execution of the payloadDetails until needed\r\n                    if (!theDetails_1 && isFunction(payloadDetails)) {\r\n                        theDetails_1 = payloadDetails();\r\n                        // clear it out now so the referenced objects can be garbage collected\r\n                        payloadDetails = null;\r\n                    }\r\n                    return theDetails_1;\r\n                }\r\n            });\r\n        }\r\n        _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n            if (key) {\r\n                // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n                if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n                    return _self[key];\r\n                }\r\n                return (_self[strExecutionContextKey] || {})[key];\r\n            }\r\n            return null;\r\n        };\r\n        _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n            if (key) {\r\n                // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n                if (key === PerfEvent[strParentContextKey]) {\r\n                    // Simple assumption, if we are setting a parent then we must be a child\r\n                    if (!_self[key]) {\r\n                        _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n                    }\r\n                    _self[key] = value;\r\n                }\r\n                else if (key === PerfEvent[strChildrenContextKey]) {\r\n                    _self[key] = value;\r\n                }\r\n                else {\r\n                    var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n                    ctx[key] = value;\r\n                }\r\n            }\r\n        };\r\n        _self.complete = function () {\r\n            var childTime = 0;\r\n            var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n            if (isArray(childEvts)) {\r\n                for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n                    var childEvt = childEvts[lp];\r\n                    if (childEvt) {\r\n                        childTime += childEvt.time;\r\n                    }\r\n                }\r\n            }\r\n            _self.time = utcNow() - _self.start;\r\n            _self.exTime = _self.time - childTime;\r\n            _self.complete = function () { };\r\n        };\r\n    }\r\n    PerfEvent.ParentContextKey = \"parent\";\r\n    PerfEvent.ChildrenContextKey = \"childEvts\";\r\n    return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n    function PerfManager(manager) {\r\n        /**\r\n         * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n         * Defined as private so it can be visualized via the DebugPlugin\r\n         */\r\n        this.ctx = {};\r\n        dynamicProto(PerfManager, this, function (_self) {\r\n            _self.create = function (src, payloadDetails, isAsync) {\r\n                // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n                // for now this is just a simple do everything.\r\n                return new PerfEvent(src, payloadDetails, isAsync);\r\n            };\r\n            _self.fire = function (perfEvent) {\r\n                if (perfEvent) {\r\n                    perfEvent.complete();\r\n                    if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n                        manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n                    }\r\n                }\r\n            };\r\n            _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n                if (key) {\r\n                    var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n                    ctx[key] = value;\r\n                }\r\n            };\r\n            _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n                return (_self[strExecutionContextKey] || {})[key];\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    PerfManager.__ieDyn=1;\n\n    return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n    if (mgrSource) {\r\n        var perfMgr = mgrSource;\r\n        if (perfMgr[STR_GET_PERF_MGR]) {\r\n            // Looks like a perf manager provider object\r\n            perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n        }\r\n        if (perfMgr) {\r\n            var perfEvt = void 0;\r\n            var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n            try {\r\n                perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n                if (perfEvt) {\r\n                    if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n                        perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n                        if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n                            var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n                            if (!children) {\r\n                                children = [];\r\n                                currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n                            }\r\n                            children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n                        }\r\n                    }\r\n                    // Set this event as the active event now\r\n                    perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n                    return func(perfEvt);\r\n                }\r\n            }\r\n            catch (ex) {\r\n                if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n                    perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n                }\r\n            }\r\n            finally {\r\n                // fire the perf event\r\n                if (perfEvt) {\r\n                    perfMgr.fire(perfEvt);\r\n                }\r\n                // Reset the active event to the previous value\r\n                perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n            }\r\n        }\r\n    }\r\n    return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n    _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n    return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n    var uuid = generateW3CId();\r\n    return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n    if (value && search) {\r\n        var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n        var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n        return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n    var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n    // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n    var oct = STR_EMPTY, tmp;\r\n    for (var a = 0; a < 4; a++) {\r\n        tmp = random32();\r\n        oct +=\r\n            hexValues[tmp & 0xF] +\r\n                hexValues[tmp >> 4 & 0xF] +\r\n                hexValues[tmp >> 8 & 0xF] +\r\n                hexValues[tmp >> 12 & 0xF] +\r\n                hexValues[tmp >> 16 & 0xF] +\r\n                hexValues[tmp >> 20 & 0xF] +\r\n                hexValues[tmp >> 24 & 0xF] +\r\n                hexValues[tmp >> 28 & 0xF];\r\n    }\r\n    // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n    var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n    return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_ATTRIBUTE, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_PUSH, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n    if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n        return !!value.match(/^[\\da-f]*$/i);\r\n    }\r\n    return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n    if (_isValid(value, len)) {\r\n        return value;\r\n    }\r\n    return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n    if (isNaN(value) || value < 0 || value > 255) {\r\n        value = 0x01;\r\n    }\r\n    var result = value.toString(16);\r\n    while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n        result = \"0\" + result;\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n    return {\r\n        version: _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n        traceId: isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n        spanId: isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n        traceFlags: flags >= 0 && flags <= 0xFF ? flags : 1\r\n    };\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n    if (!value) {\r\n        // Don't pass a null/undefined or empty string\r\n        return null;\r\n    }\r\n    if (isArray(value)) {\r\n        // The value may have been encoded on the page into an array so handle this automatically\r\n        value = value[0] || \"\";\r\n    }\r\n    if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n        // limit potential processing based on total length\r\n        return null;\r\n    }\r\n    if (value[_DYN_INDEX_OF /* @min:%2eindexOf */](\",\") !== -1) {\r\n        var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n        value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n    }\r\n    // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n    var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n    if (!match || // No match\r\n        match[1] === INVALID_VERSION || // version ff is forbidden\r\n        match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n        match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n        return null;\r\n    }\r\n    return {\r\n        version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n        traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n        spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n        traceFlags: parseInt(match[4], 16)\r\n    };\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n    return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n    return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n    if (!value ||\r\n        !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n        !_isValid(value.traceId, 32, INVALID_TRACE_ID) ||\r\n        !_isValid(value.spanId, 16, INVALID_SPAN_ID) ||\r\n        !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n        // Each known field must contain a valid value\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n    if (isValidTraceParent(value)) {\r\n        return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n    if (value) {\r\n        // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n        // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n        var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n        if (!_isValid(flags, 2)) {\r\n            flags = \"01\";\r\n        }\r\n        var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n        if (version !== \"00\" && version !== \"ff\") {\r\n            // Reduce version to \"00\"\r\n            version = DEFAULT_VERSION;\r\n        }\r\n        // Format as version 00\r\n        return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n    }\r\n    return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n    var name = \"traceparent\";\r\n    var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n    if (!traceParent) {\r\n        traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n    }\r\n    return traceParent;\r\n}\r\n/**\r\n * Find all script tags in the provided document and return the information about them.\r\n * @param doc - The document to search for script tags\r\n * @returns\r\n */\r\nexport function findAllScripts(doc) {\r\n    var scripts = doc.getElementsByTagName(\"script\");\r\n    var result = [];\r\n    arrForEach(scripts, function (script) {\r\n        var src = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"src\");\r\n        if (src) {\r\n            var crossOrigin = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"crossorigin\");\r\n            var async = script.hasAttribute(\"async\") === true;\r\n            var defer = script.hasAttribute(\"defer\") === true;\r\n            var referrerPolicy = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"referrerpolicy\");\r\n            var info = { url: src };\r\n            if (crossOrigin) {\r\n                info.crossOrigin = crossOrigin;\r\n            }\r\n            if (async) {\r\n                info.async = async;\r\n            }\r\n            if (defer) {\r\n                info.defer = defer;\r\n            }\r\n            if (referrerPolicy) {\r\n                info.referrerPolicy = referrerPolicy;\r\n            }\r\n            result[_DYN_PUSH /* @min:%2epush */](info);\r\n        }\r\n    });\r\n    return result;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n    return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config - The current config for the instance\r\n * @param core - THe current core instance\r\n * @param extensions - The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n    // Set the next plugin and identified the uninitialized plugins\r\n    var initPlugins = [];\r\n    var lastPlugin = null;\r\n    var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n    var pluginState;\r\n    while (proxy) {\r\n        var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n        if (thePlugin) {\r\n            if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] && thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]) {\r\n                // Set this plugin as the next for the previous one\r\n                lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n            }\r\n            pluginState = _getPluginState(thePlugin);\r\n            var isInitialized = !!pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n            if (thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]) {\r\n                isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n            }\r\n            if (!isInitialized) {\r\n                initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n            }\r\n            lastPlugin = thePlugin;\r\n            proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n        }\r\n    }\r\n    // Now initialize the plugins\r\n    arrForEach(initPlugins, function (thePlugin) {\r\n        var core = processContext[STR_CORE /* @min:%2ecore */]();\r\n        thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n        pluginState = _getPluginState(thePlugin);\r\n        // Only add the core to the state if the plugin didn't set it (doesn't extend from BaseTelemetryPlugin)\r\n        if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n            pluginState[STR_CORE] = core;\r\n        }\r\n        pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n        delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n    });\r\n}\r\nexport function sortPlugins(plugins) {\r\n    // Sort by priority\r\n    return plugins.sort(function (extA, extB) {\r\n        var result = 0;\r\n        if (extB) {\r\n            var bHasProcess = extB[STR_PROCESS_TELEMETRY];\r\n            if (extA[STR_PROCESS_TELEMETRY]) {\r\n                result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n            }\r\n            else if (bHasProcess) {\r\n                result = -1;\r\n            }\r\n        }\r\n        else {\r\n            result = extA ? 1 : -1;\r\n        }\r\n        return result;\r\n    });\r\n    // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n    var idx = 0;\r\n    function _doUnload() {\r\n        while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n            var component = components[idx++];\r\n            if (component) {\r\n                var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n                if (isFunction(func)) {\r\n                    if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {\r\n                        return true;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n    var trace = {};\r\n    return {\r\n        getName: function () {\r\n            return trace[_DYN_NAME /* @min:%2ename */];\r\n        },\r\n        setName: function (newValue) {\r\n            parentCtx && parentCtx.setName(newValue);\r\n            trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n        },\r\n        getTraceId: function () {\r\n            return trace.traceId;\r\n        },\r\n        setTraceId: function (newValue) {\r\n            parentCtx && parentCtx.setTraceId(newValue);\r\n            if (isValidTraceId(newValue)) {\r\n                trace.traceId = newValue;\r\n            }\r\n        },\r\n        getSpanId: function () {\r\n            return trace.spanId;\r\n        },\r\n        setSpanId: function (newValue) {\r\n            parentCtx && parentCtx.setSpanId(newValue);\r\n            if (isValidSpanId(newValue)) {\r\n                trace.spanId = newValue;\r\n            }\r\n        },\r\n        getTraceFlags: function () {\r\n            return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n        },\r\n        setTraceFlags: function (newTraceFlags) {\r\n            parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n            trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n        }\r\n    };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n    while (proxy) {\r\n        if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n            return proxy;\r\n        }\r\n        proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n    }\r\n    // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n    return createTelemetryProxyChain([startAt], core.config || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param dynamicHandler\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {\r\n    // We have a special case where we want to start execution from this specific plugin\r\n    // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n    var _nextProxy = null; // By Default set as no next plugin\r\n    var _onComplete = [];\r\n    if (!dynamicHandler) {\r\n        dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER /* @min:%2elogger */]);\r\n    }\r\n    if (startAt !== null) {\r\n        // There is no next element (null) vs not defined (undefined) so use the full chain\r\n        _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n    }\r\n    var context = {\r\n        _next: _moveNext,\r\n        ctx: {\r\n            core: function () {\r\n                return core;\r\n            },\r\n            diagLog: function () {\r\n                return safeGetLogger(core, dynamicHandler.cfg);\r\n            },\r\n            getCfg: function () {\r\n                return dynamicHandler.cfg;\r\n            },\r\n            getExtCfg: _resolveExtCfg,\r\n            getConfig: _getConfig,\r\n            hasNext: function () {\r\n                return !!_nextProxy;\r\n            },\r\n            getNext: function () {\r\n                return _nextProxy;\r\n            },\r\n            setNext: function (nextPlugin) {\r\n                _nextProxy = nextPlugin;\r\n            },\r\n            iterate: _iterateChain,\r\n            onComplete: _addOnComplete\r\n        }\r\n    };\r\n    function _addOnComplete(onComplete, that) {\r\n        var args = [];\r\n        for (var _i = 2; _i < arguments.length; _i++) {\r\n            args[_i - 2] = arguments[_i];\r\n        }\r\n        if (onComplete) {\r\n            _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n                func: onComplete,\r\n                self: !isUndefined(that) ? that : context.ctx,\r\n                args: args\r\n            });\r\n        }\r\n    }\r\n    function _moveNext() {\r\n        var nextProxy = _nextProxy;\r\n        // Automatically move to the next plugin\r\n        _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n        if (!nextProxy) {\r\n            var onComplete = _onComplete;\r\n            if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                arrForEach(onComplete, function (completeDetails) {\r\n                    try {\r\n                        completeDetails.func.call(completeDetails.self, completeDetails.args);\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n                    }\r\n                });\r\n                _onComplete = [];\r\n            }\r\n        }\r\n        return nextProxy;\r\n    }\r\n    function _getExtCfg(identifier, createIfMissing) {\r\n        var idCfg = null;\r\n        var cfg = dynamicHandler.cfg;\r\n        if (cfg && identifier) {\r\n            var extCfg = cfg[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n            if (!extCfg && createIfMissing) {\r\n                extCfg = {};\r\n            }\r\n            // Always set the value so that the property always exists\r\n            cfg[STR_EXTENSION_CONFIG] = extCfg; // Note: it is valid for the \"value\" to be undefined\r\n            // Calling `ref()` has a side effect of causing the referenced property to become dynamic  (if not already)\r\n            extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);\r\n            if (extCfg) {\r\n                idCfg = extCfg[identifier];\r\n                if (!idCfg && createIfMissing) {\r\n                    idCfg = {};\r\n                }\r\n                // Always set the value so that the property always exists\r\n                extCfg[identifier] = idCfg; // Note: it is valid for the \"value\" to be undefined\r\n                // Calling `ref()` has a side effect of causing the referenced property to become dynamic  (if not already)\r\n                idCfg = dynamicHandler.ref(extCfg, identifier);\r\n            }\r\n        }\r\n        return idCfg;\r\n    }\r\n    function _resolveExtCfg(identifier, defaultValues) {\r\n        var newConfig = _getExtCfg(identifier, true);\r\n        if (defaultValues) {\r\n            // Enumerate over the defaultValues and if not already populated attempt to\r\n            // find a value from the root config or use the default value\r\n            objForEachKey(defaultValues, function (field, defaultValue) {\r\n                // for each unspecified field, set the default value\r\n                if (isNullOrUndefined(newConfig[field])) {\r\n                    var cfgValue = dynamicHandler.cfg[field];\r\n                    if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n                        newConfig[field] = cfgValue;\r\n                    }\r\n                }\r\n                _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);\r\n            });\r\n        }\r\n        return dynamicHandler.setDf(newConfig, defaultValues);\r\n    }\r\n    function _getConfig(identifier, field, defaultValue) {\r\n        if (defaultValue === void 0) { defaultValue = false; }\r\n        var theValue;\r\n        var extConfig = _getExtCfg(identifier, false);\r\n        var rootConfig = dynamicHandler.cfg;\r\n        if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {\r\n            theValue = extConfig[field];\r\n        }\r\n        else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {\r\n            theValue = rootConfig[field];\r\n        }\r\n        return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;\r\n    }\r\n    function _iterateChain(cb) {\r\n        // Keep processing until we reach the end of the chain\r\n        var nextPlugin;\r\n        while (!!(nextPlugin = context._next())) {\r\n            var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n            if (plugin) {\r\n                // callback with the current on\r\n                cb(plugin);\r\n            }\r\n        }\r\n    }\r\n    return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {\r\n    var config = createDynamicConfig(cfg);\r\n    var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n    var context = internalContext.ctx;\r\n    function _processNext(env) {\r\n        var nextPlugin = internalContext._next();\r\n        if (nextPlugin) {\r\n            // Run the next plugin which will call \"processNext()\"\r\n            nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n        }\r\n        return !nextPlugin;\r\n    }\r\n    function _createNew(plugins, startAt) {\r\n        if (plugins === void 0) { plugins = null; }\r\n        if (isArray(plugins)) {\r\n            plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n        }\r\n        return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config.cfg, core, startAt);\r\n    }\r\n    context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n    context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n    return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n    var config = createDynamicConfig(core.config);\r\n    var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n    var context = internalContext.ctx;\r\n    function _processNext(unloadState) {\r\n        var nextPlugin = internalContext._next();\r\n        nextPlugin && nextPlugin[_DYN_UNLOAD /* @min:%2eunload */](context, unloadState);\r\n        return !nextPlugin;\r\n    }\r\n    function _createNew(plugins, startAt) {\r\n        if (plugins === void 0) { plugins = null; }\r\n        if (isArray(plugins)) {\r\n            plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n        }\r\n        return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n    }\r\n    context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n    context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n    return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n    var config = createDynamicConfig(core.config);\r\n    var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n    var context = internalContext.ctx;\r\n    function _processNext(updateState) {\r\n        return context.iterate(function (plugin) {\r\n            if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n                plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n            }\r\n        });\r\n    }\r\n    function _createNew(plugins, startAt) {\r\n        if (plugins === void 0) { plugins = null; }\r\n        if (isArray(plugins)) {\r\n            plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n        }\r\n        return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n    }\r\n    context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n    context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n    return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n    var firstProxy = null;\r\n    var add = startAt ? false : true;\r\n    if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n        // Create the proxies and wire up the next plugin chain\r\n        var lastProxy_1 = null;\r\n        arrForEach(plugins, function (thePlugin) {\r\n            if (!add && startAt === thePlugin) {\r\n                add = true;\r\n            }\r\n            if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n                // Only add plugins that are processors\r\n                var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n                if (!firstProxy) {\r\n                    firstProxy = newProxy;\r\n                }\r\n                if (lastProxy_1) {\r\n                    // Set this new proxy as the next for the previous one\r\n                    lastProxy_1._setNext(newProxy);\r\n                }\r\n                lastProxy_1 = newProxy;\r\n            }\r\n        });\r\n    }\r\n    if (startAt && !firstProxy) {\r\n        // Special case where the \"startAt\" was not in the original list of plugins\r\n        return createTelemetryProxyChain([startAt], config, core);\r\n    }\r\n    return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n    var nextProxy = null;\r\n    var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n    var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n    var chainId;\r\n    if (plugin) {\r\n        chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n    }\r\n    else {\r\n        chainId = \"Unknown-0-\" + _chainId++;\r\n    }\r\n    var proxyChain = {\r\n        getPlugin: function () {\r\n            return plugin;\r\n        },\r\n        getNext: function () {\r\n            return nextProxy;\r\n        },\r\n        processTelemetry: _processTelemetry,\r\n        unload: _unloadPlugin,\r\n        update: _updatePlugin,\r\n        _id: chainId,\r\n        _setNext: function (nextPlugin) {\r\n            nextProxy = nextPlugin;\r\n        }\r\n    };\r\n    function _getTelCtx() {\r\n        var itemCtx;\r\n        // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n        if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n            // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n            itemCtx = plugin[strGetTelCtx]();\r\n        }\r\n        if (!itemCtx) {\r\n            // Create a temporary one\r\n            itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n        }\r\n        return itemCtx;\r\n    }\r\n    function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n        var hasRun = false;\r\n        var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n        var hasRunContext = itemCtx[strHasRunFlags];\r\n        if (!hasRunContext) {\r\n            // Assign and populate\r\n            hasRunContext = itemCtx[strHasRunFlags] = {};\r\n        }\r\n        // Ensure that we keep the context in sync\r\n        itemCtx.setNext(nextProxy);\r\n        if (plugin) {\r\n            doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n                // Mark this component as having run\r\n                hasRunContext[chainId] = true;\r\n                try {\r\n                    // Set a flag on the next plugin so we know if it was attempted to be executed\r\n                    var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n                    if (nextId) {\r\n                        hasRunContext[nextId] = false;\r\n                    }\r\n                    hasRun = processPluginFn(itemCtx);\r\n                }\r\n                catch (error) {\r\n                    var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n                    if (hasNextRun) {\r\n                        // The next plugin after us has already run so set this one as complete\r\n                        hasRun = true;\r\n                    }\r\n                    if (!nextProxy || !hasNextRun) {\r\n                        // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n                        // Which means the current one is the root of the failure so log/report this failure\r\n                        _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n                    }\r\n                }\r\n            }, details, isAsync);\r\n        }\r\n        return hasRun;\r\n    }\r\n    function _processTelemetry(env, itemCtx) {\r\n        itemCtx = itemCtx || _getTelCtx();\r\n        function _callProcessTelemetry(itemCtx) {\r\n            if (!plugin || !hasProcessTelemetry) {\r\n                return false;\r\n            }\r\n            var pluginState = _getPluginState(plugin);\r\n            if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n                return false;\r\n            }\r\n            // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n            // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n            // other form of error occurred\r\n            if (hasSetNext) {\r\n                // Backward compatibility setting the next plugin on the instance\r\n                plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n            }\r\n            plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n            // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n            return true;\r\n        }\r\n        if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n            // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n            // so we still want the next plugin to be executed.\r\n            itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n        }\r\n    }\r\n    function _unloadPlugin(unloadCtx, unloadState) {\r\n        function _callTeardown() {\r\n            // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n            var hasRun = false;\r\n            if (plugin) {\r\n                var pluginState = _getPluginState(plugin);\r\n                var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n                // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n                if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n                    // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n                    pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n                    pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n                    pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n                    if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n                        // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n                        hasRun = true;\r\n                    }\r\n                }\r\n            }\r\n            return hasRun;\r\n        }\r\n        if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState.isAsync)) {\r\n            // Only called if we hasRun was not true\r\n            unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n        }\r\n    }\r\n    function _updatePlugin(updateCtx, updateState) {\r\n        function _callUpdate() {\r\n            // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n            var hasRun = false;\r\n            if (plugin) {\r\n                var pluginState = _getPluginState(plugin);\r\n                var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n                // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n                if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n                    if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n                        // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n                        hasRun = true;\r\n                    }\r\n                }\r\n            }\r\n            return hasRun;\r\n        }\r\n        if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n            // Only called if we hasRun was not true\r\n            updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n        }\r\n    }\r\n    return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n    /**\r\n     * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n     * @param plugins - The plugin instances that will be executed\r\n     * @param config - The current config\r\n     * @param core - The current core instance\r\n     */\r\n    function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n        var _self = this;\r\n        var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n        // Proxy all functions of the context to this object\r\n        proxyFunctions(_self, context, objKeys(context));\r\n    }\r\n    return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n    var handlers = [];\r\n    function _addHandler(handler) {\r\n        if (handler) {\r\n            handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n        }\r\n    }\r\n    function _runHandlers(unloadCtx, unloadState) {\r\n        arrForEach(handlers, function (handler) {\r\n            try {\r\n                handler(unloadCtx, unloadState);\r\n            }\r\n            catch (e) {\r\n                _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n            }\r\n        });\r\n        handlers = [];\r\n    }\r\n    return {\r\n        add: _addHandler,\r\n        run: _runHandlers\r\n    };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nvar _maxHooks;\r\nvar _hookAddMonitor;\r\n/**\r\n * Test hook for setting the maximum number of unload hooks and calling a monitor function when the hooks are added or removed\r\n * This allows for automatic test failure when the maximum number of unload hooks is exceeded\r\n * @param maxHooks - The maximum number of unload hooks\r\n * @param addMonitor - The monitor function to call when hooks are added or removed\r\n */\r\nexport function _testHookMaxUnloadHooksCb(maxHooks, addMonitor) {\r\n    _maxHooks = maxHooks;\r\n    _hookAddMonitor = addMonitor;\r\n}\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n    var _hooks = [];\r\n    function _doUnload(logger) {\r\n        var oldHooks = _hooks;\r\n        _hooks = [];\r\n        // Remove all registered unload hooks\r\n        arrForEach(oldHooks, function (fn) {\r\n            // allow either rm or remove callback function\r\n            try {\r\n                (fn.rm || fn.remove).call(fn);\r\n            }\r\n            catch (e) {\r\n                _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n            }\r\n        });\r\n        if (_maxHooks && oldHooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n            _hookAddMonitor ? _hookAddMonitor(\"doUnload\", oldHooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n        }\r\n    }\r\n    function _addHook(hooks) {\r\n        if (hooks) {\r\n            arrAppend(_hooks, hooks);\r\n            if (_maxHooks && _hooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n                _hookAddMonitor ? _hookAddMonitor(\"Add\", _hooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n            }\r\n        }\r\n    }\r\n    return {\r\n        run: _doUnload,\r\n        add: _addHook\r\n    };\r\n}\r\n//# sourceMappingURL=UnloadHookContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT2, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { isNotNullOrUndefined, proxyFunctionAs } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\nvar defaultValues = (_a = {},\r\n    _a[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },\r\n    _a);\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n    function BaseTelemetryPlugin() {\r\n        var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n        // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n        var _isinitialized;\r\n        var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n        var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n        var _unloadHandlerContainer;\r\n        var _hookContainer;\r\n        _initDefaults();\r\n        dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n            _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n                _setDefaults(config, core, pluginChain);\r\n                _isinitialized = true;\r\n            };\r\n            _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n                // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n                // or the core being used for unload was not the same core used for initialization.\r\n                var core = _self[STR_CORE /* @min:%2ecore */];\r\n                if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n                    // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n                    return;\r\n                }\r\n                var result;\r\n                var unloadDone = false;\r\n                var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n                var theUnloadState = unloadState || {\r\n                    reason: 0 /* TelemetryUnloadReason.ManualTeardown */,\r\n                    isAsync: false\r\n                };\r\n                function _unloadCallback() {\r\n                    if (!unloadDone) {\r\n                        unloadDone = true;\r\n                        _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n                        _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]());\r\n                        if (result === true) {\r\n                            theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n                        }\r\n                        _initDefaults();\r\n                    }\r\n                }\r\n                if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n                    _unloadCallback();\r\n                }\r\n                else {\r\n                    // Tell the caller that we will be calling processNext()\r\n                    result = true;\r\n                }\r\n                return result;\r\n            };\r\n            _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n                // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n                // or the core being used for unload was not the same core used for initialization.\r\n                var core = _self[STR_CORE /* @min:%2ecore */];\r\n                if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n                    // Do Nothing\r\n                    return;\r\n                }\r\n                var result;\r\n                var updateDone = false;\r\n                var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n                var theUpdateState = updateState || {\r\n                    reason: 0 /* TelemetryUpdateReason.Unknown */\r\n                };\r\n                function _updateCallback() {\r\n                    if (!updateDone) {\r\n                        updateDone = true;\r\n                        _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n                    }\r\n                }\r\n                if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n                    _updateCallback();\r\n                }\r\n                else {\r\n                    result = true;\r\n                }\r\n                return result;\r\n            };\r\n            proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n            proxyFunctionAs(_self, \"_addHook\", function () { return _hookContainer; }, \"add\");\r\n            objDefine(_self, \"_unloadHooks\", { g: function () { return _hookContainer; } });\r\n        });\r\n        // These are added after the dynamicProto so that are not moved to the prototype\r\n        _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n            return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n        };\r\n        _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n            return _isinitialized;\r\n        };\r\n        _self.setInitialized = function (isInitialized) {\r\n            _isinitialized = isInitialized;\r\n        };\r\n        // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n        // Sub-classes of this base class *should* not be relying on this value and instead\r\n        // should use processNext() function. If you require access to the plugin use the\r\n        // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n        _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n            _nextPlugin = next;\r\n        };\r\n        _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n            if (itemCtx) {\r\n                // Normal core execution sequence\r\n                itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n            }\r\n            else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n                // Looks like backward compatibility or out of band processing. And as it looks\r\n                // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n                _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n            }\r\n        };\r\n        _self._getTelCtx = _getTelCtx;\r\n        function _getTelCtx(currentCtx) {\r\n            if (currentCtx === void 0) { currentCtx = null; }\r\n            var itemCtx = currentCtx;\r\n            if (!itemCtx) {\r\n                var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n                // tslint:disable-next-line: prefer-conditional-expression\r\n                if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n                    // Looks like a chain object\r\n                    itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n                }\r\n                else {\r\n                    itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n                }\r\n            }\r\n            return itemCtx;\r\n        }\r\n        function _setDefaults(config, core, pluginChain) {\r\n            // Make sure the extensionConfig exists and the config is dynamic\r\n            createDynamicConfig(config, defaultValues, safeGetLogger(core));\r\n            if (!pluginChain && core) {\r\n                // Get the first plugin from the core\r\n                pluginChain = core[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n            }\r\n            var nextPlugin = _nextPlugin;\r\n            if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n                // If it looks like a proxy/chain then get the plugin\r\n                nextPlugin = _nextPlugin[strGetPlugin]();\r\n            }\r\n            // Support legacy plugins where core was defined as a property\r\n            _self[STR_CORE /* @min:%2ecore */] = core;\r\n            _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n        }\r\n        function _initDefaults() {\r\n            _isinitialized = false;\r\n            _self[STR_CORE /* @min:%2ecore */] = null;\r\n            _rootCtx = null;\r\n            _nextPlugin = null;\r\n            _hookContainer = createUnloadHookContainer();\r\n            _unloadHandlerContainer = createUnloadHandlerContainer();\r\n        }\r\n    }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    BaseTelemetryPlugin.__ieDyn=1;\n\n    return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n    var theInitializer = {\r\n        id: id,\r\n        fn: telemetryInitializer\r\n    };\r\n    arrAppend(_initializers, theInitializer);\r\n    var handler = {\r\n        remove: function () {\r\n            arrForEach(_initializers, function (initializer, idx) {\r\n                if (initializer.id === theInitializer.id) {\r\n                    _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n                    return -1;\r\n                }\r\n            });\r\n        }\r\n    };\r\n    return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n    var doNotSendItem = false;\r\n    var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n    for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n        var telemetryInitializer = _initializers[i];\r\n        if (telemetryInitializer) {\r\n            try {\r\n                if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n                    doNotSendItem = true;\r\n                    break;\r\n                }\r\n            }\r\n            catch (e) {\r\n                // log error but dont stop executing rest of the telemetry initializers\r\n                // doNotSendItem = true;\r\n                _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n            }\r\n        }\r\n    }\r\n    return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n    __extends(TelemetryInitializerPlugin, _super);\r\n    function TelemetryInitializerPlugin() {\r\n        var _this = _super.call(this) || this;\r\n        _this.identifier = \"TelemetryInitializerPlugin\";\r\n        _this.priority = 199;\r\n        // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n        var _id;\r\n        var _initializers;\r\n        _initDefaults();\r\n        dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n            _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n                return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n            };\r\n            _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n                if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n                    _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n                }\r\n            };\r\n            _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n                _initDefaults();\r\n            };\r\n        });\r\n        function _initDefaults() {\r\n            _id = 0;\r\n            _initializers = [];\r\n        }\r\n        return _this;\r\n    }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    TelemetryInitializerPlugin.__ieDyn=1;\n\n    return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, createSyncAllSettledPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, isPromiseLike, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { ActiveStatus } from \"../JavaScriptSDK.Enums/InitActiveStatusEnum\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT2, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_ON_COMPLETE, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_VALUE, _DYN_VERSION, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, isNotNullOrUndefined, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\n// import { IStatsBeat, IStatsBeatConfig, IStatsBeatState } from \"../JavaScriptSDK.Interfaces/IStatsBeat\";\r\n// import { IStatsMgr } from \"../JavaScriptSDK.Interfaces/IStatsMgr\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\nvar maxInitQueueSize = 100;\r\nvar maxInitTimeout = 50000;\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n// /**\r\n//  * Default StatsBeatMgr configuration\r\n//  * @internal\r\n//  */\r\n// const defaultStatsCfg: IConfigDefaults<IStatsBeatConfig> = objDeepFreeze({\r\n//     shrtInt: UNDEFINED_VALUE,\r\n//     endCfg: cfgDfMerge([])\r\n// });\r\n// /**\r\n//  * Default SDK initialization configuration\r\n//  * @internal\r\n//  */\r\n// const defaultSdkConfig: IConfigDefaults<IInternalSdkConfiguration> = objDeepFreeze({\r\n//     stats: { rdOnly: true, mrg: true, v: defaultStatsCfg }\r\n// });\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n        cookieCfg: {}\r\n    },\r\n    _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n    _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n    _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n    _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n    _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n    _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n    _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core - The AppInsightsCore instance\r\n * @param notificationMgr - The notification manager\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n    return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n    // Concat all available extensions\r\n    var coreExtensions = [];\r\n    var channels = [];\r\n    // Check if any two extensions have the same priority, then warn to console\r\n    // And extract the local extensions from the\r\n    var extPriorities = {};\r\n    // Extension validation\r\n    arrForEach(allExtensions, function (ext) {\r\n        // Check for ext.initialize\r\n        if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n            throwError(strValidationError);\r\n        }\r\n        var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n        var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n        if (ext && extPriority) {\r\n            if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n                _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n            }\r\n            else {\r\n                // set a value\r\n                extPriorities[extPriority] = identifier;\r\n            }\r\n        }\r\n        // Split extensions to core and channels\r\n        if (!extPriority || extPriority < channelPriority) {\r\n            // Add to core extension that will be managed by AppInsightsCore\r\n            coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n        }\r\n        else {\r\n            channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n        }\r\n    });\r\n    return {\r\n        core: coreExtensions,\r\n        channels: channels\r\n    };\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n    var exists = false;\r\n    arrForEach(plugins, function (plugin) {\r\n        if (plugin === thePlugin) {\r\n            exists = true;\r\n            return -1;\r\n        }\r\n    });\r\n    return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n    // Lets assign the new values to the existing config\r\n    if (newValues) {\r\n        objForEachKey(newValues, function (key, value) {\r\n            if (merge) {\r\n                if (isPlainObject(value) && isPlainObject(target[key])) {\r\n                    // The target is an object and it has a value\r\n                    _deepMergeConfig(details, target[key], value, merge);\r\n                }\r\n            }\r\n            if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n                // The target is an object and it has a value\r\n                _deepMergeConfig(details, target[key], value, merge);\r\n            }\r\n            else {\r\n                // Just Assign (replace) and/or make the property dynamic\r\n                details.set(target, key, value);\r\n            }\r\n        });\r\n    }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n    var theListener = null;\r\n    var idx = -1;\r\n    arrForEach(listeners, function (listener, lp) {\r\n        if (listener.w === newWatcher) {\r\n            theListener = listener;\r\n            idx = lp;\r\n            return -1;\r\n        }\r\n    });\r\n    return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n    var theListener = _findWatcher(listeners, newWatcher).l;\r\n    if (!theListener) {\r\n        theListener = {\r\n            w: newWatcher,\r\n            rm: function () {\r\n                var fnd = _findWatcher(listeners, newWatcher);\r\n                if (fnd.i !== -1) {\r\n                    listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n                }\r\n            }\r\n        };\r\n        listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n    }\r\n    return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n    arrForEach(listeners, function (listener) {\r\n        var unloadHdl = onConfigChange(config, listener.w, logger);\r\n        delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n        // replace the remove function\r\n        listener.rm = function () {\r\n            unloadHdl.rm();\r\n        };\r\n    });\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _initDebugListener(configHandler, unloadContainer, notificationManager, debugListener) {\r\n    // Will get recalled if any referenced config values are changed\r\n    unloadContainer.add(configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n        var disableDbgExt = details.cfg.disableDbgExt;\r\n        if (disableDbgExt === true && debugListener) {\r\n            // Remove any previously loaded debug listener\r\n            notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](debugListener);\r\n            debugListener = null;\r\n        }\r\n        if (notificationManager && !debugListener && disableDbgExt !== true) {\r\n            debugListener = getDebugListener(details.cfg);\r\n            notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](debugListener);\r\n        }\r\n    }));\r\n    return debugListener;\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _createUnloadHook(unloadHook) {\r\n    return objDefine({\r\n        rm: function () {\r\n            unloadHook.rm();\r\n        }\r\n    }, \"toJSON\", { v: function () { return \"aicore::onCfgChange<\" + JSON.stringify(unloadHook) + \">\"; } });\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function () {\r\n    function AppInsightsCore() {\r\n        // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n        var _configHandler;\r\n        var _isInitialized;\r\n        var _logger;\r\n        var _eventQueue;\r\n        var _notificationManager;\r\n        // let _statsBeat: IStatsBeat | null;\r\n        // let _statsMgr: IStatsMgr | null;\r\n        var _perfManager;\r\n        var _cfgPerfManager;\r\n        var _cookieManager;\r\n        var _pluginChain;\r\n        var _configExtensions;\r\n        var _channelConfig;\r\n        var _channels;\r\n        var _isUnloading;\r\n        var _telemetryInitializerPlugin;\r\n        var _internalLogsEventName;\r\n        var _evtNamespace;\r\n        var _unloadHandlers;\r\n        var _hookContainer;\r\n        var _debugListener;\r\n        var _traceCtx;\r\n        var _instrumentationKey;\r\n        var _cfgListeners;\r\n        var _extensions;\r\n        var _pluginVersionStringArr;\r\n        var _pluginVersionString;\r\n        var _activeStatus; // to indicate if ikey or endpoint url promised is resolved or not\r\n        var _endpoint;\r\n        var _initInMemoMaxSize; // max event count limit during wait for init promises to be resolved\r\n        var _isStatusSet; // track if active status is set in case of init timeout and init promises setting the status twice\r\n        var _initTimer;\r\n        /**\r\n         * Internal log poller\r\n         */\r\n        var _internalLogPoller;\r\n        var _internalLogPollerListening;\r\n        var _forceStopInternalLogPoller;\r\n        dynamicProto(AppInsightsCore, this, function (_self) {\r\n            // Set the default values (also called during teardown)\r\n            _initDefaults();\r\n            // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n            _self[\"_getDbgPlgTargets\"] = function () {\r\n                return [_extensions, _eventQueue];\r\n            };\r\n            _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n            // since version 3.3.0\r\n            _self.activeStatus = function () { return _activeStatus; };\r\n            // since version 3.3.0\r\n            // internal\r\n            _self._setPendingStatus = function () {\r\n                _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n            };\r\n            // Creating the self.initialize = ()\r\n            _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n                if (_isUnloading) {\r\n                    throwError(strSdkUnloadingError);\r\n                }\r\n                // Make sure core is only initialized once\r\n                if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n                    throwError(\"Core cannot be initialized more than once\");\r\n                }\r\n                _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n                // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n                config = _configHandler.cfg;\r\n                // This will be \"re-run\" if the referenced config properties are changed\r\n                _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n                    var rootCfg = details.cfg;\r\n                    _initInMemoMaxSize = rootCfg.initInMemoMaxSize || maxInitQueueSize;\r\n                    _handleIKeyEndpointPromises(rootCfg);\r\n                    // Mark the extensionConfig and all first level keys as referenced\r\n                    // This is so that calls to getExtCfg() will always return the same object\r\n                    // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n                    var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n                    objForEachKey(extCfg, function (key) {\r\n                        details.ref(extCfg, key);\r\n                    });\r\n                }));\r\n                _notificationManager = notificationManager;\r\n                // Initialize the debug listener outside of the closure to reduce the retained memory footprint\r\n                _debugListener = _initDebugListener(_configHandler, _hookContainer, _notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */](), _debugListener);\r\n                _initPerfManager();\r\n                _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n                var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n                // Extension validation\r\n                _configExtensions = [];\r\n                _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n                _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n                _initPluginChain(null);\r\n                if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n                    throwError(\"No \" + STR_CHANNELS + \" available\");\r\n                }\r\n                if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n                    var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n                    if (!teeController || !teeController.plugin) {\r\n                        _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n                    }\r\n                }\r\n                _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n                _cfgListeners = null;\r\n                _isInitialized = true;\r\n                if (_activeStatus === ActiveStatus.ACTIVE) {\r\n                    _releaseQueues();\r\n                }\r\n            };\r\n            _self.getChannels = function () {\r\n                var controls = [];\r\n                if (_channels) {\r\n                    arrForEach(_channels, function (channel) {\r\n                        controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n                    });\r\n                }\r\n                return objFreeze(controls);\r\n            };\r\n            _self.track = function (telemetryItem) {\r\n                doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n                    if (telemetryItem === null) {\r\n                        _notifyInvalidEvent(telemetryItem);\r\n                        // throw error\r\n                        throwError(\"Invalid telemetry item\");\r\n                    }\r\n                    // do basic validation before sending it through the pipeline\r\n                    if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n                        _notifyInvalidEvent(telemetryItem);\r\n                        throwError(\"telemetry name required\");\r\n                    }\r\n                    // setup default iKey if not passed in\r\n                    telemetryItem.iKey = telemetryItem.iKey || _instrumentationKey;\r\n                    // add default timestamp if not passed in\r\n                    telemetryItem.time = telemetryItem.time || toISOString(new Date());\r\n                    // Common Schema 4.0\r\n                    telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n                    if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]() && _activeStatus === ActiveStatus.ACTIVE) {\r\n                        // Process the telemetry plugin chain\r\n                        _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n                    }\r\n                    else if (_activeStatus !== ActiveStatus.INACTIVE) {\r\n                        // Queue events until all extensions are initialized\r\n                        if (_eventQueue[_DYN_LENGTH /* @min:%2elength */] <= _initInMemoMaxSize) {\r\n                            // set limit, if full, stop adding new events\r\n                            _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n                        }\r\n                    }\r\n                }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n            };\r\n            _self[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n            _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n                if (!_notificationManager) {\r\n                    _notificationManager = new NotificationManager(_configHandler.cfg);\r\n                    // For backward compatibility only\r\n                    _self[strNotificationManager] = _notificationManager;\r\n                }\r\n                return _notificationManager;\r\n            };\r\n            /**\r\n             * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n             * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n             * called.\r\n             * @param listener - An INotificationListener object.\r\n             */\r\n            _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n                _self.getNotifyMgr()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n            };\r\n            /**\r\n             * Removes all instances of the listener.\r\n             * @param listener - INotificationListener to remove.\r\n             */\r\n            _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n                if (_notificationManager) {\r\n                    _notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](listener);\r\n                }\r\n            };\r\n            _self.getCookieMgr = function () {\r\n                if (!_cookieManager) {\r\n                    _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n                }\r\n                return _cookieManager;\r\n            };\r\n            _self.setCookieMgr = function (cookieMgr) {\r\n                if (_cookieManager !== cookieMgr) {\r\n                    runTargetUnload(_cookieManager, false);\r\n                    _cookieManager = cookieMgr;\r\n                }\r\n            };\r\n            _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n                return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n            };\r\n            _self.setPerfMgr = function (perfMgr) {\r\n                _perfManager = perfMgr;\r\n            };\r\n            // _self.getStatsBeat = (statsBeatState: IStatsBeatState) => {\r\n            //     // create a new statsbeat if not initialize yet or the endpoint is different\r\n            //     // otherwise, return the existing one, or null\r\n            //     if (statsBeatState) {\r\n            //         if (_statsMgr && _statsMgr.enabled) {\r\n            //             if (_statsBeat && _statsBeat.endpoint !== statsBeatState.endpoint) {\r\n            //                 // Different endpoint, so unload the existing and create a new one\r\n            //                 _statsBeat.enabled = false;\r\n            //                 _statsBeat = null;\r\n            //             }\r\n            //             if (!_statsBeat) {\r\n            //                 // Create a new statsbeat instance\r\n            //                 _statsBeat = _statsMgr.newInst(statsBeatState);\r\n            //             }\r\n            //         } else if (_statsBeat) {\r\n            //             // Disable and remove any previously created statsbeat instance\r\n            //             _statsBeat.enabled = false;\r\n            //             _statsBeat = null;\r\n            //         }\r\n            //         // Return the current statsbeat instance or null if not created\r\n            //         return _statsBeat;\r\n            //     }\r\n            //     // Return null as no statsbeat state was provided\r\n            //     return null;\r\n            // };\r\n            // _self.setStatsMgr = (statsMgr: IStatsMgr) => {\r\n            //     if (_statsMgr && _statsMgr !== statsMgr) {\r\n            //         // Disable any previously created statsbeat instance\r\n            //         if (_statsBeat) {\r\n            //             _statsBeat.enabled = false;\r\n            //             _statsBeat = null;\r\n            //         }\r\n            //     }\r\n            //     _statsMgr = statsMgr;\r\n            // };\r\n            _self.eventCnt = function () {\r\n                return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n            };\r\n            _self.releaseQueue = function () {\r\n                if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    var eventQueue = _eventQueue;\r\n                    _eventQueue = [];\r\n                    if (_activeStatus === 2 /* eActiveStatus.ACTIVE */) {\r\n                        arrForEach(eventQueue, function (event) {\r\n                            event.iKey = event.iKey || _instrumentationKey;\r\n                            _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n                        });\r\n                    }\r\n                    else {\r\n                        // new one for msg ikey\r\n                        _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"core init status is not active\");\r\n                    }\r\n                }\r\n            };\r\n            _self.pollInternalLogs = function (eventName) {\r\n                _internalLogsEventName = eventName || null;\r\n                _forceStopInternalLogPoller = false;\r\n                _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n                return _startLogPoller(true);\r\n            };\r\n            function _handleIKeyEndpointPromises(theConfig) {\r\n                // app Insights core only handle ikey and endpointurl, aisku will handle cs\r\n                // But we want to reference these config values so that if any future changes are made\r\n                // this will trigger the re-run of the watch function\r\n                // and the ikey and endpointUrl will be set to the new values\r\n                var ikey = theConfig.instrumentationKey;\r\n                var endpointUrl = theConfig.endpointUrl; // do not need to validate endpoint url, if it is null, default one will be set by sender\r\n                // Check if we are waiting for previous promises to be resolved, won't apply new changes\r\n                if (_activeStatus !== 3 /* eActiveStatus.PENDING */) {\r\n                    if (isNullOrUndefined(ikey)) {\r\n                        _instrumentationKey = null;\r\n                        // if new ikey is null, set status to be inactive, all new events will be saved in memory or dropped\r\n                        _activeStatus = ActiveStatus.INACTIVE;\r\n                        var msg = \"Please provide instrumentation key\";\r\n                        if (!_isInitialized) {\r\n                            // only throw error during initialization\r\n                            throwError(msg);\r\n                        }\r\n                        else {\r\n                            _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, msg);\r\n                            _releaseQueues();\r\n                        }\r\n                        return;\r\n                    }\r\n                    var promises = [];\r\n                    if (isPromiseLike(ikey)) {\r\n                        promises[_DYN_PUSH /* @min:%2epush */](ikey);\r\n                        _instrumentationKey = null; // reset current local ikey variable (otherwise it will always be the previous ikeys if timeout is called before promise cb)\r\n                    }\r\n                    else {\r\n                        // string\r\n                        _instrumentationKey = ikey;\r\n                    }\r\n                    if (isPromiseLike(endpointUrl)) {\r\n                        promises[_DYN_PUSH /* @min:%2epush */](endpointUrl);\r\n                        _endpoint = null; // reset current local endpoint variable (otherwise it will always be the previous urls if timeout is called before promise cb)\r\n                    }\r\n                    else {\r\n                        // string or null\r\n                        _endpoint = endpointUrl;\r\n                    }\r\n                    // at least have one promise\r\n                    if (promises[_DYN_LENGTH /* @min:%2elength */]) {\r\n                        _waitForInitPromises(theConfig, promises);\r\n                    }\r\n                    else {\r\n                        // means no promises\r\n                        _setStatus();\r\n                    }\r\n                }\r\n            }\r\n            function _waitForInitPromises(theConfig, promises) {\r\n                // reset to false for new dynamic changes\r\n                _isStatusSet = false;\r\n                _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n                var initTimeout = isNotNullOrUndefined(theConfig.initTimeOut) ? theConfig.initTimeOut : maxInitTimeout; // theConfig.initTimeOut could be 0\r\n                var allPromises = createSyncAllSettledPromise(promises);\r\n                if (_initTimer) {\r\n                    // Stop any previous timer\r\n                    _initTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n                }\r\n                _initTimer = scheduleTimeout(function () {\r\n                    // set _isStatusSet to true\r\n                    // set active status\r\n                    // release queues\r\n                    _initTimer = null;\r\n                    if (!_isStatusSet) {\r\n                        _setStatus();\r\n                    }\r\n                }, initTimeout);\r\n                doAwaitResponse(allPromises, function (response) {\r\n                    try {\r\n                        if (_isStatusSet) {\r\n                            // promises take too long to resolve, ignore them\r\n                            // active status should be set by timeout already\r\n                            return;\r\n                        }\r\n                        if (!response.rejected) {\r\n                            var values = response[_DYN_VALUE /* @min:%2evalue */];\r\n                            if (values && values[_DYN_LENGTH /* @min:%2elength */]) {\r\n                                // ikey\r\n                                var ikeyRes = values[0];\r\n                                _instrumentationKey = ikeyRes && ikeyRes[_DYN_VALUE /* @min:%2evalue */];\r\n                                // endpoint\r\n                                if (values[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n                                    var endpointRes = values[1];\r\n                                    _endpoint = endpointRes && endpointRes[_DYN_VALUE /* @min:%2evalue */];\r\n                                }\r\n                            }\r\n                            if (_instrumentationKey) {\r\n                                // if ikey is null, no need to trigger extra dynamic changes for extensions\r\n                                theConfig.instrumentationKey = _instrumentationKey; // set config.instrumentationKey for extensions to consume\r\n                                theConfig.endpointUrl = _endpoint; // set config.endpointUrl for extensions to consume\r\n                            }\r\n                        }\r\n                        // set _isStatusSet to true\r\n                        // set active status\r\n                        // release queues\r\n                        _setStatus();\r\n                    }\r\n                    catch (e) {\r\n                        if (!_isStatusSet) {\r\n                            _setStatus();\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n            function _setStatus() {\r\n                _isStatusSet = true;\r\n                if (isNullOrUndefined(_instrumentationKey)) {\r\n                    _activeStatus = ActiveStatus.INACTIVE;\r\n                    _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 112 /* _eInternalMessageId.InitPromiseException */, \"ikey can't be resolved from promises\");\r\n                }\r\n                else {\r\n                    _activeStatus = ActiveStatus.ACTIVE;\r\n                }\r\n                _releaseQueues();\r\n            }\r\n            function _releaseQueues() {\r\n                if (_isInitialized) {\r\n                    _self.releaseQueue();\r\n                    _self.pollInternalLogs();\r\n                }\r\n            }\r\n            function _startLogPoller(alwaysStart) {\r\n                if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n                    var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n                    if (shouldStart) {\r\n                        if (!_internalLogPollerListening) {\r\n                            _internalLogPollerListening = true;\r\n                            // listen for any configuration changes so that changes to the\r\n                            // interval will cause the timer to be re-initialized\r\n                            _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n                                var interval = details.cfg.diagnosticLogInterval;\r\n                                if (!interval || !(interval > 0)) {\r\n                                    interval = 10000;\r\n                                }\r\n                                var isRunning = false;\r\n                                if (_internalLogPoller) {\r\n                                    // It was already created so remember it's running and cancel\r\n                                    isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n                                    _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n                                }\r\n                                // Create / reconfigure\r\n                                _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n                                _internalLogPoller.unref();\r\n                                // Restart if previously running\r\n                                _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n                            }));\r\n                        }\r\n                        _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n                    }\r\n                }\r\n                return _internalLogPoller;\r\n            }\r\n            _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n                _forceStopInternalLogPoller = true;\r\n                _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n                _flushInternalLogs();\r\n            };\r\n            // Add addTelemetryInitializer\r\n            proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n            _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n                if (isAsync === void 0) { isAsync = true; }\r\n                if (!_isInitialized) {\r\n                    // The SDK is not initialized\r\n                    throwError(strSdkNotInitialized);\r\n                }\r\n                // Check if the SDK still unloading so throw\r\n                if (_isUnloading) {\r\n                    // The SDK is already unloading\r\n                    throwError(strSdkUnloadingError);\r\n                }\r\n                var unloadState = {\r\n                    reason: 50 /* TelemetryUnloadReason.SdkUnload */,\r\n                    isAsync: isAsync,\r\n                    flushComplete: false\r\n                };\r\n                var result;\r\n                if (isAsync && !unloadComplete) {\r\n                    result = createPromise(function (resolve) {\r\n                        // Set the callback to the promise resolve callback\r\n                        unloadComplete = resolve;\r\n                    });\r\n                }\r\n                var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n                processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n                    // if (_statsBeat) {\r\n                    //     // Disable any statsbeat instance\r\n                    //     _statsBeat.enabled = false;\r\n                    //     _statsBeat = null;\r\n                    // }\r\n                    _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n                    // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n                    doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n                        _initDefaults();\r\n                        unloadComplete && unloadComplete(unloadState);\r\n                    });\r\n                }, _self);\r\n                function _doUnload(flushComplete) {\r\n                    unloadState.flushComplete = flushComplete;\r\n                    _isUnloading = true;\r\n                    // Run all of the unload handlers first (before unloading the plugins)\r\n                    _unloadHandlers.run(processUnloadCtx, unloadState);\r\n                    // Stop polling the internal logs\r\n                    _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n                    // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n                    processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n                }\r\n                _flushInternalLogs();\r\n                if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n                    _doUnload(false);\r\n                }\r\n                return result;\r\n            };\r\n            _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n            _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n                if (!plugin) {\r\n                    addCb && addCb(false);\r\n                    _logOrThrowError(strValidationError);\r\n                    return;\r\n                }\r\n                var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n                if (existingPlugin && !replaceExisting) {\r\n                    addCb && addCb(false);\r\n                    _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n                    return;\r\n                }\r\n                var updateState = {\r\n                    reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n                };\r\n                function _addPlugin(removed) {\r\n                    _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n                    updateState.added = [plugin];\r\n                    // Re-Initialize the plugin chain\r\n                    _initPluginChain(updateState);\r\n                    addCb && addCb(true);\r\n                }\r\n                if (existingPlugin) {\r\n                    var removedPlugins_1 = [existingPlugin.plugin];\r\n                    var unloadState = {\r\n                        reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n                        isAsync: !!isAsync\r\n                    };\r\n                    _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n                        if (!removed) {\r\n                            // Previous plugin was successfully removed or was not installed\r\n                            addCb && addCb(false);\r\n                        }\r\n                        else {\r\n                            updateState.removed = removedPlugins_1;\r\n                            updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n                            _addPlugin(true);\r\n                        }\r\n                    });\r\n                }\r\n                else {\r\n                    _addPlugin(false);\r\n                }\r\n            };\r\n            _self.updateCfg = function (newConfig, mergeExisting) {\r\n                if (mergeExisting === void 0) { mergeExisting = true; }\r\n                var updateState;\r\n                if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n                    updateState = {\r\n                        reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n                        cfg: _configHandler.cfg,\r\n                        oldCfg: deepExtend({}, _configHandler.cfg),\r\n                        newConfig: deepExtend({}, newConfig),\r\n                        merge: mergeExisting\r\n                    };\r\n                    newConfig = updateState.newConfig;\r\n                    var cfg = _configHandler.cfg;\r\n                    // replace the immutable (if initialized) values\r\n                    // We don't currently allow updating the extensions and channels via the update config\r\n                    // So overwriting any user provided values to reuse the existing values\r\n                    newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n                    newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n                }\r\n                // Explicitly blocking any previous config watchers so that they don't get called because\r\n                // of this bulk update (Probably not necessary)\r\n                _configHandler._block(function (details) {\r\n                    // Lets assign the new values to the existing config either overwriting or re-assigning\r\n                    var theConfig = details.cfg;\r\n                    _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n                    if (!mergeExisting) {\r\n                        // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n                        objForEachKey(theConfig, function (key) {\r\n                            if (!objHasOwn(newConfig, key)) {\r\n                                // Set the value to undefined\r\n                                details.set(theConfig, key, UNDEFINED_VALUE);\r\n                            }\r\n                        });\r\n                    }\r\n                    // Apply defaults to the new config\r\n                    details.setDf(theConfig, defaultConfig);\r\n                }, true);\r\n                // Now execute all of the listeners (synchronously) so they update their values immediately\r\n                _configHandler.notify();\r\n                if (updateState) {\r\n                    _doUpdate(updateState);\r\n                }\r\n            };\r\n            _self.evtNamespace = function () {\r\n                return _evtNamespace;\r\n            };\r\n            _self.flush = _flushChannels;\r\n            _self.getTraceCtx = function (createNew) {\r\n                if (!_traceCtx) {\r\n                    _traceCtx = createDistributedTraceContext();\r\n                }\r\n                return _traceCtx;\r\n            };\r\n            _self.setTraceCtx = function (traceCtx) {\r\n                _traceCtx = traceCtx || null;\r\n            };\r\n            _self.addUnloadHook = _addUnloadHook;\r\n            // Create the addUnloadCb\r\n            proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n            _self.onCfgChange = function (handler) {\r\n                var unloadHook;\r\n                if (!_isInitialized) {\r\n                    unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n                }\r\n                else {\r\n                    unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n                }\r\n                return _createUnloadHook(unloadHook);\r\n            };\r\n            _self.getWParam = function () {\r\n                return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n            };\r\n            function _setPluginVersions() {\r\n                var thePlugins = {};\r\n                _pluginVersionStringArr = [];\r\n                var _addPluginVersions = function (plugins) {\r\n                    if (plugins) {\r\n                        arrForEach(plugins, function (plugin) {\r\n                            if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n                                var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n                                _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n                                thePlugins[plugin.identifier] = plugin;\r\n                            }\r\n                        });\r\n                    }\r\n                };\r\n                _addPluginVersions(_channels);\r\n                if (_channelConfig) {\r\n                    arrForEach(_channelConfig, function (channels) {\r\n                        _addPluginVersions(channels);\r\n                    });\r\n                }\r\n                _addPluginVersions(_configExtensions);\r\n            }\r\n            function _initDefaults() {\r\n                _isInitialized = false;\r\n                // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n                _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n                // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n                _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n                // Define _self.config\r\n                objDefine(_self, \"config\", {\r\n                    g: function () { return _configHandler.cfg; },\r\n                    s: function (newValue) {\r\n                        _self.updateCfg(newValue, false);\r\n                    }\r\n                });\r\n                objDefine(_self, \"pluginVersionStringArr\", {\r\n                    g: function () {\r\n                        if (!_pluginVersionStringArr) {\r\n                            _setPluginVersions();\r\n                        }\r\n                        return _pluginVersionStringArr;\r\n                    }\r\n                });\r\n                objDefine(_self, \"pluginVersionString\", {\r\n                    g: function () {\r\n                        if (!_pluginVersionString) {\r\n                            if (!_pluginVersionStringArr) {\r\n                                _setPluginVersions();\r\n                            }\r\n                            _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n                        }\r\n                        return _pluginVersionString || STR_EMPTY;\r\n                    }\r\n                });\r\n                objDefine(_self, \"logger\", {\r\n                    g: function () {\r\n                        if (!_logger) {\r\n                            _logger = new DiagnosticLogger(_configHandler.cfg);\r\n                            _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n                        }\r\n                        return _logger;\r\n                    },\r\n                    s: function (newLogger) {\r\n                        _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n                        if (_logger !== newLogger) {\r\n                            runTargetUnload(_logger, false);\r\n                            _logger = newLogger;\r\n                        }\r\n                    }\r\n                });\r\n                _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n                _extensions = [];\r\n                var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n                cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n                arrAppend(cfgExtensions, _extensions);\r\n                _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n                _eventQueue = [];\r\n                runTargetUnload(_notificationManager, false);\r\n                _notificationManager = null;\r\n                _perfManager = null;\r\n                // _statsBeat = null;\r\n                _cfgPerfManager = null;\r\n                runTargetUnload(_cookieManager, false);\r\n                _cookieManager = null;\r\n                _pluginChain = null;\r\n                _configExtensions = [];\r\n                _channelConfig = null;\r\n                _channels = null;\r\n                _isUnloading = false;\r\n                _internalLogsEventName = null;\r\n                _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n                _unloadHandlers = createUnloadHandlerContainer();\r\n                _traceCtx = null;\r\n                _instrumentationKey = null;\r\n                _hookContainer = createUnloadHookContainer();\r\n                _cfgListeners = [];\r\n                _pluginVersionString = null;\r\n                _pluginVersionStringArr = null;\r\n                _forceStopInternalLogPoller = false;\r\n                _internalLogPoller = null;\r\n                _internalLogPollerListening = false;\r\n                _activeStatus = 0 /* eActiveStatus.NONE */; // default is None\r\n                _endpoint = null;\r\n                _initInMemoMaxSize = null;\r\n                _isStatusSet = false;\r\n                _initTimer = null;\r\n                // if (_statsBeat) {\r\n                //     // Unload and disable any statsbeat instance\r\n                //     _statsBeat.enabled = false;\r\n                // }\r\n                // _statsBeat = null;\r\n            }\r\n            function _createTelCtx() {\r\n                var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n                theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n                return theCtx;\r\n            }\r\n            // Initialize or Re-initialize the plugins\r\n            function _initPluginChain(updateState) {\r\n                // Extension validation\r\n                var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n                _pluginChain = null;\r\n                _pluginVersionString = null;\r\n                _pluginVersionStringArr = null;\r\n                // Get the primary channel queue and include as part of the normal extensions\r\n                _channels = (_channelConfig || [])[0] || [];\r\n                // Add any channels provided in the extensions and sort them\r\n                _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n                // Create an array of all extensions, including the _channels\r\n                var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n                // Required to allow plugins to call core.getPlugin() during their own initialization\r\n                _extensions = objFreeze(allExtensions);\r\n                // This has a side effect of adding the extensions passed during initialization\r\n                // into the config.extensions, so you can see all of the extensions loaded.\r\n                // This will also get updated by the addPlugin() and remove plugin code.\r\n                var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n                cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n                arrAppend(cfgExtensions, _extensions);\r\n                var rootCtx = _createTelCtx();\r\n                // Initializing the channels first\r\n                if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n                }\r\n                // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n                initializePlugins(rootCtx, allExtensions);\r\n                if (updateState) {\r\n                    _doUpdate(updateState);\r\n                }\r\n            }\r\n            function _getPlugin(pluginIdentifier) {\r\n                var theExt = null;\r\n                var thePlugin = null;\r\n                var channelHosts = [];\r\n                arrForEach(_extensions, function (ext) {\r\n                    if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n                        thePlugin = ext;\r\n                        return -1;\r\n                    }\r\n                    if (ext.getChannel) {\r\n                        channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n                    }\r\n                });\r\n                if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    arrForEach(channelHosts, function (host) {\r\n                        thePlugin = host.getChannel(pluginIdentifier);\r\n                        if (!thePlugin) {\r\n                            return -1;\r\n                        }\r\n                    });\r\n                }\r\n                if (thePlugin) {\r\n                    theExt = {\r\n                        plugin: thePlugin,\r\n                        setEnabled: function (enabled) {\r\n                            _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n                        },\r\n                        isEnabled: function () {\r\n                            var pluginState = _getPluginState(thePlugin);\r\n                            return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n                        },\r\n                        remove: function (isAsync, removeCb) {\r\n                            if (isAsync === void 0) { isAsync = true; }\r\n                            var pluginsToRemove = [thePlugin];\r\n                            var unloadState = {\r\n                                reason: 1 /* TelemetryUnloadReason.PluginUnload */,\r\n                                isAsync: isAsync\r\n                            };\r\n                            _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n                                if (removed) {\r\n                                    // Re-Initialize the plugin chain\r\n                                    _initPluginChain({\r\n                                        reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n                                        removed: pluginsToRemove\r\n                                    });\r\n                                }\r\n                                removeCb && removeCb(removed);\r\n                            });\r\n                        }\r\n                    };\r\n                }\r\n                return theExt;\r\n            }\r\n            function _getPluginChain() {\r\n                if (!_pluginChain) {\r\n                    // copy the collection of extensions\r\n                    var extensions = (_extensions || []).slice();\r\n                    // During add / remove this may get called again, so don't read if already present\r\n                    if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n                        extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n                    }\r\n                    _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n                }\r\n                return _pluginChain;\r\n            }\r\n            function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n                if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n                    var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n                    unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n                        var removed = false;\r\n                        // Remove the listed config extensions\r\n                        var newConfigExtensions = [];\r\n                        arrForEach(_configExtensions, function (plugin, idx) {\r\n                            if (!_isPluginPresent(plugin, thePlugins)) {\r\n                                newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n                            }\r\n                            else {\r\n                                removed = true;\r\n                            }\r\n                        });\r\n                        _configExtensions = newConfigExtensions;\r\n                        _pluginVersionString = null;\r\n                        _pluginVersionStringArr = null;\r\n                        // Re-Create the channel config\r\n                        var newChannelConfig = [];\r\n                        if (_channelConfig) {\r\n                            arrForEach(_channelConfig, function (queue, idx) {\r\n                                var newQueue = [];\r\n                                arrForEach(queue, function (channel) {\r\n                                    if (!_isPluginPresent(channel, thePlugins)) {\r\n                                        newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n                                    }\r\n                                    else {\r\n                                        removed = true;\r\n                                    }\r\n                                });\r\n                                newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n                            });\r\n                            _channelConfig = newChannelConfig;\r\n                        }\r\n                        removeComplete && removeComplete(removed);\r\n                        _startLogPoller();\r\n                    });\r\n                    unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n                }\r\n                else {\r\n                    removeComplete(false);\r\n                }\r\n            }\r\n            function _flushInternalLogs() {\r\n                if (_logger && _logger.queue) {\r\n                    var queue = _logger.queue.slice(0);\r\n                    _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n                    arrForEach(queue, function (logMessage) {\r\n                        var item = {\r\n                            name: _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n                            iKey: _instrumentationKey,\r\n                            time: toISOString(new Date()),\r\n                            baseType: _InternalLogMessage.dataType,\r\n                            baseData: { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] }\r\n                        };\r\n                        _self.track(item);\r\n                    });\r\n                }\r\n            }\r\n            function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n                // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n                var waiting = 1;\r\n                var doneIterating = false;\r\n                var cbTimer = null;\r\n                cbTimeout = cbTimeout || 5000;\r\n                function doCallback() {\r\n                    waiting--;\r\n                    if (doneIterating && waiting === 0) {\r\n                        cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n                        cbTimer = null;\r\n                        callBack && callBack(doneIterating);\r\n                        callBack = null;\r\n                    }\r\n                }\r\n                if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n                    flushCtx.iterate(function (plugin) {\r\n                        if (plugin.flush) {\r\n                            waiting++;\r\n                            var handled_1 = false;\r\n                            // Not all channels will call this callback for every scenario\r\n                            if (!plugin.flush(isAsync, function () {\r\n                                handled_1 = true;\r\n                                doCallback();\r\n                            }, sendReason)) {\r\n                                if (!handled_1) {\r\n                                    // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n                                    // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n                                    // followup function (such as unloading)\r\n                                    if (isAsync && cbTimer == null) {\r\n                                        cbTimer = scheduleTimeout(function () {\r\n                                            cbTimer = null;\r\n                                            doCallback();\r\n                                        }, cbTimeout);\r\n                                    }\r\n                                    else {\r\n                                        doCallback();\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                    });\r\n                }\r\n                doneIterating = true;\r\n                doCallback();\r\n                return true;\r\n            }\r\n            function _initPerfManager() {\r\n                // Save the previous config based performance manager creator to avoid creating new perf manager instances if unchanged\r\n                var prevCfgPerfMgr;\r\n                // Will get recalled if any referenced config values are changed\r\n                _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n                    var enablePerfMgr = details.cfg.enablePerfMgr;\r\n                    if (enablePerfMgr) {\r\n                        var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n                        // for preCfgPerfMgr = createPerfMgr = null\r\n                        // initial createPerfMgr function should be _createPerfManager\r\n                        if ((prevCfgPerfMgr !== createPerfMgr) || !prevCfgPerfMgr) {\r\n                            if (!createPerfMgr) {\r\n                                createPerfMgr = _createPerfManager;\r\n                            }\r\n                            // Set the performance manager creation function if not defined\r\n                            getSetValue(details.cfg, STR_CREATE_PERF_MGR, createPerfMgr);\r\n                            prevCfgPerfMgr = createPerfMgr;\r\n                            // Remove any existing config based performance manager\r\n                            _cfgPerfManager = null;\r\n                        }\r\n                        // Only create the performance manager if it's not already created or manually set\r\n                        if (!_perfManager && !_cfgPerfManager && isFunction(createPerfMgr)) {\r\n                            // Create a new config based performance manager\r\n                            _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n                        }\r\n                    }\r\n                    else {\r\n                        // Remove any existing config based performance manager\r\n                        _cfgPerfManager = null;\r\n                        // Clear the previous cached value so it can be GC'd\r\n                        prevCfgPerfMgr = null;\r\n                    }\r\n                }));\r\n            }\r\n            function _doUpdate(updateState) {\r\n                var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n                updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n                if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n                    updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n                }\r\n            }\r\n            function _logOrThrowError(message) {\r\n                var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n                if (logger) {\r\n                    // there should always be a logger\r\n                    _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n                    _startLogPoller();\r\n                }\r\n                else {\r\n                    throwError(message);\r\n                }\r\n            }\r\n            function _notifyInvalidEvent(telemetryItem) {\r\n                var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n                if (manager) {\r\n                    manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n                }\r\n            }\r\n            function _addUnloadHook(hooks) {\r\n                _hookContainer.add(hooks);\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.getChannels.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.getProcessTelContext.\r\n// Removed Stub for AppInsightsCore.prototype.getNotifyMgr.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.getPerfMgr.\r\n    // public getStatsBeat(statsBeatState: IStatsBeatState): IStatsBeat {\r\n    //     // @ DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    //     return null;\r\n    // }\r\n    // public setStatsMgr(statsMgr?: IStatsMgr): void {\r\n    //     // @ DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    // }\r\n// Removed Stub for AppInsightsCore.prototype.setPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.eventCnt.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for AppInsightsCore.prototype.unload.\r\n// Removed Stub for AppInsightsCore.prototype.getPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.addPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.updateCfg.\r\n// Removed Stub for AppInsightsCore.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsCore.prototype.flush.\r\n// Removed Stub for AppInsightsCore.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.setTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadHook.\r\n// Removed Stub for AppInsightsCore.prototype.onCfgChange.\r\n// Removed Stub for AppInsightsCore.prototype.activeStatus.\r\n// Removed Stub for AppInsightsCore.prototype._setPendingStatus.\r\n// Removed Stub for AppInsightsCore.prototype.releaseQueue.\r\n// Removed Stub for AppInsightsCore.prototype._updateHook.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    AppInsightsCore.__ieDyn=1;\n\n    return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_NAME } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getJSON } from \"./EnvUtils\";\r\n/**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\nexport function parseResponse(response, diagLog) {\r\n    try {\r\n        if (response && response !== \"\") {\r\n            var result = getJSON().parse(response);\r\n            if (result && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] >= result.itemsAccepted &&\r\n                result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n                return result;\r\n            }\r\n        }\r\n    }\r\n    catch (e) {\r\n        _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + (e[_DYN_NAME /* @min:%2ename */] || dumpObj(e)), {\r\n            response: response\r\n        });\r\n    }\r\n    return null;\r\n}\r\n//# sourceMappingURL=ResponseHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, dumpObj, getInst, getNavigator, getWindow, isFunction, isString, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DATA, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PUSH, _DYN_REPLACE, _DYN_STATUS, _DYN_TIMEOUT, _DYN_TO_LOWER_CASE, _DYN_URL_STRING, _DYN_VALUE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { DisabledPropertyName } from \"./Constants\";\r\nimport { _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getLocation, isBeaconsSupported, isFetchSupported, isXhrSupported, useXDomainRequest } from \"./EnvUtils\";\r\nimport { _getAllResponseHeaders, formatErrorMessageXdr, formatErrorMessageXhr, getResponseText, openXhr } from \"./HelperFuncs\";\r\nvar STR_EMPTY = \"\";\r\nvar STR_NO_RESPONSE_BODY = \"NoResponseBody\";\r\nvar _noResponseQs = \"&\" + STR_NO_RESPONSE_BODY + \"=true\";\r\nvar STR_POST_METHOD = \"POST\";\r\n/**\r\n * This Internal component\r\n * Manager SendPost functions\r\n * SendPostManger\r\n * @internal for internal use only\r\n */\r\nvar SenderPostManager = /** @class */ (function () {\r\n    function SenderPostManager() {\r\n        var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n        var _enableSendPromise;\r\n        var _isInitialized;\r\n        var _diagLog;\r\n        var _isOneDs;\r\n        var _onCompleteFuncs;\r\n        var _disableCredentials;\r\n        var _fetchCredentials;\r\n        var _fallbackInst;\r\n        var _disableXhr;\r\n        var _disableBeacon;\r\n        var _disableBeaconSync;\r\n        var _disableFetchKeepAlive;\r\n        var _addNoResponse;\r\n        var _timeoutWrapper;\r\n        dynamicProto(SenderPostManager, this, function (_self, _base) {\r\n            var _sendCredentials = true; // for 1ds\r\n            _initDefaults();\r\n            _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, diagLog) {\r\n                _diagLog = diagLog;\r\n                if (_isInitialized) {\r\n                    _throwInternal(_diagLog, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n                }\r\n                _self.SetConfig(config);\r\n                _isInitialized = true;\r\n            };\r\n            _self[\"_getDbgPlgTargets\"] = function () {\r\n                return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];\r\n            };\r\n            // This componet might get its config from sender, offline sender, 1ds post\r\n            // so set this function to mock dynamic changes\r\n            _self.SetConfig = function (config) {\r\n                try {\r\n                    _onCompleteFuncs = config.senderOnCompleteCallBack || {};\r\n                    _disableCredentials = !!config.disableCredentials;\r\n                    _fetchCredentials = config.fetchCredentials;\r\n                    _isOneDs = !!config.isOneDs;\r\n                    _enableSendPromise = !!config.enableSendPromise;\r\n                    _disableXhr = !!config.disableXhr;\r\n                    _disableBeacon = !!config.disableBeacon;\r\n                    _disableBeaconSync = !!config.disableBeaconSync;\r\n                    _timeoutWrapper = config.timeWrapper;\r\n                    _addNoResponse = !!config.addNoResponse;\r\n                    _disableFetchKeepAlive = !!config.disableFetchKeepAlive;\r\n                    _fallbackInst = { sendPOST: _xhrSender };\r\n                    if (!_isOneDs) {\r\n                        _sendCredentials = false; // for appInsights, set it to false always\r\n                    }\r\n                    if (_disableCredentials) {\r\n                        var location_1 = getLocation();\r\n                        if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"file:\") {\r\n                            // Special case where a local html file fails with a CORS error on Chromium browsers\r\n                            _sendCredentials = false;\r\n                        }\r\n                    }\r\n                    return true;\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return false;\r\n            };\r\n            _self.getSyncFetchPayload = function () {\r\n                return _syncFetchPayload;\r\n            };\r\n            _self.getSenderInst = function (transports, sync) {\r\n                if (transports && transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n                    return _getSenderInterface(transports, sync);\r\n                }\r\n                return null;\r\n            };\r\n            _self.getFallbackInst = function () {\r\n                return _fallbackInst;\r\n            };\r\n            _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function (unloadCtx, unloadState) {\r\n                _initDefaults();\r\n            };\r\n            _self.preparePayload = function (callback, zipPayload, payload, isSync) {\r\n                if (!zipPayload || isSync || !payload[_DYN_DATA /* @min:%2edata */]) {\r\n                    // If the request is synchronous, the body is null or undefined or Compression is not supported, we don't need to compress it\r\n                    callback(payload);\r\n                    return;\r\n                }\r\n                try {\r\n                    var csStream = getInst(\"CompressionStream\");\r\n                    if (!isFunction(csStream)) {\r\n                        callback(payload);\r\n                        return;\r\n                    }\r\n                    // Create a readable stream from the uint8 data\r\n                    var body = new ReadableStream({\r\n                        start: function (controller) {\r\n                            controller.enqueue(isString(payload[_DYN_DATA /* @min:%2edata */]) ? new TextEncoder().encode(payload[_DYN_DATA /* @min:%2edata */]) : payload[_DYN_DATA /* @min:%2edata */]);\r\n                            controller.close();\r\n                        }\r\n                    });\r\n                    var compressedStream = body.pipeThrough(new csStream(\"gzip\"));\r\n                    var reader_1 = compressedStream.getReader();\r\n                    var chunks_1 = [];\r\n                    var totalLength_1 = 0;\r\n                    var callbackCalled_1 = false;\r\n                    // Process each chunk from the compressed stream reader\r\n                    doAwaitResponse(reader_1.read(), function processChunk(response) {\r\n                        if (!callbackCalled_1 && !response.rejected) {\r\n                            // Process the chunk and continue reading\r\n                            var result = response[_DYN_VALUE /* @min:%2evalue */];\r\n                            if (!result.done) {\r\n                                // Add current chunk and continue reading\r\n                                chunks_1[_DYN_PUSH /* @min:%2epush */](result[_DYN_VALUE /* @min:%2evalue */]);\r\n                                totalLength_1 += result.value[_DYN_LENGTH /* @min:%2elength */];\r\n                                return doAwaitResponse(reader_1.read(), processChunk);\r\n                            }\r\n                            // We are complete so combine all chunks\r\n                            var combined = new Uint8Array(totalLength_1);\r\n                            var offset = 0;\r\n                            for (var _i = 0, chunks_2 = chunks_1; _i < chunks_2.length; _i++) {\r\n                                var chunk = chunks_2[_i];\r\n                                combined.set(chunk, offset);\r\n                                offset += chunk[_DYN_LENGTH /* @min:%2elength */];\r\n                            }\r\n                            // Update payload with compressed data\r\n                            payload[_DYN_DATA /* @min:%2edata */] = combined;\r\n                            payload[_DYN_HEADERS /* @min:%2eheaders */][\"Content-Encoding\"] = \"gzip\";\r\n                            payload._chunkCount = chunks_1[_DYN_LENGTH /* @min:%2elength */];\r\n                        }\r\n                        if (!callbackCalled_1) {\r\n                            // Send the processed payload to the callback, if not already called\r\n                            // If the response was rejected, we will call the callback with the original payload\r\n                            // As it only gets \"replaced\" if the compression was successful\r\n                            callbackCalled_1 = true;\r\n                            callback(payload);\r\n                        }\r\n                        // We don't need to return anything as this will cause the calling chain to be resolved and closed\r\n                    });\r\n                    // returning the reader to allow the caller to cancel the stream if needed\r\n                    // This is not a requirement but allows for better control over the stream, like if we detect that we are unloading\r\n                    // we could use reader.cancel() to stop the stream and avoid sending the request, but this may still be an asynchronous operation\r\n                    // and may not be possible to cancel the stream in time\r\n                    return reader_1;\r\n                }\r\n                catch (error) {\r\n                    // CompressionStream is not available at all\r\n                    callback(payload);\r\n                    return;\r\n                }\r\n            };\r\n            /**\r\n             * success handler\r\n             */\r\n            function _onSuccess(res, onComplete) {\r\n                _doOnComplete(onComplete, 200, {}, res);\r\n            }\r\n            /**\r\n             * error handler\r\n             */\r\n            function _onError(message, onComplete) {\r\n                _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n                _doOnComplete(onComplete, 400, {});\r\n            }\r\n            function _onNoPayloadUrl(onComplete) {\r\n                _onError(\"No endpoint url is provided for the batch\", onComplete);\r\n            }\r\n            function _getSenderInterface(transports, syncSupport) {\r\n                var transportType = 0 /* TransportType.NotSet */;\r\n                var sendPostFunc = null;\r\n                var lp = 0;\r\n                while (sendPostFunc == null && lp < transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n                    transportType = transports[lp];\r\n                    if (!_disableXhr && transportType === 1 /* TransportType.Xhr */) {\r\n                        if (useXDomainRequest()) {\r\n                            // IE 8 and 9\r\n                            sendPostFunc = _xdrSender;\r\n                        }\r\n                        else if (isXhrSupported()) {\r\n                            sendPostFunc = _xhrSender;\r\n                        }\r\n                    }\r\n                    else if (transportType === 2 /* TransportType.Fetch */ && isFetchSupported(syncSupport) && (!syncSupport || !_disableFetchKeepAlive)) {\r\n                        sendPostFunc = _doFetchSender;\r\n                    }\r\n                    else if (transportType === 3 /* TransportType.Beacon */ && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {\r\n                        sendPostFunc = _beaconSender;\r\n                    }\r\n                    lp++;\r\n                }\r\n                if (sendPostFunc) {\r\n                    return {\r\n                        _transport: transportType,\r\n                        _isSync: syncSupport,\r\n                        sendPOST: sendPostFunc\r\n                    };\r\n                }\r\n                return null;\r\n            }\r\n            function _doOnComplete(oncomplete, status, headers, response) {\r\n                try {\r\n                    oncomplete && oncomplete(status, headers, response);\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n            }\r\n            function _doBeaconSend(payload, oncomplete) {\r\n                var nav = getNavigator();\r\n                var url = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n                if (!url) {\r\n                    _onNoPayloadUrl(oncomplete);\r\n                    // return true here, because we don't want to retry it with fallback sender\r\n                    return true;\r\n                }\r\n                url = payload[_DYN_URL_STRING /* @min:%2eurlString */] + (_addNoResponse ? _noResponseQs : STR_EMPTY);\r\n                var data = payload[_DYN_DATA /* @min:%2edata */];\r\n                // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n                // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n                // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n                // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n                var plainTextBatch = _isOneDs ? data : new Blob([data], { type: \"text/plain;charset=UTF-8\" });\r\n                // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n                var queued = nav.sendBeacon(url, plainTextBatch);\r\n                return queued;\r\n            }\r\n            /**\r\n             * Send Beacon API request\r\n             * @param payload - The data payload to be sent.\r\n             * @param sync - not used\r\n             * Note: Beacon API does not support custom headers and we are not able to get\r\n             * appId from the backend for the correct correlation.\r\n             */\r\n            function _beaconSender(payload, oncomplete, sync) {\r\n                var data = payload[_DYN_DATA /* @min:%2edata */];\r\n                try {\r\n                    if (data) {\r\n                        // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n                        if (!_doBeaconSend(payload, oncomplete)) {\r\n                            var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;\r\n                            if (onRetry && isFunction(onRetry)) {\r\n                                onRetry(payload, oncomplete, _doBeaconSend);\r\n                            }\r\n                            else {\r\n                                _fallbackInst && _fallbackInst.sendPOST(payload, oncomplete, true);\r\n                                _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n                            }\r\n                        }\r\n                        else {\r\n                            // if can send\r\n                            _onSuccess(STR_EMPTY, oncomplete); // if success, onComplete is called with status code 200\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _isOneDs && _warnToConsole(_diagLog, \"Failed to send telemetry using sendBeacon API. Ex:\" + dumpObj(e));\r\n                    _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, STR_EMPTY);\r\n                }\r\n                return;\r\n            }\r\n            /**\r\n             * Send XMLHttpRequest\r\n             * @param payload - The data payload to be sent.\r\n             * @param sync - Indicates if the request should be sent synchronously\r\n             */\r\n            function _xhrSender(payload, oncomplete, sync) {\r\n                //let  internalPayload = payload as IInternalPayloadData;\r\n                var thePromise;\r\n                var resolveFunc;\r\n                var rejectFunc;\r\n                var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n                if (!sync && _enableSendPromise) {\r\n                    thePromise = createPromise(function (resolve, reject) {\r\n                        resolveFunc = resolve;\r\n                        rejectFunc = reject;\r\n                    });\r\n                }\r\n                if (_isOneDs && sync && payload.disableXhrSync) {\r\n                    sync = false;\r\n                }\r\n                //const xhr = new XMLHttpRequest();\r\n                var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n                if (!endPointUrl) {\r\n                    _onNoPayloadUrl(oncomplete);\r\n                    resolveFunc && resolveFunc(false);\r\n                    return;\r\n                }\r\n                var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n                if (!_isOneDs) {\r\n                    // application/json should NOT add to 1ds post by default\r\n                    xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n                }\r\n                arrForEach(objKeys(headers), function (headerName) {\r\n                    xhr.setRequestHeader(headerName, headers[headerName]);\r\n                });\r\n                xhr.onreadystatechange = function () {\r\n                    if (!_isOneDs) {\r\n                        _doOnReadyFunc(xhr);\r\n                        if (xhr.readyState === 4) {\r\n                            resolveFunc && resolveFunc(true);\r\n                        }\r\n                    }\r\n                };\r\n                xhr.onload = function () {\r\n                    if (_isOneDs) {\r\n                        _doOnReadyFunc(xhr);\r\n                    }\r\n                };\r\n                function _doOnReadyFunc(xhr) {\r\n                    var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;\r\n                    var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);\r\n                    if (onReadyFuncExist) {\r\n                        onReadyFunc(xhr, oncomplete, payload);\r\n                    }\r\n                    else {\r\n                        var response = getResponseText(xhr);\r\n                        _doOnComplete(oncomplete, xhr[_DYN_STATUS /* @min:%2estatus */], _getAllResponseHeaders(xhr, _isOneDs), response);\r\n                    }\r\n                }\r\n                xhr.onerror = function (event) {\r\n                    _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 400, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n                    rejectFunc && rejectFunc(event);\r\n                };\r\n                xhr.ontimeout = function () {\r\n                    _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 500, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n                    resolveFunc && resolveFunc(false);\r\n                };\r\n                xhr.send(payload[_DYN_DATA /* @min:%2edata */]);\r\n                return thePromise;\r\n            }\r\n            /**\r\n             * Send fetch API request\r\n             * @param payload - The data payload to be sent.\r\n             * @param sync - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n             */\r\n            function _doFetchSender(payload, oncomplete, sync) {\r\n                var _a;\r\n                var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n                var batch = payload[_DYN_DATA /* @min:%2edata */];\r\n                var plainTextBatch = _isOneDs ? batch : new Blob([batch], { type: \"application/json\" });\r\n                var thePromise;\r\n                var resolveFunc;\r\n                var rejectFunc;\r\n                var requestHeaders = new Headers();\r\n                var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n                var ignoreResponse = false;\r\n                var responseHandled = false;\r\n                var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n                //TODO: handle time out for 1ds\r\n                var init = (_a = {\r\n                        method: STR_POST_METHOD,\r\n                        body: plainTextBatch\r\n                    },\r\n                    _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n                ,\r\n                    _a);\r\n                // Only add headers if there are headers to add, due to issue with some polyfills\r\n                if (payload.headers && objKeys(payload.headers)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    arrForEach(objKeys(headers), function (headerName) {\r\n                        requestHeaders.append(headerName, headers[headerName]);\r\n                    });\r\n                    init[_DYN_HEADERS /* @min:%2eheaders */] = requestHeaders;\r\n                }\r\n                if (_fetchCredentials) { // if user passed in this value via post channel (1ds), then use it\r\n                    init.credentials = _fetchCredentials;\r\n                }\r\n                else if (_sendCredentials && _isOneDs) {\r\n                    // for 1ds, Don't send credentials when URL is file://\r\n                    init.credentials = \"include\";\r\n                }\r\n                if (sync) {\r\n                    init.keepalive = true;\r\n                    _syncFetchPayload += batchLength;\r\n                    if (_isOneDs) {\r\n                        if (payload[\"_sendReason\"] === 2 /* SendRequestReason.Unload */) {\r\n                            // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n                            // just like beacon send assume that the events have been accepted and processed\r\n                            ignoreResponse = true;\r\n                            if (_addNoResponse) {\r\n                                endPointUrl += _noResponseQs;\r\n                            }\r\n                        }\r\n                    }\r\n                    else {\r\n                        // for appinsights, set to true for all sync request\r\n                        ignoreResponse = true;\r\n                    }\r\n                }\r\n                var request = new Request(endPointUrl, init);\r\n                try {\r\n                    // Also try and tag the request (just in case the value in init is not copied over)\r\n                    request[DisabledPropertyName] = true;\r\n                }\r\n                catch (e) {\r\n                    // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n                    // cause the request to fail and we no telemetry would be sent\r\n                }\r\n                if (!sync && _enableSendPromise) {\r\n                    thePromise = createPromise(function (resolve, reject) {\r\n                        resolveFunc = resolve;\r\n                        rejectFunc = reject;\r\n                    });\r\n                }\r\n                if (!endPointUrl) {\r\n                    _onNoPayloadUrl(oncomplete);\r\n                    resolveFunc && resolveFunc(false);\r\n                    return;\r\n                }\r\n                function _handleError(res, statusCode) {\r\n                    // In case there is an error in the request. Set the status to 0 for 1ds and 400 for appInsights\r\n                    // so that the events can be retried later.\r\n                    if (statusCode) {\r\n                        _doOnComplete(oncomplete, _isOneDs ? 0 : statusCode, {}, _isOneDs ? STR_EMPTY : res);\r\n                    }\r\n                    else {\r\n                        _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, _isOneDs ? STR_EMPTY : res);\r\n                    }\r\n                }\r\n                function _onFetchComplete(response, payload, value) {\r\n                    var status = response[_DYN_STATUS /* @min:%2estatus */];\r\n                    var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;\r\n                    if (onCompleteFunc && isFunction(onCompleteFunc)) {\r\n                        onCompleteFunc(response, oncomplete, value || STR_EMPTY, payload);\r\n                    }\r\n                    else {\r\n                        _doOnComplete(oncomplete, status, {}, value || STR_EMPTY);\r\n                    }\r\n                }\r\n                try {\r\n                    doAwaitResponse(fetch(_isOneDs ? endPointUrl : request, _isOneDs ? init : null), function (result) {\r\n                        if (sync) {\r\n                            _syncFetchPayload -= batchLength;\r\n                            batchLength = 0;\r\n                        }\r\n                        if (!responseHandled) {\r\n                            responseHandled = true;\r\n                            if (!result.rejected) {\r\n                                var response_1 = result[_DYN_VALUE /* @min:%2evalue */];\r\n                                try {\r\n                                    /**\r\n                                     * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n                                     * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n                                     * or if anything prevented the request from completing.\r\n                                     */\r\n                                    if (!_isOneDs && !response_1.ok) {\r\n                                        // this is for appInsights only\r\n                                        if (response_1[_DYN_STATUS /* @min:%2estatus */]) {\r\n                                            _handleError(response_1.statusText, response_1[_DYN_STATUS /* @min:%2estatus */]);\r\n                                        }\r\n                                        else {\r\n                                            _handleError(response_1.statusText, 499);\r\n                                        }\r\n                                        resolveFunc && resolveFunc(false);\r\n                                    }\r\n                                    else {\r\n                                        if (_isOneDs && !response_1.body) {\r\n                                            _onFetchComplete(response_1, null, STR_EMPTY);\r\n                                            resolveFunc && resolveFunc(true);\r\n                                        }\r\n                                        else {\r\n                                            doAwaitResponse(response_1.text(), function (resp) {\r\n                                                _onFetchComplete(response_1, payload, resp[_DYN_VALUE /* @min:%2evalue */]);\r\n                                                resolveFunc && resolveFunc(true);\r\n                                            });\r\n                                        }\r\n                                    }\r\n                                }\r\n                                catch (e) {\r\n                                    if (response_1 && response_1[_DYN_STATUS /* @min:%2estatus */]) {\r\n                                        _handleError(dumpObj(e), response_1[_DYN_STATUS /* @min:%2estatus */]);\r\n                                    }\r\n                                    else {\r\n                                        _handleError(dumpObj(e), 499);\r\n                                    }\r\n                                    rejectFunc && rejectFunc(e);\r\n                                }\r\n                            }\r\n                            else {\r\n                                _handleError(result.reason && result.reason[_DYN_MESSAGE /* @min:%2emessage */], 499);\r\n                                rejectFunc && rejectFunc(result.reason);\r\n                            }\r\n                        }\r\n                    });\r\n                }\r\n                catch (e) {\r\n                    if (!responseHandled) {\r\n                        _handleError(dumpObj(e), 499);\r\n                        rejectFunc && rejectFunc(e);\r\n                    }\r\n                }\r\n                if (ignoreResponse && !responseHandled) {\r\n                    // Assume success during unload processing as we most likely won't get the response\r\n                    responseHandled = true;\r\n                    _doOnComplete(oncomplete, 200, {});\r\n                    resolveFunc && resolveFunc(true);\r\n                }\r\n                if (_isOneDs && !responseHandled && payload[_DYN_TIMEOUT /* @min:%2etimeout */] > 0) {\r\n                    // Simulate timeout\r\n                    _timeoutWrapper && _timeoutWrapper.set(function () {\r\n                        if (!responseHandled) {\r\n                            // Assume a 500 response (which will cause a retry)\r\n                            responseHandled = true;\r\n                            _doOnComplete(oncomplete, 500, {});\r\n                            resolveFunc && resolveFunc(true);\r\n                        }\r\n                    }, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n                }\r\n                return thePromise;\r\n            }\r\n            /**\r\n             * Send XDomainRequest\r\n             * @param payload - The data payload to be sent.\r\n             * @param sync - Indicates if the request should be sent synchronously\r\n             *\r\n             * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n             * to maintain consistency with the xhrSender's contract\r\n             * Note: XDomainRequest does not support custom headers and we are not able to get\r\n             * appId from the backend for the correct correlation.\r\n             */\r\n            function _xdrSender(payload, oncomplete, sync) {\r\n                // It doesn't support custom headers, so no action is taken with current requestHeaders\r\n                var _window = getWindow();\r\n                var xdr = new XDomainRequest();\r\n                var data = payload[_DYN_DATA /* @min:%2edata */];\r\n                xdr.onload = function () {\r\n                    var response = getResponseText(xdr);\r\n                    var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;\r\n                    if (onloadFunc && isFunction(onloadFunc)) {\r\n                        onloadFunc(xdr, oncomplete, payload);\r\n                    }\r\n                    else {\r\n                        _doOnComplete(oncomplete, 200, {}, response);\r\n                    }\r\n                };\r\n                xdr.onerror = function () {\r\n                    _doOnComplete(oncomplete, 400, {}, _isOneDs ? STR_EMPTY : formatErrorMessageXdr(xdr));\r\n                };\r\n                xdr.ontimeout = function () {\r\n                    _doOnComplete(oncomplete, 500, {});\r\n                };\r\n                xdr.onprogress = function () { };\r\n                // XDomainRequest requires the same protocol as the hosting page.\r\n                // If the protocol doesn't match, we can't send the telemetry :(.\r\n                var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n                var endpoint = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n                if (!endpoint) {\r\n                    _onNoPayloadUrl(oncomplete);\r\n                    return;\r\n                }\r\n                if (!_isOneDs && endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n                    var msg = \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\";\r\n                    _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + msg);\r\n                    _onError(msg, oncomplete);\r\n                    return;\r\n                }\r\n                var endpointUrl = _isOneDs ? endpoint : endpoint[_DYN_REPLACE /* @min:%2ereplace */](/^(https?:)/, \"\");\r\n                xdr.open(STR_POST_METHOD, endpointUrl);\r\n                if (payload[_DYN_TIMEOUT /* @min:%2etimeout */]) {\r\n                    xdr[_DYN_TIMEOUT /* @min:%2etimeout */] = payload[_DYN_TIMEOUT /* @min:%2etimeout */];\r\n                }\r\n                xdr.send(data);\r\n                if (_isOneDs && sync) {\r\n                    _timeoutWrapper && _timeoutWrapper.set(function () {\r\n                        xdr.send(data);\r\n                    }, 0);\r\n                }\r\n                else {\r\n                    xdr.send(data);\r\n                }\r\n            }\r\n            function _initDefaults() {\r\n                _syncFetchPayload = 0;\r\n                _isInitialized = false;\r\n                _enableSendPromise = false;\r\n                _diagLog = null;\r\n                _isOneDs = null;\r\n                _onCompleteFuncs = null;\r\n                _disableCredentials = null;\r\n                _fetchCredentials = null;\r\n                _fallbackInst = null;\r\n                _disableXhr = false;\r\n                _disableBeacon = false;\r\n                _disableBeaconSync = false;\r\n                _disableFetchKeepAlive = false;\r\n                _addNoResponse = false;\r\n                _timeoutWrapper = null;\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for SenderPostManager.prototype.initialize.\r\n// Removed Stub for SenderPostManager.prototype.getSyncFetchPayload.\r\n// Removed Stub for SenderPostManager.prototype.SetConfig.\r\n// Removed Stub for SenderPostManager.prototype.getSenderInst.\r\n// Removed Stub for SenderPostManager.prototype.getFallbackInst.\r\n// Removed Stub for SenderPostManager.prototype._doTeardown.\r\n// Removed Stub for SenderPostManager.prototype.preparePayload.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    SenderPostManager.__ieDyn=1;\n\n    return SenderPostManager;\r\n}());\r\nexport { SenderPostManager };\r\n//# sourceMappingURL=SenderPostManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_EVT_NAME, _DYN_LENGTH, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n    if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n        return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n    }\r\n    return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n    if (evtNamespace) {\r\n        var theNamespace_1 = STR_EMPTY;\r\n        if (isArray(evtNamespace)) {\r\n            theNamespace_1 = STR_EMPTY;\r\n            arrForEach(evtNamespace, function (name) {\r\n                name = _normalizeNamespace(name);\r\n                if (name) {\r\n                    if (name[0] !== \".\") {\r\n                        name = \".\" + name;\r\n                    }\r\n                    theNamespace_1 += name;\r\n                }\r\n            });\r\n        }\r\n        else {\r\n            theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n        }\r\n        if (theNamespace_1) {\r\n            if (theNamespace_1[0] !== \".\") {\r\n                theNamespace_1 = \".\" + theNamespace_1;\r\n            }\r\n            // We may only have the namespace and not an eventName\r\n            eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n        }\r\n    }\r\n    var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n    return {\r\n        type: parsedEvent[1],\r\n        ns: ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\")\r\n    };\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n    var theEvents = [];\r\n    var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n    var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n    objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n        arrForEach(registeredEvents, function (value) {\r\n            if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value[_DYN_EVT_NAME /* @min:%2eevtName */][_DYN_TYPE /* @min:%2etype */]) {\r\n                if (!evtName.ns || evtName.ns === evtName.ns) {\r\n                    theEvents[_DYN_PUSH /* @min:%2epush */]({\r\n                        name: value.evtName[_DYN_TYPE /* @min:%2etype */] + (value[_DYN_EVT_NAME /* @min:%2eevtName */].ns ? \".\" + value[_DYN_EVT_NAME /* @min:%2eevtName */].ns : STR_EMPTY),\r\n                        handler: value.handler\r\n                    });\r\n                }\r\n            }\r\n        });\r\n    });\r\n    return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n    if (addDefault === void 0) { addDefault = true; }\r\n    var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n    var registeredEvents = aiEvts[evtName];\r\n    if (!registeredEvents) {\r\n        registeredEvents = aiEvts[evtName] = [];\r\n    }\r\n    return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n    if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n        if (obj[strRemoveEventListener]) {\r\n            obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n        }\r\n        else if (obj[strDetachEvent]) {\r\n            obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n        }\r\n    }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n    var result = false;\r\n    if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n        if (obj[strAddEventHelper]) {\r\n            // all browsers except IE before version 9\r\n            obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n            result = true;\r\n        }\r\n        else if (obj[strAttachEvent]) {\r\n            // IE before version 9\r\n            obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n            result = true;\r\n        }\r\n    }\r\n    return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n    var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n    while (idx--) {\r\n        var theEvent = events[idx];\r\n        if (theEvent) {\r\n            if (!evtName.ns || evtName.ns === theEvent[_DYN_EVT_NAME /* @min:%2eevtName */].ns) {\r\n                if (!unRegFn || unRegFn(theEvent)) {\r\n                    _doDetach(target, theEvent[_DYN_EVT_NAME /* @min:%2eevtName */], theEvent.handler, theEvent.capture);\r\n                    // Remove the registered event\r\n                    events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n    if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n        _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n    }\r\n    else {\r\n        var eventCache = elmNodeData.get(target, strEvents, {});\r\n        objForEachKey(eventCache, function (evtType, events) {\r\n            _doUnregister(target, events, evtName, unRegFn);\r\n        });\r\n        // Cleanup\r\n        if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n            elmNodeData.kill(target, strEvents);\r\n        }\r\n    }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n    var newNamespaces;\r\n    if (namespaces) {\r\n        if (isArray(namespaces)) {\r\n            newNamespaces = [theNamespace].concat(namespaces);\r\n        }\r\n        else {\r\n            newNamespaces = [theNamespace, namespaces];\r\n        }\r\n        // resort the namespaces so they are always in order\r\n        newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n    }\r\n    else {\r\n        newNamespaces = theNamespace;\r\n    }\r\n    return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n    if (useCapture === void 0) { useCapture = false; }\r\n    var result = false;\r\n    if (target) {\r\n        try {\r\n            var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n            result = _doAttach(target, evtName, handlerRef, useCapture);\r\n            if (result && elmNodeData.accept(target)) {\r\n                var registeredEvent = {\r\n                    guid: _guid++,\r\n                    evtName: evtName,\r\n                    handler: handlerRef,\r\n                    capture: useCapture\r\n                };\r\n                _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n            }\r\n        }\r\n        catch (e) {\r\n            // Just Ignore any error so that we don't break any execution path\r\n        }\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n    if (useCapture === void 0) { useCapture = false; }\r\n    if (target) {\r\n        try {\r\n            var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n            var found_1 = false;\r\n            _unregisterEvents(target, evtName_1, function (regEvent) {\r\n                if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {\r\n                    found_1 = true;\r\n                    return true;\r\n                }\r\n                return false;\r\n            });\r\n            if (!found_1) {\r\n                // fallback to try and remove as requested\r\n                _doDetach(target, evtName_1, handlerRef, useCapture);\r\n            }\r\n        }\r\n        catch (e) {\r\n            // Just Ignore any error so that we don't break any execution path\r\n        }\r\n    }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n    if (useCapture === void 0) { useCapture = false; }\r\n    return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn  - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n    if (useCapture === void 0) { useCapture = false; }\r\n    eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName  - The name of the event\r\n * @param callback  - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n    var result = false;\r\n    var w = getWindow();\r\n    if (w) {\r\n        result = eventOn(w, eventName, callback, evtNamespace);\r\n        result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n    }\r\n    var doc = getDocument();\r\n    if (doc) {\r\n        result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n    var w = getWindow();\r\n    if (w) {\r\n        eventOff(w, eventName, callback, evtNamespace);\r\n        eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n    }\r\n    var doc = getDocument();\r\n    if (doc) {\r\n        eventOff(doc, eventName, callback, evtNamespace);\r\n    }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n    var added = false;\r\n    if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n        arrForEach(events, function (name) {\r\n            if (name) {\r\n                if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n                    added = addEventHandler(name, listener, evtNamespace) || added;\r\n                }\r\n            }\r\n        });\r\n    }\r\n    return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n    var added = false;\r\n    if (listener && events && isArray(events)) {\r\n        added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n        if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n            // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n            added = _addEventListeners(events, listener, null, evtNamespace);\r\n        }\r\n    }\r\n    return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n    if (events && isArray(events)) {\r\n        arrForEach(events, function (name) {\r\n            if (name) {\r\n                removeEventHandler(name, listener, evtNamespace);\r\n            }\r\n        });\r\n    }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n    // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n    // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n    return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n    removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n    function _handlePageVisibility(evt) {\r\n        var doc = getDocument();\r\n        if (listener && doc && doc.visibilityState === \"hidden\") {\r\n            listener(evt);\r\n        }\r\n    }\r\n    // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n    var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n    var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n    if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n        pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n    }\r\n    if (!pageUnloadAdded && excludeEvents) {\r\n        // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n        pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n    }\r\n    return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n    // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n    var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n    removeEventListeners([strPageHide], listener, newNamespaces);\r\n    removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n    function _handlePageVisibility(evt) {\r\n        var doc = getDocument();\r\n        if (listener && doc && doc.visibilityState === \"visible\") {\r\n            listener(evt);\r\n        }\r\n    }\r\n    // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n    var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n    var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n    pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n    if (!pageShowAdded && excludeEvents) {\r\n        // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n        pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n    }\r\n    return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n    // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n    var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n    removeEventListeners([strPageShow], listener, newNamespaces);\r\n    removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getInst, objHasOwnProperty } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { _getObjProto } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n    \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n    if (arr) {\r\n        for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n            if (fn(arr[lp], lp)) {\r\n                break;\r\n            }\r\n        }\r\n    }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n    if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n        _arrLoop(hooks, function (hook, idx) {\r\n            var cbks = hook.cbks;\r\n            var cb = cbks[cbNames[type]];\r\n            if (cb) {\r\n                // Set the specific hook context implementation using a lazy creation pattern\r\n                callDetails.ctx = function () {\r\n                    var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n                    return ctx;\r\n                };\r\n                try {\r\n                    cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n                }\r\n                catch (err) {\r\n                    var orgEx = callDetails.err;\r\n                    try {\r\n                        // Report Hook error via the callback\r\n                        var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n                        if (hookErrorCb) {\r\n                            callDetails.err = err;\r\n                            hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n                    }\r\n                    finally {\r\n                        // restore the original exception (if any)\r\n                        callDetails.err = orgEx;\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n    // Define a temporary method that queues-up a the real method call\r\n    return function () {\r\n        var funcThis = this;\r\n        // Capture the original arguments passed to the method\r\n        var orgArgs = arguments;\r\n        var hooks = aiHook.h;\r\n        var funcArgs = {\r\n            name: aiHook.n,\r\n            inst: funcThis,\r\n            ctx: null,\r\n            set: _replaceArg\r\n        };\r\n        var hookCtx = [];\r\n        var cbArgs = _createArgs([funcArgs], orgArgs);\r\n        funcArgs.evt = getInst(\"event\");\r\n        function _createArgs(target, theArgs) {\r\n            _arrLoop(theArgs, function (arg) {\r\n                target[_DYN_PUSH /* @min:%2epush */](arg);\r\n            });\r\n            return target;\r\n        }\r\n        function _replaceArg(idx, value) {\r\n            orgArgs = _createArgs([], orgArgs);\r\n            orgArgs[idx] = value;\r\n            cbArgs = _createArgs([funcArgs], orgArgs);\r\n        }\r\n        // Call the pre-request hooks\r\n        _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n        // Call the original function was called\r\n        var theFunc = aiHook.f;\r\n        if (theFunc) {\r\n            try {\r\n                funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n            }\r\n            catch (err) {\r\n                // Report the request callback\r\n                funcArgs.err = err;\r\n                _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n                // rethrow the original exception so anyone listening for it can catch the exception\r\n                throw err;\r\n            }\r\n        }\r\n        // Call the post-request hooks\r\n        _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n        return funcArgs.rslt;\r\n    };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n    var owner = null;\r\n    if (target) {\r\n        if (objHasOwnProperty(target, name)) {\r\n            owner = target;\r\n        }\r\n        else if (checkPrototype) {\r\n            owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n        }\r\n    }\r\n    return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n    if (target) {\r\n        return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n    if (target) {\r\n        return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n    }\r\n    return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n    var aiHook = fn && fn[aiInstrumentHooks];\r\n    if (!aiHook) {\r\n        // Only hook the function once\r\n        aiHook = {\r\n            i: 0,\r\n            n: funcName,\r\n            f: fn,\r\n            h: []\r\n        };\r\n        // Override (hook) the original function\r\n        var newFunc = _createFunctionHook(aiHook);\r\n        newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n        owner[funcName] = newFunc;\r\n    }\r\n    var theHook = {\r\n        // tslint:disable:object-literal-shorthand\r\n        id: aiHook.i,\r\n        cbks: callbacks,\r\n        rm: function () {\r\n            // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n            // with the outer this and not the this for theHook instance.\r\n            var id = this.id;\r\n            _arrLoop(aiHook.h, function (hook, idx) {\r\n                if (hook.id === id) {\r\n                    aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n                    return 1;\r\n                }\r\n            });\r\n        }\r\n        // tslint:enable:object-literal-shorthand\r\n    };\r\n    aiHook.i++;\r\n    aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n    return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n    if (checkPrototype === void 0) { checkPrototype = true; }\r\n    if (target && funcName && callbacks) {\r\n        var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n        if (owner) {\r\n            var fn = owner[funcName];\r\n            if (typeof fn === strShimFunction) {\r\n                return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n            }\r\n        }\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n    if (checkPrototype === void 0) { checkPrototype = true; }\r\n    var hooks = null;\r\n    _arrLoop(funcNames, function (funcName) {\r\n        var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n        if (hook) {\r\n            if (!hooks) {\r\n                hooks = [];\r\n            }\r\n            hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n        }\r\n    });\r\n    return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n    if (target && evtName && callbacks) {\r\n        var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n        if (owner) {\r\n            return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n        }\r\n    }\r\n    return null;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = ( /* @__PURE__ */createValueMap({\r\n    requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n    requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n    requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n    requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n    traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n    traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n    sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n    sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n    requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n}));\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 46\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 6\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 8\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 5\r\nexport var _DYN_COUNT = \"count\"; // Count: 6\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_MATCH = \"match\"; // Count: 5\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_NAME = \"name\"; // Count: 10\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 10\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 4\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 5\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 5\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 6\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 5\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 4\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 9\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_AI_DATA_CONTRACT = \"aiDataContract\"; // Count: 4\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, fieldRedaction, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, isString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n    var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n    var field = dataSanitizeKey(logger, key);\r\n    // validation truncated the length.  We need to add uniqueness\r\n    if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n        var i = 0;\r\n        var uniqueField = field;\r\n        while (map[uniqueField] !== undefined) {\r\n            i++;\r\n            uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n        }\r\n        field = uniqueField;\r\n    }\r\n    return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n    var nameTrunc;\r\n    if (name) {\r\n        // Remove any leading or trailing whitespace\r\n        name = strTrim(asString(name));\r\n        // truncate the string to 150 chars\r\n        if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n            nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long.  It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n        }\r\n    }\r\n    return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n    if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n    var valueTrunc;\r\n    if (value) {\r\n        maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n        value = strTrim(asString(value));\r\n        if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n            valueTrunc = strSubstring(value, 0, maxLength);\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n        }\r\n    }\r\n    return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url, config) {\r\n    if (isString(url)) {\r\n        url = fieldRedaction(url, config);\r\n    }\r\n    return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n    var messageTrunc;\r\n    if (message) {\r\n        if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n            messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n        }\r\n    }\r\n    return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n    var exceptionTrunc;\r\n    if (exception) {\r\n        // Make surte its a string\r\n        var value = \"\" + exception;\r\n        if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n            exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n        }\r\n    }\r\n    return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n    if (properties) {\r\n        var tempProps_1 = {};\r\n        objForEachKey(properties, function (prop, value) {\r\n            if (isObject(value) && hasJSON()) {\r\n                // Stringify any part C properties\r\n                try {\r\n                    value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n                }\r\n            }\r\n            value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n            prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n            tempProps_1[prop] = value;\r\n        });\r\n        properties = tempProps_1;\r\n    }\r\n    return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n    if (measurements) {\r\n        var tempMeasurements_1 = {};\r\n        objForEachKey(measurements, function (measure, value) {\r\n            measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n            tempMeasurements_1[measure] = value;\r\n        });\r\n        measurements = tempMeasurements_1;\r\n    }\r\n    return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n    return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n    var inputTrunc;\r\n    if (input) {\r\n        input = strTrim(asString(input));\r\n        if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n            inputTrunc = strSubstring(input, 0, maxLength);\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n        }\r\n    }\r\n    return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n    var s = \"00\" + num;\r\n    return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_MATCH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n    var anchorIdx = _htmlAnchorIdx;\r\n    var anchorCache = _htmlAnchorElement;\r\n    var tempAnchor = anchorCache[anchorIdx];\r\n    if (!_document.createElement) {\r\n        // Always create the temp instance if createElement is not available\r\n        tempAnchor = { host: urlParseHost(url, true) };\r\n    }\r\n    else if (!anchorCache[anchorIdx]) {\r\n        // Create and cache the unattached anchor instance\r\n        tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n    }\r\n    tempAnchor.href = url;\r\n    // Move the cache index forward\r\n    anchorIdx++;\r\n    if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n        anchorIdx = 0;\r\n    }\r\n    _htmlAnchorIdx = anchorIdx;\r\n    return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n    var result;\r\n    var a = urlParseUrl(url);\r\n    if (a) {\r\n        result = a.href;\r\n    }\r\n    return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n    var result;\r\n    var a = urlParseUrl(url);\r\n    if (a) {\r\n        result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n    }\r\n    return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n    if (method) {\r\n        return method.toUpperCase() + \" \" + absoluteUrl;\r\n    }\r\n    return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n    var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n    if (fullHost) {\r\n        var match = fullHost[_DYN_MATCH /* @min:%2ematch */](/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n        if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n            return match[2] + (match[3] || \"\");\r\n        }\r\n    }\r\n    return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n    var result = null;\r\n    if (url) {\r\n        var match = url[_DYN_MATCH /* @min:%2ematch */](/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n        if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n            result = match[2] || \"\";\r\n            if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n                var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n                var port = match[3] || \"\";\r\n                // IE includes the standard port so pass it off if it's the same as the protocol\r\n                if (protocol === \"http\" && port === \":80\") {\r\n                    port = \"\";\r\n                }\r\n                else if (protocol === \"https\" && port === \":443\") {\r\n                    port = \"\";\r\n                }\r\n                result += port;\r\n            }\r\n        }\r\n    }\r\n    return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n    DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n    \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n    \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n    return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n    _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n    return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n    if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n        return false;\r\n    }\r\n    if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n        for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n            if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n                return false;\r\n            }\r\n        }\r\n    }\r\n    var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n    if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n        // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n        // try and parse it to remove if it matches the default protocol port\r\n        requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n    }\r\n    if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n        return false;\r\n    }\r\n    var includedDomains = config && config.correlationHeaderDomains;\r\n    if (includedDomains) {\r\n        var matchExists_1;\r\n        arrForEach(includedDomains, function (domain) {\r\n            var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n            matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n        });\r\n        if (!matchExists_1) {\r\n            return false;\r\n        }\r\n    }\r\n    var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n    if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n        return true;\r\n    }\r\n    for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n        var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n        if (regex.test(requestHost)) {\r\n            return false;\r\n        }\r\n    }\r\n    // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n    // Previously we always returned false for a falsy requestHost\r\n    return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n    if (responseHeader) {\r\n        var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n        if (correlationId && correlationId !== _correlationIdPrefix) {\r\n            return correlationId;\r\n        }\r\n    }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n    if (responseHeader) {\r\n        var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n        for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n            var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n            if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n                return keyValue[1];\r\n            }\r\n        }\r\n    }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n    var target, name = commandName, data = commandName;\r\n    if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n        var parsedUrl = urlParseUrl(absoluteUrl);\r\n        target = parsedUrl.host;\r\n        if (!name) {\r\n            if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n                var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n                if (pathName.charAt(0) !== \"/\") {\r\n                    pathName = \"/\" + pathName;\r\n                }\r\n                data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n                name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n            }\r\n            else {\r\n                name = dataSanitizeString(logger, absoluteUrl);\r\n            }\r\n        }\r\n    }\r\n    else {\r\n        target = commandName;\r\n        name = commandName;\r\n    }\r\n    return {\r\n        target: target,\r\n        name: name,\r\n        data: data\r\n    };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n    // returns the window or webworker performance object\r\n    var perf = getPerformance();\r\n    if (perf && perf.now && perf.timing) {\r\n        var now = perf.now() + perf.timing.navigationStart;\r\n        // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n        if (now > 0) {\r\n            return now;\r\n        }\r\n    }\r\n    return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n    var result = null;\r\n    if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n        result = end - start;\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n    var trace = telemetryTrace || {};\r\n    return {\r\n        getName: function () {\r\n            return trace[_DYN_NAME /* @min:%2ename */];\r\n        },\r\n        setName: function (newValue) {\r\n            parentCtx && parentCtx.setName(newValue);\r\n            trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n        },\r\n        getTraceId: function () {\r\n            return trace.traceID;\r\n        },\r\n        setTraceId: function (newValue) {\r\n            parentCtx && parentCtx.setTraceId(newValue);\r\n            if (isValidTraceId(newValue)) {\r\n                trace.traceID = newValue;\r\n            }\r\n        },\r\n        getSpanId: function () {\r\n            return trace.parentID;\r\n        },\r\n        setSpanId: function (newValue) {\r\n            parentCtx && parentCtx.setSpanId(newValue);\r\n            if (isValidSpanId(newValue)) {\r\n                trace.parentID = newValue;\r\n            }\r\n        },\r\n        getTraceFlags: function () {\r\n            return trace.traceFlags;\r\n        },\r\n        setTraceFlags: function (newTraceFlags) {\r\n            parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n            trace.traceFlags = newTraceFlags;\r\n        }\r\n    };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = ( /* @__PURE__ */createEnumStyle({\r\n    LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n    SessionStorage: 1 /* eStorageType.SessionStorage */\r\n}));\r\nexport var DistributedTracingModes = ( /* @__PURE__ */createEnumStyle({\r\n    AI: 0 /* eDistributedTracingModes.AI */,\r\n    AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n    W3C: 2 /* eDistributedTracingModes.W3C */\r\n}));\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = ( /* @__PURE__ */createEnumStyle({\r\n    /**\r\n     * Normal persistence.\r\n     */\r\n    Normal: 1 /* EventPersistenceValue.Normal */,\r\n    /**\r\n     * Critical persistence.\r\n     */\r\n    Critical: 2 /* EventPersistenceValue.Critical */\r\n}));\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\nvar _storagePrefix = \"\";\r\n/**\r\n * Gets the localStorage object if available\r\n * @returns {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n    if (utlCanUseLocalStorage()) {\r\n        return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @returns {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n    try {\r\n        if (isNullOrUndefined(getGlobal())) {\r\n            return null;\r\n        }\r\n        var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n        var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n        var name_1 = _storagePrefix + uid;\r\n        storage.setItem(name_1, uid);\r\n        var fail = storage.getItem(name_1) !== uid;\r\n        storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name_1);\r\n        if (!fail) {\r\n            return storage;\r\n        }\r\n    }\r\n    catch (exception) {\r\n        // eslint-disable-next-line no-empty\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @returns {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n    if (utlCanUseSessionStorage()) {\r\n        return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n    _canUseLocalStorage = false;\r\n    _canUseSessionStorage = false;\r\n}\r\nexport function utlSetStoragePrefix(storagePrefix) {\r\n    _storagePrefix = storagePrefix || \"\";\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n    _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n    _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n    if (reset || _canUseLocalStorage === undefined) {\r\n        _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n    }\r\n    return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n    var storage = _getLocalStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            return storage.getItem(name);\r\n        }\r\n        catch (e) {\r\n            _canUseLocalStorage = false;\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n    var storage = _getLocalStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            storage.setItem(name, data);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            _canUseLocalStorage = false;\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n    var storage = _getLocalStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            _canUseLocalStorage = false;\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n    if (reset || _canUseSessionStorage === undefined) {\r\n        _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n    }\r\n    return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n    var keys = [];\r\n    if (utlCanUseSessionStorage()) {\r\n        objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n            keys.push(key);\r\n        });\r\n    }\r\n    return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n    var storage = _getSessionStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            return storage.getItem(name);\r\n        }\r\n        catch (e) {\r\n            _canUseSessionStorage = false;\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n    var storage = _getSessionStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            storage.setItem(name, data);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            _canUseSessionStorage = false;\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n    var storage = _getSessionStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            _canUseSessionStorage = false;\r\n            _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _throwInternal, arrIndexOf, isNotNullOrUndefined, isNullOrUndefined, onConfigChange, randomValue, safeGetLogger, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { arrForEach, mathFloor, mathMin, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { _DYN_COUNT, _DYN_GET_UTCDATE, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PRE_TRIGGER_DATE, _DYN_STRINGIFY } from \"./__DynamicConstants\";\r\nvar THROTTLE_STORAGE_PREFIX = \"appInsightsThrottle\";\r\nvar ThrottleMgr = /** @class */ (function () {\r\n    function ThrottleMgr(core, namePrefix) {\r\n        var _self = this;\r\n        var _canUseLocalStorage;\r\n        var _logger;\r\n        var _config;\r\n        var _localStorageObj;\r\n        var _isTriggered; //_isTriggered is to make sure that we only trigger throttle once a day\r\n        var _namePrefix;\r\n        var _queue;\r\n        var _isReady = false;\r\n        var _isSpecificDaysGiven = false;\r\n        _initConfig();\r\n        // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n        _self[\"_getDbgPlgTargets\"] = function () {\r\n            return [_queue];\r\n        };\r\n        _self.getConfig = function () {\r\n            return _config;\r\n        };\r\n        /**\r\n         * Check if it is the correct day to send message.\r\n         * If _isTriggered is true, even if canThrottle returns true, message will not be sent,\r\n         * because we only allow triggering sendMessage() once a day.\r\n         * @returns if the current date is the valid date to send message\r\n         */\r\n        _self.canThrottle = function (msgId) {\r\n            var localObj = _getLocalStorageObjByKey(msgId);\r\n            var cfg = _getCfgByKey(msgId);\r\n            return _canThrottle(cfg, _canUseLocalStorage, localObj);\r\n        };\r\n        /**\r\n         * Check if throttle is triggered on current day(UTC)\r\n         * if canThrottle returns false, isTriggered will return false\r\n         * @returns if throttle is triggered on current day(UTC)\r\n         */\r\n        _self.isTriggered = function (msgId) {\r\n            return _isTrigger(msgId);\r\n        };\r\n        /**\r\n         * Before isReady set to true, all message will be stored in queue.\r\n         * Message will only be sent out after isReady set to true.\r\n         * Initial and default value: false\r\n         * @returns isReady state\r\n         */\r\n        _self.isReady = function () {\r\n            return _isReady;\r\n        };\r\n        /**\r\n         * Flush all message with given message key in queue with isReady state set to true.\r\n         * @returns if message queue is flushed\r\n         */\r\n        _self.flush = function (msgId) {\r\n            try {\r\n                var queue = _getQueueByKey(msgId);\r\n                if (queue && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    var items = queue.slice(0);\r\n                    _queue[msgId] = [];\r\n                    arrForEach(items, function (item) {\r\n                        _flushMessage(item.msgID, item[_DYN_MESSAGE /* @min:%2emessage */], item.severity, false);\r\n                    });\r\n                    return true;\r\n                }\r\n            }\r\n            catch (err) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n            return false;\r\n        };\r\n        /**\r\n         * Flush all message in queue with isReady state set to true.\r\n         * @returns if message queue is flushed\r\n         */\r\n        _self.flushAll = function () {\r\n            try {\r\n                if (_queue) {\r\n                    var result_1 = true;\r\n                    objForEachKey(_queue, function (key) {\r\n                        var isFlushed = _self.flush(parseInt(key));\r\n                        result_1 = result_1 && isFlushed;\r\n                    });\r\n                    return result_1;\r\n                }\r\n            }\r\n            catch (err) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n            return false;\r\n        };\r\n        /**\r\n         * Set isReady State\r\n         * if isReady set to true, message queue will be flushed automatically.\r\n         * @param isReady - isReady State\r\n         * @pa\r\n         * @returns if message queue is flushed\r\n         */\r\n        _self.onReadyState = function (isReady, flushAll) {\r\n            if (flushAll === void 0) { flushAll = true; }\r\n            _isReady = isNullOrUndefined(isReady) ? true : isReady;\r\n            if (_isReady && flushAll) {\r\n                return _self.flushAll();\r\n            }\r\n            return null;\r\n        };\r\n        _self.sendMessage = function (msgID, message, severity) {\r\n            return _flushMessage(msgID, message, severity, true);\r\n        };\r\n        function _flushMessage(msgID, message, severity, saveUnsentMsg) {\r\n            if (_isReady) {\r\n                var isSampledIn = _canSampledIn(msgID);\r\n                if (!isSampledIn) {\r\n                    return;\r\n                }\r\n                var cfg = _getCfgByKey(msgID);\r\n                var localStorageObj = _getLocalStorageObjByKey(msgID);\r\n                var canThrottle = _canThrottle(cfg, _canUseLocalStorage, localStorageObj);\r\n                var throttled = false;\r\n                var number = 0;\r\n                var isTriggered = _isTrigger(msgID);\r\n                try {\r\n                    if (canThrottle && !isTriggered) {\r\n                        number = mathMin(cfg.limit.maxSendNumber, localStorageObj[_DYN_COUNT /* @min:%2ecount */] + 1);\r\n                        localStorageObj[_DYN_COUNT /* @min:%2ecount */] = 0;\r\n                        throttled = true;\r\n                        _isTriggered[msgID] = true;\r\n                        localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */] = new Date();\r\n                    }\r\n                    else {\r\n                        _isTriggered[msgID] = canThrottle;\r\n                        localStorageObj[_DYN_COUNT /* @min:%2ecount */] += 1;\r\n                    }\r\n                    var localStorageName = _getLocalStorageName(msgID);\r\n                    _resetLocalStorage(_logger, localStorageName, localStorageObj);\r\n                    for (var i = 0; i < number; i++) {\r\n                        _sendMessage(msgID, _logger, message, severity);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return {\r\n                    isThrottled: throttled,\r\n                    throttleNum: number\r\n                };\r\n            }\r\n            else {\r\n                if (!!saveUnsentMsg) {\r\n                    var queue = _getQueueByKey(msgID);\r\n                    queue.push({\r\n                        msgID: msgID,\r\n                        message: message,\r\n                        severity: severity\r\n                    });\r\n                }\r\n            }\r\n            return null;\r\n        }\r\n        function _initConfig() {\r\n            _logger = safeGetLogger(core);\r\n            _isTriggered = {};\r\n            _localStorageObj = {};\r\n            _queue = {};\r\n            _config = {};\r\n            _setCfgByKey(109 /* _eInternalMessageId.DefaultThrottleMsgKey */);\r\n            _namePrefix = isNotNullOrUndefined(namePrefix) ? namePrefix : \"\";\r\n            core.addUnloadHook(onConfigChange(core.config, function (details) {\r\n                var coreConfig = details.cfg;\r\n                _canUseLocalStorage = utlCanUseLocalStorage();\r\n                var configMgr = coreConfig.throttleMgrCfg || {};\r\n                objForEachKey(configMgr, function (key, cfg) {\r\n                    _setCfgByKey(parseInt(key), cfg);\r\n                });\r\n            }));\r\n        }\r\n        function _getCfgByKey(msgID) {\r\n            return _config[msgID] || _config[109 /* _eInternalMessageId.DefaultThrottleMsgKey */];\r\n        }\r\n        function _setCfgByKey(msgID, config) {\r\n            var _a, _b;\r\n            try {\r\n                var cfg = config || {};\r\n                var curCfg = {};\r\n                curCfg.disabled = !!cfg.disabled;\r\n                var configInterval = cfg.interval || {};\r\n                _isSpecificDaysGiven = (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth) && (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth[_DYN_LENGTH /* @min:%2elength */]) > 0;\r\n                curCfg.interval = _getIntervalConfig(configInterval);\r\n                var limit = {\r\n                    samplingRate: ((_a = cfg.limit) === null || _a === void 0 ? void 0 : _a.samplingRate) || 100,\r\n                    // dafault: every time sent only 1 event\r\n                    maxSendNumber: ((_b = cfg.limit) === null || _b === void 0 ? void 0 : _b.maxSendNumber) || 1\r\n                };\r\n                curCfg.limit = limit;\r\n                _config[msgID] = curCfg;\r\n            }\r\n            catch (e) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n        }\r\n        function _getIntervalConfig(interval) {\r\n            interval = interval || {};\r\n            var monthInterval = interval === null || interval === void 0 ? void 0 : interval.monthInterval;\r\n            var dayInterval = interval === null || interval === void 0 ? void 0 : interval.dayInterval;\r\n            // default: send data every 3 month each year\r\n            if (isNullOrUndefined(monthInterval) && isNullOrUndefined(dayInterval)) {\r\n                interval.monthInterval = 3;\r\n                if (!_isSpecificDaysGiven) {\r\n                    // default: send data on 28th\r\n                    interval.daysOfMonth = [28];\r\n                    _isSpecificDaysGiven = true;\r\n                }\r\n            }\r\n            interval = {\r\n                // dafault: sent every three months\r\n                monthInterval: interval === null || interval === void 0 ? void 0 : interval.monthInterval,\r\n                dayInterval: interval === null || interval === void 0 ? void 0 : interval.dayInterval,\r\n                daysOfMonth: interval === null || interval === void 0 ? void 0 : interval.daysOfMonth\r\n            };\r\n            return interval;\r\n        }\r\n        function _canThrottle(config, canUseLocalStorage, localStorageObj) {\r\n            if (config && !config.disabled && canUseLocalStorage && isNotNullOrUndefined(localStorageObj)) {\r\n                var curDate = _getThrottleDate();\r\n                var date = localStorageObj.date;\r\n                var interval = config.interval;\r\n                var monthCheck = 1;\r\n                if (interval === null || interval === void 0 ? void 0 : interval.monthInterval) {\r\n                    var monthExpand = (curDate.getUTCFullYear() - date.getUTCFullYear()) * 12 + curDate.getUTCMonth() - date.getUTCMonth();\r\n                    monthCheck = _checkInterval(interval.monthInterval, 0, monthExpand);\r\n                }\r\n                var dayCheck = 1;\r\n                if (_isSpecificDaysGiven) {\r\n                    dayCheck = arrIndexOf(interval.daysOfMonth, curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]());\r\n                }\r\n                else if (interval === null || interval === void 0 ? void 0 : interval.dayInterval) {\r\n                    var daySpan = mathFloor((curDate.getTime() - date.getTime()) / 86400000);\r\n                    dayCheck = _checkInterval(interval.dayInterval, 0, daySpan);\r\n                }\r\n                return monthCheck >= 0 && dayCheck >= 0;\r\n            }\r\n            return false;\r\n        }\r\n        function _getLocalStorageName(msgKey, prefix) {\r\n            var fix = isNotNullOrUndefined(prefix) ? prefix : \"\";\r\n            if (msgKey) {\r\n                return THROTTLE_STORAGE_PREFIX + fix + \"-\" + msgKey;\r\n            }\r\n            return null;\r\n        }\r\n        // returns if throttle is triggered on current Date\r\n        function _isTriggeredOnCurDate(preTriggerDate) {\r\n            try {\r\n                if (preTriggerDate) {\r\n                    var curDate = new Date();\r\n                    return preTriggerDate.getUTCFullYear() === curDate.getUTCFullYear() &&\r\n                        preTriggerDate.getUTCMonth() === curDate.getUTCMonth() &&\r\n                        preTriggerDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]() === curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]();\r\n                }\r\n            }\r\n            catch (e) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n            return false;\r\n        }\r\n        // transfer local storage string value to object that identifies start date, current count and preTriggerDate\r\n        function _getLocalStorageObj(value, logger, storageName) {\r\n            try {\r\n                var storageObj = {\r\n                    date: _getThrottleDate(),\r\n                    count: 0\r\n                };\r\n                if (value) {\r\n                    var obj = JSON.parse(value);\r\n                    var curObj = {\r\n                        date: _getThrottleDate(obj.date) || storageObj.date,\r\n                        count: obj[_DYN_COUNT /* @min:%2ecount */] || storageObj[_DYN_COUNT /* @min:%2ecount */],\r\n                        preTriggerDate: obj.preTriggerDate ? _getThrottleDate(obj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]) : undefined\r\n                    };\r\n                    return curObj;\r\n                }\r\n                else {\r\n                    _resetLocalStorage(logger, storageName, storageObj);\r\n                    return storageObj;\r\n                }\r\n            }\r\n            catch (e) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n            return null;\r\n        }\r\n        // if datestr is not defined, current date will be returned\r\n        function _getThrottleDate(dateStr) {\r\n            // if new Date() can't be created through the provided dateStr, null will be returned.\r\n            try {\r\n                if (dateStr) {\r\n                    var date = new Date(dateStr);\r\n                    //make sure it is a valid Date Object\r\n                    if (!isNaN(date.getDate())) {\r\n                        return date;\r\n                    }\r\n                }\r\n                else {\r\n                    return new Date();\r\n                }\r\n            }\r\n            catch (e) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n            return null;\r\n        }\r\n        function _resetLocalStorage(logger, storageName, obj) {\r\n            try {\r\n                return utlSetLocalStorage(logger, storageName, strTrim(JSON[_DYN_STRINGIFY /* @min:%2estringify */](obj)));\r\n            }\r\n            catch (e) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n            return false;\r\n        }\r\n        function _checkInterval(interval, start, current) {\r\n            if (interval <= 0) {\r\n                return 1;\r\n            }\r\n            // count from start year\r\n            return (current >= start) && (current - start) % interval == 0 ? mathFloor((current - start) / interval) + 1 : -1;\r\n        }\r\n        function _sendMessage(msgID, logger, message, severity) {\r\n            _throwInternal(logger, severity || 1 /* eLoggingSeverity.CRITICAL */, msgID, message);\r\n        }\r\n        // NOTE: config.limit.samplingRate is set to 4 decimal places,\r\n        // so config.limit.samplingRate = 1 means 0.0001%\r\n        function _canSampledIn(msgID) {\r\n            try {\r\n                var cfg = _getCfgByKey(msgID);\r\n                return randomValue(1000000) <= cfg.limit.samplingRate;\r\n            }\r\n            catch (e) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n            return false;\r\n        }\r\n        function _getLocalStorageObjByKey(key) {\r\n            try {\r\n                var curObj = _localStorageObj[key];\r\n                if (!curObj) {\r\n                    var localStorageName = _getLocalStorageName(key, _namePrefix);\r\n                    curObj = _getLocalStorageObj(utlGetLocalStorage(_logger, localStorageName), _logger, localStorageName);\r\n                    _localStorageObj[key] = curObj;\r\n                }\r\n                return _localStorageObj[key];\r\n            }\r\n            catch (e) {\r\n                // eslint-disable-next-line no-empty\r\n            }\r\n            return null;\r\n        }\r\n        function _isTrigger(key) {\r\n            var isTrigger = _isTriggered[key];\r\n            if (isNullOrUndefined(isTrigger)) {\r\n                isTrigger = false;\r\n                var localStorageObj = _getLocalStorageObjByKey(key);\r\n                if (localStorageObj) {\r\n                    isTrigger = _isTriggeredOnCurDate(localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]);\r\n                }\r\n                _isTriggered[key] = isTrigger;\r\n            }\r\n            return _isTriggered[key];\r\n        }\r\n        function _getQueueByKey(key) {\r\n            _queue = _queue || {};\r\n            if (isNullOrUndefined(_queue[key])) {\r\n                _queue[key] = [];\r\n            }\r\n            return _queue[key];\r\n        }\r\n    }\r\n    return ThrottleMgr;\r\n}());\r\nexport { ThrottleMgr };\r\n//# sourceMappingURL=ThrottleMgr.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys, strEndsWith } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n    if (!connectionString) {\r\n        return {};\r\n    }\r\n    var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n    var result = arrReduce(kvPairs, function (fields, kv) {\r\n        var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n        if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n            var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n            var value = kvParts[1];\r\n            fields[key] = value;\r\n        }\r\n        return fields;\r\n    }, {});\r\n    if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n        // this is a valid connection string, so parse the results\r\n        if (result.endpointsuffix) {\r\n            // apply the default endpoints\r\n            var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n            result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n        }\r\n        // apply user override endpoint or the default endpoints\r\n        result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n        if (strEndsWith(result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */], \"/\")) {\r\n            result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */].slice(0, -1);\r\n        }\r\n    }\r\n    return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n    parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_AI_DATA_CONTRACT, _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of telemetry data.\r\n     */\r\n    function Envelope(logger, data, name) {\r\n        var _this = this;\r\n        var _self = this;\r\n        _self.ver = 1;\r\n        _self.sampleRate = 100.0;\r\n        _self.tags = {};\r\n        _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n        _self.data = data;\r\n        _self.time = toISOString(new Date());\r\n        _self[_DYN_AI_DATA_CONTRACT /* @min:%2eaiDataContract */] = {\r\n            time: 1 /* FieldType.Required */,\r\n            iKey: 1 /* FieldType.Required */,\r\n            name: 1 /* FieldType.Required */,\r\n            sampleRate: function () {\r\n                return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n            },\r\n            tags: 1 /* FieldType.Required */,\r\n            data: 1 /* FieldType.Required */\r\n        };\r\n    }\r\n    return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the EventTelemetry object\r\n     */\r\n    function Event(logger, name, properties, measurements) {\r\n        this.aiDataContract = {\r\n            ver: 1 /* FieldType.Required */,\r\n            name: 1 /* FieldType.Required */,\r\n            properties: 0 /* FieldType.Default */,\r\n            measurements: 0 /* FieldType.Default */\r\n        };\r\n        var _self = this;\r\n        _self.ver = 2;\r\n        _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n        _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n        _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n    }\r\n    Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n    Event.dataType = \"EventData\";\r\n    return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, getWindow, objFreeze, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_AI_DATA_CONTRACT, _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_LENGTH, _DYN_LINE, _DYN_MATCH, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\n// These Regex covers the following patterns\r\n// 1. Chrome/Firefox/IE/Edge:\r\n//    at functionName (filename:lineNumber:columnNumber)\r\n//    at functionName (filename:lineNumber)\r\n//    at filename:lineNumber:columnNumber\r\n//    at filename:lineNumber\r\n//    at functionName@filename:lineNumber:columnNumber\r\n// 2. Safari / Opera:\r\n//    functionName@filename:lineNumber:columnNumber\r\n//    functionName@filename:lineNumber\r\n//    filename:lineNumber:columnNumber\r\n//    filename:lineNumber\r\n//    Line ## of scriptname script filename:lineNumber:columnNumber\r\n//    Line ## of scriptname script filename\r\n// 3. IE/Edge (Additional formats)\r\n//    at functionName@filename:lineNumber\r\nvar STACKFRAME_BASE_SIZE = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n/**\r\n * Check if the string conforms to what looks like a stack frame line and not just a general message\r\n * comment or other non-stack related info.\r\n *\r\n * This  should be used to filter out any leading \"message\" lines from a stack trace, before attempting to parse\r\n * the individual stack frames. Once you have estabilsted the start of the stack frames you can then use the\r\n * FULL_STACK_FRAME_1, FULL_STACK_FRAME_2, FULL_STACK_FRAME_3, and EXTRACT_FILENAME to parse the individual\r\n * stack frames to extract the method, filename, line number, and column number.\r\n * These may still provide invalid matches, so the sequence of execution is important to avoid providing\r\n * an invalid parsed stack.\r\n */\r\nvar IS_FRAME = /^\\s{0,50}(from\\s|at\\s|Line\\s{1,5}\\d{1,10}\\s{1,5}of|\\w{1,50}@\\w{1,80}|[^\\(\\s\\n]+:[0-9\\?]+(?::[0-9\\?]+)?)/;\r\n/**\r\n * Parse a well formed stack frame with both the line and column numbers\r\n * ----------------------------------\r\n * **Primary focus of the matching**\r\n * - at functionName (filename:lineNumber:columnNumber)\r\n * - at filename:lineNumber:columnNumber\r\n * - at functionName@filename:lineNumber:columnNumber\r\n * - functionName (filename:lineNumber:columnNumber)\r\n * - filename:lineNumber:columnNumber\r\n * - functionName@filename:lineNumber:columnNumber\r\n */\r\nvar FULL_STACK_FRAME_1 = /^(?:\\s{0,50}at)?\\s{0,50}([^\\@\\()\\s]+)?\\s{0,50}(?:\\s|\\@|\\()\\s{0,5}([^\\(\\s\\n\\]]+):([0-9\\?]+):([0-9\\?]+)\\)?$/;\r\n/**\r\n * Parse a well formed stack frame with only a line number.\r\n * ----------------------------------\r\n * > Note: this WILL also match with line and column number, but the line number is included with the filename\r\n * > you should attempt to match with FULL_STACK_FRAME_1 first.\r\n *\r\n * **Primary focus of the matching (run FULL_STACK_FRAME_1 first)**\r\n * - at functionName (filename:lineNumber)\r\n * - at filename:lineNumber\r\n * - at functionName@filename:lineNumber\r\n * - functionName (filename:lineNumber)\r\n * - filename:lineNumber\r\n * - functionName@filename:lineNumber\r\n *\r\n * **Secondary matches**\r\n * - at functionName (filename:lineNumber:columnNumber)\r\n * - at filename:lineNumber:columnNumber\r\n * - at functionName@filename:lineNumber:columnNumber\r\n * - functionName (filename:lineNumber:columnNumber)\r\n * - filename:lineNumber:columnNumber\r\n * - functionName@filename:lineNumber:columnNumber\r\n */\r\nvar FULL_STACK_FRAME_2 = /^(?:\\s{0,50}at)?\\s{0,50}([^\\@\\()\\s]+)?\\s{0,50}(?:\\s|\\@|\\()\\s{0,5}([^\\(\\s\\n\\]]+):([0-9\\?]+)\\)?$/;\r\n/**\r\n * Attempt to Parse a frame that doesn't include a line or column number.\r\n * ----------------------------------\r\n * > Note: this WILL also match lines with a line or line and column number, you should attempt to match with\r\n * both FULL_STACK_FRAME_1 and FULL_STACK_FRAME_2 first to avoid false positives.\r\n *\r\n * **Unexpected Invalid Matches** (Matches that should be avoided -- by using the FULL_STACK_FRAME_1 and FULL_STACK_FRAME_2 first)\r\n * - at https://localhost:44365/static/node_bundles/@microsoft/blah/js/bundle.js:144112:27\r\n * - at https://localhost:44365/static/node_bundles/@microsoft/blah/js/bundle.js:144112:27\r\n *\r\n * **Primary focus of the matching (run FULL_STACK_FRAME_1 first)**\r\n * - at functionName@filename\r\n * - at functionName (filename)\r\n * - at functionName filename\r\n * - at filename  <- Will actuall match this as the \"method\" and not the filename (care should be taken to avoid this)\r\n * - functionName@filename\r\n * - functionName (filename)\r\n * - functionName filename\r\n * - functionName\r\n *\r\n * **Secondary matches** (The line and column numbers will be included with the matched filename)\r\n * - at functionName (filename:lineNumber:columnNumber)\r\n * - at functionName (filename:lineNumber)\r\n * - at filename:lineNumber:columnNumber\r\n * - at filename:lineNumber\r\n * - at functionName@filename:lineNumber:columnNumber\r\n * - at functionName@filename:lineNumber\r\n * - functionName (filename:lineNumber:columnNumber)\r\n * - functionName (filename:lineNumber)\r\n * - filename:lineNumber:columnNumber\r\n * - filename:lineNumber\r\n * - functionName@filename:lineNumber:columnNumber\r\n * - functionName@filename:lineNumber\r\n  */\r\nvar FULL_STACK_FRAME_3 = /^(?:\\s{0,50}at)?\\s{0,50}([^\\@\\()\\s]+)?\\s{0,50}(?:\\s|\\@|\\()\\s{0,5}([^\\(\\s\\n\\)\\]]+)\\)?$/;\r\n/**\r\n * Attempt to extract the filename (with or without line and column numbers) from a string.\r\n * ----------------------------------\r\n * > Note: this will only match the filename (with any line or column numbers) and will\r\n * > return what looks like the filename, however, it will also match random strings that\r\n * > look like a filename, so care should be taken to ensure that the filename is actually\r\n * > a filename before using it.\r\n * >\r\n * > It is recommended to use this in conjunction with the FULL_STACK_FRAME_1, FULL_STACK_FRAME_2, and FULL_STACK_FRAME_3\r\n * > to ensure first to reduce false matches, if all of these fail then you can use this to extract the filename from a random\r\n * > strings to identify any potential filename from a known stack frame line.\r\n *\r\n * **Known Invalid matching**\r\n *\r\n * This regex will basically match any \"final\" string of a line or one that is trailed by a comma, so this should not\r\n * be used as the \"only\" matching regex, but rather as a final fallback to extract the filename from a string.\r\n * If you are certain that the string line is a stack frame and not part of the exception message (lines before the stack)\r\n * or trailing comments, then you can use this to extract the filename and then further parse with PARSE_FILENAME_LINE_COL\r\n * and PARSE_FILENAME_LINE_ONLY to extract any potential the line and column numbers.\r\n *\r\n * **Primary focus of the matching**\r\n * - at (anonymous) @ VM60:1\r\n * - Line 21 of linked script file://localhost/C:/Temp/stacktrace.js\r\n * - Line 11 of inline#1 script in http://localhost:3000/static/js/main.206f4846.js:2:296748\r\n * - Line 68 of inline#2 script in file://localhost/teststack.html\r\n * - at Global code (http://example.com/stacktrace.js:11:1)\r\n */\r\nvar EXTRACT_FILENAME = /(?:^|\\(|\\s{0,10}[\\w\\)]+\\@)?([^\\(\\n\\s\\]\\)]+)(?:\\:([0-9]+)(?:\\:([0-9]+))?)?\\)?(?:,|$)/;\r\n/**\r\n * Attempt to extract the filename, line number, and column number from a string.\r\n */\r\nvar PARSE_FILENAME_LINE_COL = /([^\\(\\s\\n]+):([0-9]+):([0-9]+)$/;\r\n/**\r\n * Attempt to extract the filename and line number from a string.\r\n */\r\nvar PARSE_FILENAME_LINE_ONLY = /([^\\(\\s\\n]+):([0-9]+)$/;\r\nvar NoMethod = \"<no_method>\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nvar _parseSequence = [\r\n    { re: FULL_STACK_FRAME_1, len: 5, m: 1, fn: 2, ln: 3, col: 4 },\r\n    { chk: _ignoreNative, pre: _scrubAnonymous, re: FULL_STACK_FRAME_2, len: 4, m: 1, fn: 2, ln: 3 },\r\n    { re: FULL_STACK_FRAME_3, len: 3, m: 1, fn: 2, hdl: _handleFilename },\r\n    { re: EXTRACT_FILENAME, len: 2, fn: 1, hdl: _handleFilename }\r\n];\r\nfunction _scrubAnonymous(frame) {\r\n    return frame.replace(/(\\(anonymous\\))/, \"<anonymous>\");\r\n}\r\nfunction _ignoreNative(frame) {\r\n    return strIndexOf(frame, \"[native\") < 0;\r\n}\r\nfunction _stringify(value, convertToString) {\r\n    var result = value;\r\n    if (result && !isString(result)) {\r\n        if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n            result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n            if (convertToString && (!result || result === \"{}\")) {\r\n                if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n                    result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n                }\r\n                else {\r\n                    result = \"\" + value;\r\n                }\r\n            }\r\n        }\r\n        else {\r\n            result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n        }\r\n    }\r\n    return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n    var evtMessage = theEvent;\r\n    if (theEvent) {\r\n        if (evtMessage && !isString(evtMessage)) {\r\n            evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n        }\r\n        // Make sure the message is a string\r\n        if (evtMessage && !isString(evtMessage)) {\r\n            // tslint:disable-next-line: prefer-conditional-expression\r\n            evtMessage = _stringify(evtMessage, true);\r\n        }\r\n        if (theEvent[\"filename\"]) {\r\n            // Looks like an event object with filename\r\n            evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n        }\r\n    }\r\n    // Automatically add the error type to the message if it does already appear to be present\r\n    if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n        evtMessage = errorType + \": \" + evtMessage;\r\n    }\r\n    return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n    try {\r\n        if (isObject(value)) {\r\n            return \"hasFullStack\" in value && \"typeName\" in value;\r\n        }\r\n    }\r\n    catch (e) {\r\n        // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n    }\r\n    return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n    try {\r\n        if (isObject(value)) {\r\n            return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n        }\r\n    }\r\n    catch (e) {\r\n        // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n    }\r\n    return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n    return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n    var src = errorStack || \"\";\r\n    if (!isString(src)) {\r\n        if (isString(src[strStack])) {\r\n            src = src[strStack];\r\n        }\r\n        else {\r\n            src = \"\" + src;\r\n        }\r\n    }\r\n    var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n    return {\r\n        src: src,\r\n        obj: items\r\n    };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n    var stack = [];\r\n    var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n    for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n        var entry = lines[lp];\r\n        if (lines[lp + 1]) {\r\n            entry += \"@\" + lines[lp + 1];\r\n            lp++;\r\n        }\r\n        stack.push(entry);\r\n    }\r\n    return {\r\n        src: errorMessage,\r\n        obj: stack\r\n    };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n    var details = null;\r\n    if (errorObj) {\r\n        try {\r\n            /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n            notation for undefined objects and we don't want to loose the error from being reported */\r\n            if (errorObj[strStack]) {\r\n                // Chrome/Firefox\r\n                details = _convertStackObj(errorObj[strStack]);\r\n            }\r\n            else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n                // Edge error event provides the stack and error object\r\n                details = _convertStackObj(errorObj[strError][strStack]);\r\n            }\r\n            else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n                details = _convertStackObj(errorObj.exception[strStack]);\r\n            }\r\n            else if (_isStackDetails(errorObj)) {\r\n                details = errorObj;\r\n            }\r\n            else if (_isStackDetails(errorObj[strStackDetails])) {\r\n                details = errorObj[strStackDetails];\r\n            }\r\n            else if (getWindow() && getWindow()[\"opera\"] && errorObj[strMessage]) {\r\n                // Opera\r\n                details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n            }\r\n            else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n                // UnhandledPromiseRejection\r\n                details = _convertStackObj(errorObj.reason[strStack]);\r\n            }\r\n            else if (isString(errorObj)) {\r\n                details = _convertStackObj(errorObj);\r\n            }\r\n            else {\r\n                var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n                if (isString(errorObj[strErrorSrc])) {\r\n                    if (evtMessage) {\r\n                        evtMessage += \"\\n\";\r\n                    }\r\n                    evtMessage += \" from \" + errorObj[strErrorSrc];\r\n                }\r\n                if (evtMessage) {\r\n                    details = _convertStackObj(evtMessage);\r\n                }\r\n            }\r\n        }\r\n        catch (e) {\r\n            // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n            // and fallback to the callee/caller method\r\n            details = _convertStackObj(e);\r\n        }\r\n    }\r\n    return details || {\r\n        src: \"\",\r\n        obj: null\r\n    };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n    var stack = \"\";\r\n    if (stackDetails) {\r\n        if (stackDetails.obj) {\r\n            stack = stackDetails.obj.join(\"\\n\");\r\n        }\r\n        else {\r\n            stack = stackDetails.src || \"\";\r\n        }\r\n    }\r\n    return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n    var parsedStack;\r\n    var frames = stack.obj;\r\n    if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n        parsedStack = [];\r\n        var level_1 = 0;\r\n        var foundStackStart_1 = false;\r\n        var totalSizeInBytes_1 = 0;\r\n        arrForEach(frames, function (frame) {\r\n            if (foundStackStart_1 || _isStackFrame(frame)) {\r\n                var theFrame = asString(frame);\r\n                // Once we have found the first stack frame we treat the rest of the lines as part of the stack\r\n                foundStackStart_1 = true;\r\n                var parsedFrame = _extractStackFrame(theFrame, level_1);\r\n                if (parsedFrame) {\r\n                    totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n                    parsedStack.push(parsedFrame);\r\n                    level_1++;\r\n                }\r\n            }\r\n        });\r\n        // DP Constraint - exception parsed stack must be < 32KB\r\n        // remove frames from the middle to meet the threshold\r\n        var exceptionParsedStackThreshold = 32 * 1024;\r\n        if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n            var left = 0;\r\n            var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n            var size = 0;\r\n            var acceptedLeft = left;\r\n            var acceptedRight = right;\r\n            while (left < right) {\r\n                // check size\r\n                var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n                var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n                size += lSize + rSize;\r\n                if (size > exceptionParsedStackThreshold) {\r\n                    // remove extra frames from the middle\r\n                    var howMany = acceptedRight - acceptedLeft + 1;\r\n                    parsedStack.splice(acceptedLeft, howMany);\r\n                    break;\r\n                }\r\n                // update pointers\r\n                acceptedLeft = left;\r\n                acceptedRight = right;\r\n                left++;\r\n                right--;\r\n            }\r\n        }\r\n    }\r\n    return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n    // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n    var typeName = \"\";\r\n    if (errorType) {\r\n        typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n        if (!typeName) {\r\n            try {\r\n                var funcNameRegex = /function (.{1,200})\\(/;\r\n                var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n                typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n            }\r\n            catch (e) {\r\n                // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n            }\r\n        }\r\n    }\r\n    return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n    if (errorObj) {\r\n        try {\r\n            if (!isString(errorObj)) {\r\n                var errorType = _getErrorType(errorObj);\r\n                var result = _stringify(errorObj, false);\r\n                if (!result || result === \"{}\") {\r\n                    if (errorObj[strError]) {\r\n                        // Looks like an MS Error Event\r\n                        errorObj = errorObj[strError];\r\n                        errorType = _getErrorType(errorObj);\r\n                    }\r\n                    result = _stringify(errorObj, true);\r\n                }\r\n                if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n                    return errorType + \":\" + result;\r\n                }\r\n                return result;\r\n            }\r\n        }\r\n        catch (e) {\r\n            // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n        }\r\n    }\r\n    // Fallback to just letting the object format itself into a string\r\n    return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the ExceptionTelemetry object\r\n     */\r\n    function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n        this.aiDataContract = {\r\n            ver: 1 /* FieldType.Required */,\r\n            exceptions: 1 /* FieldType.Required */,\r\n            severityLevel: 0 /* FieldType.Default */,\r\n            properties: 0 /* FieldType.Default */,\r\n            measurements: 0 /* FieldType.Default */\r\n        };\r\n        var _self = this;\r\n        _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n        if (!_isExceptionInternal(exception)) {\r\n            if (!properties) {\r\n                properties = {};\r\n            }\r\n            if (id) {\r\n                properties.id = id;\r\n            }\r\n            _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [_createExceptionDetails(logger, exception, properties)];\r\n            _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n            _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n            if (severityLevel) {\r\n                _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n            }\r\n            if (id) {\r\n                _self.id = id;\r\n            }\r\n        }\r\n        else {\r\n            _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n            _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n            _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n            if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n                _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n            }\r\n            if (exception.id) {\r\n                _self.id = exception.id;\r\n                exception[_DYN_PROPERTIES /* @min:%2eproperties */].id = exception.id;\r\n            }\r\n            if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n                _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n            }\r\n            // bool/int types, use isNullOrUndefined\r\n            if (!isNullOrUndefined(exception.isManual)) {\r\n                _self.isManual = exception.isManual;\r\n            }\r\n        }\r\n    }\r\n    Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n        var errorType = _getErrorType(error || evt || message);\r\n        return {\r\n            message: _formatMessage(message, errorType),\r\n            url: url,\r\n            lineNumber: lineNumber,\r\n            columnNumber: columnNumber,\r\n            error: _formatErrorCode(error || evt || message),\r\n            evt: _formatErrorCode(evt || message),\r\n            typeName: errorType,\r\n            stackDetails: _getStackFromErrorObj(stack || error || evt),\r\n            errorSrc: errorSrc\r\n        };\r\n    };\r\n    Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n        var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n            && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _createExDetailsFromInterface(logger, ex); });\r\n        var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n        return exceptionData;\r\n    };\r\n    Exception.prototype.toInterface = function () {\r\n        var _a = this, exceptions = _a.exceptions, properties = _a.properties, measurements = _a.measurements, severityLevel = _a.severityLevel, problemGroup = _a.problemGroup, id = _a.id, isManual = _a.isManual;\r\n        var exceptionDetailsInterface = exceptions instanceof Array\r\n            && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n            || undefined;\r\n        return {\r\n            ver: \"4.0\",\r\n            exceptions: exceptionDetailsInterface,\r\n            severityLevel: severityLevel,\r\n            properties: properties,\r\n            measurements: measurements,\r\n            problemGroup: problemGroup,\r\n            id: id,\r\n            isManual: isManual\r\n        };\r\n    };\r\n    /**\r\n     * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n     */\r\n    Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n        var _a;\r\n        return {\r\n            exceptions: [\r\n                (_a = {},\r\n                    _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n                    _a.message = message,\r\n                    _a.stack = details,\r\n                    _a.typeName = typeName,\r\n                    _a)\r\n            ]\r\n        };\r\n    };\r\n    Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n    Exception.dataType = \"ExceptionData\";\r\n    Exception.formatError = _formatErrorCode;\r\n    return Exception;\r\n}());\r\nexport { Exception };\r\nvar exDetailsAiDataContract = objFreeze({\r\n    id: 0 /* FieldType.Default */,\r\n    outerId: 0 /* FieldType.Default */,\r\n    typeName: 1 /* FieldType.Required */,\r\n    message: 1 /* FieldType.Required */,\r\n    hasFullStack: 0 /* FieldType.Default */,\r\n    stack: 0 /* FieldType.Default */,\r\n    parsedStack: 2 /* FieldType.Array */\r\n});\r\nfunction _toInterface() {\r\n    var _self = this;\r\n    var parsedStack = isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])\r\n        && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _parsedFrameToInterface(frame); });\r\n    var exceptionDetailsInterface = {\r\n        id: _self.id,\r\n        outerId: _self.outerId,\r\n        typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n        message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n        hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n        stack: _self[strStack],\r\n        parsedStack: parsedStack || undefined\r\n    };\r\n    return exceptionDetailsInterface;\r\n}\r\nexport function _createExceptionDetails(logger, exception, properties) {\r\n    var _a;\r\n    var id;\r\n    var outerId;\r\n    var typeName;\r\n    var message;\r\n    var hasFullStack;\r\n    var theStack;\r\n    var parsedStack;\r\n    if (!_isExceptionDetailsInternal(exception)) {\r\n        var error = exception;\r\n        var evt = error && error.evt;\r\n        if (!isError(error)) {\r\n            error = error[strError] || evt || error;\r\n        }\r\n        typeName = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n        message = dataSanitizeMessage(logger, _formatMessage(exception || error, typeName)) || strNotSpecified;\r\n        var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n        parsedStack = _parseStack(stack);\r\n        // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n        if (isArray(parsedStack)) {\r\n            arrMap(parsedStack, function (frame) {\r\n                frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]);\r\n                frame[_DYN_FILE_NAME /* @min:%2efileName */] = dataSanitizeString(logger, frame[_DYN_FILE_NAME /* @min:%2efileName */]);\r\n            });\r\n        }\r\n        theStack = dataSanitizeException(logger, _formatStackTrace(stack));\r\n        hasFullStack = isArray(parsedStack) && parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n        if (properties) {\r\n            properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || typeName;\r\n        }\r\n    }\r\n    else {\r\n        typeName = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n        message = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n        theStack = exception[strStack];\r\n        parsedStack = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n        hasFullStack = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n    }\r\n    return _a = {},\r\n        _a[_DYN_AI_DATA_CONTRACT /* @min:aiDataContract */] = exDetailsAiDataContract,\r\n        _a.id = id,\r\n        _a.outerId = outerId,\r\n        _a.typeName = typeName,\r\n        _a.message = message,\r\n        _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = hasFullStack,\r\n        _a.stack = theStack,\r\n        _a.parsedStack = parsedStack,\r\n        _a.toInterface = _toInterface,\r\n        _a;\r\n}\r\nexport function _createExDetailsFromInterface(logger, exception) {\r\n    var parsedStack = (isArray(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */])\r\n        && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _stackFrameFromInterface(frame); }))\r\n        || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n    var exceptionDetails = _createExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n    return exceptionDetails;\r\n}\r\nfunction _parseFilename(theFrame, fileName) {\r\n    var lineCol = fileName[_DYN_MATCH /* @min:%2ematch */](PARSE_FILENAME_LINE_COL);\r\n    if (lineCol && lineCol[_DYN_LENGTH /* @min:%2elength */] >= 4) {\r\n        theFrame[_DYN_FILE_NAME /* @min:%2efileName */] = lineCol[1];\r\n        theFrame[_DYN_LINE /* @min:%2eline */] = parseInt(lineCol[2]);\r\n    }\r\n    else {\r\n        var lineNo = fileName[_DYN_MATCH /* @min:%2ematch */](PARSE_FILENAME_LINE_ONLY);\r\n        if (lineNo && lineNo[_DYN_LENGTH /* @min:%2elength */] >= 3) {\r\n            theFrame[_DYN_FILE_NAME /* @min:%2efileName */] = lineNo[1];\r\n            theFrame[_DYN_LINE /* @min:%2eline */] = parseInt(lineNo[2]);\r\n        }\r\n        else {\r\n            theFrame[_DYN_FILE_NAME /* @min:%2efileName */] = fileName;\r\n        }\r\n    }\r\n}\r\nfunction _handleFilename(theFrame, sequence, matches) {\r\n    var filename = theFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n    if (sequence.fn && matches && matches[_DYN_LENGTH /* @min:%2elength */] > sequence.fn) {\r\n        if (sequence.ln && matches[_DYN_LENGTH /* @min:%2elength */] > sequence.ln) {\r\n            filename = strTrim(matches[sequence.fn] || \"\");\r\n            theFrame[_DYN_LINE /* @min:%2eline */] = parseInt(strTrim(matches[sequence.ln] || \"\")) || 0;\r\n        }\r\n        else {\r\n            filename = strTrim(matches[sequence.fn] || \"\");\r\n        }\r\n    }\r\n    if (filename) {\r\n        _parseFilename(theFrame, filename);\r\n    }\r\n}\r\nfunction _isStackFrame(frame) {\r\n    var result = false;\r\n    if (frame && isString(frame)) {\r\n        var trimmedFrame = strTrim(frame);\r\n        if (trimmedFrame) {\r\n            result = IS_FRAME.test(trimmedFrame);\r\n        }\r\n    }\r\n    return result;\r\n}\r\nvar stackFrameAiDataContract = objFreeze({\r\n    level: 1 /* FieldType.Required */,\r\n    method: 1 /* FieldType.Required */,\r\n    assembly: 0 /* FieldType.Default */,\r\n    fileName: 0 /* FieldType.Default */,\r\n    line: 0 /* FieldType.Default */\r\n});\r\nexport function _extractStackFrame(frame, level) {\r\n    var _a;\r\n    var theFrame;\r\n    if (frame && isString(frame) && strTrim(frame)) {\r\n        theFrame = (_a = {},\r\n            _a[_DYN_AI_DATA_CONTRACT /* @min:aiDataContract */] = stackFrameAiDataContract,\r\n            _a.level = level,\r\n            _a.assembly = strTrim(frame),\r\n            _a.method = NoMethod,\r\n            _a.fileName = \"\",\r\n            _a.line = 0,\r\n            _a.sizeInBytes = 0,\r\n            _a);\r\n        var idx = 0;\r\n        while (idx < _parseSequence[_DYN_LENGTH /* @min:%2elength */]) {\r\n            var sequence = _parseSequence[idx];\r\n            if (sequence.chk && !sequence.chk(frame)) {\r\n                break;\r\n            }\r\n            if (sequence.pre) {\r\n                frame = sequence.pre(frame);\r\n            }\r\n            // Attempt to \"parse\" the stack frame\r\n            var matches = frame[_DYN_MATCH /* @min:%2ematch */](sequence.re);\r\n            if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= sequence.len) {\r\n                if (sequence.m) {\r\n                    theFrame.method = strTrim(matches[sequence.m] || NoMethod);\r\n                }\r\n                if (sequence.hdl) {\r\n                    // Run any custom handler\r\n                    sequence.hdl(theFrame, sequence, matches);\r\n                }\r\n                else if (sequence.fn) {\r\n                    if (sequence.ln) {\r\n                        theFrame[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[sequence.fn] || \"\");\r\n                        theFrame[_DYN_LINE /* @min:%2eline */] = parseInt(strTrim(matches[sequence.ln] || \"\")) || 0;\r\n                    }\r\n                    else {\r\n                        _parseFilename(theFrame, matches[sequence.fn] || \"\");\r\n                    }\r\n                }\r\n                // We found a match so stop looking\r\n                break;\r\n            }\r\n            idx++;\r\n        }\r\n    }\r\n    return _populateFrameSizeInBytes(theFrame);\r\n}\r\nfunction _stackFrameFromInterface(frame) {\r\n    var _a;\r\n    var parsedFrame = (_a = {},\r\n        _a[_DYN_AI_DATA_CONTRACT /* @min:aiDataContract */] = stackFrameAiDataContract,\r\n        _a.level = frame.level,\r\n        _a.method = frame.method,\r\n        _a.assembly = frame[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n        _a.fileName = frame[_DYN_FILE_NAME /* @min:%2efileName */],\r\n        _a.line = frame[_DYN_LINE /* @min:%2eline */],\r\n        _a.sizeInBytes = 0,\r\n        _a);\r\n    return _populateFrameSizeInBytes(parsedFrame);\r\n}\r\nfunction _populateFrameSizeInBytes(frame) {\r\n    var sizeInBytes = STACKFRAME_BASE_SIZE;\r\n    if (frame) {\r\n        sizeInBytes += frame.method[_DYN_LENGTH /* @min:%2elength */];\r\n        sizeInBytes += frame.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n        sizeInBytes += frame.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n        sizeInBytes += frame.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n        sizeInBytes += frame.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n        frame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = sizeInBytes;\r\n    }\r\n    return frame;\r\n}\r\nexport function _parsedFrameToInterface(frame) {\r\n    return {\r\n        level: frame.level,\r\n        method: frame.method,\r\n        assembly: frame[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n        fileName: frame[_DYN_FILE_NAME /* @min:%2efileName */],\r\n        line: frame[_DYN_LINE /* @min:%2eline */]\r\n    };\r\n}\r\n//# sourceMappingURL=Exception.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n    function DataPoint() {\r\n        /**\r\n         * The data contract for serializing this object.\r\n         */\r\n        this.aiDataContract = {\r\n            name: 1 /* FieldType.Required */,\r\n            kind: 0 /* FieldType.Default */,\r\n            value: 1 /* FieldType.Required */,\r\n            count: 0 /* FieldType.Default */,\r\n            min: 0 /* FieldType.Default */,\r\n            max: 0 /* FieldType.Default */,\r\n            stdDev: 0 /* FieldType.Default */\r\n        };\r\n        /**\r\n         * Metric type. Single measurement or the aggregated value.\r\n         */\r\n        this.kind = 0 /* DataPointType.Measurement */;\r\n    }\r\n    return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the MetricTelemetry object\r\n     */\r\n    function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n        this.aiDataContract = {\r\n            ver: 1 /* FieldType.Required */,\r\n            metrics: 1 /* FieldType.Required */,\r\n            properties: 0 /* FieldType.Default */\r\n        };\r\n        var _self = this;\r\n        _self.ver = 2;\r\n        var dataPoint = new DataPoint();\r\n        dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n        dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n        dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n        dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n        dataPoint.value = value;\r\n        dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n        _self.metrics = [dataPoint];\r\n        _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n        _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n    }\r\n    Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n    Metric.dataType = \"MetricData\";\r\n    return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { mathFloor, mathRound } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n    if (defaultValue === void 0) { defaultValue = false; }\r\n    if (str === undefined || str === null) {\r\n        return defaultValue;\r\n    }\r\n    return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n    if (isNaN(totalms) || totalms < 0) {\r\n        totalms = 0;\r\n    }\r\n    totalms = mathRound(totalms);\r\n    var ms = strEmpty + totalms % 1000;\r\n    var sec = strEmpty + mathFloor(totalms / 1000) % 60;\r\n    var min = strEmpty + mathFloor(totalms / (1000 * 60)) % 60;\r\n    var hour = strEmpty + mathFloor(totalms / (1000 * 60 * 60)) % 24;\r\n    var days = mathFloor(totalms / (1000 * 60 * 60 * 24));\r\n    ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n    sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n    min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n    hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n    return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n    var extension = null;\r\n    arrForEach(extensions, function (value) {\r\n        if (value.identifier === identifier) {\r\n            extension = value;\r\n            return -1;\r\n        }\r\n    });\r\n    return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n    return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the PageEventTelemetry object\r\n     */\r\n    function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n        this.aiDataContract = {\r\n            ver: 1 /* FieldType.Required */,\r\n            name: 0 /* FieldType.Default */,\r\n            url: 0 /* FieldType.Default */,\r\n            duration: 0 /* FieldType.Default */,\r\n            properties: 0 /* FieldType.Default */,\r\n            measurements: 0 /* FieldType.Default */,\r\n            id: 0 /* FieldType.Default */\r\n        };\r\n        var _self = this;\r\n        _self.ver = 2;\r\n        _self.id = dataSanitizeId(logger, id);\r\n        _self.url = dataSanitizeUrl(logger, url);\r\n        _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n        if (!isNaN(durationMs)) {\r\n            _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n        }\r\n        _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n        _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n    }\r\n    PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n    PageView.dataType = \"PageviewData\";\r\n    return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the RemoteDependencyData object\r\n     */\r\n    function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n        if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n        this.aiDataContract = {\r\n            id: 1 /* FieldType.Required */,\r\n            ver: 1 /* FieldType.Required */,\r\n            name: 0 /* FieldType.Default */,\r\n            resultCode: 0 /* FieldType.Default */,\r\n            duration: 0 /* FieldType.Default */,\r\n            success: 0 /* FieldType.Default */,\r\n            data: 0 /* FieldType.Default */,\r\n            target: 0 /* FieldType.Default */,\r\n            type: 0 /* FieldType.Default */,\r\n            properties: 0 /* FieldType.Default */,\r\n            measurements: 0 /* FieldType.Default */,\r\n            kind: 0 /* FieldType.Default */,\r\n            value: 0 /* FieldType.Default */,\r\n            count: 0 /* FieldType.Default */,\r\n            min: 0 /* FieldType.Default */,\r\n            max: 0 /* FieldType.Default */,\r\n            stdDev: 0 /* FieldType.Default */,\r\n            dependencyKind: 0 /* FieldType.Default */,\r\n            dependencySource: 0 /* FieldType.Default */,\r\n            commandName: 0 /* FieldType.Default */,\r\n            dependencyTypeName: 0 /* FieldType.Default */\r\n        };\r\n        var _self = this;\r\n        _self.ver = 2;\r\n        _self.id = id;\r\n        _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n        _self.success = success;\r\n        _self.resultCode = resultCode + \"\";\r\n        _self.type = dataSanitizeString(logger, requestAPI);\r\n        var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n        _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n        _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n        if (correlationContext) {\r\n            _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n        }\r\n        _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n        _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n        _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n    }\r\n    RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n    RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n    return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the TraceTelemetry object\r\n     */\r\n    function Trace(logger, message, severityLevel, properties, measurements) {\r\n        this.aiDataContract = {\r\n            ver: 1 /* FieldType.Required */,\r\n            message: 1 /* FieldType.Required */,\r\n            severityLevel: 0 /* FieldType.Default */,\r\n            properties: 0 /* FieldType.Default */\r\n        };\r\n        var _self = this;\r\n        _self.ver = 2;\r\n        message = message || strNotSpecified;\r\n        _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n        _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n        _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n        if (severityLevel) {\r\n            _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n        }\r\n    }\r\n    Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n    Trace.dataType = \"MessageData\";\r\n    return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the PageEventTelemetry object\r\n     */\r\n    function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n        this.aiDataContract = {\r\n            ver: 1 /* FieldType.Required */,\r\n            name: 0 /* FieldType.Default */,\r\n            url: 0 /* FieldType.Default */,\r\n            duration: 0 /* FieldType.Default */,\r\n            perfTotal: 0 /* FieldType.Default */,\r\n            networkConnect: 0 /* FieldType.Default */,\r\n            sentRequest: 0 /* FieldType.Default */,\r\n            receivedResponse: 0 /* FieldType.Default */,\r\n            domProcessing: 0 /* FieldType.Default */,\r\n            properties: 0 /* FieldType.Default */,\r\n            measurements: 0 /* FieldType.Default */\r\n        };\r\n        var _self = this;\r\n        _self.ver = 2;\r\n        _self.url = dataSanitizeUrl(logger, url);\r\n        _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n        _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n        _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n        if (cs4BaseData) {\r\n            _self.domProcessing = cs4BaseData.domProcessing;\r\n            _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n            _self.networkConnect = cs4BaseData.networkConnect;\r\n            _self.perfTotal = cs4BaseData.perfTotal;\r\n            _self.receivedResponse = cs4BaseData.receivedResponse;\r\n            _self.sentRequest = cs4BaseData.sentRequest;\r\n        }\r\n    }\r\n    PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n    PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n    return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of telemetry data.\r\n     */\r\n    function Data(baseType, data) {\r\n        /**\r\n         * The data contract for serializing this object.\r\n         */\r\n        this.aiDataContract = {\r\n            baseType: 1 /* FieldType.Required */,\r\n            baseData: 1 /* FieldType.Required */\r\n        };\r\n        this.baseType = baseType;\r\n        this.baseData = data;\r\n    }\r\n    return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n    var aiName = \"ai.\" + baseName + \".\";\r\n    return function (name) {\r\n        return aiName + name;\r\n    };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n    __extends(ContextTagKeys, _super);\r\n    function ContextTagKeys() {\r\n        return _super.call(this) || this;\r\n    }\r\n    return ContextTagKeys;\r\n}(createClassFromInterface({\r\n    applicationVersion: _aiApplication(\"ver\"),\r\n    applicationBuild: _aiApplication(\"build\"),\r\n    applicationTypeId: _aiApplication(\"typeId\"),\r\n    applicationId: _aiApplication(\"applicationId\"),\r\n    applicationLayer: _aiApplication(\"layer\"),\r\n    deviceId: _aiDevice(\"id\"),\r\n    deviceIp: _aiDevice(\"ip\"),\r\n    deviceLanguage: _aiDevice(\"language\"),\r\n    deviceLocale: _aiDevice(\"locale\"),\r\n    deviceModel: _aiDevice(\"model\"),\r\n    deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n    deviceNetwork: _aiDevice(\"network\"),\r\n    deviceNetworkName: _aiDevice(\"networkName\"),\r\n    deviceOEMName: _aiDevice(\"oemName\"),\r\n    deviceOS: _aiDevice(\"os\"),\r\n    deviceOSVersion: _aiDevice(\"osVersion\"),\r\n    deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n    deviceRoleName: _aiDevice(\"roleName\"),\r\n    deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n    deviceType: _aiDevice(\"type\"),\r\n    deviceMachineName: _aiDevice(\"machineName\"),\r\n    deviceVMName: _aiDevice(\"vmName\"),\r\n    deviceBrowser: _aiDevice(\"browser\"),\r\n    deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n    locationIp: _aiLocation(\"ip\"),\r\n    locationCountry: _aiLocation(\"country\"),\r\n    locationProvince: _aiLocation(\"province\"),\r\n    locationCity: _aiLocation(\"city\"),\r\n    operationId: _aiOperation(\"id\"),\r\n    operationName: _aiOperation(\"name\"),\r\n    operationParentId: _aiOperation(\"parentId\"),\r\n    operationRootId: _aiOperation(\"rootId\"),\r\n    operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n    operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n    sessionId: _aiSession(\"id\"),\r\n    sessionIsFirst: _aiSession(\"isFirst\"),\r\n    sessionIsNew: _aiSession(\"isNew\"),\r\n    userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n    userAccountId: _aiUser(\"accountId\"),\r\n    userAgent: _aiUser(\"userAgent\"),\r\n    userId: _aiUser(\"id\"),\r\n    userStoreRegion: _aiUser(\"storeRegion\"),\r\n    userAuthUserId: _aiUser(\"authUserId\"),\r\n    userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n    userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n    cloudName: _aiCloud(\"name\"),\r\n    cloudRole: _aiCloud(\"role\"),\r\n    cloudRoleVer: _aiCloud(\"roleVer\"),\r\n    cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n    cloudEnvironment: _aiCloud(\"environment\"),\r\n    cloudLocation: _aiCloud(\"location\"),\r\n    cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n    internalNodeName: _aiInternal(\"nodeName\"),\r\n    internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n    internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n    internalSnippet: _aiInternal(\"snippet\"),\r\n    internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - Name of the envelope, e.g., `Microsoft.ApplicationInsights.\\<instrumentation key\\>.PageView`.\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n    envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n    if (isNullOrUndefined(item) ||\r\n        isNullOrUndefined(baseType) ||\r\n        isNullOrUndefined(envelopeName)) {\r\n        throwError(\"Input doesn't contain all required fields\");\r\n    }\r\n    var iKey = \"\";\r\n    if (item[strIkey]) {\r\n        iKey = item[strIkey];\r\n        delete item[strIkey];\r\n    }\r\n    var telemetryItem = {\r\n        name: envelopeName,\r\n        time: toISOString(new Date()),\r\n        iKey: iKey,\r\n        ext: systemProperties ? systemProperties : {},\r\n        tags: [],\r\n        data: {},\r\n        baseType: baseType,\r\n        baseData: item // Part B\r\n    };\r\n    // Part C\r\n    if (!isNullOrUndefined(customProperties)) {\r\n        objForEachKey(customProperties, function (prop, value) {\r\n            telemetryItem.data[prop] = value;\r\n        });\r\n    }\r\n    return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n    function TelemetryItemCreator() {\r\n    }\r\n    /**\r\n     * Create a telemetry item that the 1DS channel understands\r\n     * @param item - domain specific properties; part B\r\n     * @param baseType - telemetry item type. ie PageViewData\r\n     * @param envelopeName - Name of the envelope (e.g., Microsoft.ApplicationInsights.[instrumentationKey].PageView).\r\n     * @param customProperties - user defined custom properties; part C\r\n     * @param systemProperties - system properties that are added to the context; part A\r\n     * @returns ITelemetryItem that is sent to channel\r\n     */\r\n    TelemetryItemCreator.create = createTelemetryItem;\r\n    return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n    UserExt: \"user\",\r\n    DeviceExt: \"device\",\r\n    TraceExt: \"trace\",\r\n    WebExt: \"web\",\r\n    AppExt: \"app\",\r\n    OSExt: \"os\",\r\n    SessionExt: \"ses\",\r\n    SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n    var event = null;\r\n    if (isFunction(Event)) { // Use Event constructor when available\r\n        event = new Event(eventName);\r\n    }\r\n    else { // Event has no constructor in IE\r\n        var doc = getDocument();\r\n        if (doc && doc.createEvent) {\r\n            event = doc.createEvent(\"Event\");\r\n            event.initEvent(eventName, true, true);\r\n        }\r\n    }\r\n    return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n    eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n    var _document = getDocument();\r\n    var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n    var _isListening = false;\r\n    var listenerList = [];\r\n    // Set the initial state\r\n    // rState is changed by the browser, both via events and when we check the navigator.onLine property\r\n    var rState = 1 /* eOfflineValue.Online */;\r\n    if (_navigator && !isNullOrUndefined(_navigator.onLine) && !_navigator.onLine) { // navigator.onLine is undefined in react-native\r\n        rState = 2 /* eOfflineValue.Offline */;\r\n    }\r\n    // ustate is changed by the user calling setOnlineState\r\n    var uState = 0 /* eOfflineValue.Unknown */;\r\n    // current state would be updated each time rState or uState is changed\r\n    // it is a resolved value of rState and uState\r\n    var _currentState = calCurrentState();\r\n    var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n    try {\r\n        if (_enableEvents(getWindow())) {\r\n            _isListening = true;\r\n        }\r\n        if (_document) {\r\n            // Also attach to the document.body or document\r\n            var target = _document.body || _document;\r\n            if (target.ononline) {\r\n                if (_enableEvents(target)) {\r\n                    _isListening = true;\r\n                }\r\n            }\r\n        }\r\n    }\r\n    catch (e) {\r\n        // this makes react-native less angry\r\n        _isListening = false;\r\n    }\r\n    function _enableEvents(target) {\r\n        var enabled = false;\r\n        if (target) {\r\n            enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n            if (enabled) {\r\n                eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n            }\r\n        }\r\n        return enabled;\r\n    }\r\n    function _isOnline() {\r\n        return _currentState;\r\n    }\r\n    function calCurrentState() {\r\n        if (uState === 2 /* eOfflineValue.Offline */ || rState === 2 /* eOfflineValue.Offline */) {\r\n            return false;\r\n        }\r\n        return true; // if both unknown, then we assume the network is good\r\n    }\r\n    function listnerNoticeCheck() {\r\n        // we were offline and are now online or we were online and now offline\r\n        var newState = calCurrentState();\r\n        if (_currentState !== newState) {\r\n            _currentState = newState; // use the resolved state to update\r\n            // send all the callbacks with the current state\r\n            arrForEach(listenerList, function (callback) {\r\n                var offlineState = {\r\n                    isOnline: _currentState,\r\n                    rState: rState,\r\n                    uState: uState\r\n                };\r\n                try {\r\n                    callback(offlineState);\r\n                }\r\n                catch (e) {\r\n                    // Do nothing, just making sure we run all of the callbacks\r\n                }\r\n            });\r\n        }\r\n    }\r\n    function setOnlineState(newState) {\r\n        uState = newState;\r\n        listnerNoticeCheck();\r\n    }\r\n    function _setOnline() {\r\n        rState = 1 /* eOfflineValue.Online */;\r\n        listnerNoticeCheck();\r\n    }\r\n    function _setOffline() {\r\n        rState = 2 /* eOfflineValue.Offline */;\r\n        listnerNoticeCheck();\r\n    }\r\n    function _unload() {\r\n        var win = getWindow();\r\n        if (win && _isListening) {\r\n            _disableEvents(win, _evtNamespace);\r\n            if (_document) {\r\n                // Also attach to the document.body or document\r\n                var target = _document.body || _document;\r\n                if (!isUndefined(target.ononline)) {\r\n                    _disableEvents(target, _evtNamespace);\r\n                }\r\n            }\r\n            _isListening = false;\r\n        }\r\n    }\r\n    function addListener(callback) {\r\n        listenerList.push(callback);\r\n        // Define rm as an instance of IUnloadHook\r\n        return {\r\n            rm: function () {\r\n                var index = listenerList.indexOf(callback);\r\n                if (index > -1) {\r\n                    return listenerList.splice(index, 1);\r\n                }\r\n                else {\r\n                    return;\r\n                }\r\n            }\r\n        };\r\n    }\r\n    return {\r\n        isOnline: _isOnline,\r\n        isListening: function () { return _isListening; },\r\n        unload: _unload,\r\n        addListener: addListener,\r\n        setOnlineState: setOnlineState\r\n    };\r\n}\r\n//# sourceMappingURL=Offline.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes, EventPersistence } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent, findAllScripts } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage, utlSetStoragePrefix } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport { createOfflineListener } from \"./Offline\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB0 = \"isStorageUseDisabled\"; // Count: 3\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 6\r\nexport var _DYN_CORE = \"core\"; // Count: 14\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_CONFIG = \"config\"; // Count: 12\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_REF_URI = \"refUri\"; // Count: 5\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 5\r\nexport var _DYN_DURATION = \"duration\"; // Count: 12\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO3 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P4 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER5 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 4\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN__CREATE_AUTO_EXCEPTI6 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA7 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D8 = \"overridePageViewDuration\"; // Count: 2\r\nexport var _DYN_AUTO_EXCEPTION_INSTR9 = \"autoExceptionInstrumented\"; // Count: 3\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI10 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC11 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR12 = \"enableAutoRouteTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_UNHANDLED_PRO13 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 2\r\nexport var _DYN_AUTO_UNHANDLED_PROMI14 = \"autoUnhandledPromiseInstrumented\"; // Count: 3\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 5\r\nexport var _DYN_IS_PERFORMANCE_TIMIN15 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI16 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT17 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN18 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, fieldRedaction, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPerformance, isUndefined, isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONFIG, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI16, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN15, _DYN_IS_PERFORMANCE_TIMIN18, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_SHOULD_COLLECT_DURAT17, _DYN_START_TIME, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n    function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n        dynamicProto(PageViewManager, this, function (_self) {\r\n            var queueTimer = null;\r\n            var itemQueue = [];\r\n            var pageViewPerformanceSent = false;\r\n            var firstPageViewSent = false;\r\n            var _logger;\r\n            if (core) {\r\n                _logger = core.logger;\r\n            }\r\n            function _flushChannels(isAsync) {\r\n                if (core) {\r\n                    core.flush(isAsync, function () {\r\n                        // Event flushed, callback added to prevent promise creation\r\n                    });\r\n                }\r\n            }\r\n            function _startTimer() {\r\n                if (!queueTimer) {\r\n                    queueTimer = scheduleTimeout((function () {\r\n                        queueTimer = null;\r\n                        var allItems = itemQueue.slice(0);\r\n                        var doFlush = false;\r\n                        itemQueue = [];\r\n                        arrForEach(allItems, function (item) {\r\n                            if (!item()) {\r\n                                // Not processed so rescheduled\r\n                                itemQueue.push(item);\r\n                            }\r\n                            else {\r\n                                doFlush = true;\r\n                            }\r\n                        });\r\n                        if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                            _startTimer();\r\n                        }\r\n                        if (doFlush) {\r\n                            // We process at least one item so flush the queue\r\n                            _flushChannels(true);\r\n                        }\r\n                    }), 100);\r\n                }\r\n            }\r\n            function _addQueue(cb) {\r\n                itemQueue.push(cb);\r\n                _startTimer();\r\n            }\r\n            _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n                var name = pageView.name;\r\n                if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n                    var doc = getDocument();\r\n                    name = pageView.name = doc && doc.title || \"\";\r\n                }\r\n                var uri = pageView.uri;\r\n                if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n                    var location_1 = getLocation();\r\n                    uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n                }\r\n                if (core && core[_DYN_CONFIG /* @min:%2econfig */]) {\r\n                    uri = pageView.uri = fieldRedaction(pageView.uri, core[_DYN_CONFIG /* @min:%2econfig */]);\r\n                }\r\n                if (!firstPageViewSent) {\r\n                    var perf = getPerformance();\r\n                    // Access the performance timing object\r\n                    var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */] && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\"));\r\n                    // Edge Case the navigation Entries may return an empty array and the timeOrigin is not supported on IE\r\n                    if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {\r\n                        // Get the value of loadEventStart\r\n                        var loadEventStart = navigationEntries[0].loadEventStart;\r\n                        pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(perf.timeOrigin + loadEventStart);\r\n                    }\r\n                    else {\r\n                        // calculate the start time manually\r\n                        var duration_1 = ((customProperties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n                        pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration_1);\r\n                    }\r\n                    firstPageViewSent = true;\r\n                }\r\n                // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n                // do not provide the duration, set duration to undefined\r\n                // Also this is case 4\r\n                if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN15 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n                    appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n                    _flushChannels(true);\r\n                    if (!isWebWorker()) {\r\n                        // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n                        _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"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.\");\r\n                    }\r\n                    return;\r\n                }\r\n                var pageViewSent = false;\r\n                var customDuration;\r\n                // if the performance timing is supported by the browser, calculate the custom duration\r\n                var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI16 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n                if (start > 0) {\r\n                    customDuration = dateTimeUtilsDuration(start, +new Date);\r\n                    if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT17 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n                        customDuration = undefined;\r\n                    }\r\n                }\r\n                // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n                // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n                var duration;\r\n                if (!isNullOrUndefined(customProperties) &&\r\n                    !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n                    duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n                }\r\n                if (overridePageViewDuration || !isNaN(duration)) {\r\n                    if (isNaN(duration)) {\r\n                        // case 3\r\n                        if (!customProperties) {\r\n                            customProperties = {};\r\n                        }\r\n                        customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n                    }\r\n                    // case 2\r\n                    appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n                    _flushChannels(true);\r\n                    pageViewSent = true;\r\n                }\r\n                // now try to send the page view performance telemetry\r\n                var maxDurationLimit = 60000;\r\n                if (!customProperties) {\r\n                    customProperties = {};\r\n                }\r\n                // Queue the event for processing\r\n                _addQueue(function () {\r\n                    var processed = false;\r\n                    try {\r\n                        if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN18 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n                            processed = true;\r\n                            var pageViewPerformance = {\r\n                                name: name,\r\n                                uri: uri\r\n                            };\r\n                            pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n                            if (!pageViewPerformance.isValid && !pageViewSent) {\r\n                                // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n                                // That's the best value we can get that makes sense.\r\n                                customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n                                appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n                            }\r\n                            else {\r\n                                if (!pageViewSent) {\r\n                                    customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n                                    appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n                                }\r\n                                if (!pageViewPerformanceSent) {\r\n                                    appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n                                    pageViewPerformanceSent = true;\r\n                                }\r\n                            }\r\n                        }\r\n                        else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n                            // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n                            // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n                            processed = true;\r\n                            if (!pageViewSent) {\r\n                                customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n                                appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n                            }\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                    return processed;\r\n                });\r\n            };\r\n            _self.teardown = function (unloadCtx, unloadState) {\r\n                if (queueTimer) {\r\n                    queueTimer.cancel();\r\n                    queueTimer = null;\r\n                    var allItems = itemQueue.slice(0);\r\n                    var doFlush_1 = false;\r\n                    itemQueue = [];\r\n                    arrForEach(allItems, function (item) {\r\n                        if (item()) {\r\n                            doFlush_1 = true;\r\n                        }\r\n                    });\r\n                }\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    PageViewManager.__ieDyn=1;\n\n    return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { mathFloor, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI16, _DYN_IS_PERFORMANCE_TIMIN15, _DYN_IS_PERFORMANCE_TIMIN18, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT17, _DYN_START_TIME } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n    var perf = getPerformance();\r\n    return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n    var perf = getPerformance();\r\n    return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n    var perf = getPerformance();\r\n    var timing = perf ? perf.timing : 0;\r\n    return timing\r\n        && timing.domainLookupStart > 0\r\n        && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n        && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n        && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n        && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n        && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n        && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n        && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n    if (_isPerformanceTimingSupported()) {\r\n        return getPerformance().timing;\r\n    }\r\n    return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n    if (_isPerformanceNavigationTimingSupported()) {\r\n        return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n    }\r\n    return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n    var durations = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        durations[_i] = arguments[_i];\r\n    }\r\n    var _navigator = getNavigator() || {};\r\n    // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n    var userAgent = _navigator.userAgent;\r\n    var isGoogleBot = false;\r\n    if (userAgent) {\r\n        for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n            isGoogleBot = isGoogleBot || strIndexOf(userAgent.toLowerCase(), botAgentNames[i]) !== -1;\r\n        }\r\n    }\r\n    if (isGoogleBot) {\r\n        // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n        return false;\r\n    }\r\n    else {\r\n        // for other page views, don't report if it's outside of a reasonable range\r\n        for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n            if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n                return false;\r\n            }\r\n        }\r\n    }\r\n    return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n    function PageViewPerformanceManager(core) {\r\n        var _logger = safeGetLogger(core);\r\n        dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n            _self[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n                pageViewPerformance.isValid = false;\r\n                /*\r\n                 * http://www.w3.org/TR/navigation-timing/#processing-model\r\n                 *  |-navigationStart\r\n                 *  |             |-connectEnd\r\n                 *  |             ||-requestStart\r\n                 *  |             ||             |-responseStart\r\n                 *  |             ||             |              |-responseEnd\r\n                 *  |             ||             |              |\r\n                 *  |             ||             |              |         |-loadEventEnd\r\n                 *  |---network---||---request---|---response---|---dom---|\r\n                 *  |--------------------------total----------------------|\r\n                 *\r\n                 *  total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n                 *  network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n                 *  request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n                 *  response = Response time\r\n                 *  dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n                 *      = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n                 *      + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n                 */\r\n                var navigationTiming = _getPerformanceNavigationTiming();\r\n                var timing = _getPerformanceTiming();\r\n                var total = 0;\r\n                var network = 0;\r\n                var request = 0;\r\n                var response = 0;\r\n                var dom = 0;\r\n                if (navigationTiming || timing) {\r\n                    if (navigationTiming) {\r\n                        total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n                        /**\r\n                         * support both cases:\r\n                         * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n                         * - for older browsers where the startTime is not zero\r\n                         */\r\n                        network = navigationTiming[_DYN_START_TIME /* @min:%2estartTime */] === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME /* @min:%2estartTime */], navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n                        request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n                        response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n                        dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n                    }\r\n                    else {\r\n                        total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n                        network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n                        request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n                        response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n                        dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n                    }\r\n                    if (total === 0) {\r\n                        _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n                    }\r\n                    else if (!_self[_DYN_SHOULD_COLLECT_DURAT17 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n                        _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n                    }\r\n                    else if (total < mathFloor(network) + mathFloor(request) + mathFloor(response) + mathFloor(dom)) {\r\n                        // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n                        // in this case, don't report client performance from this page\r\n                        _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n                    }\r\n                    else {\r\n                        pageViewPerformance.durationMs = total;\r\n                        // // convert to timespans\r\n                        pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n                        pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n                        pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n                        pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n                        pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n                        pageViewPerformance.isValid = true;\r\n                    }\r\n                }\r\n            };\r\n            _self[_DYN_GET_PERFORMANCE_TIMI16 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n            _self[_DYN_IS_PERFORMANCE_TIMIN15 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n            _self[_DYN_IS_PERFORMANCE_TIMIN18 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n            _self[_DYN_SHOULD_COLLECT_DURAT17 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n        });\r\n    }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    PageViewPerformanceManager.__ieDyn=1;\n\n    return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_TRACK_PREVIOUS_PAGE_1 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of PageVisitTimeManager\r\n     * @param pageVisitTimeTrackingHandler - Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n     * @returns {}\r\n     */\r\n    function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n        var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n        dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n            _self[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n                try {\r\n                    // Restart timer for new page view\r\n                    var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n                    // If there was a page already being timed, track the visit time for it now.\r\n                    if (prevPageVisitTimeData) {\r\n                        pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n                }\r\n            };\r\n            /**\r\n             * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n             * @param pageName - Name of page to begin timing visit duration\r\n             * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n             */\r\n            function restartPageVisitTimer(pageName, pageUrl) {\r\n                var prevPageVisitData = null;\r\n                try {\r\n                    prevPageVisitData = stopPageVisitTimer();\r\n                    if (utlCanUseSessionStorage()) {\r\n                        if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n                            throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n                        }\r\n                        var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));\r\n                        utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n                    prevPageVisitData = null;\r\n                }\r\n                return prevPageVisitData;\r\n            }\r\n            /**\r\n             * Stops timing of current page, if exists.\r\n             * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n             */\r\n            function stopPageVisitTimer() {\r\n                var prevPageVisitData = null;\r\n                try {\r\n                    if (utlCanUseSessionStorage()) {\r\n                        // Define end time of page's visit\r\n                        var pageVisitEndTime = dateNow();\r\n                        // Try to retrieve  page name and start time from session storage\r\n                        var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n                        if (pageVisitDataJsonStr && hasJSON()) {\r\n                            // if previous page data exists, set end time of visit\r\n                            prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n                            prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n                            // Remove data from storage since we already used it\r\n                            utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n                    prevPageVisitData = null;\r\n                }\r\n                return prevPageVisitData;\r\n            }\r\n            // For backward compatibility\r\n            objDefine(_self, \"_logger\", { g: function () { return logger; } });\r\n            objDefine(_self, \"pageVisitTimeTrackingHandler\", { g: function () { return pageVisitTimeTrackingHandler; } });\r\n        });\r\n    }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    PageVisitTimeManager.__ieDyn=1;\n\n    return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n    function PageVisitData(pageName, pageUrl) {\r\n        this.pageVisitStartTime = dateNow();\r\n        this.pageName = pageName;\r\n        this.pageUrl = pageUrl;\r\n    }\r\n    return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n    function Timing(logger, name) {\r\n        var _self = this;\r\n        var _events = {};\r\n        _self.start = function (name) {\r\n            if (typeof _events[name] !== \"undefined\") {\r\n                _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n            }\r\n            _events[name] = +new Date;\r\n        };\r\n        _self.stop = function (name, url, properties, measurements) {\r\n            var start = _events[name];\r\n            if (isNaN(start)) {\r\n                _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n            }\r\n            else {\r\n                var end = +new Date;\r\n                var duration = dateTimeUtilsDuration(start, end);\r\n                _self.action(name, url, duration, properties, measurements);\r\n            }\r\n            delete _events[name];\r\n            _events[name] = undefined;\r\n        };\r\n    }\r\n    return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, utlDisableStorage, utlEnableStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, cfgDfBoolean, cfgDfMerge, cfgDfSet, cfgDfString, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, fieldRedaction, findAllScripts, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, onConfigChange, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isArray, isError, objDeepFreeze, objDefine, scheduleTimeout, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA7, _DYN_AUTO_EXCEPTION_INSTR9, _DYN_AUTO_TRACK_PAGE_VISI10, _DYN_AUTO_UNHANDLED_PROMI14, _DYN_COLUMN_NUMBER, _DYN_CONFIG, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DURATION, _DYN_ENABLE_AUTO_ROUTE_TR12, _DYN_ENABLE_UNHANDLED_PRO13, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC11, _DYN_IS_STORAGE_USE_DISAB0, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_OVERRIDE_PAGE_VIEW_D8, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_REF_URI, _DYN_SEND_EXCEPTION_INTER5, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_START_TIME, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_1, _DYN__ADD_HOOK, _DYN__CREATE_AUTO_EXCEPTI6 } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n    if (target && target.dispatchEvent && evnt) {\r\n        target.dispatchEvent(evnt);\r\n    }\r\n}\r\nfunction _getReason(error) {\r\n    if (error && error.reason) {\r\n        var reason = error.reason;\r\n        if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n            return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n        }\r\n        return dumpObj(reason);\r\n    }\r\n    // Pass the original object down which will eventually get evaluated for any message or description\r\n    return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nvar defaultValues = objDeepFreeze((_a = {\r\n        sessionRenewalMs: cfgDfSet(_chkConfigMilliseconds, 30 * 60 * 1000),\r\n        sessionExpirationMs: cfgDfSet(_chkConfigMilliseconds, 24 * 60 * 60 * 1000),\r\n        disableExceptionTracking: cfgDfBoolean()\r\n    },\r\n    _a[_DYN_AUTO_TRACK_PAGE_VISI10 /* @min:autoTrackPageVisitTime */] = cfgDfBoolean(),\r\n    _a[_DYN_OVERRIDE_PAGE_VIEW_D8 /* @min:overridePageViewDuration */] = cfgDfBoolean(),\r\n    _a[_DYN_ENABLE_UNHANDLED_PRO13 /* @min:enableUnhandledPromiseRejectionTracking */] = cfgDfBoolean(),\r\n    _a[_DYN_AUTO_UNHANDLED_PROMI14 /* @min:autoUnhandledPromiseInstrumented */] = false,\r\n    _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n    _a[_DYN_IS_STORAGE_USE_DISAB0 /* @min:isStorageUseDisabled */] = cfgDfBoolean(),\r\n    _a[_DYN_IS_BROWSER_LINK_TRAC11 /* @min:isBrowserLinkTrackingEnabled */] = cfgDfBoolean(),\r\n    _a[_DYN_ENABLE_AUTO_ROUTE_TR12 /* @min:enableAutoRouteTracking */] = cfgDfBoolean(),\r\n    _a.namePrefix = cfgDfString(),\r\n    _a.enableDebug = cfgDfBoolean(),\r\n    _a.disableFlushOnBeforeUnload = cfgDfBoolean(),\r\n    _a.disableFlushOnUnload = cfgDfBoolean(false, \"disableFlushOnBeforeUnload\"),\r\n    _a.expCfg = cfgDfMerge({ inclScripts: false, expLog: undefined, maxLogs: 50 }),\r\n    _a));\r\nfunction _chkConfigMilliseconds(value, defValue) {\r\n    value = value || defValue;\r\n    if (value < MinMilliSeconds) {\r\n        value = MinMilliSeconds;\r\n    }\r\n    return +value;\r\n}\r\nfunction _chkSampling(value) {\r\n    return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n    // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n    // reset based if the configuration option is provided\r\n    if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */])) {\r\n        if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */]) {\r\n            utlDisableStorage();\r\n        }\r\n        else {\r\n            utlEnableStorage();\r\n        }\r\n    }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n    __extends(AnalyticsPlugin, _super);\r\n    function AnalyticsPlugin() {\r\n        var _this = _super.call(this) || this;\r\n        _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n        _this.priority = 180; // take from reserved priority range 100- 200\r\n        _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n        var _eventTracking;\r\n        var _pageTracking;\r\n        var _pageViewManager;\r\n        var _pageViewPerformanceManager;\r\n        var _pageVisitTimeManager;\r\n        var _preInitTelemetryInitializers;\r\n        var _isBrowserLinkTrackingEnabled;\r\n        var _browserLinkInitializerAdded;\r\n        var _enableAutoRouteTracking;\r\n        var _historyListenerAdded;\r\n        var _disableExceptionTracking;\r\n        var _autoExceptionInstrumented;\r\n        var _enableUnhandledPromiseRejectionTracking;\r\n        var _autoUnhandledPromiseInstrumented;\r\n        var _extConfig;\r\n        var _autoTrackPageVisitTime;\r\n        var _expCfg;\r\n        // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n        var _prevUri; // Assigned in the constructor\r\n        var _currUri;\r\n        var _evtNamespace;\r\n        // For testing error hooks only\r\n        var _errorHookCnt;\r\n        dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n            var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n            _initDefaults();\r\n            _self.getCookieMgr = function () {\r\n                return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n            };\r\n            _self.processTelemetry = function (env, itemCtx) {\r\n                _self.processNext(env, itemCtx);\r\n            };\r\n            _self.trackEvent = function (event, customProperties) {\r\n                try {\r\n                    var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n                    _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n             * @param name - A string that identifies this event uniquely within the document.\r\n             */\r\n            _self.startTrackEvent = function (name) {\r\n                try {\r\n                    _eventTracking.start(name);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Log an extended event that you started timing with `startTrackEvent`.\r\n             * @param name - The string you used to identify this event in `startTrackEvent`.\r\n             * @param properties - map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n             * @param measurements - map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n             */\r\n            _self.stopTrackEvent = function (name, properties, measurements) {\r\n                try {\r\n                    _eventTracking.stop(name, undefined, properties, measurements);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * @description Log a diagnostic message\r\n             * @param trace - the trace message\r\n             * @param customProperties - Additional custom properties to include in the event\r\n             */\r\n            _self.trackTrace = function (trace, customProperties) {\r\n                try {\r\n                    var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n                    _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * @description Log a numeric value that is not associated with a specific event. Typically\r\n             * used to send regular reports of performance indicators. To send single measurement, just\r\n             * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n             * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n             * and sending the resulting average at intervals\r\n             * @param metric - input object argument. Only name and average are mandatory.\r\n             * @param } customProperties additional data used to filter metrics in the\r\n             * portal. Defaults to empty.\r\n             */\r\n            _self.trackMetric = function (metric, customProperties) {\r\n                try {\r\n                    var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n                    _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Logs that a page or other item was viewed.\r\n             * @param IPageViewTelemetry - The string you used as the name in startTrackPage. Defaults to the document title.\r\n             * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n             * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n             */\r\n            _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n                try {\r\n                    var inPv = pageView || {};\r\n                    if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]) {\r\n                        inPv.uri = fieldRedaction(inPv.uri, _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]);\r\n                    }\r\n                    _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n                    if (_autoTrackPageVisitTime) {\r\n                        _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n             * @param pageView - Page view item to be sent\r\n             * @param properties - Custom properties (Part C) that a user can add to the telemetry item\r\n             * @param systemProperties - System level properties (Part A) that a user can add to the telemetry item\r\n             */\r\n            _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n                var doc = getDocument();\r\n                if (doc) {\r\n                    pageView[_DYN_REF_URI /* @min:%2erefUri */] = pageView[_DYN_REF_URI /* @min:%2erefUri */] === undefined ? doc.referrer : pageView[_DYN_REF_URI /* @min:%2erefUri */];\r\n                }\r\n                if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]) {\r\n                    pageView.refUri = fieldRedaction(pageView.refUri, _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]);\r\n                }\r\n                if (isNullOrUndefined(pageView[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n                    // calculate the start time manually\r\n                    var duration = ((properties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n                    pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration);\r\n                }\r\n                var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n                _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n                // reset ajaxes counter\r\n                _resetAjaxAttempts();\r\n            };\r\n            /**\r\n             * @ignore INTERNAL ONLY\r\n             * @param pageViewPerformance\r\n             * @param properties\r\n             */\r\n            _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n                var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n                _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n            };\r\n            /**\r\n             * Send browser performance metrics.\r\n             * @param pageViewPerformance\r\n             * @param customProperties\r\n             */\r\n            _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n                var inPvp = pageViewPerformance || {};\r\n                try {\r\n                    _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n                    _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n             * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n             * and send the event.\r\n             * @param name - A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n             */\r\n            _self.startTrackPage = function (name) {\r\n                try {\r\n                    if (typeof name !== \"string\") {\r\n                        var doc = getDocument();\r\n                        name = doc && doc.title || \"\";\r\n                    }\r\n                    _pageTracking.start(name);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n             * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n             * @param name - The string you used as the name in startTrackPage. Defaults to the document title.\r\n             * @param url - String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n             * @param properties - map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n             * @param measurements - map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n             */\r\n            _self.stopTrackPage = function (name, url, properties, measurement) {\r\n                try {\r\n                    if (typeof name !== \"string\") {\r\n                        var doc = getDocument();\r\n                        name = doc && doc.title || \"\";\r\n                    }\r\n                    if (typeof url !== \"string\") {\r\n                        var loc = getLocation();\r\n                        url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n                    }\r\n                    if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]) {\r\n                        url = fieldRedaction(url, _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]);\r\n                    }\r\n                    _pageTracking.stop(name, url, properties, measurement);\r\n                    if (_autoTrackPageVisitTime) {\r\n                        _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n            * @ignore INTERNAL ONLY\r\n            * @param exception\r\n            * @param properties\r\n            * @param systemProperties\r\n            */\r\n            _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n                // Adding additional edge cases to handle\r\n                // - Not passing anything (null / undefined)\r\n                var theError = (exception && (exception.exception || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n                    // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n                    isError(exception) && exception ||\r\n                    // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n                    //   is preserved and does not list ApplicationInsights code as the source\r\n                    { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n                // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n                exception = exception || {};\r\n                var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception[_DYN_PROPERTIES /* @min:%2eproperties */] || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n                var doc = getDocument();\r\n                if (doc && (_expCfg === null || _expCfg === void 0 ? void 0 : _expCfg.inclScripts)) {\r\n                    var scriptsInfo = findAllScripts(doc);\r\n                    exceptionPartB[_DYN_PROPERTIES /* @min:%2eproperties */][\"exceptionScripts\"] = JSON.stringify(scriptsInfo);\r\n                }\r\n                if (_expCfg === null || _expCfg === void 0 ? void 0 : _expCfg.expLog) {\r\n                    var logs = _expCfg.expLog();\r\n                    if (logs && logs.logs && isArray(logs.logs)) {\r\n                        exceptionPartB[_DYN_PROPERTIES /* @min:%2eproperties */][\"exceptionLog\"] = logs.logs.slice(0, _expCfg.maxLogs).join(\"\\n\");\r\n                    }\r\n                }\r\n                var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n                _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n            };\r\n            /**\r\n             * Log an exception you have caught.\r\n             *\r\n             * @param exception -   Object which contains exception to be sent\r\n             * @param } customProperties   Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n             *\r\n             * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n             */\r\n            _self.trackException = function (exception, customProperties) {\r\n                if (exception && !exception.exception && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n                    exception.exception = exception[_DYN_ERROR /* @min:%2eerror */];\r\n                }\r\n                try {\r\n                    _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * @description Custom error handler for Application Insights Analytics\r\n             * @param exception\r\n             */\r\n            _self._onerror = function (exception) {\r\n                var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n                var evt = exception && exception.evt;\r\n                try {\r\n                    if (!evt) {\r\n                        var _window = getWindow();\r\n                        if (_window) {\r\n                            evt = _window[strEvent];\r\n                        }\r\n                    }\r\n                    var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n                    // If no error source is provided assume the default window.onerror handler\r\n                    var errorSrc = exception.errorSrc || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n                    var properties = {\r\n                        errorSrc: errorSrc,\r\n                        url: url,\r\n                        lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n                        columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n                        message: exception.message\r\n                    };\r\n                    if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n                        _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](\"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 /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n                    }\r\n                    else {\r\n                        if (!exception.errorSrc) {\r\n                            exception.errorSrc = errorSrc;\r\n                        }\r\n                        _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    var errorString = error ? (error.name + \", \" + error.message) : \"null\";\r\n                    _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n                        + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n                }\r\n            };\r\n            _self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n                if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n                    // Just add to the core\r\n                    return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n                }\r\n                // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n                if (!_preInitTelemetryInitializers) {\r\n                    _preInitTelemetryInitializers = [];\r\n                }\r\n                _preInitTelemetryInitializers.push(telemetryInitializer);\r\n            };\r\n            _self.initialize = function (config, core, extensions, pluginChain) {\r\n                if (_self.isInitialized()) {\r\n                    return;\r\n                }\r\n                if (isNullOrUndefined(core)) {\r\n                    throwError(\"Error initializing\");\r\n                }\r\n                _base.initialize(config, core, extensions, pluginChain);\r\n                try {\r\n                    _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n                    if (_preInitTelemetryInitializers) {\r\n                        arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n                            core[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n                        });\r\n                        _preInitTelemetryInitializers = null;\r\n                    }\r\n                    _populateDefaults(config);\r\n                    _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n                    _pageViewManager = new PageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n                    _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n                    _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n                    _eventTracking.action =\r\n                        function (name, url, duration, properties, measurements) {\r\n                            if (!properties) {\r\n                                properties = {};\r\n                            }\r\n                            if (!measurements) {\r\n                                measurements = {};\r\n                            }\r\n                            properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n                            _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n                        };\r\n                    // initialize page view timing\r\n                    _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n                    _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n                        // duration must be a custom property in order for the collector to extract it\r\n                        if (isNullOrUndefined(properties)) {\r\n                            properties = {};\r\n                        }\r\n                        properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n                        var pageViewItem = {\r\n                            name: name,\r\n                            uri: url,\r\n                            properties: properties,\r\n                            measurements: measurements\r\n                        };\r\n                        _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n                    };\r\n                    if (hasWindow()) {\r\n                        _updateExceptionTracking();\r\n                        _updateLocationChange();\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // resetting the initialized state because of failure\r\n                    _self.setInitialized(false);\r\n                    throw e;\r\n                }\r\n            };\r\n            _self._doTeardown = function (unloadCtx, unloadState) {\r\n                _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n                // Just register to remove all events associated with this namespace\r\n                eventOff(window, null, null, _evtNamespace);\r\n                _initDefaults();\r\n            };\r\n            _self[\"_getDbgPlgTargets\"] = function () {\r\n                return [_errorHookCnt, _autoExceptionInstrumented];\r\n            };\r\n            function _resetAjaxAttempts() {\r\n                // Reset ajax attempts counter for the new page view\r\n                if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n                    var ajaxPlugin = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(\"AjaxDependencyPlugin\");\r\n                    if (ajaxPlugin && ajaxPlugin.plugin && ajaxPlugin.plugin.resetAjaxAttempts) {\r\n                        ajaxPlugin.plugin.resetAjaxAttempts();\r\n                    }\r\n                }\r\n            }\r\n            function _populateDefaults(config) {\r\n                // it is used for 1DS as well, so config type should be IConfiguration only\r\n                var identifier = _self.identifier;\r\n                var core = _self[_DYN_CORE /* @min:%2ecore */];\r\n                _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function () {\r\n                    var ctx = createProcessTelemetryContext(null, config, core);\r\n                    _extConfig = ctx.getExtCfg(identifier, defaultValues);\r\n                    // make sure auto exception is instrumented only once and it won't be overriden by the following config changes\r\n                    _autoExceptionInstrumented = _autoExceptionInstrumented || config[_DYN_AUTO_EXCEPTION_INSTR9 /* @min:%2eautoExceptionInstrumented */] || _extConfig[_DYN_AUTO_EXCEPTION_INSTR9 /* @min:%2eautoExceptionInstrumented */];\r\n                    _expCfg = _extConfig.expCfg;\r\n                    _autoTrackPageVisitTime = _extConfig[_DYN_AUTO_TRACK_PAGE_VISI10 /* @min:%2eautoTrackPageVisitTime */];\r\n                    if (config.storagePrefix) {\r\n                        utlSetStoragePrefix(config.storagePrefix);\r\n                    }\r\n                    _updateStorageUsage(_extConfig);\r\n                    // _updateBrowserLinkTracking\r\n                    _isBrowserLinkTrackingEnabled = _extConfig[_DYN_IS_BROWSER_LINK_TRAC11 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n                    _addDefaultTelemetryInitializers();\r\n                }));\r\n            }\r\n            /**\r\n             * Log a page visit time\r\n             * @param pageName - Name of page\r\n             * @param pageVisitDuration - Duration of visit to the page in milliseconds\r\n             */\r\n            function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n                var properties = { PageName: pageName, PageUrl: pageUrl };\r\n                _self.trackMetric({\r\n                    name: \"PageVisitTime\",\r\n                    average: pageVisitTime,\r\n                    max: pageVisitTime,\r\n                    min: pageVisitTime,\r\n                    sampleCount: 1\r\n                }, properties);\r\n            }\r\n            function _addDefaultTelemetryInitializers() {\r\n                if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n                    var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n                    var dropBrowserLinkRequests = function (envelope) {\r\n                        if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n                            var remoteData = envelope.baseData;\r\n                            if (remoteData) {\r\n                                for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n                                    if (remoteData.target && strIndexOf(remoteData.target, browserLinkPaths_1[i]) >= 0) {\r\n                                        return false;\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                        return true;\r\n                    };\r\n                    _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](_self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests));\r\n                    _browserLinkInitializerAdded = true;\r\n                }\r\n            }\r\n            function _sendCORSException(exception, properties) {\r\n                var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n                _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n            }\r\n            function _updateExceptionTracking() {\r\n                var _window = getWindow();\r\n                var locn = getLocation(true);\r\n                _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n                    _disableExceptionTracking = _extConfig.disableExceptionTracking;\r\n                    if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig[_DYN_AUTO_EXCEPTION_INSTR9 /* @min:%2eautoExceptionInstrumented */]) {\r\n                        // We want to enable exception auto collection and it has not been done so yet\r\n                        _addHook(InstrumentEvent(_window, \"onerror\", {\r\n                            ns: _evtNamespace,\r\n                            rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n                                if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n                                    _self._onerror(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n                                }\r\n                            }\r\n                        }, false));\r\n                        _errorHookCnt++;\r\n                        _autoExceptionInstrumented = true;\r\n                    }\r\n                }));\r\n                _addUnhandledPromiseRejectionTracking(_window, locn);\r\n            }\r\n            function _updateLocationChange() {\r\n                var win = getWindow();\r\n                var locn = getLocation(true);\r\n                _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n                    _enableAutoRouteTracking = _extConfig[_DYN_ENABLE_AUTO_ROUTE_TR12 /* @min:%2eenableAutoRouteTracking */] === true;\r\n                    /**\r\n                     * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n                     */\r\n                    if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {\r\n                        var _history = getHistory();\r\n                        if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n                            _addHistoryListener(win, _history, locn);\r\n                        }\r\n                    }\r\n                }));\r\n            }\r\n            function _getDistributedTraceCtx() {\r\n                var distributedTraceCtx = null;\r\n                if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n                    distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n                }\r\n                if (!distributedTraceCtx) {\r\n                    // Fallback when using an older Core and PropertiesPlugin\r\n                    var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n                    if (properties) {\r\n                        var context = properties.plugin.context;\r\n                        if (context) {\r\n                            distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n                        }\r\n                    }\r\n                }\r\n                return distributedTraceCtx;\r\n            }\r\n            /**\r\n             * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n             */\r\n            function _addHistoryListener(win, history, locn) {\r\n                if (_historyListenerAdded) {\r\n                    return;\r\n                }\r\n                // Name Prefix is only referenced during the initial initialization and cannot be changed afterwards\r\n                var namePrefix = _extConfig.namePrefix || \"\";\r\n                function _popstateHandler() {\r\n                    if (_enableAutoRouteTracking) {\r\n                        _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n                    }\r\n                }\r\n                function _locationChangeHandler() {\r\n                    // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n                    if (_currUri) {\r\n                        _prevUri = _currUri;\r\n                        _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n                    }\r\n                    else {\r\n                        _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n                    }\r\n                    if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]) {\r\n                        _currUri = fieldRedaction(_currUri, _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]);\r\n                    }\r\n                    if (_enableAutoRouteTracking) {\r\n                        var distributedTraceCtx = _getDistributedTraceCtx();\r\n                        if (distributedTraceCtx) {\r\n                            distributedTraceCtx.setTraceId(generateW3CId());\r\n                            var traceLocationName = \"_unknown_\";\r\n                            if (locn && locn.pathname) {\r\n                                traceLocationName = locn.pathname + (locn.hash || \"\");\r\n                            }\r\n                            // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n                            distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n                        }\r\n                        scheduleTimeout((function (uri) {\r\n                            // todo: override start time so that it is not affected by autoRoutePVDelay\r\n                            _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n                        }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n                    }\r\n                }\r\n                _addHook(InstrumentEvent(history, \"pushState\", {\r\n                    ns: _evtNamespace,\r\n                    rsp: function () {\r\n                        if (_enableAutoRouteTracking) {\r\n                            _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n                            _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n                        }\r\n                    }\r\n                }, true));\r\n                _addHook(InstrumentEvent(history, \"replaceState\", {\r\n                    ns: _evtNamespace,\r\n                    rsp: function () {\r\n                        if (_enableAutoRouteTracking) {\r\n                            _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n                            _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n                        }\r\n                    }\r\n                }, true));\r\n                eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n                eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n                _historyListenerAdded = true;\r\n            }\r\n            function _addUnhandledPromiseRejectionTracking(_window, _location) {\r\n                _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n                    _enableUnhandledPromiseRejectionTracking = _extConfig[_DYN_ENABLE_UNHANDLED_PRO13 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n                    _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI14 /* @min:%2eautoUnhandledPromiseInstrumented */];\r\n                    if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n                        // We want to enable exception auto collection and it has not been done so yet\r\n                        _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n                            ns: _evtNamespace,\r\n                            rsp: function (callDetails, error) {\r\n                                if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n                                    _self._onerror(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n                                }\r\n                            }\r\n                        }, false));\r\n                        _errorHookCnt++;\r\n                        _extConfig[_DYN_AUTO_UNHANDLED_PROMI14 /* @min:%2eautoUnhandledPromiseInstrumented */] = _autoUnhandledPromiseInstrumented = true;\r\n                    }\r\n                }));\r\n            }\r\n            /**\r\n             * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n             * @param severity - The severity of the log message\r\n             * @param msgId - The log message.\r\n             */\r\n            function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n                _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n            }\r\n            function _initDefaults() {\r\n                _eventTracking = null;\r\n                _pageTracking = null;\r\n                _pageViewManager = null;\r\n                _pageViewPerformanceManager = null;\r\n                _pageVisitTimeManager = null;\r\n                _preInitTelemetryInitializers = null;\r\n                _isBrowserLinkTrackingEnabled = false;\r\n                _browserLinkInitializerAdded = false;\r\n                _enableAutoRouteTracking = false;\r\n                _historyListenerAdded = false;\r\n                _disableExceptionTracking = false;\r\n                _autoExceptionInstrumented = false;\r\n                _enableUnhandledPromiseRejectionTracking = false;\r\n                _autoUnhandledPromiseInstrumented = false;\r\n                _autoTrackPageVisitTime = false;\r\n                // Reset ajax attempts counter\r\n                _resetAjaxAttempts();\r\n                // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n                var location = getLocation(true);\r\n                _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n                if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]) {\r\n                    _prevUri = fieldRedaction(_prevUri, _self[_DYN_CORE /* @min:%2ecore */][_DYN_CONFIG /* @min:%2econfig */]);\r\n                }\r\n                _currUri = null;\r\n                _evtNamespace = null;\r\n                _extConfig = null;\r\n                _errorHookCnt = 0;\r\n                // Define _self.config\r\n                objDefine(_self, \"config\", {\r\n                    g: function () { return _extConfig; }\r\n                });\r\n            }\r\n            // For backward compatibility\r\n            objDefine(_self, \"_pageViewManager\", { g: function () { return _pageViewManager; } });\r\n            objDefine(_self, \"_pageViewPerformanceManager\", { g: function () { return _pageViewPerformanceManager; } });\r\n            objDefine(_self, \"_pageVisitTimeManager\", { g: function () { return _pageVisitTimeManager; } });\r\n            objDefine(_self, \"_evtNamespace\", { g: function () { return \".\" + _evtNamespace; } });\r\n        });\r\n        return _this;\r\n    }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n    AnalyticsPlugin.Version = '3.3.11'; // Not currently used anywhere\r\n    return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_FEATURE_OPT_IN = \"featureOptIn\"; // Count: 4\r\nexport var _DYN_SCHEDULE_FETCH_TIMEO0 = \"scheduleFetchTimeout\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isNullOrUndefined, isObject, objExtend, objForEachKey, setValueByKey } from \"@nevware21/ts-utils\";\r\nimport { _DYN_FEATURE_OPT_IN } from \"./__DynamicConstants\";\r\n/**\r\n * Delete a config key in the given cfg, if the config key exists in nonOverrideConfigs and its value is set to true\r\n * @param cfg - cfg to modify\r\n * @param nonOverrideConfigs - nonOverrideConfigs\r\n * @param curLevel - cur config level, starting at 0\r\n * @param maxLevel - max config level\r\n * @returns new copy of modified configs\r\n */\r\nexport function replaceByNonOverrideCfg(cfg, nonOverrideConfigs, curLevel, maxLevel) {\r\n    try {\r\n        var exceedMaxLevel = curLevel > maxLevel;\r\n        if (exceedMaxLevel) {\r\n            cfg = null;\r\n        }\r\n        var curCfg_1 = curLevel == 0 ? objExtend({}, cfg) : cfg; // only copy cfg at the begining level\r\n        if (curCfg_1 && nonOverrideConfigs && !exceedMaxLevel) {\r\n            objForEachKey(curCfg_1, function (key) {\r\n                var nonOverrideVal = nonOverrideConfigs[key];\r\n                if (!!nonOverrideVal) {\r\n                    if (isObject(curCfg_1[key]) && isObject(nonOverrideVal)) {\r\n                        curCfg_1[key] = replaceByNonOverrideCfg(curCfg_1[key], nonOverrideVal, ++curLevel, maxLevel);\r\n                    }\r\n                    else {\r\n                        delete curCfg_1[key];\r\n                    }\r\n                }\r\n            });\r\n        }\r\n        return curCfg_1;\r\n    }\r\n    catch (e) {\r\n        // eslint-disable-next-line no-empty\r\n    }\r\n    // if errors happen, do nothing\r\n    return cfg;\r\n}\r\n//                                                     CDN Mode, value = B (CDN value = B)\r\n//                                |--------------------------------------------------------------------------|-----------|\r\n//                                |                    | none        | disabled    | enabled     | forceOn   | forceOff  |\r\n//                                | ------------------ | ----------- | ----------- | ----------- | --------- | --------- |\r\n// | User Mode, value = A         | none               | none        | disabled    | enabled     | enabled   | disabled  |\r\n// (user Value = A)               | disabled           | disabled    | disabled    | disabled    | enabled   | disabled  |\r\n//                                | enabled            | enabled     | disabled    | enabled     | enabled   | disabled  |\r\n//                                | none(blockCdn)     | none        | none        | none        | none      | none      |\r\n//                                | disabled(blockCdn) | disabled    | disabled    | disabled    | disabled  | disabled  |\r\n//                                | enabled(blockCdn)  | enabled     | enabled     | enabled     | enabled   | enabled   |\r\n// This matrix identifies how feature based overrides are selected (if present)\r\n//                                cdn Mode (cdn Value = B)\r\n//                   |---------------------------------------------------------------------------|\r\n//                   |                    | none     | disabled | enabled  | forceOn  | forceOff |\r\n//                   | ------------------ | ---------| ---------| ---------| ---------|----------|\r\n// | User Mode       | none               | A        | A        | A || B   | B || A   | B || A   |\r\n// (user Value = A)  | disabled           | A        | A        | A        | B || A   | B || A   |\r\n//                   | enabled            | A        | A        | A || B   | B || A   | B || A   |\r\n//                   | none(blockCdn)     | A        | A        | A        | A        | A        |\r\n//                   | disabled(blockCdn) | A        | A        | A        | A        | A        |\r\n//                   | enabled(blockCdn)  | A        | A        | A        | A        | A        |\r\n// Note:\r\n// Where the \"value\" is an object (map) of encoded key/values which will be used to override the real configuration\r\n// A = either the user supplied enable/disable value (via the `config.featureOptIn[name]`) or if not defined by the user the SDK defaults of the same.\r\n// B = The enable/disable value obtained from the CDN for the named feature\r\n// These are evaluated based on the above matrix to either\r\n// - A (Always the user/sdk value)\r\n// - B (Always the value from the CDN)\r\n// - A || B (If A is null or undefined use the value from the CDN (B) otherwise A)\r\n// - B || A (If B is null or undefined use the user/SDK value otherwise use the value from the CDN)\r\n//\r\n// The result of the value may also be null / undefined, which means there are no overrides to apply when the feature is enabled\r\nvar F = \"featureOptIn.\";\r\nvar M = \".mode\";\r\nvar ON = \".onCfg\";\r\nvar OFF = \".offCfg\";\r\nexport function resolveCdnFeatureCfg(field, cdnCfg, userOptInDetails) {\r\n    var _a;\r\n    // cdn conifg value\r\n    if (!cdnCfg || !cdnCfg.enabled) {\r\n        return null;\r\n    }\r\n    var cdnFt = (cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */] || {})[field] || { mode: 1 /* CdnFeatureMode.none */ };\r\n    var cdnM = cdnFt.mode;\r\n    var cdnOnV = cdnFt.onCfg;\r\n    var cdnOffV = cdnFt.offCfg;\r\n    var userFt = (userOptInDetails || {})[field] || { mode: 2 /* FeatureOptInMode.disable */ }; // default user mode is disable\r\n    var userM = userFt.mode;\r\n    var userOnV = userFt.onCfg;\r\n    var userOffV = userFt.offCfg;\r\n    var blockCdn = !!userFt.blockCdnCfg;\r\n    var mFld = F + field + M;\r\n    var onFld = F + field + ON;\r\n    var offFld = F + field + OFF;\r\n    var mode = userM;\r\n    var onV = userOnV;\r\n    var offV = userOffV;\r\n    if (!blockCdn) {\r\n        if (cdnM === 4 /* CdnFeatureMode.forceOn */ || cdnM === 5 /* CdnFeatureMode.forceOff */) {\r\n            mode = (cdnM == 4 /* CdnFeatureMode.forceOn */ ? 3 /* FeatureOptInMode.enable */ : 2 /* FeatureOptInMode.disable */);\r\n            onV = cdnOnV || userOnV;\r\n            offV = cdnOffV || userOffV;\r\n        }\r\n        else if (cdnM === 2 /* CdnFeatureMode.disable */ || userM === 2 /* FeatureOptInMode.disable */) {\r\n            mode = 2 /* FeatureOptInMode.disable */;\r\n            onV = userOnV || cdnOnV;\r\n            offV = userOffV || cdnOffV;\r\n        }\r\n        else if (cdnM === 3 /* CdnFeatureMode.enable */) {\r\n            mode = 3 /* FeatureOptInMode.enable */;\r\n            onV = userOnV || cdnOnV;\r\n            offV = userOffV || cdnOffV;\r\n        }\r\n        else if (cdnM === 1 /* CdnFeatureMode.none */ && userM === 1 /* FeatureOptInMode.none */) {\r\n            mode = 1 /* FeatureOptInMode.none */;\r\n        }\r\n    }\r\n    return _a = {},\r\n        _a[mFld] = mode,\r\n        _a[onFld] = onV,\r\n        _a[offFld] = offV,\r\n        _a;\r\n}\r\n// helper function to get cdn config with opt-in features\r\nexport function applyCdnfeatureCfg(cdnCfg, core) {\r\n    try {\r\n        if (!cdnCfg || !cdnCfg.enabled) {\r\n            return null;\r\n        }\r\n        if (!cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]) {\r\n            return cdnCfg.config;\r\n        }\r\n        var optInMap = cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */];\r\n        var cdnConfig_1 = cdnCfg.config || {};\r\n        objForEachKey(optInMap, function (key) {\r\n            var featureVal = resolveCdnFeatureCfg(key, cdnCfg, core.config[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]);\r\n            if (!isNullOrUndefined(featureVal)) {\r\n                objForEachKey(featureVal, function (config, val) {\r\n                    setValueByKey(cdnConfig_1, config, val);\r\n                });\r\n                _overrideCdnCfgByFeature(key, featureVal, cdnConfig_1);\r\n            }\r\n        });\r\n        return cdnConfig_1;\r\n    }\r\n    catch (e) {\r\n        // eslint-disable-next-line no-empty\r\n    }\r\n    return null;\r\n}\r\nfunction _overrideCdnCfgByFeature(field, ftVal, config) {\r\n    var mode = ftVal[F + field + M];\r\n    var val = ftVal[F + field + ON];\r\n    var dVal = ftVal[F + field + OFF];\r\n    var target = null;\r\n    if (mode === 3 /* FeatureOptInMode.enable */) {\r\n        target = val;\r\n    }\r\n    if (mode === 2 /* FeatureOptInMode.disable */) {\r\n        target = dVal;\r\n    }\r\n    if (target) {\r\n        objForEachKey(target, function (key, cfg) {\r\n            setValueByKey(config, key, cfg);\r\n        });\r\n    }\r\n}\r\n//# sourceMappingURL=CfgSyncHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* CfgSyncPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DisabledPropertyName } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, createProcessTelemetryContext, createUniqueNamespace, eventOff, eventOn, getGlobal, getJSON, isFetchSupported, isXhrSupported, mergeEvtNamespace, onConfigChange, sendCustomEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { applyCdnfeatureCfg, replaceByNonOverrideCfg } from \"./CfgSyncHelperFuncs\";\r\nimport { _DYN_SCHEDULE_FETCH_TIMEO0 } from \"./__DynamicConstants\";\r\nvar EVENT_NAME = \"ai_cfgsync\";\r\nvar STR_GET_METHOD = \"GET\";\r\nvar FETCH_TIMEOUT = 1800000; // 30 minutes\r\nvar udfVal = undefined;\r\nvar defaultNonOverrideCfg = { instrumentationKey: true, connectionString: true, endpointUrl: true };\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n        syncMode: 1 /* ICfgSyncMode.Broadcast */,\r\n        blkCdnCfg: udfVal,\r\n        customEvtName: udfVal,\r\n        cfgUrl: udfVal,\r\n        overrideSyncFn: udfVal,\r\n        overrideFetchFn: udfVal,\r\n        onCfgChangeReceive: udfVal\r\n    },\r\n    _a[_DYN_SCHEDULE_FETCH_TIMEO0 /* @min:scheduleFetchTimeout */] = FETCH_TIMEOUT,\r\n    _a.nonOverrideConfigs = defaultNonOverrideCfg,\r\n    _a.enableAjax = false,\r\n    _a));\r\nvar CfgSyncPlugin = /** @class */ (function (_super) {\r\n    __extends(CfgSyncPlugin, _super);\r\n    function CfgSyncPlugin() {\r\n        var _this = _super.call(this) || this;\r\n        _this.priority = 198;\r\n        _this.identifier = \"AppInsightsCfgSyncPlugin\";\r\n        var _extensionConfig;\r\n        var _mainConfig; // throttle config should be wrapped in IConfiguration\r\n        var _evtName;\r\n        var _evtNamespace;\r\n        var _cfgUrl;\r\n        var _timeoutHandle;\r\n        var _receiveChanges;\r\n        var _broadcastChanges;\r\n        var _blkCdnCfg;\r\n        var _fetchTimeout;\r\n        var _retryCnt;\r\n        var _onCfgChangeReceive;\r\n        var _nonOverrideConfigs;\r\n        var _fetchFn;\r\n        var _overrideFetchFn;\r\n        var _overrideSyncFn;\r\n        var _paused = false;\r\n        var _enableAjax;\r\n        dynamicProto(CfgSyncPlugin, _this, function (_self, _base) {\r\n            _initDefaults();\r\n            _self.initialize = function (config, core, extensions, pluginChain) {\r\n                _base.initialize(config, core, extensions, pluginChain);\r\n                _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n                _populateDefaults(config);\r\n            };\r\n            _self.getCfg = function () {\r\n                return _mainConfig;\r\n            };\r\n            _self.pause = function () {\r\n                _paused = true;\r\n                _clearScheduledTimer();\r\n            };\r\n            _self.resume = function () {\r\n                _paused = false;\r\n                _setupTimer();\r\n            };\r\n            // used for V2 to manaully trigger config udpate\r\n            _self.setCfg = function (config) {\r\n                return _setCfg(config);\r\n            };\r\n            _self.sync = function (customDetails) {\r\n                return _sendCfgsyncEvents(customDetails);\r\n            };\r\n            _self.updateEventListenerName = function (eventName) {\r\n                return _updateEventListenerName(eventName);\r\n            };\r\n            _self._doTeardown = function (unloadCtx, unloadState) {\r\n                _eventOff();\r\n                _clearScheduledTimer();\r\n                _initDefaults();\r\n            };\r\n            _self[\"_getDbgPlgTargets\"] = function () {\r\n                return [_broadcastChanges, _receiveChanges, _evtName, _blkCdnCfg, _nonOverrideConfigs];\r\n            };\r\n            function _initDefaults() {\r\n                _mainConfig = null;\r\n                _evtName = null;\r\n                _evtNamespace = null;\r\n                _cfgUrl = null;\r\n                _receiveChanges = null;\r\n                _broadcastChanges = null;\r\n                _nonOverrideConfigs = null;\r\n                _timeoutHandle = null;\r\n                _fetchTimeout = null;\r\n                _retryCnt = null;\r\n                _blkCdnCfg = null;\r\n                _enableAjax = false;\r\n                _overrideFetchFn = null;\r\n                _overrideSyncFn = null;\r\n                _onCfgChangeReceive = null;\r\n            }\r\n            function _populateDefaults(config) {\r\n                var identifier = _self.identifier;\r\n                var core = _self.core;\r\n                _self._addHook(onConfigChange(config, function () {\r\n                    var ctx = createProcessTelemetryContext(null, config, core);\r\n                    _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n                    var preBlkCdn = _blkCdnCfg;\r\n                    _blkCdnCfg = !!_extensionConfig.blkCdnCfg;\r\n                    _enableAjax = !!_extensionConfig.enableAjax;\r\n                    // avoid initial call\r\n                    if (!isNullOrUndefined(preBlkCdn) && preBlkCdn !== _blkCdnCfg) {\r\n                        if (!_blkCdnCfg && _cfgUrl) {\r\n                            _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n                        }\r\n                        else {\r\n                            _clearScheduledTimer();\r\n                        }\r\n                    }\r\n                    if (isNullOrUndefined(_receiveChanges)) {\r\n                        _receiveChanges = _extensionConfig.syncMode === 2 /* ICfgSyncMode.Receive */;\r\n                    }\r\n                    if (isNullOrUndefined(_broadcastChanges)) {\r\n                        _broadcastChanges = _extensionConfig.syncMode === 1 /* ICfgSyncMode.Broadcast */;\r\n                    }\r\n                    var newEvtName = _extensionConfig.customEvtName || EVENT_NAME;\r\n                    if (_evtName !== newEvtName) {\r\n                        if (_receiveChanges) {\r\n                            _updateEventListenerName(newEvtName);\r\n                        }\r\n                        else {\r\n                            _eventOff();\r\n                            _evtName = newEvtName;\r\n                        }\r\n                    }\r\n                    if (isNullOrUndefined(_cfgUrl)) {\r\n                        _cfgUrl = _extensionConfig.cfgUrl;\r\n                    }\r\n                    // if cfgUrl is set, we will ignore core config change\r\n                    if (!_cfgUrl) {\r\n                        _mainConfig = config;\r\n                        if (_broadcastChanges) {\r\n                            _sendCfgsyncEvents();\r\n                        }\r\n                    }\r\n                }));\r\n                _overrideSyncFn = _extensionConfig.overrideSyncFn;\r\n                _overrideFetchFn = _extensionConfig.overrideFetchFn;\r\n                _onCfgChangeReceive = _extensionConfig.onCfgChangeReceive;\r\n                _nonOverrideConfigs = _extensionConfig.nonOverrideConfigs; // override values should not be changed\r\n                _fetchTimeout = _extensionConfig[_DYN_SCHEDULE_FETCH_TIMEO0 /* @min:%2escheduleFetchTimeout */];\r\n                _fetchFn = _getFetchFnInterface();\r\n                _retryCnt = 0;\r\n                // NOT support cfgURL change to avoid mutiple fetch calls\r\n                if (_cfgUrl && !_blkCdnCfg) {\r\n                    _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n                }\r\n            }\r\n            function _setCfg(config, isAutoSync) {\r\n                if (config) {\r\n                    _mainConfig = config;\r\n                    if (!!isAutoSync && !_paused) {\r\n                        return _sendCfgsyncEvents();\r\n                    }\r\n                    if (_receiveChanges && !_paused) {\r\n                        _self.core.updateCfg(config);\r\n                        return true;\r\n                    }\r\n                }\r\n                return false;\r\n            }\r\n            function _eventOff() {\r\n                try {\r\n                    var global_1 = getGlobal();\r\n                    if (global_1) {\r\n                        eventOff(global_1, null, null, _evtNamespace);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n            }\r\n            function _sendCfgsyncEvents(customDetails) {\r\n                try {\r\n                    if (!!_overrideSyncFn && isFunction(_overrideSyncFn)) {\r\n                        return _overrideSyncFn(_mainConfig, customDetails);\r\n                    }\r\n                    return sendCustomEvent(_evtName, _mainConfig, customDetails);\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return false;\r\n            }\r\n            function _updateEventListenerName(name) {\r\n                try {\r\n                    _eventOff();\r\n                    if (name) {\r\n                        _evtName = name;\r\n                        _addEventListener();\r\n                    }\r\n                    return true;\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return false;\r\n            }\r\n            function _getFetchFnInterface() {\r\n                var _fetchFn = _overrideFetchFn;\r\n                if (isNullOrUndefined(_fetchFn)) {\r\n                    if (isFetchSupported()) {\r\n                        _fetchFn = _fetchSender;\r\n                    }\r\n                    else if (isXhrSupported()) {\r\n                        _fetchFn = _xhrSender;\r\n                    }\r\n                }\r\n                return _fetchFn;\r\n            }\r\n            function _fetchSender(url, oncomplete, isAutoSync) {\r\n                var global = getGlobal();\r\n                var fetchFn = (global && global.fetch) || null;\r\n                if (url && fetchFn && isFunction(fetchFn)) {\r\n                    try {\r\n                        var init = {\r\n                            method: STR_GET_METHOD\r\n                        };\r\n                        if (!_enableAjax) {\r\n                            init[DisabledPropertyName] = true;\r\n                        }\r\n                        var request = new Request(url, init);\r\n                        if (!_enableAjax) {\r\n                            try {\r\n                                // Also try and tag the request (just in case the value in init is not copied over)\r\n                                request[DisabledPropertyName] = true;\r\n                            }\r\n                            catch (e) {\r\n                                // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n                                // cause the request to fail and we no telemetry would be sent\r\n                            }\r\n                        }\r\n                        doAwaitResponse(fetch(request), function (result) {\r\n                            var response = result.value;\r\n                            if (!result.rejected) {\r\n                                if (response.ok) {\r\n                                    doAwaitResponse(response.text(), function (res) {\r\n                                        _doOnComplete(oncomplete, response.status, res.value, isAutoSync);\r\n                                    });\r\n                                }\r\n                                else {\r\n                                    _doOnComplete(oncomplete, response.status, null, isAutoSync);\r\n                                }\r\n                            }\r\n                            else {\r\n                                _doOnComplete(oncomplete, 400);\r\n                            }\r\n                        });\r\n                    }\r\n                    catch (e) {\r\n                        // eslint-disable-next-line no-empty\r\n                    }\r\n                }\r\n            }\r\n            function _xhrSender(url, oncomplete, isAutoSync) {\r\n                try {\r\n                    var xhr_1 = new XMLHttpRequest();\r\n                    if (!_enableAjax) {\r\n                        xhr_1[DisabledPropertyName] = true;\r\n                    }\r\n                    xhr_1.open(STR_GET_METHOD, url);\r\n                    xhr_1.onreadystatechange = function () {\r\n                        if (xhr_1.readyState === XMLHttpRequest.DONE) {\r\n                            _doOnComplete(oncomplete, xhr_1.status, xhr_1.responseText, isAutoSync);\r\n                        }\r\n                    };\r\n                    xhr_1.onerror = function () {\r\n                        _doOnComplete(oncomplete, 400);\r\n                    };\r\n                    xhr_1.ontimeout = function () {\r\n                        _doOnComplete(oncomplete, 400);\r\n                    };\r\n                    xhr_1.send();\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n            }\r\n            function _onFetchComplete(status, response, isAutoSync) {\r\n                try {\r\n                    if (status >= 200 && status < 400 && response) {\r\n                        _retryCnt = 0; // any successful response will reset retry count to 0\r\n                        var JSON_1 = getJSON();\r\n                        if (JSON_1) {\r\n                            var cdnCfg = JSON_1.parse(response); //comments are not allowed\r\n                            var cfg = applyCdnfeatureCfg(cdnCfg, _self.core);\r\n                            var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n                            newCfg && _setCfg(newCfg, isAutoSync);\r\n                            //cfg && _setCfg(cfg, isAutoSync);\r\n                        }\r\n                    }\r\n                    else {\r\n                        _retryCnt++;\r\n                    }\r\n                    if (_retryCnt < 3) {\r\n                        _setupTimer();\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n            }\r\n            function _doOnComplete(oncomplete, status, response, isAutoSync) {\r\n                try {\r\n                    oncomplete(status, response, isAutoSync);\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n            }\r\n            function _addEventListener() {\r\n                if (_receiveChanges) {\r\n                    var global_2 = getGlobal();\r\n                    if (global_2) {\r\n                        try {\r\n                            eventOn(global_2, _evtName, function (event) {\r\n                                // TODO: add more validation here\r\n                                // may include a \"name\" or some other features to check\r\n                                var cfgEvent = event && event.detail;\r\n                                if (_onCfgChangeReceive && cfgEvent) {\r\n                                    _onCfgChangeReceive(cfgEvent);\r\n                                }\r\n                                else {\r\n                                    var cfg = cfgEvent && cfgEvent.cfg;\r\n                                    var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n                                    newCfg && _setCfg(newCfg);\r\n                                }\r\n                            }, _evtNamespace, true);\r\n                        }\r\n                        catch (e) {\r\n                            // eslint-disable-next-line no-empty\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            // 4 levels\r\n            function _replaceTartgetByKeys(cfg, level) {\r\n                var _cfg = null;\r\n                try {\r\n                    if (cfg) {\r\n                        _cfg = replaceByNonOverrideCfg(cfg, _nonOverrideConfigs, 0, 5);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return _cfg;\r\n            }\r\n            /**\r\n             * Sets up the timer which triggers fetching cdn every 30mins after inital call\r\n             */\r\n            function _setupTimer() {\r\n                if (!_timeoutHandle && _fetchTimeout) {\r\n                    _timeoutHandle = scheduleTimeout(function () {\r\n                        _timeoutHandle = null;\r\n                        _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n                    }, _fetchTimeout);\r\n                    _timeoutHandle.unref();\r\n                }\r\n            }\r\n            function _clearScheduledTimer() {\r\n                _timeoutHandle && _timeoutHandle.cancel();\r\n                _timeoutHandle = null;\r\n                _retryCnt = 0;\r\n            }\r\n            _self.processTelemetry = function (env, itemCtx) {\r\n                _self.processNext(env, itemCtx);\r\n            };\r\n        });\r\n        return _this;\r\n    }\r\n// Removed Stub for CfgSyncPlugin.prototype.initialize.\r\n// Removed Stub for CfgSyncPlugin.prototype.getCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.setCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.sync.\r\n// Removed Stub for CfgSyncPlugin.prototype.updateEventListenerName.\r\n// Removed Stub for CfgSyncPlugin.prototype.pause.\r\n// Removed Stub for CfgSyncPlugin.prototype.resume.\r\n    //// Removed Stub for CfgSyncPlugin.prototype.processTelemetry.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    CfgSyncPlugin.__ieDyn=1;\n\n    return CfgSyncPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { CfgSyncPlugin };\r\n//# sourceMappingURL=CfgSyncPlugin.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 13\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 38\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 9\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 6\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 4\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 8\r\nexport var _DYN_CONCAT = \"concat\"; // Count: 6\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 5\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 16\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 3\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 3\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ALWAYS_USE_XHR_OVERR4 = \"alwaysUseXhrOverride\"; // Count: 2\r\nexport var _DYN_ENABLE_SESSION_STORA5 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 9\r\nexport var _DYN_ONUNLOAD_DISABLE_FET6 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_DISABLE_SEND_BEACON_7 = \"disableSendBeaconSplit\"; // Count: 2\r\nexport var _DYN_GET_SENDER_INST = \"getSenderInst\"; // Count: 4\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 7\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 3\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n    return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n    // todo: switch to keys from common in this method\r\n    var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n    var itmExt = item.ext = item.ext || {};\r\n    var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n    var extUser = itmExt.user;\r\n    if (extUser) {\r\n        _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n        _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n    }\r\n    var extApp = itmExt.app;\r\n    if (extApp) {\r\n        _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n    }\r\n    var extDevice = itmExt.device;\r\n    if (extDevice) {\r\n        _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n        _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n        _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n        _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n        _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n    }\r\n    var web = item.ext.web;\r\n    if (web) {\r\n        _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n        _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n        _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n        var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n        var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n        var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n        _setValueIf(envProps, \"domain\", web.domain);\r\n        _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n        _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n        _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n    }\r\n    var extOs = itmExt.os;\r\n    if (extOs) {\r\n        _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n        _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);\r\n    }\r\n    // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n    var extTrace = itmExt.trace;\r\n    if (extTrace) {\r\n        _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n        _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n        _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n    }\r\n    // Sample 4.0 schema\r\n    //  {\r\n    //     \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n    //     \"name\" : \"MetricWithNamespace\",\r\n    //     \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n    //     \"ext\": {  \"cloud\": {\r\n    //          \"role\": \"WATSON3\",\r\n    //          \"roleInstance\": \"CO4AEAP00000260\"\r\n    //      },\r\n    //      \"device\": {}, \"correlation\": {} },\r\n    //      \"tags\": [\r\n    //        { \"amazon.region\" : \"east2\" },\r\n    //        { \"os.expid\" : \"wp:02df239\" }\r\n    //     ]\r\n    //   }\r\n    var tgs = {};\r\n    // deals with tags.push({object})\r\n    for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n        var tg = itmTags[i];\r\n        objForEachKey(tg, function (key, value) {\r\n            tgs[key] = value;\r\n        });\r\n        itmTags.splice(i, 1);\r\n    }\r\n    // deals with tags[key]=value (and handles hasOwnProperty)\r\n    objForEachKey(itmTags, function (tg, value) {\r\n        tgs[tg] = value;\r\n    });\r\n    var theTags = __assign(__assign({}, envTags), tgs);\r\n    if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n        // Append a version in case it is not already set\r\n        theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n    }\r\n    env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n    if (!isNullOrUndefined(data)) {\r\n        objForEachKey(data, function (key, value) {\r\n            if (isNumber(value)) {\r\n                measurements[key] = value;\r\n            }\r\n            else if (isString(value)) {\r\n                properties[key] = value;\r\n            }\r\n            else if (hasJSON()) {\r\n                properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n            }\r\n        });\r\n    }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n    if (!isNullOrUndefined(properties)) {\r\n        objForEachKey(properties, function (key, value) {\r\n            properties[key] = value || customUndefinedValue;\r\n        });\r\n    }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n    var envelope = new Envelope(logger, data, envelopeType);\r\n    _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n    if ((telemetryItem[strBaseData] || {}).startTime) {\r\n        // Starting from Version 3.0.3, the time property will be assigned by the startTime value,\r\n        // which records the loadEvent time for the pageView event.\r\n        envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n    }\r\n    envelope.iKey = telemetryItem.iKey;\r\n    var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n    envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n    // extract all extensions from ctx\r\n    _extractPartAExtensions(logger, telemetryItem, envelope);\r\n    // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n    telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n    return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n    if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n        _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n    }\r\n}\r\nexport var EnvelopeCreator = {\r\n    Version: '3.3.11'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n    }\r\n    var bd = telemetryItem[strBaseData];\r\n    if (isNullOrUndefined(bd)) {\r\n        _warnToConsole(logger, \"Invalid input for dependency data\");\r\n        return null;\r\n    }\r\n    var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n    var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n    var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n    return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var customProperties = {};\r\n    var customMeasurements = {};\r\n    if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n        customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n    }\r\n    if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n        customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n        customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    }\r\n    else { // if its not a known type, convert to custom event\r\n        if (telemetryItem[strBaseData]) {\r\n            _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n        }\r\n    }\r\n    // Extract root level properties from part C telemetryItem.data\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n    }\r\n    var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n    var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n    var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n    return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    // Extract root level properties from part C telemetryItem.data\r\n    var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n    }\r\n    var bd = telemetryItem[strBaseData];\r\n    var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n    var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n    return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var baseData = telemetryItem[strBaseData];\r\n    var props = baseData[strProperties] || {};\r\n    var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n    }\r\n    var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n    var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n    return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n    var duration;\r\n    var baseData = telemetryItem[strBaseData];\r\n    if (!isNullOrUndefined(baseData) &&\r\n        !isNullOrUndefined(baseData[strProperties]) &&\r\n        !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n        duration = baseData[strProperties][STR_DURATION];\r\n        delete baseData[strProperties][STR_DURATION];\r\n    }\r\n    else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n        !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n        duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n        delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n    }\r\n    var bd = telemetryItem[strBaseData];\r\n    // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n    var currentContextId;\r\n    if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n        currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n    }\r\n    var id = bd.id || currentContextId;\r\n    var name = bd[_DYN_NAME /* @min:%2ename */];\r\n    var url = bd.uri;\r\n    var properties = bd[strProperties] || {};\r\n    var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n    if (!isNullOrUndefined(bd.refUri)) {\r\n        properties[\"refUri\"] = bd.refUri;\r\n    }\r\n    // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n    if (!isNullOrUndefined(bd.pageType)) {\r\n        properties[\"pageType\"] = bd.pageType;\r\n    }\r\n    // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n    if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n        properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n    }\r\n    // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n    if (!isNullOrUndefined(bd[strProperties])) {\r\n        var pageTags = bd[strProperties];\r\n        objForEachKey(pageTags, function (key, value) {\r\n            properties[key] = value;\r\n        });\r\n    }\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n    }\r\n    var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n    var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n    return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var bd = telemetryItem[strBaseData];\r\n    var name = bd[_DYN_NAME /* @min:%2ename */];\r\n    var url = bd.uri || bd.url;\r\n    var properties = bd[strProperties] || {};\r\n    var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n    }\r\n    var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n    var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n    return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var message = telemetryItem[strBaseData].message;\r\n    var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n    var props = telemetryItem[strBaseData][strProperties] || {};\r\n    var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n    }\r\n    var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n    var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n    return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isNullOrUndefined, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONCAT, _DYN_COUNT, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n    function BaseSendBuffer(logger, config) {\r\n        var _buffer = [];\r\n        var _bufferFullMessageSent = false;\r\n        var _maxRetryCnt = config.maxRetryCnt;\r\n        this._get = function () {\r\n            return _buffer;\r\n        };\r\n        this._set = function (buffer) {\r\n            _buffer = buffer;\r\n            return _buffer;\r\n        };\r\n        dynamicProto(BaseSendBuffer, this, function (_self) {\r\n            _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n                if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config.eventsLimitInMem) {\r\n                    // sent internal log only once per page view\r\n                    if (!_bufferFullMessageSent) {\r\n                        _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n                        _bufferFullMessageSent = true;\r\n                    }\r\n                    return;\r\n                }\r\n                payload.cnt = payload.cnt || 0;\r\n                // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n                if (!isNullOrUndefined(_maxRetryCnt)) {\r\n                    if (payload.cnt > _maxRetryCnt) {\r\n                        // TODO: add log here on dropping payloads\r\n                        // will log statsbeat exception later here\r\n                        return;\r\n                    }\r\n                }\r\n                _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n                return;\r\n            };\r\n            _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n                return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n            };\r\n            _self.size = function () {\r\n                var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n                for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n                    size += (_buffer[lp].item)[_DYN_LENGTH /* @min:%2elength */];\r\n                }\r\n                if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n                    size += 2;\r\n                }\r\n                return size;\r\n            };\r\n            _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n                _buffer = [];\r\n                _bufferFullMessageSent = false;\r\n            };\r\n            _self.getItems = function () {\r\n                return _buffer.slice(0);\r\n            };\r\n            _self.batchPayloads = function (payloads) {\r\n                if (payloads && payloads[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    var payloadStr_1 = [];\r\n                    arrForEach(payloads, function (payload) {\r\n                        payloadStr_1[_DYN_PUSH /* @min:%2epush */](payload.item);\r\n                    });\r\n                    var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n                        payloadStr_1.join(\"\\n\") :\r\n                        \"[\" + payloadStr_1.join(\",\") + \"]\";\r\n                    return batch;\r\n                }\r\n                return null;\r\n            };\r\n            _self.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n                var items = _buffer.slice(0);\r\n                newLogger = newLogger || logger;\r\n                newConfig = newConfig || {};\r\n                var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n                arrForEach(items, function (payload) {\r\n                    newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n                });\r\n                return newBuffer;\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n// Removed Stub for BaseSendBuffer.prototype.createNew.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    BaseSendBuffer.__ieDyn=1;\n\n    return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n    __extends(ArraySendBuffer, _super);\r\n    function ArraySendBuffer(logger, config) {\r\n        var _this = _super.call(this, logger, config) || this;\r\n        dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n            _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n                _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n            };\r\n            _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n                // not supported\r\n            };\r\n        });\r\n        return _this;\r\n    }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    ArraySendBuffer.__ieDyn=1;\n\n    return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\nvar PREVIOUS_KEYS = [\"AI_buffer\", \"AI_sentBuffer\"];\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n    __extends(SessionStorageSendBuffer, _super);\r\n    function SessionStorageSendBuffer(logger, config) {\r\n        var _this = _super.call(this, logger, config) || this;\r\n        var _bufferFullMessageSent = false;\r\n        //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n        var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n        // TODO: add remove buffer override as well\r\n        var _b = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;\r\n        var _maxRetryCnt = config.maxRetryCnt;\r\n        dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n            var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n            var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n            var previousItems = _getPreviousEvents();\r\n            var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT /* @min:%2econcat */](previousItems);\r\n            var buffer = _self._set(bufferItems[_DYN_CONCAT /* @min:%2econcat */](notDeliveredItems));\r\n            // If the buffer has too many items, drop items from the end.\r\n            if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n                buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n            }\r\n            _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n            _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n            _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n                if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n                    // sent internal log only once per page view\r\n                    if (!_bufferFullMessageSent) {\r\n                        _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n                        _bufferFullMessageSent = true;\r\n                    }\r\n                    return;\r\n                }\r\n                payload.cnt = payload.cnt || 0;\r\n                // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n                if (!isNullOrUndefined(_maxRetryCnt)) {\r\n                    if (payload.cnt > _maxRetryCnt) {\r\n                        // TODO: add log here on dropping payloads\r\n                        return;\r\n                    }\r\n                }\r\n                _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._get());\r\n            };\r\n            _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n                _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._get());\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n                _bufferFullMessageSent = false;\r\n            };\r\n            _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self._get())));\r\n                var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n                if (sentElements instanceof Array && payload instanceof Array) {\r\n                    sentElements = sentElements[_DYN_CONCAT /* @min:%2econcat */](payload);\r\n                    if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n                        // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n                        // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n                        _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n                        sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n                    }\r\n                    _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n                }\r\n            };\r\n            _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n                var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n                sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n            };\r\n            _self.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n                canUseSessionStorage = !!canUseSessionStorage;\r\n                var unsentItems = _self._get().slice(0);\r\n                var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n                newLogger = newLogger || logger;\r\n                newConfig = newConfig || {};\r\n                // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n                _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n                var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n                arrForEach(unsentItems, function (payload) {\r\n                    newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n                });\r\n                if (canUseSessionStorage) {\r\n                    // arr buffer will clear all payloads if markAsSent() is called\r\n                    newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n                }\r\n                return newBuffer;\r\n            };\r\n            function _removePayloadsFromBuffer(payloads, buffer) {\r\n                var remaining = [];\r\n                var payloadStr = [];\r\n                arrForEach(payloads, function (payload) {\r\n                    payloadStr[_DYN_PUSH /* @min:%2epush */](payload.item);\r\n                });\r\n                arrForEach(buffer, function (value) {\r\n                    if (!isFunction(value) && arrIndexOf(payloadStr, value.item) === -1) {\r\n                        remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n                    }\r\n                });\r\n                return remaining;\r\n            }\r\n            function _getBuffer(key) {\r\n                var prefixedKey = key;\r\n                prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n                return _getBufferBase(prefixedKey);\r\n            }\r\n            function _getBufferBase(key) {\r\n                try {\r\n                    var bufferJson = getItem(logger, key);\r\n                    if (bufferJson) {\r\n                        var buffer_1 = getJSON().parse(bufferJson);\r\n                        if (isString(buffer_1)) {\r\n                            // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n                            buffer_1 = getJSON().parse(buffer_1);\r\n                        }\r\n                        if (buffer_1 && isArray(buffer_1)) {\r\n                            return buffer_1;\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + key + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n                return [];\r\n            }\r\n            function _setBuffer(key, buffer) {\r\n                var prefixedKey = key;\r\n                try {\r\n                    prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n                    var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n                    setItem(logger, prefixedKey, bufferJson);\r\n                }\r\n                catch (e) {\r\n                    // if there was an error, clear the buffer\r\n                    // telemetry is stored in the _buffer array so we won't loose any items\r\n                    setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n                    _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n                }\r\n            }\r\n            // this removes buffer with prefix+key\r\n            function _getPreviousEvents() {\r\n                var items = [];\r\n                try {\r\n                    arrForEach(PREVIOUS_KEYS, function (key) {\r\n                        var events = _getItemsFromPreviousKey(key);\r\n                        items = items[_DYN_CONCAT /* @min:%2econcat */](events);\r\n                        // to make sure that we also transfer items from old prefixed + key buffer\r\n                        if (_namePrefix) {\r\n                            var prefixedKey = _namePrefix + \"_\" + key;\r\n                            var prefixEvents = _getItemsFromPreviousKey(prefixedKey);\r\n                            items = items[_DYN_CONCAT /* @min:%2econcat */](prefixEvents);\r\n                        }\r\n                    });\r\n                    return items;\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \"Transfer events from previous buffers: \" + getExceptionName(e) + \". previous Buffer items can not be removed\", { exception: dumpObj(e) });\r\n                }\r\n                return [];\r\n            }\r\n            // transform string[] to IInternalStorageItem[]\r\n            function _getItemsFromPreviousKey(key) {\r\n                try {\r\n                    var items = _getBufferBase(key);\r\n                    var transFormedItems_1 = [];\r\n                    arrForEach(items, function (item) {\r\n                        var internalItem = {\r\n                            item: item,\r\n                            cnt: 0 // previous events will be default to 0 count\r\n                        };\r\n                        transFormedItems_1[_DYN_PUSH /* @min:%2epush */](internalItem);\r\n                    });\r\n                    // remove the session storage if we can add events back\r\n                    utlRemoveSessionStorage(logger, key);\r\n                    return transFormedItems_1;\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return [];\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.createNew.\r\n    var _a;\r\n    _a = SessionStorageSendBuffer;\r\n    SessionStorageSendBuffer.VERSION = \"_1\";\r\n    SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\" + _a.VERSION;\r\n    SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\" + _a.VERSION;\r\n    // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n    SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n    return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n    function Serializer(logger) {\r\n        dynamicProto(Serializer, this, function (_self) {\r\n            /**\r\n             * Serializes the current object to a JSON string.\r\n             */\r\n            _self.serialize = function (input) {\r\n                var output = _serializeObject(input, \"root\");\r\n                try {\r\n                    return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n                }\r\n                catch (e) {\r\n                    // if serialization fails return an empty string\r\n                    _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n                }\r\n            };\r\n            function _serializeObject(source, name) {\r\n                var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n                var output = {};\r\n                if (!source) {\r\n                    _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n                    return output;\r\n                }\r\n                if (source[circularReferenceCheck]) {\r\n                    _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n                    return output;\r\n                }\r\n                if (!source.aiDataContract) {\r\n                    // special case for measurements/properties/tags\r\n                    if (name === \"measurements\") {\r\n                        output = _serializeStringMap(source, \"number\", name);\r\n                    }\r\n                    else if (name === \"properties\") {\r\n                        output = _serializeStringMap(source, \"string\", name);\r\n                    }\r\n                    else if (name === \"tags\") {\r\n                        output = _serializeStringMap(source, \"string\", name);\r\n                    }\r\n                    else if (isArray(source)) {\r\n                        output = _serializeArray(source, name);\r\n                    }\r\n                    else {\r\n                        _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n                        try {\r\n                            // verify that the object can be stringified\r\n                            getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n                            output = source;\r\n                        }\r\n                        catch (e) {\r\n                            // if serialization fails return an empty string\r\n                            _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n                        }\r\n                    }\r\n                    return output;\r\n                }\r\n                source[circularReferenceCheck] = true;\r\n                objForEachKey(source.aiDataContract, function (field, contract) {\r\n                    var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n                    var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n                    var isArray = contract & 2 /* FieldType.Array */;\r\n                    var isPresent = source[field] !== undefined;\r\n                    var isObj = isObject(source[field]) && source[field] !== null;\r\n                    if (isRequired && !isPresent && !isArray) {\r\n                        _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n                        // If not in debug mode, continue and hope the error is permissible\r\n                    }\r\n                    else if (!isHidden) { // Don't serialize hidden fields\r\n                        var value = void 0;\r\n                        if (isObj) {\r\n                            if (isArray) {\r\n                                // special case; recurse on each object in the source array\r\n                                value = _serializeArray(source[field], field);\r\n                            }\r\n                            else {\r\n                                // recurse on the source object in this field\r\n                                value = _serializeObject(source[field], field);\r\n                            }\r\n                        }\r\n                        else {\r\n                            // assign the source field to the output even if undefined or required\r\n                            value = source[field];\r\n                        }\r\n                        // only emit this field if the value is defined\r\n                        if (value !== undefined) {\r\n                            output[field] = value;\r\n                        }\r\n                    }\r\n                });\r\n                delete source[circularReferenceCheck];\r\n                return output;\r\n            }\r\n            function _serializeArray(sources, name) {\r\n                var output;\r\n                if (!!sources) {\r\n                    if (!isArray(sources)) {\r\n                        _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n                    }\r\n                    else {\r\n                        output = [];\r\n                        for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n                            var source = sources[i];\r\n                            var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n                            output[_DYN_PUSH /* @min:%2epush */](item);\r\n                        }\r\n                    }\r\n                }\r\n                return output;\r\n            }\r\n            function _serializeStringMap(map, expectedType, name) {\r\n                var output;\r\n                if (map) {\r\n                    output = {};\r\n                    objForEachKey(map, function (field, value) {\r\n                        if (expectedType === \"string\") {\r\n                            if (value === undefined) {\r\n                                output[field] = \"undefined\";\r\n                            }\r\n                            else if (value === null) {\r\n                                output[field] = \"null\";\r\n                            }\r\n                            else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n                                output[field] = \"invalid field: toString() is not defined.\";\r\n                            }\r\n                            else {\r\n                                output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n                            }\r\n                        }\r\n                        else if (expectedType === \"number\") {\r\n                            if (value === undefined) {\r\n                                output[field] = \"undefined\";\r\n                            }\r\n                            else if (value === null) {\r\n                                output[field] = \"null\";\r\n                            }\r\n                            else {\r\n                                var num = parseFloat(value);\r\n                                output[field] = num;\r\n                            }\r\n                        }\r\n                        else {\r\n                            output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n                            _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n                        }\r\n                    });\r\n                }\r\n                return output;\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    Serializer.__ieDyn=1;\n\n    return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_CONCAT, _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n    function HashCodeScoreGenerator() {\r\n    }\r\n    HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n        var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n        return score * 100;\r\n    };\r\n    HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n        if (input === \"\") {\r\n            return 0;\r\n        }\r\n        while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n            input = input[_DYN_CONCAT /* @min:%2econcat */](input);\r\n        }\r\n        // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n        var hash = 5381;\r\n        for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n            hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n            // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n            // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n            hash = hash & hash;\r\n        }\r\n        return Math.abs(hash);\r\n    };\r\n    // We're using 32 bit math, hence max value is (2^31 - 1)\r\n    HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n    return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n    function SamplingScoreGenerator() {\r\n        var _self = this;\r\n        var hashCodeGenerator = new HashCodeScoreGenerator();\r\n        var keys = new ContextTagKeys();\r\n        _self.getSamplingScore = function (item) {\r\n            var score = 0;\r\n            if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n                score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n            }\r\n            else if (item.ext && item.ext.user && item.ext.user.id) {\r\n                score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n            }\r\n            else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n                score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n            }\r\n            else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n                score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n            }\r\n            else {\r\n                // tslint:disable-next-line:insecure-random\r\n                score = (Math.random() * 100);\r\n            }\r\n            return score;\r\n        };\r\n    }\r\n    return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n    function Sample(sampleRate, logger) {\r\n        // We're using 32 bit math, hence max value is (2^31 - 1)\r\n        this.INT_MAX_VALUE = 2147483647;\r\n        var _logger = logger || safeGetLogger(null);\r\n        if (sampleRate > 100 || sampleRate < 0) {\r\n            _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n            sampleRate = 100;\r\n        }\r\n        this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n        this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n    }\r\n    /**\r\n    * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n    */\r\n    Sample.prototype.isSampledIn = function (envelope) {\r\n        var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n        var isSampledIn = false;\r\n        if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n            return true;\r\n        }\r\n        else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n            // exclude MetricData telemetry from sampling\r\n            return true;\r\n        }\r\n        isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\r\n        return isSampledIn;\r\n    };\r\n    return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, createOfflineListener, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { ActiveStatus, BaseTelemetryPlugin, SenderPostManager, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, formatErrorMessageXdr, formatErrorMessageXhr, getExceptionName, getIEVersion, isArray, isBeaconsSupported, isFeatureEnabled, isFetchSupported, isNullOrUndefined, mergeEvtNamespace, objExtend, onConfigChange, parseResponse, prependTransports, runTargetUnload } from \"@microsoft/applicationinsights-core-js\";\r\nimport { createPromise, doAwait, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { getInst, isFunction, isNumber, isPromiseLike, isString, isTruthy, mathFloor, mathMax, mathMin, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_ALWAYS_USE_XHR_OVERR4, _DYN_BASE_TYPE, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_COUNT, _DYN_CUSTOM_HEADERS, _DYN_DIAG_LOG, _DYN_DISABLE_SEND_BEACON_7, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SESSION_STORA5, _DYN_ENDPOINT_URL, _DYN_ENQUEUE, _DYN_GET_SENDER_INST, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET6, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar EMPTY_STR = \"\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n    try {\r\n        return xhr.responseText;\r\n    }\r\n    catch (e) {\r\n        // Best effort, as XHR may throw while XDR wont so just ignore\r\n    }\r\n    return null;\r\n}\r\nfunction isOverrideFn(httpXHROverride) {\r\n    return httpXHROverride && httpXHROverride.sendPOST;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n        // Use the default value (handles empty string in the configuration)\r\n        endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n    },\r\n    _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n    _a.maxBatchInterval = 15000,\r\n    _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n    _a.disableTelemetry = cfgDfBoolean(),\r\n    _a[_DYN_ENABLE_SESSION_STORA5 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n    _a.isRetryDisabled = cfgDfBoolean(),\r\n    _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n    _a[_DYN_DISABLE_SEND_BEACON_7 /* @min:disableSendBeaconSplit */] = cfgDfBoolean(true),\r\n    _a.disableXhr = cfgDfBoolean(),\r\n    _a[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n    _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n    _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n    _a.namePrefix = UNDEFINED_VALUE,\r\n    _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n    _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n    _a.convertUndefined = UNDEFINED_VALUE,\r\n    _a.eventsLimitInMem = 10000,\r\n    _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n    _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },\r\n    _a[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:alwaysUseXhrOverride */] = cfgDfBoolean(),\r\n    _a.transports = UNDEFINED_VALUE,\r\n    _a.retryCodes = UNDEFINED_VALUE,\r\n    _a.corsPolicy = UNDEFINED_VALUE,\r\n    _a.maxRetryCnt = { isVal: isNumber, v: 10 },\r\n    _a));\r\nvar CrossOriginResourcePolicyHeader = \"X-Set-Cross-Origin-Resource-Policy\";\r\nfunction _chkSampling(value) {\r\n    return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n    _b[Event.dataType] = EventEnvelopeCreator,\r\n    _b[Trace.dataType] = TraceEnvelopeCreator,\r\n    _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n    _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n    _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n    _b[Metric.dataType] = MetricEnvelopeCreator,\r\n    _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n    _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n    __extends(Sender, _super);\r\n    function Sender() {\r\n        var _this = _super.call(this) || this;\r\n        _this.priority = 1001;\r\n        _this.identifier = BreezeChannelIdentifier;\r\n        // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n        var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n        var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n        var _lastSend; // The time of the last send operation.\r\n        var _paused; // Flag indicating that the sending should be paused\r\n        var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n        var _serializer;\r\n        var _stamp_specific_redirects;\r\n        var _headers;\r\n        var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n        var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n        var _offlineListener;\r\n        var _evtNamespace;\r\n        var _endpointUrl;\r\n        var _orgEndpointUrl;\r\n        var _maxBatchSizeInBytes;\r\n        var _beaconSupported;\r\n        var _beaconOnUnloadSupported;\r\n        var _beaconNormalSupported;\r\n        var _customHeaders;\r\n        var _disableTelemetry;\r\n        var _instrumentationKey;\r\n        var _convertUndefined;\r\n        var _isRetryDisabled;\r\n        var _maxBatchInterval;\r\n        var _sessionStorageUsed;\r\n        var _bufferOverrideUsed;\r\n        var _namePrefix;\r\n        var _enableSendPromise;\r\n        var _alwaysUseCustomSend;\r\n        var _disableXhr;\r\n        var _fetchKeepAlive;\r\n        var _xhrSend;\r\n        var _fallbackSend;\r\n        var _disableBeaconSplit;\r\n        var _sendPostMgr;\r\n        var _retryCodes;\r\n        var _zipPayload;\r\n        dynamicProto(Sender, _this, function (_self, _base) {\r\n            _initDefaults();\r\n            _self.pause = function () {\r\n                _clearScheduledTimer();\r\n                _paused = true;\r\n            };\r\n            _self.resume = function () {\r\n                if (_paused) {\r\n                    _paused = false;\r\n                    _retryAt = null;\r\n                    // flush if we have exceeded the max-size already\r\n                    _checkMaxSize();\r\n                    _setupTimer();\r\n                }\r\n            };\r\n            _self.flush = function (isAsync, callBack, sendReason) {\r\n                if (isAsync === void 0) { isAsync = true; }\r\n                if (!_paused) {\r\n                    // Clear the normal schedule timer as we are going to try and flush ASAP\r\n                    _clearScheduledTimer();\r\n                    try {\r\n                        var result_1 = _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n                        // Handles non-promise and always called if the returned promise resolves or rejects\r\n                        return doAwaitResponse(result_1, function (rsp) {\r\n                            if (callBack) {\r\n                                callBack(!rsp.rejected);\r\n                                return true;\r\n                            }\r\n                            // When async=true and no callback, return a promise\r\n                            if (isAsync) {\r\n                                return createPromise(function (resolve) {\r\n                                    resolve(!rsp.rejected);\r\n                                });\r\n                            }\r\n                            return result_1;\r\n                        });\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n            };\r\n            _self.onunloadFlush = function () {\r\n                if (!_paused) {\r\n                    if (_beaconSupported || _alwaysUseCustomSend) {\r\n                        try {\r\n                            return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n                        }\r\n                        catch (e) {\r\n                            _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                        }\r\n                    }\r\n                    else {\r\n                        _self.flush(false);\r\n                    }\r\n                }\r\n            };\r\n            _self.addHeader = function (name, value) {\r\n                _headers[name] = value;\r\n            };\r\n            _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n                if (_self.isInitialized()) {\r\n                    _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n                }\r\n                _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, core, extensions, pluginChain);\r\n                var identifier = _self.identifier;\r\n                _serializer = new Serializer(core.logger);\r\n                _consecutiveErrors = 0;\r\n                _retryAt = null;\r\n                _lastSend = 0;\r\n                _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n                _stamp_specific_redirects = 0;\r\n                var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n                _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n                _offlineListener = createOfflineListener(_evtNamespace);\r\n                // This function will be re-called whenever any referenced configuration is changed\r\n                _self._addHook(onConfigChange(config, function (details) {\r\n                    var config = details.cfg;\r\n                    if (config.storagePrefix) {\r\n                        utlSetStoragePrefix(config.storagePrefix);\r\n                    }\r\n                    var ctx = createProcessTelemetryContext(null, config, core);\r\n                    // getExtCfg only finds undefined values from core\r\n                    var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n                    var curExtUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n                    // if it is not inital change (_endpointUrl has value)\r\n                    // if current sender endpoint url is not changed directly\r\n                    // means ExtCfg is not changed directly\r\n                    // then we need to monitor endpoint url changes from core\r\n                    if (_endpointUrl && curExtUrl === _endpointUrl) {\r\n                        var coreUrl = config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n                        // if core endpoint url is changed\r\n                        if (coreUrl && coreUrl !== curExtUrl) {\r\n                            // and endpoint promise changes is handled by this as well\r\n                            senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = coreUrl;\r\n                        }\r\n                    }\r\n                    var csStream = getInst(\"CompressionStream\");\r\n                    // Determine whether to enable payload compression (zipping).\r\n                    _zipPayload = isFeatureEnabled(\"zipPayload\", config, false);\r\n                    if (!isFunction(csStream)) {\r\n                        _zipPayload = false;\r\n                    }\r\n                    var corsPolicy = senderConfig.corsPolicy;\r\n                    if (corsPolicy) {\r\n                        if (corsPolicy === \"same-origin\" || corsPolicy === \"same-site\" || corsPolicy === \"cross-origin\") {\r\n                            _this.addHeader(CrossOriginResourcePolicyHeader, corsPolicy);\r\n                        }\r\n                    }\r\n                    else {\r\n                        delete _headers[CrossOriginResourcePolicyHeader];\r\n                    }\r\n                    if (isPromiseLike(senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n                        // if it is promise, means the endpoint url is from core.endpointurl\r\n                        senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n                    }\r\n                    objDefine(_self, \"_senderConfig\", {\r\n                        g: function () {\r\n                            return senderConfig;\r\n                        }\r\n                    });\r\n                    // Only update the endpoint if the original config !== the current config\r\n                    // This is so any redirect endpointUrl is not overwritten\r\n                    if (_orgEndpointUrl !== senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]) {\r\n                        if (_orgEndpointUrl) {\r\n                            // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n                        }\r\n                        _endpointUrl = _orgEndpointUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n                    }\r\n                    // or is not string\r\n                    if (core.activeStatus() === ActiveStatus.PENDING) {\r\n                        // waiting for core promises to be resolved\r\n                        // NOTE: if active status is set to pending, stop sending, clear timer here\r\n                        _self.pause();\r\n                    }\r\n                    else if (core.activeStatus() === ActiveStatus.ACTIVE) {\r\n                        // core status changed from pending to other status\r\n                        _self.resume();\r\n                    }\r\n                    if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n                        // Removing any previously defined custom headers as they have changed\r\n                        arrForEach(_customHeaders, function (customHeader) {\r\n                            delete _headers[customHeader.header];\r\n                        });\r\n                    }\r\n                    _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n                    _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n                    _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false && isBeaconsSupported();\r\n                    _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false && isBeaconsSupported();\r\n                    _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:%2ealwaysUseXhrOverride */];\r\n                    _disableXhr = !!senderConfig.disableXhr;\r\n                    _retryCodes = senderConfig.retryCodes;\r\n                    var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n                    var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 /* @min:%2eenableSessionStorageBuffer */] &&\r\n                        (!!bufferOverride || utlCanUseSessionStorage());\r\n                    var namePrefix = senderConfig.namePrefix;\r\n                    //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n                    //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n                    var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n                        || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n                        || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n                    if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n                        // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n                        // if namePrefix changes, transfer current buffer to new buffer\r\n                        // else no action needed\r\n                        //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n                        // transfer current buffer to new buffer\r\n                        if (shouldUpdate) {\r\n                            try {\r\n                                _self[_DYN__BUFFER /* @min:%2e_buffer */] = _self[_DYN__BUFFER /* @min:%2e_buffer */].createNew(diagLog, senderConfig, canUseSessionStorage);\r\n                            }\r\n                            catch (e) {\r\n                                _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                            }\r\n                        }\r\n                        _checkMaxSize();\r\n                    }\r\n                    else {\r\n                        _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n                            ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n                    }\r\n                    _namePrefix = namePrefix;\r\n                    _sessionStorageUsed = canUseSessionStorage;\r\n                    _bufferOverrideUsed = bufferOverride;\r\n                    _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true);\r\n                    _disableBeaconSplit = !!senderConfig[_DYN_DISABLE_SEND_BEACON_7 /* @min:%2edisableSendBeaconSplit */];\r\n                    _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n                    _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n                    if (!isPromiseLike(_instrumentationKey) && !_validateInstrumentationKey(_instrumentationKey, config)) {\r\n                        _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n                    }\r\n                    _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n                    if (isString(_endpointUrl) && !isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                        arrForEach(_customHeaders, function (customHeader) {\r\n                            _this.addHeader(customHeader.header, customHeader.value);\r\n                        });\r\n                    }\r\n                    else {\r\n                        _customHeaders = null;\r\n                    }\r\n                    _enableSendPromise = senderConfig.enableSendPromise;\r\n                    var sendPostConfig = _getSendPostMgrConfig();\r\n                    // only init it once\r\n                    if (!_sendPostMgr) {\r\n                        _sendPostMgr = new SenderPostManager();\r\n                        _sendPostMgr[_DYN_INITIALIZE /* @min:%2einitialize */](sendPostConfig, diagLog);\r\n                    }\r\n                    else {\r\n                        _sendPostMgr.SetConfig(sendPostConfig);\r\n                    }\r\n                    var customInterface = senderConfig.httpXHROverride;\r\n                    var httpInterface = null;\r\n                    var syncInterface = null;\r\n                    // User requested transport(s) values > Beacon > Fetch > XHR\r\n                    // Beacon would be filtered out if user has set disableBeaconApi to true at _getSenderInterface\r\n                    var theTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */], senderConfig.transports);\r\n                    httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](theTransports, false);\r\n                    var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();\r\n                    _xhrSend = function (payload, isAsync) {\r\n                        return _doSend(xhrInterface, payload, isAsync);\r\n                    };\r\n                    _fallbackSend = function (payload, isAsync) {\r\n                        return _doSend(xhrInterface, payload, isAsync, false);\r\n                    };\r\n                    httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);\r\n                    _self[_DYN__SENDER /* @min:%2e_sender */] = function (payload, isAsync) {\r\n                        return _doSend(httpInterface, payload, isAsync);\r\n                    };\r\n                    if (_fetchKeepAlive) {\r\n                        // Try and use the fetch with keepalive\r\n                        _syncUnloadSender = _fetchKeepAliveSender;\r\n                    }\r\n                    var syncTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */], senderConfig.unloadTransports);\r\n                    if (!_fetchKeepAlive) {\r\n                        // remove fetch from theTransports\r\n                        syncTransports = syncTransports.filter(function (transport) { return transport !== 2 /* TransportType.Fetch */; });\r\n                    }\r\n                    syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](syncTransports, true);\r\n                    syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);\r\n                    if ((_alwaysUseCustomSend || senderConfig.unloadTransports || !_syncUnloadSender) && syncInterface) {\r\n                        _syncUnloadSender = function (payload, isAsync) {\r\n                            return _doSend(syncInterface, payload, isAsync);\r\n                        };\r\n                    }\r\n                    if (!_syncUnloadSender) {\r\n                        _syncUnloadSender = _xhrSend;\r\n                    }\r\n                    _disableTelemetry = senderConfig.disableTelemetry;\r\n                    _convertUndefined = senderConfig.convertUndefined || UNDEFINED_VALUE;\r\n                    _isRetryDisabled = senderConfig.isRetryDisabled;\r\n                    _maxBatchInterval = senderConfig.maxBatchInterval;\r\n                }));\r\n            };\r\n            _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n                itemCtx = _self._getTelCtx(itemCtx);\r\n                var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n                try {\r\n                    var isValidate = _validate(telemetryItem, diagLogger);\r\n                    if (!isValidate) {\r\n                        return;\r\n                    }\r\n                    var aiEnvelope = _getEnvelope(telemetryItem, diagLogger);\r\n                    if (!aiEnvelope) {\r\n                        return;\r\n                    }\r\n                    // check if the incoming payload is too large, truncate if necessary\r\n                    var payload = _serializer.serialize(aiEnvelope);\r\n                    // flush if we would exceed the max-size limit by adding this item\r\n                    var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n                    _checkMaxSize(payload);\r\n                    var payloadItem = {\r\n                        item: payload,\r\n                        cnt: 0 // inital cnt will always be 0\r\n                    };\r\n                    // enqueue the payload\r\n                    buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payloadItem);\r\n                    // ensure an invocation timeout is set\r\n                    _setupTimer();\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n                // hand off the telemetry item to the next plugin\r\n                _self.processNext(telemetryItem, itemCtx);\r\n            };\r\n            _self.isCompletelyIdle = function () {\r\n                return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT /* @min:%2ecount */]() === 0;\r\n            };\r\n            _self.getOfflineListener = function () {\r\n                return _offlineListener;\r\n            };\r\n            /**\r\n             * xhr state changes\r\n             */\r\n            _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n                // since version 3.2.0, this function is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);\r\n            };\r\n            /**\r\n             * Immediately send buffered data\r\n             * @param isAsync - Indicates if the events should be sent asynchronously\r\n             * @param forcedSender - Indicates the forcedSender, undefined if not passed\r\n             */\r\n            _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (isAsync, forcedSender, sendReason) {\r\n                if (isAsync === void 0) { isAsync = true; }\r\n                var result;\r\n                if (!_paused) {\r\n                    try {\r\n                        var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n                        // Send data only if disableTelemetry is false\r\n                        if (!_disableTelemetry) {\r\n                            if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n                                var payload = buffer.getItems();\r\n                                _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, isAsync);\r\n                                // invoke send\r\n                                if (forcedSender) {\r\n                                    result = forcedSender.call(_self, payload, isAsync);\r\n                                }\r\n                                else {\r\n                                    result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, isAsync);\r\n                                }\r\n                            }\r\n                            // update lastSend time to enable throttling\r\n                            _lastSend = +new Date;\r\n                        }\r\n                        else {\r\n                            buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n                        }\r\n                        _clearScheduledTimer();\r\n                    }\r\n                    catch (e) {\r\n                        /* Ignore this error for IE under v10 */\r\n                        var ieVer = getIEVersion();\r\n                        if (!ieVer || ieVer > 9) {\r\n                            _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                        }\r\n                        // potential place to call countException q3\r\n                    }\r\n                }\r\n                return result;\r\n            };\r\n            _self.getOfflineSupport = function () {\r\n                return {\r\n                    getUrl: function () {\r\n                        return _endpointUrl;\r\n                    },\r\n                    createPayload: _createPayload,\r\n                    serialize: _serialize,\r\n                    batch: _batch,\r\n                    shouldProcess: function (evt) {\r\n                        return !!_validate(evt);\r\n                    }\r\n                };\r\n            };\r\n            _self._doTeardown = function (unloadCtx, unloadState) {\r\n                _self.onunloadFlush();\r\n                runTargetUnload(_offlineListener, false);\r\n                _initDefaults();\r\n            };\r\n            /**\r\n             * error handler\r\n             */\r\n            _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n                // since version 3.1.3, string[] is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _onError(payload, message, event);\r\n            };\r\n            /**\r\n             * partial success handler\r\n             */\r\n            _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n                // since version 3.1.3, string[] is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _onPartialSuccess(payload, results);\r\n            };\r\n            /**\r\n             * success handler\r\n             */\r\n            _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n                // since version 3.1.3, string[] is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _onSuccess(payload, countOfItemsInPayload);\r\n                //_self._buffer && _self._buffer.clearSent(payload);\r\n            };\r\n            /**\r\n             * xdr state changes\r\n             */\r\n            _self._xdrOnLoad = function (xdr, payload) {\r\n                // since version 3.1.3, string[] is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _xdrOnLoad(xdr, payload);\r\n            };\r\n            // function _getStatsBeat() {\r\n            //     let statsBeatConfig: IStatsBeatState = {\r\n            //         cKey: _self._senderConfig.instrumentationKey,\r\n            //         endpoint: _endpointUrl,\r\n            //         sdkVer: EnvelopeCreator.Version,\r\n            //         type: eStatsType.SDK\r\n            //     };\r\n            //     let core = _self.core;\r\n            //     // During page unload the core may have been cleared and some async events may not have been sent yet\r\n            //     // resulting in the core being null. In this case we don't want to create a statsbeat instance\r\n            //     return core ? core.getStatsBeat(statsBeatConfig) : null;\r\n            // }\r\n            function _xdrOnLoad(xdr, payload) {\r\n                var responseText = _getResponseText(xdr);\r\n                if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n                    _consecutiveErrors = 0;\r\n                    _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n                }\r\n                else {\r\n                    var results = parseResponse(responseText);\r\n                    if (results && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n                        && !_isRetryDisabled) {\r\n                        _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n                    }\r\n                    else {\r\n                        _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, formatErrorMessageXdr(xdr));\r\n                    }\r\n                }\r\n            }\r\n            function _getSendPostMgrConfig() {\r\n                try {\r\n                    var onCompleteFuncs = {\r\n                        xdrOnComplete: function (xdr, oncomplete, payload) {\r\n                            var payloadArr = _getPayloadArr(payload);\r\n                            if (!payloadArr) {\r\n                                return;\r\n                            }\r\n                            //const responseText = _getResponseText(xdr);\r\n                            // let statsbeat = _getStatsBeat();\r\n                            // if (statsbeat) {\r\n                            //     if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n                            //         _consecutiveErrors = 0;\r\n                            //         statsbeat.count(200, payload, _endpointUrl);\r\n                            //     } else {\r\n                            //         const results = parseResponse(responseText);\r\n                            //         if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n                            //             && !_isRetryDisabled) {\r\n                            //             statsbeat.count(206, payload, _endpointUrl);\r\n                            //         } else {\r\n                            //             statsbeat.count(499, payload, _endpointUrl);\r\n                            //         }\r\n                            //     }\r\n                            // }\r\n                            return _xdrOnLoad(xdr, payloadArr);\r\n                        },\r\n                        fetchOnComplete: function (response, onComplete, resValue, payload) {\r\n                            var payloadArr = _getPayloadArr(payload);\r\n                            if (!payloadArr) {\r\n                                return;\r\n                            }\r\n                            // let statsbeat = _getStatsBeat();\r\n                            // if (statsbeat) {\r\n                            //     statsbeat.count(response.status, payload, _endpointUrl);\r\n                            // }\r\n                            return _checkResponsStatus(response.status, payloadArr, response.url, payloadArr[_DYN_LENGTH /* @min:%2elength */], response.statusText, resValue || \"\");\r\n                        },\r\n                        xhrOnComplete: function (request, oncomplete, payload) {\r\n                            var payloadArr = _getPayloadArr(payload);\r\n                            if (!payloadArr) {\r\n                                return;\r\n                            }\r\n                            // let statsbeat = _getStatsBeat();\r\n                            // if (statsbeat && request.readyState === 4) {\r\n                            //     statsbeat.count(request.status, payload, _endpointUrl);\r\n                            // }\r\n                            return _xhrReadyStateChange(request, payloadArr, payloadArr[_DYN_LENGTH /* @min:%2elength */]);\r\n                        },\r\n                        beaconOnRetry: function (data, onComplete, canSend) {\r\n                            // let statsbeat = _getStatsBeat();\r\n                            // if (statsbeat) {\r\n                            //     statsbeat.count(499, data, _endpointUrl);\r\n                            // }\r\n                            return _onBeaconRetry(data, onComplete, canSend);\r\n                        }\r\n                    };\r\n                    var config = {\r\n                        enableSendPromise: _enableSendPromise,\r\n                        isOneDs: false,\r\n                        disableCredentials: false,\r\n                        disableXhr: _disableXhr,\r\n                        disableBeacon: !_beaconNormalSupported,\r\n                        disableBeaconSync: !_beaconOnUnloadSupported,\r\n                        senderOnCompleteCallBack: onCompleteFuncs\r\n                    };\r\n                    return config;\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return null;\r\n            }\r\n            /**\r\n             * xhr state changes\r\n             */\r\n            function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {\r\n                if (xhr.readyState === 4) {\r\n                    _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n                }\r\n            }\r\n            /**\r\n             * error handler\r\n             */\r\n            function _onError(payload, message, event) {\r\n                _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n                _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n            }\r\n            /**\r\n             * partial success handler\r\n             */\r\n            function _onPartialSuccess(payload, results) {\r\n                var failed = [];\r\n                var retry = [];\r\n                // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n                var errors = results.errors.reverse();\r\n                for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n                    var error = errors_1[_i];\r\n                    var extracted = payload.splice(error.index, 1)[0];\r\n                    if (_isRetriable(error.statusCode)) {\r\n                        retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n                    }\r\n                    else {\r\n                        // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n                        failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n                    }\r\n                }\r\n                if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n                }\r\n                if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n                }\r\n                if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    _resendPayload(retry);\r\n                    _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n                        \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n                        \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n                }\r\n            }\r\n            /**\r\n             * success handler\r\n             */\r\n            function _onSuccess(payload, countOfItemsInPayload) {\r\n                _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n            }\r\n            function _getPayloadArr(payload) {\r\n                try {\r\n                    if (payload) {\r\n                        var internalPayload = payload;\r\n                        var arr = internalPayload.oriPayload;\r\n                        if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n                            return arr;\r\n                        }\r\n                        return null;\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return null;\r\n            }\r\n            function _validate(telemetryItem, diagLogger) {\r\n                if (_disableTelemetry) {\r\n                    // Do not send/save data\r\n                    return false;\r\n                }\r\n                // validate input\r\n                if (!telemetryItem) {\r\n                    diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n                    return false;\r\n                }\r\n                // validate event\r\n                if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n                    diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n                    return false;\r\n                }\r\n                if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n                    // Default\r\n                    telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n                }\r\n                // ensure a sender was constructed\r\n                if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n                    diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n                    return false;\r\n                }\r\n                // check if this item should be sampled in, else add sampleRate tag\r\n                if (!_isSampledIn(telemetryItem)) {\r\n                    // Item is sampled out, do not send it\r\n                    diagLogger && _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n                    return false;\r\n                }\r\n                else {\r\n                    telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n                }\r\n                return true;\r\n            }\r\n            function _getEnvelope(telemetryItem, diagLogger) {\r\n                // construct an envelope that Application Insights endpoint can understand\r\n                // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n                var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n                var aiEnvelope = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n                if (!aiEnvelope) {\r\n                    _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n                    return;\r\n                }\r\n                var doNotSendItem = false;\r\n                // this is for running in legacy mode, where customer may already have a custom initializer present\r\n                if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n                    arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n                        try {\r\n                            if (callBack && callBack(aiEnvelope) === false) {\r\n                                doNotSendItem = true;\r\n                                _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n                            }\r\n                        }\r\n                        catch (e) {\r\n                            // log error but dont stop executing rest of the telemetry initializers\r\n                            // doNotSendItem = true;\r\n                            _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n                        }\r\n                    });\r\n                    delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n                }\r\n                if (doNotSendItem) {\r\n                    return; // do not send, no need to execute next plugin\r\n                }\r\n                return aiEnvelope;\r\n            }\r\n            function _serialize(item) {\r\n                var rlt = EMPTY_STR;\r\n                var diagLogger = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n                try {\r\n                    var valid = _validate(item, diagLogger);\r\n                    var envelope = null;\r\n                    if (valid) {\r\n                        envelope = _getEnvelope(item, diagLogger);\r\n                    }\r\n                    if (envelope) {\r\n                        rlt = _serializer.serialize(envelope);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return rlt;\r\n            }\r\n            function _batch(arr) {\r\n                var rlt = EMPTY_STR;\r\n                if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n                    rlt = \"[\" + arr.join(\",\") + \"]\";\r\n                }\r\n                return rlt;\r\n            }\r\n            function _createPayload(data) {\r\n                var headers = _getHeaders();\r\n                return {\r\n                    urlString: _endpointUrl,\r\n                    data: data,\r\n                    headers: headers\r\n                };\r\n            }\r\n            function _isSampledIn(envelope) {\r\n                return _self._sample.isSampledIn(envelope);\r\n            }\r\n            function _getOnComplete(payload, status, headers, response) {\r\n                // ***********************************************************************************************\r\n                //TODO: handle other status codes\r\n                if (status === 200 && payload) {\r\n                    _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n                }\r\n                else {\r\n                    response && _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response);\r\n                }\r\n            }\r\n            function _doSend(sendInterface, payload, isAsync, markAsSent) {\r\n                if (markAsSent === void 0) { markAsSent = true; }\r\n                var onComplete = function (status, headers, response) {\r\n                    // let statsbeat = _getStatsBeat();\r\n                    // if (statsbeat) {\r\n                    //     statsbeat.count(status, payloadData, _endpointUrl);\r\n                    // }\r\n                    return _getOnComplete(payload, status, headers, response);\r\n                };\r\n                var payloadData = _getPayload(payload);\r\n                // if (payloadData) {\r\n                //     payloadData.statsBeatData = {startTime: dateNow()};\r\n                // }\r\n                var sendPostFunc = sendInterface && sendInterface.sendPOST;\r\n                if (sendPostFunc && payloadData) {\r\n                    // ***********************************************************************************************\r\n                    // mark payload as sent at the beginning of calling each send function\r\n                    if (markAsSent) {\r\n                        _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n                    }\r\n                    var result_2;\r\n                    var callbackExecuted_1 = false;\r\n                    var resolveFn_1;\r\n                    var rejectFn_1;\r\n                    _sendPostMgr.preparePayload(function (processedPayload) {\r\n                        result_2 = sendPostFunc(processedPayload, onComplete, !isAsync);\r\n                        callbackExecuted_1 = true;\r\n                        if (resolveFn_1) {\r\n                            doAwait(result_2, resolveFn_1, rejectFn_1);\r\n                        }\r\n                    }, _zipPayload, payloadData, !isAsync);\r\n                    if (callbackExecuted_1) {\r\n                        return result_2;\r\n                    }\r\n                    // Callback was not executed synchronously, so we need to return a promise\r\n                    return createPromise(function (resolve, reject) {\r\n                        resolveFn_1 = resolve;\r\n                        rejectFn_1 = reject;\r\n                    });\r\n                }\r\n                return null;\r\n            }\r\n            function _getPayload(payload) {\r\n                if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    var batch = _self[_DYN__BUFFER /* @min:%2e_buffer */].batchPayloads(payload);\r\n                    var headers = _getHeaders();\r\n                    var payloadData = {\r\n                        data: batch,\r\n                        urlString: _endpointUrl,\r\n                        headers: headers,\r\n                        disableXhrSync: _disableXhr,\r\n                        disableFetchKeepAlive: !_fetchKeepAlive,\r\n                        oriPayload: payload\r\n                    };\r\n                    return payloadData;\r\n                }\r\n                return null;\r\n            }\r\n            function _getHeaders() {\r\n                try {\r\n                    var headers = _headers || {};\r\n                    if (isInternalApplicationInsightsEndpoint(_endpointUrl)) {\r\n                        headers[RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */]] = RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */];\r\n                    }\r\n                    return headers;\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return null;\r\n            }\r\n            function _checkMaxSize(incomingPayload) {\r\n                var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n                if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n                    if (!_offlineListener || _offlineListener.isOnline()) { // only trigger send when currently online\r\n                        _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n                    }\r\n                    return true;\r\n                }\r\n                return false;\r\n            }\r\n            function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n                var response = null;\r\n                if (!_self._appId) {\r\n                    response = parseResponse(res);\r\n                    if (response && response.appId) {\r\n                        _self._appId = response.appId;\r\n                    }\r\n                }\r\n                if ((status < 200 || status >= 300) && status !== 0) {\r\n                    // Update End Point url if permanent redirect or moved permanently\r\n                    // Updates the end point url before retry\r\n                    if (status === 301 || status === 307 || status === 308) {\r\n                        if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n                            _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n                            return;\r\n                        }\r\n                    }\r\n                    if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n                        // Note: Don't check for status == 0, since adblock gives this code\r\n                        if (!_isRetryDisabled) {\r\n                            var offlineBackOffMultiplier = 10; // arbritrary number\r\n                            _resendPayload(payload, offlineBackOffMultiplier);\r\n                            _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n                        }\r\n                        return;\r\n                    }\r\n                    if (!_isRetryDisabled && _isRetriable(status)) {\r\n                        _resendPayload(payload);\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n                            \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n                    }\r\n                    else {\r\n                        _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n                    }\r\n                }\r\n                else {\r\n                    // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n                    // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n                    _checkAndUpdateEndPointUrl(responseUrl);\r\n                    if (status === 206) {\r\n                        if (!response) {\r\n                            response = parseResponse(res);\r\n                        }\r\n                        if (response && !_isRetryDisabled) {\r\n                            _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n                        }\r\n                        else {\r\n                            _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n                        }\r\n                    }\r\n                    else {\r\n                        _consecutiveErrors = 0;\r\n                        _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n                    }\r\n                }\r\n            }\r\n            function _checkAndUpdateEndPointUrl(responseUrl) {\r\n                // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n                if (_stamp_specific_redirects >= 10) {\r\n                    //  _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n                    //  _stamp_specific_redirects = 0;\r\n                    return false;\r\n                }\r\n                if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n                    if (responseUrl !== _endpointUrl) {\r\n                        _endpointUrl = responseUrl;\r\n                        ++_stamp_specific_redirects;\r\n                        return true;\r\n                    }\r\n                }\r\n                return false;\r\n            }\r\n            function _doUnloadSend(payload, isAsync) {\r\n                if (_syncUnloadSender) {\r\n                    // We are unloading so always call the sender with sync set to false\r\n                    _syncUnloadSender(payload, false);\r\n                }\r\n                else {\r\n                    // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n                    var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([3 /* TransportType.Beacon */], true);\r\n                    return _doSend(beaconInst, payload, isAsync);\r\n                }\r\n            }\r\n            function _onBeaconRetry(payload, onComplete, canSend) {\r\n                var internalPayload = payload;\r\n                var data = internalPayload && internalPayload.oriPayload;\r\n                if (!_disableBeaconSplit) {\r\n                    // Failed to send entire payload so try and split data and try to send as much events as possible\r\n                    var droppedPayload = [];\r\n                    for (var lp = 0; lp < data[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n                        var thePayload = data[lp];\r\n                        var arr = [thePayload];\r\n                        var item = _getPayload(arr);\r\n                        if (!canSend(item, onComplete)) {\r\n                            // Can't send anymore, so split the batch and drop the rest\r\n                            droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n                        }\r\n                        else {\r\n                            _self._onSuccess(arr, arr[_DYN_LENGTH /* @min:%2elength */]);\r\n                        }\r\n                    }\r\n                    if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                        _fallbackSend && _fallbackSend(droppedPayload, true);\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n                    }\r\n                }\r\n                else {\r\n                    _fallbackSend && _fallbackSend(data, true);\r\n                    _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n                }\r\n            }\r\n            function _isStringArr(arr) {\r\n                try {\r\n                    if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n                        return (isString(arr[0]));\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    //TODO: log, sender use IInternalStorageItem instead of string since 3.1.3\r\n                }\r\n                return null;\r\n            }\r\n            function _fetchKeepAliveSender(payload, isAsync) {\r\n                var transport = null;\r\n                if (isArray(payload)) {\r\n                    var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n                    for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n                        payloadSize += payload[lp].item[_DYN_LENGTH /* @min:%2elength */];\r\n                    }\r\n                    var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();\r\n                    if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n                        transport = 2 /* TransportType.Fetch */;\r\n                    }\r\n                    else if (isBeaconsSupported()) {\r\n                        // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n                        transport = 3 /* TransportType.Beacon */;\r\n                    }\r\n                    else {\r\n                        // Payload is going to be too big so just try and send via XHR\r\n                        transport = 1 /* TransportType.Xhr */;\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n                    }\r\n                    var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([transport], true);\r\n                    return _doSend(inst, payload, isAsync);\r\n                }\r\n                return null;\r\n            }\r\n            /**\r\n             * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n             * @param payload\r\n             */\r\n            function _resendPayload(payload, linearFactor) {\r\n                if (linearFactor === void 0) { linearFactor = 1; }\r\n                if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n                    return;\r\n                }\r\n                var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n                buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n                _consecutiveErrors++;\r\n                for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n                    var item = payload_1[_i];\r\n                    item.cnt = item.cnt || 0; // to make sure we have cnt for each payload\r\n                    item.cnt++; // when resend, increase cnt\r\n                    buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n                }\r\n                // setup timer\r\n                _setRetryTime(linearFactor);\r\n                _setupTimer();\r\n            }\r\n            /**\r\n             * Calculates the time to wait before retrying in case of an error based on\r\n             * http://en.wikipedia.org/wiki/Exponential_backoff\r\n             */\r\n            function _setRetryTime(linearFactor) {\r\n                var SlotDelayInSeconds = 10;\r\n                var delayInSeconds;\r\n                if (_consecutiveErrors <= 1) {\r\n                    delayInSeconds = SlotDelayInSeconds;\r\n                }\r\n                else {\r\n                    var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n                    // tslint:disable-next-line:insecure-random\r\n                    var backOffDelay = mathFloor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n                    backOffDelay = linearFactor * backOffDelay;\r\n                    delayInSeconds = mathMax(mathMin(backOffDelay, 3600), SlotDelayInSeconds);\r\n                }\r\n                // TODO: Log the backoff time like the C# version does.\r\n                var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n                // TODO: Log the retry at time like the C# version does.\r\n                _retryAt = retryAfterTimeSpan;\r\n            }\r\n            /**\r\n             * Sets up the timer which triggers actually sending the data.\r\n             */\r\n            function _setupTimer() {\r\n                if (!_timeoutHandle && !_paused) {\r\n                    var retryInterval = _retryAt ? mathMax(0, _retryAt - dateNow()) : 0;\r\n                    var timerValue = mathMax(_maxBatchInterval, retryInterval);\r\n                    _timeoutHandle = scheduleTimeout(function () {\r\n                        _timeoutHandle = null;\r\n                        _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n                    }, timerValue);\r\n                }\r\n            }\r\n            function _clearScheduledTimer() {\r\n                _timeoutHandle && _timeoutHandle.cancel();\r\n                _timeoutHandle = null;\r\n                _retryAt = null;\r\n            }\r\n            /**\r\n             * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n             * @param statusCode\r\n             */\r\n            function _isRetriable(statusCode) {\r\n                // retryCodes = [] means should not retry\r\n                if (!isNullOrUndefined(_retryCodes)) {\r\n                    return _retryCodes[_DYN_LENGTH /* @min:%2elength */] && _retryCodes.indexOf(statusCode) > -1;\r\n                }\r\n                return statusCode === 401 // Unauthorized\r\n                    // Removing as private links can return a 403 which causes excessive retries and session storage usage\r\n                    // || statusCode === 403 // Forbidden\r\n                    || statusCode === 408 // Timeout\r\n                    || statusCode === 429 // Too many requests.\r\n                    || statusCode === 500 // Internal server error.\r\n                    || statusCode === 502 // Bad Gateway.\r\n                    || statusCode === 503 // Service unavailable.\r\n                    || statusCode === 504; // Gateway timeout.\r\n            }\r\n            // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n            function _getNotifyMgr() {\r\n                var func = \"getNotifyMgr\";\r\n                var result;\r\n                var core = _self.core;\r\n                if (core) {\r\n                    // During page unload the core may have been cleared and some async events may not have been sent yet\r\n                    // resulting in the core being null. In this case we don't want to create a statsbeat instance\r\n                    if (core[func]) {\r\n                        result = core[func]();\r\n                    }\r\n                    else {\r\n                        // using _self.core['_notificationManager'] for backward compatibility\r\n                        result = core[\"_notificationManager\"];\r\n                    }\r\n                }\r\n                return result;\r\n            }\r\n            function _notifySendRequest(sendRequest, isAsync) {\r\n                var manager = _getNotifyMgr();\r\n                if (manager && manager.eventsSendRequest) {\r\n                    try {\r\n                        manager.eventsSendRequest(sendRequest, isAsync);\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n            }\r\n            /**\r\n             * Validate UUID Format\r\n             * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n             */\r\n            function _validateInstrumentationKey(instrumentationKey, config) {\r\n                var disableValidation = config.disableInstrumentationKeyValidation;\r\n                var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n                if (disableIKeyValidationFlag) {\r\n                    return true;\r\n                }\r\n                var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n                var regexp = new RegExp(UUID_Regex);\r\n                return regexp.test(instrumentationKey);\r\n            }\r\n            function _initDefaults() {\r\n                _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n                _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n                _self._appId = null;\r\n                _self._sample = null;\r\n                _headers = {};\r\n                _offlineListener = null;\r\n                _consecutiveErrors = 0;\r\n                _retryAt = null;\r\n                _lastSend = null;\r\n                _paused = false;\r\n                _timeoutHandle = null;\r\n                _serializer = null;\r\n                _stamp_specific_redirects = 0;\r\n                _syncFetchPayload = 0;\r\n                _syncUnloadSender = null;\r\n                _evtNamespace = null;\r\n                _endpointUrl = null;\r\n                _orgEndpointUrl = null;\r\n                _maxBatchSizeInBytes = 0;\r\n                _beaconSupported = false;\r\n                _customHeaders = null;\r\n                _disableTelemetry = false;\r\n                _instrumentationKey = null;\r\n                _convertUndefined = UNDEFINED_VALUE;\r\n                _isRetryDisabled = false;\r\n                _sessionStorageUsed = null;\r\n                _namePrefix = UNDEFINED_VALUE;\r\n                _disableXhr = false;\r\n                _fetchKeepAlive = false;\r\n                _disableBeaconSplit = false;\r\n                _xhrSend = null;\r\n                _fallbackSend = null;\r\n                _sendPostMgr = null;\r\n                objDefine(_self, \"_senderConfig\", {\r\n                    g: function () {\r\n                        return objExtend({}, defaultAppInsightsChannelConfig);\r\n                    }\r\n                });\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n    Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n        var envelope;\r\n        if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n            envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n        }\r\n        else {\r\n            envelope = orig;\r\n        }\r\n        var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n        return creator(logger, envelope, convertUndefined);\r\n    };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n// Removed Stub for Sender.prototype.isCompletelyIdle.\r\n// Removed Stub for Sender.prototype.getOfflineSupport.\r\n// Removed Stub for Sender.prototype.getOfflineListener.\r\n    return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 11\r\nexport var _DYN_LENGTH = \"length\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 8\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 11\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 5\r\nexport var _DYN_ABORTED = \"aborted\"; // Count: 6\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 4\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_0 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 7\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT1 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 5\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE2 = \"enableRequestHeaderTracking\"; // Count: 3\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST3 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA4 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V5 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM6 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN7 = \"disableAjaxTracking\"; // Count: 3\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL8 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI9 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD10 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 11\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 7\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 5\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 8\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE11 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 6\r\nexport var _DYN_RESPONSE_FINISHED_TI12 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_GET_ALL_RESPONSE_HEA13 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES14 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { mathRound } from \"@nevware21/ts-utils\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE_FINISHED_TI12, _DYN_SPAN_ID, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE11, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n    var result = 0;\r\n    var from = resourceEntry[start];\r\n    var to = resourceEntry[end];\r\n    if (from && to) {\r\n        result = dateTimeUtilsDuration(from, to);\r\n    }\r\n    return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n    var result = 0;\r\n    var value = _calcPerfDuration(resourceEntry, start, end);\r\n    if (value) {\r\n        result = _setPerfValue(props, name, msToTimeSpan(value));\r\n    }\r\n    return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n    var strPerf = \"ajaxPerf\";\r\n    var result = 0;\r\n    if (props && name && value) {\r\n        var perfData = props[strPerf] = (props[strPerf] || {});\r\n        perfData[name] = value;\r\n        result = 1;\r\n    }\r\n    return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n    /*\r\n    * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n    *  | -startTime\r\n    *  | -redirectStart\r\n    *  |            | -redirectEnd\r\n    *  |            | | -fetchStart\r\n    *  |            | |   | -domainLookupStart\r\n    *  |            | |   |                |- domainLookupEnd\r\n    *  |            | |   |                | | -connectStart\r\n    *  |            | |   |                | |  | -secureConnectionStart\r\n    *  |            | |   |                | |  |        | -connectEnd\r\n    *  |            | |   |                | |  |        | | -requestStart\r\n    *  |            | |   |                | |  |        | |           | | -responseStart\r\n    *  |            | |   |                | |  |        | |           | |            | | -responseEnd\r\n    *  +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n    *  |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n    *  |-------------------networkConnect----------------|\r\n    *  |                                                   |---------sentRequest--------|\r\n    *  |------------------------------------perfTotal-----------------------------------|\r\n    */\r\n    var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n    var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n    var propsSet = 0;\r\n    var strName = \"name\";\r\n    var strStart = \"Start\";\r\n    var strEnd = \"End\";\r\n    var strDomainLookup = \"domainLookup\";\r\n    var strConnect = \"connect\";\r\n    var strRedirect = \"redirect\";\r\n    var strRequest = \"request\";\r\n    var strResponse = \"response\";\r\n    var strStartTime = \"startTime\";\r\n    var strDomainLookupStart = strDomainLookup + strStart;\r\n    var strDomainLookupEnd = strDomainLookup + strEnd;\r\n    var strConnectStart = strConnect + strStart;\r\n    var strConnectEnd = strConnect + strEnd;\r\n    var strRequestStart = strRequest + strStart;\r\n    var strRequestEnd = strRequest + strEnd;\r\n    var strResponseStart = strResponse + strStart;\r\n    var strResponseEnd = strResponse + strEnd;\r\n    var strRedirectStart = strRedirect + strStart;\r\n    var strRedirectEnd = strRedirect = strEnd;\r\n    var strTransferSize = \"transferSize\";\r\n    var strEncodedBodySize = \"encodedBodySize\";\r\n    var strDecodedBodySize = \"decodedBodySize\";\r\n    var strServerTiming = \"serverTiming\";\r\n    if (resourceEntry) {\r\n        // redirect\r\n        propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n        // domainLookup\r\n        propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n        // connect\r\n        propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n        // request\r\n        propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n        // response\r\n        propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n        // Network connection time\r\n        propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n        // Sent Request\r\n        propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n        // PerfTotal / Duration\r\n        var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n        if (!duration) {\r\n            duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n        }\r\n        propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n        propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n        var serverTiming = resourceEntry[strServerTiming];\r\n        if (serverTiming) {\r\n            var server_1 = {};\r\n            arrForEach(serverTiming, function (value, idx) {\r\n                var name = normalizeJsName(value[strName] || \"\" + idx);\r\n                var newValue = server_1[name] || {};\r\n                objForEachKey(value, function (key, val) {\r\n                    if (key !== strName && isString(val) || isNumber(val)) {\r\n                        if (newValue[key]) {\r\n                            val = newValue[key] + \";\" + val;\r\n                        }\r\n                        if (val || !isString(val)) {\r\n                            // Only set the value if it has a value and it's not an empty string\r\n                            newValue[key] = val;\r\n                        }\r\n                    }\r\n                });\r\n                server_1[name] = newValue;\r\n            });\r\n            propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n        }\r\n        propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n        propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n        propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n    }\r\n    else {\r\n        if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n            propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n        }\r\n    }\r\n    if (propsSet) {\r\n        dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n    }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n    function XHRMonitoringState() {\r\n        var self = this;\r\n        self.openDone = false;\r\n        self.setRequestHeaderDone = false;\r\n        self.sendDone = false;\r\n        self.abortDone = false;\r\n        // <summary>True, if onreadyStateChangeCallback function attached to xhr, otherwise false</summary>\r\n        self[_DYN_STATE_CHANGE_ATTACHE11 /* @min:%2estateChangeAttached */] = false;\r\n    }\r\n    return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n    function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n        var self = this;\r\n        var _logger = logger;\r\n        var strResponseText = \"responseText\";\r\n        // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n        // this.XXXX = null\r\n        self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n        self.completed = false;\r\n        self.requestHeadersSize = null;\r\n        self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n        self.responseReceivingDuration = null;\r\n        self.callbackDuration = null;\r\n        self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n        self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n        self.pageUrl = null;\r\n        self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n        self.requestSize = 0;\r\n        self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n        self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n        self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n        self.responseStartedTime = null;\r\n        self[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = null;\r\n        self.callbackFinishedTime = null;\r\n        self.endTime = null;\r\n        self.xhrMonitoringState = new XHRMonitoringState();\r\n        self.clientFailure = 0;\r\n        self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n        self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n        self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n        if (traceCtx) {\r\n            self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = {\r\n                traceId: traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n                spanId: traceCtx.getSpanId(),\r\n                traceFlags: traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]()\r\n            };\r\n        }\r\n        else {\r\n            self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n        }\r\n        dynamicProto(ajaxRecord, self, function (self) {\r\n            self.getAbsoluteUrl = function () {\r\n                return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n            };\r\n            self.getPathName = function () {\r\n                return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n            };\r\n            self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n                var _a;\r\n                // round to 3 decimal points\r\n                self.ajaxTotalDuration = mathRound(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n                if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n                    return null;\r\n                }\r\n                var dependency = (_a = {\r\n                        id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n                        target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](),\r\n                        name: self.getPathName(),\r\n                        type: ajaxType,\r\n                        startTime: null,\r\n                        duration: self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n                        success: (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n                        responseCode: (+(self[_DYN_STATUS /* @min:%2estatus */]))\r\n                    },\r\n                    _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n                    _a);\r\n                var props = dependency[STR_PROPERTIES];\r\n                if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n                    props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n                }\r\n                if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n                    // Set the correct dependency start time\r\n                    dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n                    dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n                }\r\n                // Add Ajax perf details if available\r\n                _populatePerfData(self, dependency);\r\n                if (enableRequestHeaderTracking) {\r\n                    if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                        props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n                    }\r\n                }\r\n                if (getResponse) {\r\n                    var response = getResponse();\r\n                    if (response) {\r\n                        // enrich dependency target with correlation context from the server\r\n                        var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n                        if (correlationContext) {\r\n                            dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n                        }\r\n                        if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n                            if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                                props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n                            }\r\n                        }\r\n                        if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n                            if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n                                var responseType = response.type;\r\n                                if (responseType === \"\" || responseType === \"text\") {\r\n                                    props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n                                }\r\n                                if (responseType === \"json\") {\r\n                                    props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response.response) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n                                }\r\n                            }\r\n                            else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n                                props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n                return dependency;\r\n            };\r\n            self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n                var partA = null;\r\n                var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n                if (traceCtx && (traceCtx.traceId || traceCtx.spanId)) {\r\n                    partA = {};\r\n                    var traceExt = partA[Extensions.TraceExt] = {\r\n                        traceID: traceCtx.traceId,\r\n                        parentID: traceCtx.spanId\r\n                    };\r\n                    if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n                        traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n                    }\r\n                }\r\n                return partA;\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    ajaxRecord.__ieDyn=1;\n\n    return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOn, fieldRedaction, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, onConfigChange, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, objFreeze, scheduleTimeout, strIndexOf, strSplit, strSubstr } from \"@nevware21/ts-utils\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_AJAX_DIAGNOSTICS_MES14, _DYN_AJAX_PERF_LOOKUP_DEL8, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN7, _DYN_DISABLE_FETCH_TRACKI9, _DYN_ENABLE_AJAX_ERROR_ST3, _DYN_ENABLE_AJAX_PERF_TRA4, _DYN_ENABLE_REQUEST_HEADE2, _DYN_ENABLE_RESPONSE_HEAD10, _DYN_ERROR_STATUS_TEXT, _DYN_EXCLUDE_REQUEST_FROM6, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA13, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_0, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V5, _DYN_METHOD, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE_FINISHED_TI12, _DYN_RESPONSE_TEXT, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE11, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACK_DEPENDENCY_DAT1, _DYN__ADD_HOOK, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\n// const AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar AJAX_DATA_CONTAINER = \"_ajaxData\";\r\nvar STR_FETCH = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n    var _global = getGlobal();\r\n    if (!_global ||\r\n        isNullOrUndefined(_global.Request) ||\r\n        isNullOrUndefined(_global.Request[strPrototype]) ||\r\n        isNullOrUndefined(_global[STR_FETCH])) {\r\n        return null;\r\n    }\r\n    return _global[STR_FETCH];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {\r\n    var _a;\r\n    var result = false;\r\n    if (isXhrSupported()) {\r\n        var proto = XMLHttpRequest[strPrototype];\r\n        result = !isNullOrUndefined(proto) &&\r\n            !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n            !isNullOrUndefined(proto.send) &&\r\n            !isNullOrUndefined(proto.abort);\r\n    }\r\n    var ieVer = getIEVersion();\r\n    if (ieVer && ieVer < 9) {\r\n        result = false;\r\n    }\r\n    if (result) {\r\n        // Disable if the XmlHttpRequest can't be extended or hooked\r\n        try {\r\n            var xhr = new XMLHttpRequest();\r\n            var xhrData = {\r\n                xh: [],\r\n                i: (_a = {},\r\n                    _a[ajaxDataId] = {},\r\n                    _a)\r\n            };\r\n            xhr[AJAX_DATA_CONTAINER] = xhrData;\r\n            // Check that we can update the prototype\r\n            var theOpen = XMLHttpRequest[strPrototype].open;\r\n            XMLHttpRequest[strPrototype].open = theOpen;\r\n        }\r\n        catch (e) {\r\n            // We can't decorate the xhr object so disable monitoring\r\n            result = false;\r\n            _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n                exception: dumpObj(e)\r\n            });\r\n        }\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * Internal helper to fetch the SDK instance tracking data for this XHR request\r\n * @param xhr\r\n * @param ajaxDataId\r\n * @returns\r\n */\r\nvar _getAjaxData = function (xhr, ajaxDataId) {\r\n    if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {\r\n        return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];\r\n    }\r\n    return null;\r\n};\r\n/**\r\n * @ignore\r\n * Internal helper to track the singleton shared tracking headers, so we can attempt to not create headers\r\n * that might cause an issue if multiple values are populated.\r\n * @param xhr - The instrumented XHR instance\r\n */\r\nvar _addSharedXhrHeaders = function (xhr, name, value) {\r\n    if (xhr) {\r\n        var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n        if (headers) {\r\n            headers.push({\r\n                n: name,\r\n                v: value\r\n            });\r\n        }\r\n    }\r\n};\r\nvar _isHeaderSet = function (xhr, name) {\r\n    var isPresent = false;\r\n    if (xhr) {\r\n        var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n        if (headers) {\r\n            arrForEach(headers, function (header) {\r\n                if (header.n === name) {\r\n                    isPresent = true;\r\n                    return -1;\r\n                }\r\n            });\r\n        }\r\n    }\r\n    return isPresent;\r\n};\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {\r\n    var result = \"\";\r\n    try {\r\n        var ajaxData = _getAjaxData(xhr, ajaxDataId);\r\n        if (ajaxData && ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n            result += \"(url: '\" + ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n        }\r\n    }\r\n    catch (e) {\r\n        // eslint-disable-next-line no-empty\r\n    }\r\n    return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n    _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n    _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n    // tslint:disable-next-line\r\n    return function (callDetails) {\r\n        var _a;\r\n        _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {},\r\n            _a[_DYN_AJAX_DIAGNOSTICS_MES14 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(callDetails.inst, ajaxMonitorInstance._ajaxDataId),\r\n            _a.exception = dumpObj(callDetails.err),\r\n            _a));\r\n    };\r\n}\r\nfunction _indexOf(value, match) {\r\n    if (value && match) {\r\n        return strIndexOf(value, match);\r\n    }\r\n    return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n    var theHandler = {\r\n        id: id,\r\n        fn: theFunc\r\n    };\r\n    container.push(theHandler);\r\n    return {\r\n        remove: function () {\r\n            arrForEach(container, function (initializer, idx) {\r\n                if (initializer.id === theHandler.id) {\r\n                    container.splice(idx, 1);\r\n                    return -1;\r\n                }\r\n            });\r\n        }\r\n    };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n    var result = true;\r\n    arrForEach(container, function (theFunc, idx) {\r\n        try {\r\n            if (theFunc.fn.call(null, details) === false) {\r\n                result = false;\r\n            }\r\n        }\r\n        catch (e) {\r\n            _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n        }\r\n    });\r\n    return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n    var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n    var result = true;\r\n    if (initializersCount > 0) {\r\n        var details = {\r\n            core: core,\r\n            xhr: xhr,\r\n            input: input,\r\n            init: init,\r\n            traceId: ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n            spanId: ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n            traceFlags: ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n            context: ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n            aborted: !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */]\r\n        };\r\n        result = _processDependencyContainer(core, listeners, details, \"listener\");\r\n        ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details.traceId;\r\n        ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details.spanId;\r\n        ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n        ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n    }\r\n    return result;\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = objFreeze([\r\n    BLOB_CORE + \"windows.net\",\r\n    BLOB_CORE + \"chinacloudapi.cn\",\r\n    BLOB_CORE + \"cloudapi.de\",\r\n    BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n    /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nvar _defaultConfig = objFreeze((_a = {},\r\n    _a[_DYN_MAX_AJAX_CALLS_PER_V5 /* @min:maxAjaxCallsPerView */] = 500,\r\n    _a[_DYN_DISABLE_AJAX_TRACKIN7 /* @min:disableAjaxTracking */] = false,\r\n    _a[_DYN_DISABLE_FETCH_TRACKI9 /* @min:disableFetchTracking */] = false,\r\n    _a[_DYN_EXCLUDE_REQUEST_FROM6 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,\r\n    _a.disableCorrelationHeaders = false,\r\n    _a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n    _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,\r\n    _a.correlationHeaderDomains = undefined,\r\n    _a.correlationHeaderExcludePatterns = undefined,\r\n    _a.appId = undefined,\r\n    _a.enableCorsCorrelation = false,\r\n    _a[_DYN_ENABLE_REQUEST_HEADE2 /* @min:enableRequestHeaderTracking */] = false,\r\n    _a[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:enableResponseHeaderTracking */] = false,\r\n    _a[_DYN_ENABLE_AJAX_ERROR_ST3 /* @min:enableAjaxErrorStatusText */] = false,\r\n    _a[_DYN_ENABLE_AJAX_PERF_TRA4 /* @min:enableAjaxPerfTracking */] = false,\r\n    _a.maxAjaxPerfLookupAttempts = 3,\r\n    _a[_DYN_AJAX_PERF_LOOKUP_DEL8 /* @min:ajaxPerfLookupDelay */] = 25,\r\n    _a.ignoreHeaders = [\r\n        \"Authorization\",\r\n        \"X-API-Key\",\r\n        \"WWW-Authenticate\"\r\n    ],\r\n    _a.addRequestContext = undefined,\r\n    _a.addIntEndpoints = true,\r\n    _a));\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n    __extends(AjaxMonitor, _super);\r\n    function AjaxMonitor() {\r\n        var _this = _super.call(this) || this;\r\n        _this.identifier = AjaxMonitor.identifier;\r\n        _this.priority = 120;\r\n        var _fetchInitialized; // fetch monitoring initialized\r\n        var _xhrInitialized; // XHR monitoring initialized\r\n        var _currentWindowHost;\r\n        var _extensionConfig;\r\n        var _enableRequestHeaderTracking;\r\n        var _enableAjaxErrorStatusText;\r\n        var _trackAjaxAttempts;\r\n        var _context;\r\n        var _isUsingW3CHeaders;\r\n        var _isUsingAIHeaders;\r\n        var _markPrefix;\r\n        var _enableAjaxPerfTracking;\r\n        var _maxAjaxCallsPerView;\r\n        var _enableResponseHeaderTracking;\r\n        var _disabledUrls;\r\n        var _disableAjaxTracking;\r\n        var _disableFetchTracking;\r\n        var _excludeRequestFromAutoTrackingPatterns;\r\n        var _addRequestContext;\r\n        var _evtNamespace;\r\n        var _ajaxDataId;\r\n        var _dependencyHandlerId;\r\n        var _dependencyListeners;\r\n        var _dependencyInitializers;\r\n        var _ignoreHeaders;\r\n        var _maxAjaxPerfLookupAttempts;\r\n        var _ajaxPerfLookupDelay;\r\n        var _distributedTracingMode;\r\n        var _appId;\r\n        var _polyfillInitialized;\r\n        dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n            var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n            _initDefaults();\r\n            _self.initialize = function (config, core, extensions, pluginChain) {\r\n                if (!_self.isInitialized()) {\r\n                    _base.initialize(config, core, extensions, pluginChain);\r\n                    _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n                    _populateDefaults(config);\r\n                    _instrumentXhr();\r\n                    _instrumentFetch();\r\n                    _populateContext();\r\n                }\r\n            };\r\n            _self._doTeardown = function () {\r\n                _initDefaults();\r\n            };\r\n            _self.trackDependencyData = function (dependency, properties) {\r\n                _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n            };\r\n            _self.resetAjaxAttempts = function () {\r\n                _trackAjaxAttempts = 0;\r\n            };\r\n            _self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n                // Test Hook to allow the overriding of the location host\r\n                var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n                if (_processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init)) {\r\n                    if (input || input === \"\") { // Fetch\r\n                        if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n                            if (!init) {\r\n                                init = {};\r\n                            }\r\n                            // init headers override original request headers\r\n                            // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n                            // not using original request headers will result in them being lost\r\n                            var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n                            if (_isUsingAIHeaders) {\r\n                                var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n                                headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n                                if (_enableRequestHeaderTracking) {\r\n                                    ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n                                }\r\n                            }\r\n                            var appId = _appId || (_context && _context.appId());\r\n                            if (appId) {\r\n                                headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n                                if (_enableRequestHeaderTracking) {\r\n                                    ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n                                }\r\n                            }\r\n                            if (_isUsingW3CHeaders) {\r\n                                var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n                                if (isNullOrUndefined(traceFlags)) {\r\n                                    traceFlags = 0x01;\r\n                                }\r\n                                var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n                                headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n                                if (_enableRequestHeaderTracking) {\r\n                                    ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n                                }\r\n                            }\r\n                            init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n                        }\r\n                    }\r\n                    else if (xhr) { // XHR\r\n                        if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n                            if (_isUsingAIHeaders) {\r\n                                if (!_isHeaderSet(xhr, RequestHeaders[3 /* eRequestHeaders.requestIdHeader */])) {\r\n                                    var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n                                    xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n                                    if (_enableRequestHeaderTracking) {\r\n                                        ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n                                    }\r\n                                }\r\n                                else {\r\n                                    _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[3 /* eRequestHeaders.requestIdHeader */] + \"] as it has already been set by another instance\");\r\n                                }\r\n                            }\r\n                            var appId = _appId || (_context && _context.appId());\r\n                            if (appId) {\r\n                                if (!_isHeaderSet(xhr, RequestHeaders[0 /* eRequestHeaders.requestContextHeader */])) {\r\n                                    xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n                                    if (_enableRequestHeaderTracking) {\r\n                                        ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n                                    }\r\n                                }\r\n                                else {\r\n                                    _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[0 /* eRequestHeaders.requestContextHeader */] + \"] as it has already been set by another instance\");\r\n                                }\r\n                            }\r\n                            if (_isUsingW3CHeaders) {\r\n                                var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n                                if (isNullOrUndefined(traceFlags)) {\r\n                                    traceFlags = 0x01;\r\n                                }\r\n                                if (!_isHeaderSet(xhr, RequestHeaders[4 /* eRequestHeaders.traceParentHeader */])) {\r\n                                    var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n                                    xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n                                    if (_enableRequestHeaderTracking) {\r\n                                        ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n                                    }\r\n                                }\r\n                                else {\r\n                                    _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[4 /* eRequestHeaders.traceParentHeader */] + \"] as it has already been set by another instance\");\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n                return xhr || init;\r\n            };\r\n            _self[_DYN_TRACK_DEPENDENCY_DAT1 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n                if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n                    // Hack since expected format in w3c mode is |abc.def.\r\n                    // Non-w3c format is |abc.def\r\n                    // @todo Remove if better solution is available, e.g. handle in portal\r\n                    if ((_distributedTracingMode === 2 /* eDistributedTracingModes.W3C */\r\n                        || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n                        && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n                        dependency.id += \".\";\r\n                    }\r\n                    if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n                        dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n                    }\r\n                    var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n                    _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n                }\r\n                else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n                    _throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n                }\r\n                ++_trackAjaxAttempts;\r\n            };\r\n            _self.addDependencyListener = function (dependencyListener) {\r\n                return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n            };\r\n            _self.addDependencyInitializer = function (dependencyInitializer) {\r\n                return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n            };\r\n            function _initDefaults() {\r\n                var location = getLocation();\r\n                _fetchInitialized = false; // fetch monitoring initialized\r\n                _xhrInitialized = false; // XHR monitoring initialized\r\n                _polyfillInitialized = false; // polyfill monitoring initialized\r\n                _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n                _extensionConfig = null;\r\n                _enableRequestHeaderTracking = false;\r\n                _enableAjaxErrorStatusText = false;\r\n                _trackAjaxAttempts = 0;\r\n                _context = null;\r\n                _isUsingW3CHeaders = false;\r\n                _isUsingAIHeaders = false;\r\n                _markPrefix = null;\r\n                _enableAjaxPerfTracking = false;\r\n                _maxAjaxCallsPerView = 0;\r\n                _enableResponseHeaderTracking = false;\r\n                _disabledUrls = {};\r\n                _disableAjaxTracking = false;\r\n                _disableFetchTracking = false;\r\n                _excludeRequestFromAutoTrackingPatterns = null;\r\n                _addRequestContext = null;\r\n                _evtNamespace = null;\r\n                _dependencyHandlerId = 0;\r\n                _dependencyListeners = [];\r\n                _dependencyInitializers = [];\r\n                _ajaxDataId = createUniqueNamespace(\"ajaxData\");\r\n                _self._ajaxDataId = _ajaxDataId;\r\n                _ignoreHeaders = null;\r\n                _maxAjaxPerfLookupAttempts = 1;\r\n                _ajaxPerfLookupDelay = 1;\r\n                _distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n                _appId = null;\r\n            }\r\n            function _populateDefaults(config) {\r\n                _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function (details) {\r\n                    var config = details.cfg;\r\n                    var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n                    _extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);\r\n                    _distributedTracingMode = _extensionConfig.distributedTracingMode;\r\n                    _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE2 /* @min:%2eenableRequestHeaderTracking */];\r\n                    _enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST3 /* @min:%2eenableAjaxErrorStatusText */];\r\n                    _enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA4 /* @min:%2eenableAjaxPerfTracking */];\r\n                    _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V5 /* @min:%2emaxAjaxCallsPerView */];\r\n                    _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM6 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n                    _addRequestContext = _extensionConfig.addRequestContext;\r\n                    _isUsingAIHeaders = _distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n                    _isUsingW3CHeaders = _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || _distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n                    if (_enableAjaxPerfTracking) {\r\n                        _markPrefix = _ajaxDataId;\r\n                    }\r\n                    _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN7 /* @min:%2edisableAjaxTracking */];\r\n                    _maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;\r\n                    _ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL8 /* @min:%2eajaxPerfLookupDelay */];\r\n                    _ignoreHeaders = _extensionConfig.ignoreHeaders;\r\n                    _appId = _extensionConfig.appId;\r\n                }));\r\n            }\r\n            function _populateContext() {\r\n                var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n                if (propExt) {\r\n                    _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n                }\r\n            }\r\n            // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n            function _canIncludeHeaders(header) {\r\n                var rlt = true;\r\n                if (header || _ignoreHeaders) {\r\n                    arrForEach(_ignoreHeaders, (function (key) {\r\n                        if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n                            rlt = false;\r\n                            return -1;\r\n                        }\r\n                    }));\r\n                }\r\n                return rlt;\r\n            }\r\n            // Fetch Stuff\r\n            function _instrumentFetch() {\r\n                var fetch = _supportsFetch();\r\n                if (!fetch) {\r\n                    return;\r\n                }\r\n                var global = getGlobal();\r\n                var isPolyfill = fetch.polyfill;\r\n                _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n                    _disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI9 /* @min:%2edisableFetchTracking */];\r\n                    _enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:%2eenableResponseHeaderTracking */];\r\n                    if (!_disableFetchTracking && !_fetchInitialized) {\r\n                        _addHook(InstrumentFunc(global, STR_FETCH, {\r\n                            ns: _evtNamespace,\r\n                            // Add request hook\r\n                            req: function (callDetails, input, init) {\r\n                                var fetchData;\r\n                                if (!_disableFetchTracking && _fetchInitialized &&\r\n                                    !_isDisabledRequest(null, input, init) &&\r\n                                    // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n                                    !(isPolyfill && _xhrInitialized)) {\r\n                                    var ctx = callDetails.ctx();\r\n                                    fetchData = _createFetchRecord(input, init);\r\n                                    var newInit = _self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n                                    if (newInit !== init) {\r\n                                        callDetails.set(1, newInit);\r\n                                    }\r\n                                    ctx.data = fetchData;\r\n                                }\r\n                            },\r\n                            rsp: function (callDetails, input) {\r\n                                if (!_disableFetchTracking) {\r\n                                    var fetchData_1 = callDetails.ctx().data;\r\n                                    if (fetchData_1) {\r\n                                        // Replace the result with the new promise from this code\r\n                                        callDetails.rslt = callDetails.rslt.then(function (response) {\r\n                                            _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n                                                var _a;\r\n                                                var ajaxResponse = (_a = {\r\n                                                        statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */],\r\n                                                        headerMap: null\r\n                                                    },\r\n                                                    _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),\r\n                                                    _a);\r\n                                                if (_enableResponseHeaderTracking && response) {\r\n                                                    var responseHeaderMap_1 = {};\r\n                                                    response.headers.forEach(function (value, name) {\r\n                                                        if (_canIncludeHeaders(name)) {\r\n                                                            responseHeaderMap_1[name] = value;\r\n                                                        }\r\n                                                    });\r\n                                                    ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n                                                }\r\n                                                return ajaxResponse;\r\n                                            });\r\n                                            return response;\r\n                                        })\r\n                                            .catch(function (reason) {\r\n                                            _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });\r\n                                            throw reason;\r\n                                        });\r\n                                    }\r\n                                }\r\n                            },\r\n                            // Create an error callback to report any hook errors\r\n                            hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n                        }, true, isWebWorker()));\r\n                        _fetchInitialized = true;\r\n                    }\r\n                    else if (isPolyfill && !_polyfillInitialized) {\r\n                        // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n                        // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n                        // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n                        // Note: Polyfill implementations that don't support the \"polyfill\" tag are not supported\r\n                        // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n                        // App Insights\r\n                        _addHook(InstrumentFunc(global, STR_FETCH, {\r\n                            ns: _evtNamespace,\r\n                            req: function (callDetails, input, init) {\r\n                                // Just call so that we record any disabled URL\r\n                                _isDisabledRequest(null, input, init);\r\n                            }\r\n                        }));\r\n                        _polyfillInitialized = true;\r\n                    }\r\n                }));\r\n                if (isPolyfill) {\r\n                    // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n                    // But also supports multiple App Insights usages\r\n                    global[STR_FETCH].polyfill = isPolyfill;\r\n                }\r\n            }\r\n            function _hookProto(target, funcName, callbacks) {\r\n                _addHook(InstrumentProto(target, funcName, callbacks));\r\n            }\r\n            function _instrumentXhr() {\r\n                if (!_supportsAjaxMonitoring(_self, _ajaxDataId)) {\r\n                    return;\r\n                }\r\n                _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n                    _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN7 /* @min:%2edisableAjaxTracking */];\r\n                    _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE2 /* @min:%2eenableRequestHeaderTracking */];\r\n                    if (!_disableAjaxTracking && !_xhrInitialized) {\r\n                        // Instrument open\r\n                        _hookProto(XMLHttpRequest, \"open\", {\r\n                            ns: _evtNamespace,\r\n                            req: function (callDetails, method, url, async) {\r\n                                if (!_disableAjaxTracking) {\r\n                                    var xhr = callDetails.inst;\r\n                                    var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n                                    if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {\r\n                                        if (!ajaxData || !ajaxData.xhrMonitoringState.openDone) {\r\n                                            // Only create a single ajaxData (even when multiple AI instances are running)\r\n                                            ajaxData = _openHandler(xhr, method, url, async);\r\n                                        }\r\n                                        // always attach to the on ready state change (required for handling multiple instances)\r\n                                        _attachToOnReadyStateChange(xhr, ajaxData);\r\n                                    }\r\n                                }\r\n                            },\r\n                            hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n                        });\r\n                        // Instrument send\r\n                        _hookProto(XMLHttpRequest, \"send\", {\r\n                            ns: _evtNamespace,\r\n                            req: function (callDetails, context) {\r\n                                if (!_disableAjaxTracking) {\r\n                                    var xhr = callDetails.inst;\r\n                                    var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n                                    if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState.sendDone) {\r\n                                        _createMarkId(\"xhr\", ajaxData);\r\n                                        ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n                                        _self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n                                        ajaxData.xhrMonitoringState.sendDone = true;\r\n                                    }\r\n                                }\r\n                            },\r\n                            hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n                        });\r\n                        // Instrument abort\r\n                        _hookProto(XMLHttpRequest, \"abort\", {\r\n                            ns: _evtNamespace,\r\n                            req: function (callDetails) {\r\n                                if (!_disableAjaxTracking) {\r\n                                    var xhr = callDetails.inst;\r\n                                    var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n                                    if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState.abortDone) {\r\n                                        ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;\r\n                                        ajaxData.xhrMonitoringState.abortDone = true;\r\n                                    }\r\n                                }\r\n                            },\r\n                            hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n                        });\r\n                        // Instrument setRequestHeader\r\n                        _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n                            ns: _evtNamespace,\r\n                            req: function (callDetails, header, value) {\r\n                                if (!_disableAjaxTracking) {\r\n                                    var xhr = callDetails.inst;\r\n                                    var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n                                    if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n                                        _addSharedXhrHeaders(xhr, header, value);\r\n                                        if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {\r\n                                            ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n                                        }\r\n                                    }\r\n                                }\r\n                            },\r\n                            hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n                        });\r\n                        _xhrInitialized = true;\r\n                    }\r\n                }));\r\n            }\r\n            function _isDisabledRequest(xhr, request, init) {\r\n                var isDisabled = false;\r\n                var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n                // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n                arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n                    var theRegex = regex;\r\n                    if (isString(regex)) {\r\n                        theRegex = new RegExp(regex);\r\n                    }\r\n                    if (!isDisabled) {\r\n                        isDisabled = theRegex.test(theUrl);\r\n                    }\r\n                });\r\n                // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n                if (isDisabled) {\r\n                    return isDisabled;\r\n                }\r\n                var idx = _indexOf(theUrl, \"?\");\r\n                var idx2 = _indexOf(theUrl, \"#\");\r\n                if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n                    idx = idx2;\r\n                }\r\n                if (idx !== -1) {\r\n                    // Strip off any Query string\r\n                    theUrl = theUrl.substring(0, idx);\r\n                }\r\n                // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n                if (!isNullOrUndefined(xhr)) {\r\n                    // Look on the XMLHttpRequest of the URL string value\r\n                    isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n                }\r\n                else if (!isNullOrUndefined(request)) { // fetch\r\n                    // Look for DisabledPropertyName in either Request or RequestInit\r\n                    isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n                        (init ? init[DisabledPropertyName] === true : false);\r\n                }\r\n                // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n                if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n                    isDisabled = true;\r\n                }\r\n                if (isDisabled) {\r\n                    // Add the disabled url if not present\r\n                    if (!_disabledUrls[theUrl]) {\r\n                        _disabledUrls[theUrl] = 1;\r\n                    }\r\n                }\r\n                else {\r\n                    // Check to see if the url is listed as disabled\r\n                    if (_disabledUrls[theUrl]) {\r\n                        isDisabled = true;\r\n                    }\r\n                }\r\n                return isDisabled;\r\n            }\r\n            /// <summary>Verifies that particular instance of XMLHttpRequest needs to be monitored</summary>\r\n            /// <param name=\"excludeAjaxDataValidation\">Optional parameter. True if ajaxData must be excluded from verification</param>\r\n            /// <returns type=\"bool\">True if instance needs to be monitored, otherwise false</returns>\r\n            function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {\r\n                var ajaxValidation = true;\r\n                var initialized = _xhrInitialized;\r\n                if (!isNullOrUndefined(xhr)) {\r\n                    ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);\r\n                }\r\n                // checking to see that all interested functions on xhr were instrumented\r\n                return initialized\r\n                    // checking on ajaxData to see that it was not removed in user code\r\n                    && ajaxValidation;\r\n            }\r\n            function _getDistributedTraceCtx() {\r\n                var distributedTraceCtx = null;\r\n                if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n                    distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n                }\r\n                // Fall back\r\n                if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n                    distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n                }\r\n                return distributedTraceCtx;\r\n            }\r\n            function _openHandler(xhr, method, url, async) {\r\n                var _a;\r\n                var distributedTraceCtx = _getDistributedTraceCtx();\r\n                var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n                var spanID = strSubstr(generateW3CId(), 0, 16);\r\n                var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });\r\n                var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});\r\n                var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));\r\n                ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n                ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n                ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n                ajaxData.xhrMonitoringState.openDone = true;\r\n                ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n                ajaxData.async = async;\r\n                ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n                return ajaxData;\r\n            }\r\n            function _attachToOnReadyStateChange(xhr, ajaxData) {\r\n                ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE11 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n                    var _a;\r\n                    try {\r\n                        if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n                            _onAjaxComplete(xhr);\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        var exceptionText = dumpObj(e);\r\n                        // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n                        if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n                            _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, (_a = {},\r\n                                _a[_DYN_AJAX_DIAGNOSTICS_MES14 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n                                _a.exception = exceptionText,\r\n                                _a));\r\n                        }\r\n                    }\r\n                }, _evtNamespace);\r\n            }\r\n            function _getResponseText(xhr) {\r\n                try {\r\n                    var responseType = xhr.responseType;\r\n                    if (responseType === \"\" || responseType === \"text\") {\r\n                        // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n                        return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n                }\r\n                return null;\r\n            }\r\n            function _onAjaxComplete(xhr) {\r\n                var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n                ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n                ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n                function _reportXhrError(e, failedProps) {\r\n                    var errorProps = failedProps || {};\r\n                    errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);\r\n                    if (e) {\r\n                        errorProps[\"exception\"] = dumpObj(e);\r\n                    }\r\n                    _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n                }\r\n                _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n                    try {\r\n                        var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n                            var _a;\r\n                            var ajaxResponse = (_a = {\r\n                                    statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */],\r\n                                    headerMap: null\r\n                                },\r\n                                _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),\r\n                                _a.type = xhr.responseType,\r\n                                _a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),\r\n                                _a.response = xhr.response,\r\n                                _a);\r\n                            if (_enableResponseHeaderTracking) {\r\n                                var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA13 /* @min:%2egetAllResponseHeaders */]();\r\n                                if (headers) {\r\n                                    // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n                                    // the regex converts the header string into an array of individual headers\r\n                                    var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n                                    var responseHeaderMap_2 = {};\r\n                                    arrForEach(arr, function (line) {\r\n                                        var parts = line.split(\": \");\r\n                                        var header = parts.shift();\r\n                                        var value = parts.join(\": \");\r\n                                        if (_canIncludeHeaders(header)) {\r\n                                            responseHeaderMap_2[header] = value;\r\n                                        }\r\n                                    });\r\n                                    ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n                                }\r\n                            }\r\n                            return ajaxResponse;\r\n                        });\r\n                        var properties = void 0;\r\n                        try {\r\n                            if (!!_addRequestContext) {\r\n                                properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n                            }\r\n                        }\r\n                        catch (e) {\r\n                            _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n                        }\r\n                        if (dependency) {\r\n                            if (properties !== undefined) {\r\n                                dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n                            }\r\n                            var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n                            _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n                        }\r\n                        else {\r\n                            _reportXhrError(null, {\r\n                                requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n                                responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */]\r\n                            });\r\n                        }\r\n                    }\r\n                    finally {\r\n                        // cleanup telemetry data\r\n                        try {\r\n                            var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });\r\n                            var ajaxDataCntr = (xhrRequestData.i || {});\r\n                            if (ajaxDataCntr[_ajaxDataId]) {\r\n                                ajaxDataCntr[_ajaxDataId] = null;\r\n                            }\r\n                        }\r\n                        catch (e) {\r\n                            // May throw in environments that prevent extension or freeze xhr\r\n                        }\r\n                    }\r\n                }, function (e) {\r\n                    _reportXhrError(e, null);\r\n                });\r\n            }\r\n            function _getAjaxCorrelationContext(xhr) {\r\n                var _a;\r\n                try {\r\n                    var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA13 /* @min:%2egetAllResponseHeaders */]();\r\n                    if (responseHeadersString !== null) {\r\n                        var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n                        if (index !== -1) {\r\n                            var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n                            return correlationIdGetCorrelationContext(responseHeader);\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},\r\n                        _a[_DYN_AJAX_DIAGNOSTICS_MES14 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n                        _a.exception = dumpObj(e),\r\n                        _a));\r\n                }\r\n            }\r\n            function _createMarkId(type, ajaxData) {\r\n                if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n                    var performance_1 = getPerformance();\r\n                    if (performance_1 && isFunction(performance_1.mark)) {\r\n                        _markCount++;\r\n                        var markId = _markPrefix + type + \"#\" + _markCount;\r\n                        performance_1.mark(markId);\r\n                        var entries = performance_1.getEntriesByName(markId);\r\n                        if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n                            ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n                var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n                var performance = getPerformance();\r\n                var maxAttempts = _maxAjaxPerfLookupAttempts;\r\n                var retryDelay = _ajaxPerfLookupDelay;\r\n                var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n                var attempt = 0;\r\n                (function locateResourceTiming() {\r\n                    try {\r\n                        if (performance && perfMark) {\r\n                            attempt++;\r\n                            var perfTiming = null;\r\n                            var entries = performance.getEntries();\r\n                            for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n                                var entry = entries[lp];\r\n                                if (entry) {\r\n                                    if (entry.entryType === \"resource\") {\r\n                                        if (entry.initiatorType === initiatorType &&\r\n                                            (_indexOf(entry.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {\r\n                                            perfTiming = entry;\r\n                                        }\r\n                                    }\r\n                                    else if (entry.entryType === \"mark\" && entry.name === perfMark.name) {\r\n                                        // We hit the start event\r\n                                        ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n                                        break;\r\n                                    }\r\n                                    if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n                                        // Fallback to try and reduce the time spent looking for the perf entry\r\n                                        break;\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                        if (!perfMark || // - we don't have a perfMark or\r\n                            ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n                            attempt >= maxAttempts || // - we have tried too many attempts or\r\n                            ajaxData.async === false) { // - this is a sync request\r\n                            if (perfMark && isFunction(performance.clearMarks)) {\r\n                                // Remove the mark so we don't fill up the performance resources too much\r\n                                performance.clearMarks(perfMark.name);\r\n                            }\r\n                            ajaxData.perfAttempts = attempt;\r\n                            // just continue and report the track event\r\n                            trackCallback();\r\n                        }\r\n                        else {\r\n                            // We need to wait for the browser to populate the window.performance entry\r\n                            // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n                            // this is a scheduling issue for the browser implementation\r\n                            scheduleTimeout(locateResourceTiming, retryDelay);\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        reportError(e);\r\n                    }\r\n                })();\r\n            }\r\n            function _createFetchRecord(input, init) {\r\n                var _a;\r\n                var distributedTraceCtx = _getDistributedTraceCtx();\r\n                var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n                var spanID = strSubstr(generateW3CId(), 0, 16);\r\n                var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n                ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n                ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n                ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n                var requestUrl;\r\n                if (input instanceof Request) {\r\n                    requestUrl = (input || {}).url || \"\";\r\n                }\r\n                else {\r\n                    requestUrl = input;\r\n                }\r\n                if (requestUrl === \"\") {\r\n                    var location_1 = getLocation();\r\n                    if (location_1 && location_1.href) {\r\n                        requestUrl = strSplit(location_1.href, \"#\")[0];\r\n                    }\r\n                }\r\n                if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].config) {\r\n                    requestUrl = fieldRedaction(requestUrl, _self[_DYN_CORE /* @min:%2ecore */].config);\r\n                }\r\n                ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = requestUrl;\r\n                var method = \"GET\";\r\n                if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n                    method = init[_DYN_METHOD /* @min:%2emethod */];\r\n                }\r\n                else if (input && input instanceof Request) {\r\n                    method = input[_DYN_METHOD /* @min:%2emethod */];\r\n                }\r\n                ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n                var requestHeaders = {};\r\n                if (_enableRequestHeaderTracking) {\r\n                    var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n                    headers.forEach(function (value, key) {\r\n                        if (_canIncludeHeaders(key)) {\r\n                            requestHeaders[key] = value;\r\n                        }\r\n                    });\r\n                }\r\n                ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n                _createMarkId(STR_FETCH, ajaxData);\r\n                return ajaxData;\r\n            }\r\n            function _getFailedFetchDiagnosticsMessage(input) {\r\n                var result = \"\";\r\n                try {\r\n                    if (!isNullOrUndefined(input)) {\r\n                        if (typeof (input) === \"string\") {\r\n                            result += \"(url: '\".concat(input, \"')\");\r\n                        }\r\n                        else {\r\n                            result += \"(url: '\".concat(input.url, \"')\");\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n                }\r\n                return result;\r\n            }\r\n            function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n                if (!ajaxData) {\r\n                    return;\r\n                }\r\n                function _reportFetchError(msgId, e, failedProps) {\r\n                    var errorProps = failedProps || {};\r\n                    errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n                    if (e) {\r\n                        errorProps[\"exception\"] = dumpObj(e);\r\n                    }\r\n                    _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n                }\r\n                ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n                ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n                _findPerfResourceEntry(STR_FETCH, ajaxData, function () {\r\n                    var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n                    var properties;\r\n                    try {\r\n                        if (!!_addRequestContext) {\r\n                            properties = _addRequestContext({ status: status, request: input, response: response });\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n                    }\r\n                    if (dependency) {\r\n                        if (properties !== undefined) {\r\n                            dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n                        }\r\n                        var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n                        _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n                    }\r\n                    else {\r\n                        _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n                            requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n                            responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */]\r\n                        });\r\n                    }\r\n                }, function (e) {\r\n                    _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n                });\r\n            }\r\n            function _getFetchCorrelationContext(response) {\r\n                if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n                    try {\r\n                        var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n                        return correlationIdGetCorrelationContext(responseHeader);\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, {\r\n                            fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n                            exception: dumpObj(e)\r\n                        });\r\n                    }\r\n                }\r\n            }\r\n            function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n                var result = true;\r\n                var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n                if (initializersCount > 0) {\r\n                    var details = {\r\n                        item: dependency,\r\n                        properties: properties,\r\n                        sysProperties: systemProperties,\r\n                        context: ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n                        aborted: ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false\r\n                    };\r\n                    result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n                }\r\n                if (result) {\r\n                    _self[_DYN_TRACK_DEPENDENCY_DAT1 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n                }\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n    AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n        this.processNext(item, itemCtx);\r\n    };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.resetAjaxAttempts.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n    /**\r\n     * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n     * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n     * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n     * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n     * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n     * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n     */\r\n    AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n        return null;\r\n    };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n    AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n    return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n    function Application() {\r\n    }\r\n    return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the Device class\r\n     */\r\n    function Device() {\r\n        // don't attempt to fingerprint browsers\r\n        this.id = \"browser\";\r\n        // Device type is a dimension in our data platform\r\n        // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n        this.deviceClass = \"Browser\";\r\n    }\r\n    return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nvar Version = '3.3.11';\r\nvar Internal = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the internal telemetry data class.\r\n     */\r\n    function Internal(config, unloadHookContainer) {\r\n        var _this = this;\r\n        var unloadHook = onConfigChange((config), function () {\r\n            var prefix = config.sdkExtension;\r\n            _this.sdkVersion = (prefix ? prefix + \"_\" : \"\") + \"javascript:\" + Version;\r\n        });\r\n        unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n    }\r\n    return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n    function Location() {\r\n    }\r\n    return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION = \"session\"; // Count: 4\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 2\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 6\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 6\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM7 = \"authUserCookieName\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_RENEWAL_DATE, _DYN_SESSION_COOKIE_POSTF6 } from \"../__DynamicConstants\";\r\nvar SESSION_COOKIE_NAME = \"ai_session\";\r\nvar ACQUISITION_SPAN = 86400000; // 24 hours in ms\r\nvar RENEWAL_SPAN = 1800000; // 30 minutes in ms\r\nvar COOKIE_UPDATE_INTERVAL = 60000; // 1 minute in ms\r\nvar Session = /** @class */ (function () {\r\n    function Session() {\r\n    }\r\n    return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n    function _SessionManager(config, core, unloadHookContainer) {\r\n        var self = this;\r\n        var _storageNamePrefix;\r\n        var _cookieUpdatedTimestamp;\r\n        var _logger = safeGetLogger(core);\r\n        var _cookieManager = safeGetCookieMgr(core);\r\n        var _sessionExpirationMs;\r\n        var _sessionRenewalMs;\r\n        dynamicProto(_SessionManager, self, function (_self) {\r\n            if (!config) {\r\n                config = {};\r\n            }\r\n            var unloadHook = onConfigChange(config, function (details) {\r\n                _sessionExpirationMs = config.sessionExpirationMs || ACQUISITION_SPAN;\r\n                _sessionRenewalMs = config.sessionRenewalMs || RENEWAL_SPAN;\r\n                // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n                var sessionCookiePostfix = config[_DYN_SESSION_COOKIE_POSTF6 /* @min:%2esessionCookiePostfix */] || config.namePrefix || \"\";\r\n                _storageNamePrefix = SESSION_COOKIE_NAME + sessionCookiePostfix;\r\n            });\r\n            unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n            _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n            _self.update = function () {\r\n                // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n                // the number to be incorrect.\r\n                var nowMs = dateNow();\r\n                var isExpired = false;\r\n                var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n                if (!session.id) {\r\n                    isExpired = !_initializeAutomaticSession(session, nowMs);\r\n                }\r\n                if (!isExpired && _sessionExpirationMs > 0) {\r\n                    var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n                    var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n                    isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n                    isExpired = isExpired || timeSinceAcqMs > _sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n                    isExpired = isExpired || timeSinceRenewalMs > _sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n                }\r\n                // renew if acquisitionSpan or renewalSpan has elapsed\r\n                if (isExpired) {\r\n                    // update automaticSession so session state has correct id\r\n                    _renew(nowMs);\r\n                }\r\n                else {\r\n                    // do not update the cookie more often than cookieUpdateInterval\r\n                    if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > COOKIE_UPDATE_INTERVAL) {\r\n                        _setCookie(session, nowMs);\r\n                    }\r\n                }\r\n            };\r\n            /**\r\n             *  Record the current state of the automatic session and store it in our cookie string format\r\n             *  into the browser's local storage. This is used to restore the session data when the cookie\r\n             *  expires.\r\n             */\r\n            _self.backup = function () {\r\n                var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n                _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n            };\r\n            /**\r\n             * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n             * initialize the automatic session.\r\n             * @returns true if values set otherwise false\r\n             */\r\n            function _initializeAutomaticSession(session, now) {\r\n                var isValid = false;\r\n                var cookieValue = _cookieManager.get(_storageNamePrefix);\r\n                if (cookieValue && isFunction(cookieValue.split)) {\r\n                    isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n                }\r\n                else {\r\n                    // There's no cookie, but we might have session data in local storage\r\n                    // This can happen if the session expired or the user actively deleted the cookie\r\n                    // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n                    // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n                    var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix);\r\n                    if (storageValue) {\r\n                        isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n                    }\r\n                }\r\n                return isValid || !!session.id;\r\n            }\r\n            /**\r\n             * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n             * use this data to initialize automaticSession.\r\n             *\r\n             * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n             * @returns true if values set otherwise false\r\n             */\r\n            function _initializeAutomaticSessionWithData(session, sessionData) {\r\n                var isValid = false;\r\n                var sessionReset = \", session will be reset\";\r\n                var tokens = sessionData.split(\"|\");\r\n                if (tokens.length >= 2) {\r\n                    try {\r\n                        var acqMs = +tokens[1] || 0;\r\n                        var renewalMs = +tokens[2] || 0;\r\n                        if (isNaN(acqMs) || acqMs <= 0) {\r\n                            _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n                        }\r\n                        else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n                            _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n                        }\r\n                        else if (tokens[0]) {\r\n                            // Everything looks valid so set the values\r\n                            session.id = tokens[0];\r\n                            session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n                            session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n                            isValid = true;\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n                return isValid;\r\n            }\r\n            function _renew(nowMs) {\r\n                var getNewId = config.getNewId || newId;\r\n                _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */].id = getNewId(config.idLength || 22);\r\n                _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n                _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n                // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n                if (!utlCanUseLocalStorage()) {\r\n                    _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n                }\r\n            }\r\n            function _setCookie(session, nowMs) {\r\n                var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n                session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n                var renewalPeriodMs = _sessionRenewalMs;\r\n                // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n                // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n                var acqTimeLeftMs = (acq + _sessionExpirationMs) - nowMs;\r\n                var cookie = [session.id, acq, nowMs];\r\n                var maxAgeSec = 0;\r\n                if (acqTimeLeftMs < renewalPeriodMs) {\r\n                    maxAgeSec = acqTimeLeftMs / 1000;\r\n                }\r\n                else {\r\n                    maxAgeSec = renewalPeriodMs / 1000;\r\n                }\r\n                var cookieDomain = config.cookieDomain || null;\r\n                // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n                // A cookie with 0 expiry in the session cookie will never expire for that browser session.  If the browser is closed the cookie expires.\r\n                // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n                _cookieManager.set(_storageNamePrefix, cookie.join(\"|\"), _sessionExpirationMs > 0 ? maxAgeSec : null, cookieDomain);\r\n                _cookieUpdatedTimestamp = nowMs;\r\n            }\r\n            function _setStorage(guid, acq, renewal) {\r\n                // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n                // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n                // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n                utlSetLocalStorage(_logger, _storageNamePrefix, [guid, acq, renewal].join(\"|\"));\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    _SessionManager.__ieDyn=1;\n\n    return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { fieldRedaction, generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n    function TelemetryTrace(id, parentId, name, logger, config) {\r\n        var _self = this;\r\n        _self.traceID = id || generateW3CId();\r\n        _self.parentID = parentId;\r\n        var location = getLocation();\r\n        if (!name && location && location.pathname) {\r\n            name = location.pathname;\r\n            if (config) {\r\n                name = fieldRedaction(name, config);\r\n            }\r\n        }\r\n        _self.name = dataSanitizeString(logger, name);\r\n    }\r\n    return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, onConfigChange, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM7, _DYN_COOKIE_SEPARATOR, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n    // Validate:\r\n    // 1. Id is a non-empty string.\r\n    // 2. It does not contain special characters for cookies.\r\n    if (typeof id !== \"string\" ||\r\n        !id ||\r\n        id.match(/,|;|=| |\\|/)) {\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n    function User(config, core, unloadHookContainer) {\r\n        /**\r\n         * A flag indicating whether this represents a new user\r\n         */\r\n        this.isNewUser = false;\r\n        /**\r\n         * A flag indicating whether the user cookie has been set\r\n         */\r\n        this.isUserCookieSet = false;\r\n        var _logger = safeGetLogger(core);\r\n        var _cookieManager = safeGetCookieMgr(core);\r\n        var _storageNamePrefix;\r\n        dynamicProto(User, this, function (_self) {\r\n            // Define _self.config\r\n            objDefine(_self, \"config\", {\r\n                g: function () { return config; }\r\n            });\r\n            var unloadHook = onConfigChange(config, function () {\r\n                var userCookiePostfix = config.userCookiePostfix || \"\";\r\n                _storageNamePrefix = User.userCookieName + userCookiePostfix;\r\n                // get userId or create new one if none exists\r\n                var cookie = _cookieManager.get(_storageNamePrefix);\r\n                if (cookie) {\r\n                    _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n                    var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n                    if (params.length > 0) {\r\n                        _self.id = params[0];\r\n                        // we already have a cookie\r\n                        _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n                    }\r\n                }\r\n                if (!_self.id) {\r\n                    _self.id = _generateNewId();\r\n                    var newCookie = _generateNewCookie(_self.id);\r\n                    _setUserCookie(newCookie.join(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n                    // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n                    // We should respect their wishes and clear ourselves from local storage\r\n                    var name_1 = (config.namePrefix || \"\") + \"ai_session\";\r\n                    utlRemoveStorage(_logger, name_1);\r\n                }\r\n                // We still take the account id from the ctor param for backward compatibility.\r\n                // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n                _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] || undefined;\r\n                // Get the auth user id and account id from the cookie if exists\r\n                // Cookie is in the pattern: <authenticatedId>|<accountId>\r\n                var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n                if (authCookie) {\r\n                    authCookie = decodeURI(authCookie);\r\n                    var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n                    if (authCookieString[0]) {\r\n                        _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n                    }\r\n                    if (authCookieString.length > 1 && authCookieString[1]) {\r\n                        _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n                    }\r\n                }\r\n            });\r\n            unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n            function _generateNewId() {\r\n                var theConfig = (config || {});\r\n                var getNewId = theConfig.getNewId || newId;\r\n                var id = getNewId(theConfig.idLength ? config.idLength : 22);\r\n                return id;\r\n            }\r\n            function _generateNewCookie(userId) {\r\n                var acqStr = toISOString(new Date());\r\n                _self.accountAcquisitionDate = acqStr;\r\n                _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n                var newCookie = [userId, acqStr];\r\n                return newCookie;\r\n            }\r\n            function _setUserCookie(cookie) {\r\n                // without expiration, cookies expire at the end of the session\r\n                // set it to 365 days from now\r\n                // 365 * 24 * 60 * 60 = 31536000\r\n                var oneYear = 31536000;\r\n                _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix, cookie, oneYear);\r\n            }\r\n            _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n                if (storeInCookie === void 0) { storeInCookie = false; }\r\n                // Validate inputs to ensure no cookie control characters.\r\n                var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n                if (isInvalidInput) {\r\n                    _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n                        \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n                    return;\r\n                }\r\n                // Create cookie string.\r\n                _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n                var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n                if (accountId) {\r\n                    _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n                    authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId].join(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n                }\r\n                if (storeInCookie) {\r\n                    // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n                    // Encoding the cookie to handle unexpected unicode characters.\r\n                    _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n                }\r\n            };\r\n            /**\r\n             * Clears the authenticated user id and the account id from the user context.\r\n             * @returns {}\r\n             */\r\n            _self.clearAuthenticatedUserContext = function () {\r\n                _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n                _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n                _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n            };\r\n            _self.update = function (userId) {\r\n                // Optimizations to avoid setting and processing the cookie when not needed\r\n                if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n                    var user_id = userId ? userId : _generateNewId();\r\n                    var user_cookie = _generateNewCookie(user_id);\r\n                    _setUserCookie(user_cookie.join(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n                }\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n    User.cookieSeparator = \"|\";\r\n    User.userCookieName = \"ai_user\";\r\n    User.authUserCookieName = \"ai_authUser\";\r\n    return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_SESSION, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n    if (target && target[name] && objKeys(target[name]).length === 0) {\r\n        delete target[name];\r\n    }\r\n}\r\nfunction _nullResult() {\r\n    return null;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n    function TelemetryContext(core, defaultConfig, previousTraceCtx, unloadHookContainer) {\r\n        var _this = this;\r\n        var logger = core.logger;\r\n        dynamicProto(TelemetryContext, this, function (_self) {\r\n            _self.appId = _nullResult;\r\n            _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = _nullResult;\r\n            _self.application = new Application();\r\n            _self.internal = new Internal(defaultConfig, unloadHookContainer);\r\n            if (hasWindow()) {\r\n                _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core, unloadHookContainer);\r\n                _self.device = new Device();\r\n                _self.location = new Location();\r\n                _self.user = new User(defaultConfig, core, unloadHookContainer);\r\n                var traceId = void 0;\r\n                var parentId = void 0;\r\n                var name_1;\r\n                if (previousTraceCtx) {\r\n                    traceId = previousTraceCtx.getTraceId();\r\n                    parentId = previousTraceCtx.getSpanId();\r\n                    name_1 = previousTraceCtx.getName();\r\n                }\r\n                _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n                _self[_DYN_SESSION /* @min:%2esession */] = new Session();\r\n            }\r\n            _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n                var session = _self[_DYN_SESSION /* @min:%2esession */];\r\n                var sesId = null;\r\n                // If customer set session info, apply their context; otherwise apply context automatically generated\r\n                if (session && isString(session.id)) {\r\n                    sesId = session.id;\r\n                }\r\n                else {\r\n                    // Gets the automatic session if it exists or an empty object\r\n                    var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n                    sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n                }\r\n                return sesId;\r\n            };\r\n            _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n                setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n            };\r\n            _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n                setValue(evt.ext, Extensions.OSExt, _self.os);\r\n            };\r\n            _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n                var application = _self.application;\r\n                if (application) {\r\n                    // evt.ext.app\r\n                    var tags = getSetValue(evt, strTags);\r\n                    setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n                    setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n                }\r\n            };\r\n            _self.applyDeviceContext = function (evt, itemCtx) {\r\n                var device = _self.device;\r\n                if (device) {\r\n                    // evt.ext.device\r\n                    var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n                    setValue(extDevice, \"localId\", device.id, isString);\r\n                    setValue(extDevice, \"ip\", device.ip, isString);\r\n                    setValue(extDevice, \"model\", device.model, isString);\r\n                    setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n                }\r\n            };\r\n            _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n                var internal = _self.internal;\r\n                if (internal) {\r\n                    var tags = getSetValue(evt, strTags);\r\n                    setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n                    setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n                    if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n                        setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n                        setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n                    }\r\n                }\r\n            };\r\n            _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n                var location = _this.location;\r\n                if (location) {\r\n                    setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n                }\r\n            };\r\n            _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n                var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n                if (telemetryTrace) {\r\n                    var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n                    setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n                    setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n                    setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n                }\r\n            };\r\n            _self.applyWebContext = function (evt, itemCtx) {\r\n                var web = _this.web;\r\n                if (web) {\r\n                    setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n                }\r\n            };\r\n            _self.applyUserContext = function (evt, itemCtx) {\r\n                var user = _self.user;\r\n                if (user) {\r\n                    var tags = getSetValue(evt, strTags, []);\r\n                    // stays in tags\r\n                    setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n                    // CS 4.0\r\n                    var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n                    setValue(extUser, \"id\", user.id, isString);\r\n                    setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n                }\r\n            };\r\n            _self.cleanUp = function (evt, itemCtx) {\r\n                var ext = evt.ext;\r\n                if (ext) {\r\n                    _removeEmpty(ext, Extensions.DeviceExt);\r\n                    _removeEmpty(ext, Extensions.UserExt);\r\n                    _removeEmpty(ext, Extensions.WebExt);\r\n                    _removeEmpty(ext, Extensions.OSExt);\r\n                    _removeEmpty(ext, Extensions.AppExt);\r\n                    _removeEmpty(ext, Extensions.TraceExt);\r\n                }\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    TelemetryContext.__ieDyn=1;\n\n    return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze, objDefine } from \"@nevware21/ts-utils\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_SESSION, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar undefString;\r\nvar nullValue = null;\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n        accountId: nullValue,\r\n        sessionRenewalMs: 30 * 60 * 1000,\r\n        samplingPercentage: 100,\r\n        sessionExpirationMs: 24 * 60 * 60 * 1000,\r\n        cookieDomain: nullValue,\r\n        sdkExtension: nullValue,\r\n        isBrowserLinkTrackingEnabled: false,\r\n        appId: nullValue\r\n    },\r\n    _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = nullValue,\r\n    _a.namePrefix = undefString,\r\n    _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = undefString,\r\n    _a.userCookiePostfix = undefString,\r\n    _a.idLength = 22,\r\n    _a.getNewId = nullValue,\r\n    _a));\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n    __extends(PropertiesPlugin, _super);\r\n    function PropertiesPlugin() {\r\n        var _this = _super.call(this) || this;\r\n        _this.priority = 110;\r\n        _this.identifier = PropertiesPluginIdentifier;\r\n        var _extensionConfig;\r\n        var _distributedTraceCtx;\r\n        var _previousTraceCtx;\r\n        var _context;\r\n        var _disableUserInitMessage;\r\n        dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n            _initDefaults();\r\n            objDefine(_self, \"context\", {\r\n                g: function () {\r\n                    return _context;\r\n                }\r\n            });\r\n            _self.initialize = function (config, core, extensions, pluginChain) {\r\n                _base.initialize(config, core, extensions, pluginChain);\r\n                _populateDefaults(config);\r\n            };\r\n            /**\r\n             * Add Part A fields to the event\r\n             * @param event - The event that needs to be processed\r\n             */\r\n            _self.processTelemetry = function (event, itemCtx) {\r\n                if (!isNullOrUndefined(event)) {\r\n                    itemCtx = _self._getTelCtx(itemCtx);\r\n                    // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n                    if (event.name === PageView.envelopeType) {\r\n                        itemCtx.diagLog().resetInternalMessageCount();\r\n                    }\r\n                    var theContext = (_context || {});\r\n                    if (theContext[_DYN_SESSION /* @min:%2esession */]) {\r\n                        // If customer did not provide custom session id update the session manager\r\n                        if (typeof _context[_DYN_SESSION /* @min:%2esession */].id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n                            theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */].update();\r\n                        }\r\n                    }\r\n                    var userCtx = theContext.user;\r\n                    if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n                        userCtx.update(theContext.user.id);\r\n                    }\r\n                    _processTelemetryInternal(event, itemCtx);\r\n                    if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n                        userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n                        if (!_disableUserInitMessage) {\r\n                            var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n                            _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n                        }\r\n                    }\r\n                    _self.processNext(event, itemCtx);\r\n                }\r\n            };\r\n            _self._doTeardown = function (unloadCtx, unloadState) {\r\n                var core = (unloadCtx || {}).core();\r\n                if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n                    var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n                    if (traceCtx === _distributedTraceCtx) {\r\n                        core.setTraceCtx(_previousTraceCtx);\r\n                    }\r\n                }\r\n                _initDefaults();\r\n            };\r\n            function _initDefaults() {\r\n                _extensionConfig = null;\r\n                _distributedTraceCtx = null;\r\n                _previousTraceCtx = null;\r\n                _context = null;\r\n                _disableUserInitMessage = true;\r\n            }\r\n            function _populateDefaults(config) {\r\n                var identifier = _self.identifier;\r\n                var core = _self.core;\r\n                // This function will be re-called whenever any referenced configuration is changed\r\n                _self._addHook(onConfigChange(config, function () {\r\n                    var ctx = createProcessTelemetryContext(null, config, core);\r\n                    if (config.storagePrefix) {\r\n                        utlSetStoragePrefix(config.storagePrefix);\r\n                    }\r\n                    _disableUserInitMessage = config.disableUserInitMessage === false ? false : true;\r\n                    _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n                    // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n                    _self[\"_extConfig\"] = _extensionConfig;\r\n                }));\r\n                // This is outside of the onConfigChange as we don't want to update (replace) these values whenever a referenced config item changes\r\n                _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n                _context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx, _self._unloadHooks);\r\n                _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n                core.setTraceCtx(_distributedTraceCtx);\r\n                _self.context.appId = function () {\r\n                    var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n                    return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n                };\r\n            }\r\n            function _processTelemetryInternal(evt, itemCtx) {\r\n                // Set Part A fields\r\n                getSetValue(evt, \"tags\", []);\r\n                getSetValue(evt, \"ext\", {});\r\n                var ctx = _self.context;\r\n                ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n                ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n                ctx.applyDeviceContext(evt, itemCtx);\r\n                ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n                ctx.applyUserContext(evt, itemCtx);\r\n                ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n                ctx.applyWebContext(evt, itemCtx);\r\n                ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n                ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n                ctx.cleanUp(evt, itemCtx);\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n    // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    PropertiesPlugin.__ieDyn=1;\n\n    return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var CONFIG_ENDPOINT_URL = \"https://js.monitor.azure.com/scripts/b/ai.config.1.cfg.json\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 4\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_USER_OVERRIDE_ENDPOI0 = \"userOverrideEndpointUrl\"; // Count: 6\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 5\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 5\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF1 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_SEND_MESSAGE = \"sendMessage\"; // Count: 3\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN2 = \"updateSnippetDefinitions\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.11\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a, _b, _c, _d;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { CfgSyncPlugin } from \"@microsoft/applicationinsights-cfgsync-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, DEFAULT_BREEZE_PATH, PropertiesPluginIdentifier, ThrottleMgr, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, cfgDfMerge, cfgDfValidate, createDynamicConfig, createProcessTelemetryContext, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFeatureEnabled, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, onConfigChange, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { createPromise, createSyncPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, isPromiseLike, objDefine, objForEachKey, strIndexOf, throwUnsupported } from \"@nevware21/ts-utils\";\r\nimport { CONFIG_ENDPOINT_URL, STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF1, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_ENDPOINT_URL, _DYN_INSTRUMENTATION_KEY, _DYN_ONUNLOAD_FLUSH, _DYN_QUEUE, _DYN_SEND_MESSAGE, _DYN_UPDATE_SNIPPET_DEFIN2, _DYN_USER_OVERRIDE_ENDPOI0, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n    STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\nvar IKEY_USAGE = \"iKeyUsage\";\r\nvar CDN_USAGE = \"CdnUsage\";\r\nvar SDK_LOADER_VER = \"SdkLoaderVer\";\r\nvar ZIP_PAYLOAD = \"zipPayload\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar default_limit = {\r\n    samplingRate: 100,\r\n    maxSendNumber: 1\r\n};\r\nvar default_interval = {\r\n    monthInterval: 3,\r\n    daysOfMonth: [28]\r\n};\r\nvar default_throttle_config = {\r\n    disabled: true,\r\n    limit: cfgDfMerge(default_limit),\r\n    interval: cfgDfMerge(default_interval)\r\n};\r\n// We need to include all properties that we only reference that we want to be dynamically updatable here\r\n// So they are converted even when not specified in the passed configuration\r\nvar defaultConfigValues = (_a = {},\r\n    _a[_DYN_CONNECTION_STRING /* @min:connectionString */] = UNDEFINED_VALUE,\r\n    _a.endpointUrl = UNDEFINED_VALUE,\r\n    _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n    _a[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:userOverrideEndpointUrl */] = UNDEFINED_VALUE,\r\n    _a.diagnosticLogInterval = cfgDfValidate(_chkDiagLevel, 10000),\r\n    _a.featureOptIn = (_b = {},\r\n        _b[IKEY_USAGE] = { mode: 3 /* FeatureOptInMode.enable */ },\r\n        _b[CDN_USAGE] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n        _b[SDK_LOADER_VER] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n        _b[ZIP_PAYLOAD] = { mode: 1 /* FeatureOptInMode.none */ },\r\n        _b),\r\n    _a.throttleMgrCfg = cfgDfMerge((_c = {},\r\n        _c[109 /* _eInternalMessageId.DefaultThrottleMsgKey */] = cfgDfMerge(default_throttle_config),\r\n        _c[106 /* _eInternalMessageId.InstrumentationKeyDeprecation */] = cfgDfMerge(default_throttle_config),\r\n        _c[111 /* _eInternalMessageId.SdkLdrUpdate */] = cfgDfMerge(default_throttle_config),\r\n        _c[110 /* _eInternalMessageId.CdnDeprecation */] = cfgDfMerge(default_throttle_config),\r\n        _c)),\r\n    _a.extensionConfig = cfgDfMerge((_d = {},\r\n        _d[\"AppInsightsCfgSyncPlugin\"] = cfgDfMerge({\r\n            cfgUrl: CONFIG_ENDPOINT_URL,\r\n            syncMode: 2 /* ICfgSyncMode.Receive */\r\n        }),\r\n        _d)),\r\n    _a);\r\nfunction _chkDiagLevel(value) {\r\n    // Make sure we have a value > 0\r\n    return value && value > 0;\r\n}\r\nfunction _parseCs(config, configCs) {\r\n    return createSyncPromise(function (resolve, reject) {\r\n        doAwaitResponse(configCs, function (res) {\r\n            var curCs = res && res.value;\r\n            var parsedCs = null;\r\n            if (!res.rejected && curCs) {\r\n                // replace cs with resolved values in case of circular promises\r\n                config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] = curCs;\r\n                parsedCs = parseConnectionString(curCs);\r\n            }\r\n            // if can't resolve cs promise, null will be returned\r\n            resolve(parsedCs);\r\n        });\r\n    });\r\n}\r\n/**\r\n * Application Insights API\r\n * @group Entrypoint\r\n * @group Classes\r\n */\r\nvar AppInsightsSku = /** @class */ (function () {\r\n    function AppInsightsSku(snippet) {\r\n        var _this = this;\r\n        // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n        var dependencies;\r\n        var properties;\r\n        var _sender;\r\n        var _snippetVersion;\r\n        var _evtNamespace;\r\n        var _houseKeepingNamespace;\r\n        var _core;\r\n        var _config;\r\n        var _analyticsPlugin;\r\n        var _cfgSyncPlugin;\r\n        var _throttleMgr;\r\n        var _iKeySentMessage;\r\n        var _cdnSentMessage;\r\n        var _sdkVerSentMessage;\r\n        dynamicProto(AppInsightsSku, this, function (_self) {\r\n            _initDefaults();\r\n            objDefine(_self, \"config\", {\r\n                g: function () {\r\n                    return _config;\r\n                }\r\n            });\r\n            arrForEach([\"pluginVersionStringArr\", \"pluginVersionString\"], function (key) {\r\n                objDefine(_self, key, {\r\n                    g: function () {\r\n                        if (_core) {\r\n                            return _core[key];\r\n                        }\r\n                        return null;\r\n                    }\r\n                });\r\n            });\r\n            // initialize the queue and config in case they are undefined\r\n            _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n            snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n            snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n            var cfgHandler = createDynamicConfig(snippet.config || {}, defaultConfigValues);\r\n            _config = cfgHandler.cfg;\r\n            _analyticsPlugin = new AnalyticsPlugin();\r\n            objDefine(_self, \"appInsights\", {\r\n                g: function () {\r\n                    return _analyticsPlugin;\r\n                }\r\n            });\r\n            properties = new PropertiesPlugin();\r\n            dependencies = new DependenciesPlugin();\r\n            _sender = new Sender();\r\n            _core = new AppInsightsCore();\r\n            objDefine(_self, \"core\", {\r\n                g: function () {\r\n                    return _core;\r\n                }\r\n            });\r\n            // Will get recalled if any referenced values are changed\r\n            _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n                var configCs = _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */];\r\n                if (isPromiseLike(configCs)) {\r\n                    var ikeyPromise = createSyncPromise(function (resolve, reject) {\r\n                        doAwaitResponse(_parseCs(_config, configCs), function (rsp) {\r\n                            if (!rsp.rejected) {\r\n                                var ikey = _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n                                var cs = rsp.value;\r\n                                ikey = cs && cs.instrumentationkey || ikey;\r\n                                resolve(ikey);\r\n                            }\r\n                            else {\r\n                                // parseCs will always resolve(unless timeout)\r\n                                // return null in case any error happens\r\n                                resolve(null);\r\n                            }\r\n                        });\r\n                    });\r\n                    var url = _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */];\r\n                    if (isNullOrUndefined(url)) {\r\n                        url = createSyncPromise(function (resolve, reject) {\r\n                            doAwaitResponse(_parseCs(_config, configCs), function (rsp) {\r\n                                if (!rsp.rejected) {\r\n                                    var url_1 = _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n                                    var cs = rsp.value;\r\n                                    var ingest = cs && cs.ingestionendpoint;\r\n                                    url_1 = ingest ? ingest + DEFAULT_BREEZE_PATH : url_1;\r\n                                    resolve(url_1);\r\n                                }\r\n                                else {\r\n                                    // parseCs will always resolve(unless timeout)\r\n                                    // return null in case any error happens\r\n                                    resolve(null);\r\n                                }\r\n                            });\r\n                        });\r\n                    }\r\n                    _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = ikeyPromise;\r\n                    _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = url;\r\n                }\r\n                if (isString(configCs) && configCs) {\r\n                    // confirm if promiselike function present\r\n                    // handle cs promise here\r\n                    // add cases to oneNote\r\n                    var cs = parseConnectionString(configCs);\r\n                    var ingest = cs.ingestionendpoint;\r\n                    _config.endpointUrl = _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */] : ingest + DEFAULT_BREEZE_PATH; // add /v2/track\r\n                    _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs.instrumentationkey || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n                }\r\n                // userOverrideEndpointUrl have the highest priority\r\n                _config.endpointUrl = _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */] : _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n            }));\r\n            _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n            _self[STR_FLUSH /* @min:%2eflush */] = function (isAsync, callBack) {\r\n                if (isAsync === void 0) { isAsync = true; }\r\n                var result;\r\n                doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n                    if (isAsync && !callBack) {\r\n                        result = createPromise(function (resolve) {\r\n                            callBack = resolve;\r\n                        });\r\n                    }\r\n                    var waiting = 1;\r\n                    var flushDone = function () {\r\n                        waiting--;\r\n                        if (waiting === 0) {\r\n                            callBack();\r\n                        }\r\n                    };\r\n                    arrForEach(_core.getChannels(), function (channel) {\r\n                        if (channel) {\r\n                            waiting++;\r\n                            channel[STR_FLUSH /* @min:%2eflush */](isAsync, flushDone);\r\n                        }\r\n                    });\r\n                    // decrement the initial \"waiting\"\r\n                    flushDone();\r\n                }, null, isAsync);\r\n                return result;\r\n            };\r\n            _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (isAsync) {\r\n                if (isAsync === void 0) { isAsync = true; }\r\n                arrForEach(_core.getChannels(), function (channel) {\r\n                    if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n                        channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n                    }\r\n                    else {\r\n                        channel[STR_FLUSH /* @min:%2eflush */](isAsync);\r\n                    }\r\n                });\r\n            };\r\n            _self.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n                if (legacyMode === void 0) { legacyMode = false; }\r\n                if (legacyMode) {\r\n                    throwUnsupported(\"Legacy Mode is no longer supported\");\r\n                }\r\n                function _updateSnippetProperties(snippet) {\r\n                    if (snippet) {\r\n                        var snippetVer = \"\";\r\n                        if (!isNullOrUndefined(_snippetVersion)) {\r\n                            snippetVer += _snippetVersion;\r\n                        }\r\n                        if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n                            _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n                        }\r\n                        // apply updated properties to the global instance (snippet)\r\n                        objForEachKey(_self, function (field, value) {\r\n                            if (isString(field) &&\r\n                                !isFunction(value) &&\r\n                                field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n                                arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n                                if (snippet[field] !== value) {\r\n                                    snippet[field] = value;\r\n                                }\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n                doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n                    // initialize core\r\n                    _core.initialize(_config, [_sender, properties, dependencies, _analyticsPlugin, _cfgSyncPlugin], logger, notificationManager);\r\n                    objDefine(_self, \"context\", {\r\n                        g: function () { return properties[_DYN_CONTEXT /* @min:%2econtext */]; }\r\n                    });\r\n                    if (!_throttleMgr) {\r\n                        _throttleMgr = new ThrottleMgr(_core);\r\n                    }\r\n                    var sdkSrc = _findSdkSourceFile();\r\n                    if (sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n                        _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = sdkSrc;\r\n                    }\r\n                    _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n                    // Empty queue of all api calls logged prior to sdk download\r\n                    _self.emptyQueue();\r\n                    _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n                    _self[_DYN_ADD_HOUSEKEEPING_BEF1 /* @min:%2eaddHousekeepingBeforeUnload */](_self);\r\n                    _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n                        var defaultEnable = false;\r\n                        if (_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */]) {\r\n                            defaultEnable = !_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */].disabled;\r\n                        }\r\n                        if (!_throttleMgr.isReady() && _config.extensionConfig && _config.extensionConfig[_cfgSyncPlugin.identifier] && defaultEnable) {\r\n                            // set ready state to true will automatically trigger flush()\r\n                            _throttleMgr.onReadyState(true);\r\n                        }\r\n                        if (!_iKeySentMessage && !_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && isFeatureEnabled(IKEY_USAGE, _config, true)) {\r\n                            _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"See Instrumentation key support at aka.ms/IkeyMigrate\");\r\n                            _iKeySentMessage = true;\r\n                        }\r\n                        if (!_cdnSentMessage && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc.indexOf(\"az416426\") != -1 && isFeatureEnabled(CDN_USAGE, _config, true)) {\r\n                            _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](110 /* _eInternalMessageId.CdnDeprecation */, \"See Cdn support notice at aka.ms/JsActiveCdn\");\r\n                            _cdnSentMessage = true;\r\n                        }\r\n                        if (!_sdkVerSentMessage && parseInt(_snippetVersion) < 6 && isFeatureEnabled(SDK_LOADER_VER, _config, true)) {\r\n                            _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](111 /* _eInternalMessageId.SdkLdrUpdate */, \"An updated Sdk Loader is available, see aka.ms/SnippetVer\");\r\n                            _sdkVerSentMessage = true;\r\n                        }\r\n                    }));\r\n                });\r\n                return _self;\r\n            };\r\n            _self[_DYN_UPDATE_SNIPPET_DEFIN2 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n                // apply full appInsights to the global instance\r\n                // Note: This must be called before loadAppInsights is called\r\n                proxyAssign(snippet, _self, function (name) {\r\n                    // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n                    return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n                });\r\n            };\r\n            _self.emptyQueue = function () {\r\n                // call functions that were queued before the main script was loaded\r\n                try {\r\n                    if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n                        // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n                        var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n                        for (var i = 0; i < length_1; i++) {\r\n                            var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n                            call();\r\n                        }\r\n                        _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n                        delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n                    }\r\n                }\r\n                catch (exception) {\r\n                    var properties_1 = {};\r\n                    if (exception && isFunction(exception.toString)) {\r\n                        properties_1.exception = exception.toString();\r\n                    }\r\n                    // need from core\r\n                    // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n                    //     eLoggingSeverity.WARNING,\r\n                    //     _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n                    //     \"Failed to send queued telemetry\",\r\n                    //     properties);\r\n                }\r\n            };\r\n            _self[_DYN_ADD_HOUSEKEEPING_BEF1 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n                // Add callback to push events when the user navigates away\r\n                if (hasWindow() || hasDocument()) {\r\n                    var performHousekeeping_1 = function () {\r\n                        // Adds the ability to flush all data before the page unloads.\r\n                        // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n                        // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n                        // Telemetry here will help us analyze how effective this approach is.\r\n                        // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n                        // impact on user experience.\r\n                        // appInsightsInstance.context._sender.triggerSend();\r\n                        appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n                        // Back up the current session to local storage\r\n                        // This lets us close expired sessions after the cookies themselves expire\r\n                        if (isFunction(_self.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n                            var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n                            if (loadedPlugin) {\r\n                                var propertiesPlugin = loadedPlugin.plugin;\r\n                                if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n                                    propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n                                }\r\n                            }\r\n                        }\r\n                    };\r\n                    var added_1 = false;\r\n                    if (!_houseKeepingNamespace) {\r\n                        _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n                    }\r\n                    // Will be recalled if any referenced config properties change\r\n                    _addUnloadHook(onConfigChange(_config, function (details) {\r\n                        var coreConfig = details.cfg;\r\n                        var analyticsPlugin = appInsightsInstance.appInsights;\r\n                        var ctx = createProcessTelemetryContext(null, coreConfig, analyticsPlugin.core);\r\n                        var extConfig = ctx.getExtCfg(analyticsPlugin.identifier || AnalyticsPluginIdentifier);\r\n                        // As we could get recalled, remove any previously registered event handlers first\r\n                        _removePageEventHandlers();\r\n                        var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents;\r\n                        if (!extConfig.disableFlushOnBeforeUnload) {\r\n                            // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n                            // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n                            if (addPageUnloadEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n                                added_1 = true;\r\n                            }\r\n                            // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n                            if (addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n                                added_1 = true;\r\n                            }\r\n                            // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n                            // log the failure in this case\r\n                            if (!added_1 && !isReactNative()) {\r\n                                _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n                            }\r\n                        }\r\n                        if (!added_1 && !extConfig.disableFlushOnUnload) {\r\n                            // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n                            addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace);\r\n                        }\r\n                    }));\r\n                }\r\n            };\r\n            _self.getSender = function () {\r\n                return _sender;\r\n            };\r\n            _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n                var unloadDone = false;\r\n                var result;\r\n                if (isAsync !== false && !unloadComplete) {\r\n                    result = createPromise(function (resolve) {\r\n                        // Set the callback to the promise resolve callback\r\n                        unloadComplete = resolve;\r\n                    });\r\n                }\r\n                function _unloadCallback(unloadState) {\r\n                    if (!unloadDone) {\r\n                        unloadDone = true;\r\n                        _initDefaults();\r\n                        unloadComplete && unloadComplete(unloadState);\r\n                    }\r\n                }\r\n                _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n                _removePageEventHandlers();\r\n                _core.unload && _core.unload(isAsync, _unloadCallback, cbTimeout);\r\n                return result;\r\n            };\r\n            proxyFunctions(_self, _analyticsPlugin, [\r\n                STR_GET_COOKIE_MGR,\r\n                STR_TRACK_EVENT,\r\n                STR_TRACK_PAGE_VIEW,\r\n                \"trackPageViewPerformance\",\r\n                STR_TRACK_EXCEPTION,\r\n                \"_onerror\",\r\n                STR_TRACK_TRACE,\r\n                STR_TRACK_METRIC,\r\n                STR_START_TRACK_PAGE,\r\n                STR_STOP_TRACK_PAGE,\r\n                STR_START_TRACK_EVENT,\r\n                STR_STOP_TRACK_EVENT\r\n            ]);\r\n            proxyFunctions(_self, _getCurrentDependencies, [\r\n                STR_TRACK_DEPENDENCY_DATA,\r\n                \"addDependencyListener\",\r\n                \"addDependencyInitializer\"\r\n            ]);\r\n            proxyFunctions(_self, _core, [\r\n                STR_ADD_TELEMETRY_INITIALIZER,\r\n                STR_POLL_INTERNAL_LOGS,\r\n                \"stopPollingInternalLogs\",\r\n                STR_GET_PLUGIN,\r\n                \"addPlugin\",\r\n                STR_EVT_NAMESPACE,\r\n                \"addUnloadCb\",\r\n                \"getTraceCtx\",\r\n                \"updateCfg\",\r\n                \"onCfgChange\"\r\n            ]);\r\n            proxyFunctions(_self, function () {\r\n                var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n                return context ? context.user : null;\r\n            }, [\r\n                STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n                STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n            ]);\r\n            // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n            function _getCurrentDependencies() {\r\n                return dependencies;\r\n            }\r\n            function _initDefaults() {\r\n                _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n                _houseKeepingNamespace = null;\r\n                dependencies = null;\r\n                properties = null;\r\n                _sender = null;\r\n                _snippetVersion = null;\r\n                _throttleMgr = null;\r\n                _iKeySentMessage = false;\r\n                _cdnSentMessage = false;\r\n                _sdkVerSentMessage = false;\r\n                _cfgSyncPlugin = new CfgSyncPlugin();\r\n            }\r\n            function _removePageEventHandlers() {\r\n                // Remove any registered event handlers\r\n                if (_houseKeepingNamespace) {\r\n                    removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n                    removePageHideEventListener(null, _houseKeepingNamespace);\r\n                }\r\n            }\r\n            function _addUnloadHook(hooks) {\r\n                _core.addUnloadHook(hooks);\r\n            }\r\n        });\r\n    }\r\n    // Analytics Plugin\r\n// Removed Stub for AppInsightsSku.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsSku.prototype.trackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageView.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageViewPerformance.\r\n// Removed Stub for AppInsightsSku.prototype.trackException.\r\n// Removed Stub for AppInsightsSku.prototype._onerror.\r\n// Removed Stub for AppInsightsSku.prototype.trackTrace.\r\n// Removed Stub for AppInsightsSku.prototype.trackMetric.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.addTelemetryInitializer.\r\n    // Properties Plugin\r\n// Removed Stub for AppInsightsSku.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for AppInsightsSku.prototype.clearAuthenticatedUserContext.\r\n    // Dependencies Plugin\r\n// Removed Stub for AppInsightsSku.prototype.trackDependencyData.\r\n    // Misc\r\n// Removed Stub for AppInsightsSku.prototype.flush.\r\n// Removed Stub for AppInsightsSku.prototype.onunloadFlush.\r\n// Removed Stub for AppInsightsSku.prototype.loadAppInsights.\r\n// Removed Stub for AppInsightsSku.prototype.updateSnippetDefinitions.\r\n// Removed Stub for AppInsightsSku.prototype.emptyQueue.\r\n// Removed Stub for AppInsightsSku.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for AppInsightsSku.prototype.getSender.\r\n// Removed Stub for AppInsightsSku.prototype.unload.\r\n// Removed Stub for AppInsightsSku.prototype.getPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.addPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.updateCfg.\r\n// Removed Stub for AppInsightsSku.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsSku.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsSku.prototype.addDependencyListener.\r\n    /**\r\n     * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n     * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n     * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n     * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n     * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n     * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n     */\r\n    AppInsightsSku.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n        return null;\r\n    };\r\n// Removed Stub for AppInsightsSku.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsSku.prototype.onCfgChange.\r\n    return AppInsightsSku;\r\n}());\r\nexport { AppInsightsSku };\r\n// tslint:disable-next-line\r\nexport function _findSdkSourceFile() {\r\n    if (_internalSdkSrc) {\r\n        // Use the cached value\r\n        return _internalSdkSrc;\r\n    }\r\n    var sdkSrc = null;\r\n    var isModule = false;\r\n    var cdns = [\r\n        \"://js.monitor.azure.com/\",\r\n        \"://az416426.vo.msecnd.net/\"\r\n    ];\r\n    try {\r\n        // Try and determine whether the sdk is being loaded from the CDN\r\n        // currentScript is only valid during initial processing\r\n        var scrpt = (document || {}).currentScript;\r\n        if (scrpt) {\r\n            sdkSrc = scrpt.src;\r\n            // } else {\r\n            //     // We need to update to at least typescript 2.9 for this to work :-(\r\n            //     // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n            //     let meta = import.meta;\r\n            //     sdkSrc = (meta || {}).url;\r\n            //     isModule = true;\r\n        }\r\n    }\r\n    catch (e) {\r\n        // eslint-disable-next-line no-empty\r\n    }\r\n    if (sdkSrc) {\r\n        try {\r\n            var url_2 = sdkSrc.toLowerCase();\r\n            if (url_2) {\r\n                var src_1 = \"\";\r\n                arrForEach(cdns, function (value, idx) {\r\n                    if (strIndexOf(url_2, value) !== -1) {\r\n                        src_1 = \"cdn\" + (idx + 1);\r\n                        if (strIndexOf(url_2, \"/scripts/\") === -1) {\r\n                            if (strIndexOf(url_2, \"/next/\") !== -1) {\r\n                                src_1 += \"-next\";\r\n                            }\r\n                            else if (strIndexOf(url_2, \"/beta/\") !== -1) {\r\n                                src_1 += \"-beta\";\r\n                            }\r\n                        }\r\n                        _internalSdkSrc = src_1 + (isModule ? \".mod\" : \"\");\r\n                        return -1;\r\n                    }\r\n                });\r\n            }\r\n        }\r\n        catch (e) {\r\n            // eslint-disable-next-line no-empty\r\n        }\r\n        // Cache the found value so we don't have to look it up again\r\n        _internalSdkSrc = sdkSrc;\r\n    }\r\n    return _internalSdkSrc;\r\n}\r\n//# sourceMappingURL=AISku.js.map"],"names":["_a","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynClassNamePrefix","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_gbl","getGlobal","_gblInst","_isObjectOrArrayPrototype","target","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","curProto","objHasOwnProperty","_forEachProp","func","props","name_1","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","message","throwTypeError","_getInstanceFuncs","thisTarget","instFuncs","objCreate","name","_hasVisited","values","value","_getBaseFuncs","classProto","useBaseInst","_instFuncProxy","funcHost","theFunc","instFuncTable","baseFuncs","baseProto","visited","_getInstFunc","proto","currentDynProtoProxy","instFunc","canAddInst","objProto","protoFunc","_getProtoFunc","_populatePrototype","className","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFuncs_1","_checkPrototype","thisProto","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","options","perfOptions","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","ObjClass","ObjProto","strHasOwnProperty","__objAssignFnImpl","t","s","i","n","p","__assignFn","objAssign","extendStaticsFn","d","b","__extendsFn","__","__spreadArrayFn","to","from","il","j","createEnumStyle","createEnum","createValueMap","createTypeMap","ActiveStatus","_DYN_TO_LOWER_CASE","_DYN_LENGTH","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_WATCH","_DYN_APPLY","_DYN_PUSH","_DYN_SPLICE","_DYN_LOGGER","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_REMOVE_NOTIFICATION_0","_DYN_ADD_NOTIFICATION_LIS1","_DYN_IS_INITIALIZED","_DYN_GET_NOTIFY_MGR","_DYN_GET_PLUGIN","_DYN_NAME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT2","_DYN_VALUE","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_VERSION","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_DIAG_LOG","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_USER_AGENT","_DYN_SPLIT","_DYN_REPLACE","_DYN_SUBSTRING","_DYN_INDEX_OF","_DYN_TYPE","_DYN_EVT_NAME","_DYN_STATUS","_DYN_GET_ALL_RESPONSE_HEA5","_DYN_IS_CHILD_EVT","_DYN_DATA","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_ITEMS_RECEIVED","_DYN_HEADERS","_DYN_URL_STRING","_DYN_TIMEOUT","_DYN_TRACE_FLAGS","_DYN_GET_ATTRIBUTE","aggregationErrorType","throwAggregationError","sourceErrors","createCustomError","self","args","theMessage","arrForEach","srcError","idx","dumpObj","UNDEFINED_VALUE","STR_EMPTY","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_OFFLINE_STORE","STR_OFFLINE_SENT","STR_OFFLINE_DROP","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","STR_NOT_DYNAMIC_ERROR","STR_REDACTED","DEFAULT_SENSITIVE_PARAMS","strGetPrototypeOf","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","isNullOrUndefined","normalizeJsName","isString","_all","letter","match","strContains","search","strIndexOf","toISOString","date","getExceptionName","object","isError","setValue","field","valChk","srcChk","theValue","getSetValue","defValue","isUndefined","_createProxyFunction","source","srcFunc","src","isFunction","originalArguments","proxyAssign","chkSet","isObject","_loop_1","objHasOwn","objDefine","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","isArray","theFuncName","createClassFromInterface","defaults","class_1","_this","objForEachKey","optimizeObject","theObject","ObjAssign","objExtend","obj1","obj2","obj3","obj4","obj5","obj6","theArgs","extended","argLen","deep","isBoolean","arg","isArgArray","isArgObj","prop","propOk","newValue","isNewArray","isPlainObject","clone","isFeatureEnabled","feature","cfg","sdkDefaultState","ft","mode","getResponseText","xhr","formatErrorMessageXdr","xdr","formatErrorMessageXhr","prependTransports","theTransports","newTransports","isNumber","strDisabledPropertyName","strWithCredentials","strTimeout","openXhr","method","urlString","withCredentials","disabled","isSync","timeout","_wrapSetXhrProp","convertAllHeadersToMap","headersString","headers","headersArray","strTrim","headerEntry","header","_appendHeader","theHeaders","STR_KILL_DURATION_HEADER","STR_KILL_DURATION_SECONDS_HEADER","STR_TIME_DELTA_HEADER","_getAllResponseHeaders","isOneDs","strDocumentMode","strLocation","strConsole","strJSON","strCrypto","strMsCrypto","strReactNative","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_useXDomainRequest","_beaconsSupported","_hasProperty","property","supported","tmp","getLocation","checkForMock","getInst","getConsole","hasJSON","getJSON","getCrypto","getMsCrypto","isReactNative","nav","getNavigator","isIE","userAgent","getIEVersion","userAgentStr","navigator_1","ua","doc","getDocument","mathMax","tridentVer","isBeaconsSupported","useCached","hasNavigator","isFetchSupported","withKeepAlive","isSupported","request","useXDomainRequest","isXhrSupported","xmlHttpRequest","dispatchEvent","evnt","createCustomDomEvent","eventName","details","event","detail","sendCustomEvent","evtName","customDetails","global","redactUserInfo","url","redactQueryParameters","config","sensitiveParams","questionMarkIndex","baseUrl","strSubstring","queryString","fragment","hashIndex","hasPotentialSensitiveParam","paramCheck","resultParts","anyParamRedacted","pairs","pair","equalsIndex","paramName","paramValue","shouldRedact","fieldRedaction","input","isRedactionDisabled","hasCredentials","hasQueryParams","result","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","now","utcNow","randomValue","maxValue","mathFloor","random32","signed","c","mwcRandom32","newId","maxLength","base64chars","number","chars","version","instanceName","_dataUid","_canAcceptData","_getCache","data","theCache","createUniqueNamespace","includeVersion","createElmNodeData","addDefault","_isConfigDefaults","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","isDefined","fallbacks","fallback","fbValue","asString","_resolveDefaultValue","newValue_1","key","_applyDefaultValue","defaultValue","isValid","setFn","mergeDf","reference","readOnly","blkDynamicValue","usingDefault","cfgValue","dfName","dfValue","CFG_HANDLER_LINK","symbolFor","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","getDynamicConfigHandler","handler","blockDynamicConversion","_canMakeDynamic","getFunc","state","throwInvalidAccess","arrayMethodsToPatch","_throwDynamicError","logger","desc","e","_patchArray","orgMethod","_i","_makeDynamicObject","_getOwnPropGetter","propDesc","objGetOwnPropertyDescriptor","_createDynamicProperty","arrIndexOf","checkDynamic","isObjectOrArray","_getProperty","activeHandler","_setProperty","isReferenced","_setDynamicProperty","getter","valueState","newIsObjectOrArray","isDynamic","_setDynamicPropertyState","flags","inPlace","rdOnly","blkProp","objDefineProp","symPrefix","symPostfix","_createState","cfgHandler","dynamicPropertySymbol","newSymbol","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","theState","_useHandler","callback","prevWatcher","_notifyWatchers","notifyHandlers","watcherFailures_1","_addWatcher","scheduleTimeout","_trackHandler","_createAndUseHandler","configHandler","_createDynamicHandler","uid","newTarget","_setValue","_watch","_block","allowUpdate","prevUpd","_ref","_rdOnly","_blkPropValue","_applyDefaults","defaultValues","_logInvalidAccess","createDynamicConfig","defaultConfig","onConfigChange","runTargetUnload","isAsync","doUnloadAll","targets","done","createPromise","resolved","getLength","doAwaitResponse","arrSlice","ChannelControllerPriority","DisabledPropertyName","_stringToBoolOrDefault","cfgDfMerge","cfgDfSet","setter","cfgDfValidate","validator","fallBackName","cfgDfBoolean","cfgDfString","listenerFuncs","_aiNamespace","_debugListener","_listenerProxyFunc","dbgExt","getDebugExt","listener","_getExtensionNamespace","ns","getDebugListener","STR_WARN_TO_CONSOLE","AiNonUserActionablePrefix","AiUserActionablePrefix","AIInternalMessagePrefix","_logFuncs","_sanitizeDiagnosticText","text","_logToConsole","theConsole","logFunc","_InternalLogMessage","msgId","msg","isUserAct","properties","_self","strProps","diagnosticText","safeGetLogger","core","DiagnosticLogger","_messageCount","_messageLogged","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_setDefaultsFromConfig","severity","_debugExtMsg","messageKey","_logInternalMessage","_areInternalMessagesThrottled","logMessage","throttleLimitMessage","throttleMessage","_getLogger","_throwInternal","_warnToConsole","_b","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","rootDefaultConfig","_getDoc","getLazy","_gblCookieMgr","inst","createCookieMgr","_isMgrEnabled","cookieMgr","_isIgnoredCookie","cookieMgrCfg","_isBlockedCookie","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","_pendingCookies","_formatDeletionValue","path","_formatCookieValue","_formatSetCookieValue","maxAgeSec","domain","strLeft","_extractParts","isTruthy","_isIE","nowMs","expireMs","expiry","_formatDate","location","uaDisallowsSameSiteNone","_removePendingCookie","_flushPendingCookies","areCookiesSupported","pendingData","wasEnabled","_getCookieValue","_setCookieValue","enabled","gblManager","isBlocked","cookieValue","isIgnored","parts","thePart","theDate","theCookie","strEndsWith","_runScheduledListeners","asyncNotifications","callbacks","cb","safe","_runListeners","listeners","NotificationManager","perfEvtsSendAll","_listeners","_asyncNotifications","index","events","reason","sendType","sendReason","perfEvent","batch","cnt","rn_1","_finishUnload","waiting","asyncUnload","resolve","createAllPromise","strExecutionContextKey","strParentContextKey","strChildrenContextKey","_defaultPerfManager","PerfEvent","payloadDetails","theDetails_1","ctx","childTime","childEvts","childEvt","PerfManager","manager","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","children","ex","getGblPerfMgr","generateW3CId","hexValues","oct","a","clockSequenceHi","strSubstr","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","len","invalidValue","_formatValue","_formatFlags","createTraceParent","traceId","spanId","isValidTraceId","isValidSpanId","formatTraceParent","findAllScripts","scripts","script","crossOrigin","async","defer","referrerPolicy","info","pluginStateData","_getPluginState","plugin","initializePlugins","processContext","extensions","initPlugins","lastPlugin","proxy","pluginState","thePlugin","isInitialized","sortPlugins","plugins","extA","extB","bHasProcess","createDistributedTraceContext","parentCtx","trace","newTraceFlags","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_getNextProxyStart","startAt","createTelemetryProxyChain","_createInternalContext","telemetryChain","_nextProxy","_onComplete","context","_moveNext","_resolveExtCfg","_getConfig","nextPlugin","_iterateChain","_addOnComplete","onComplete","that","nextProxy","completeDetails","_getExtCfg","identifier","createIfMissing","idCfg","extCfg","newConfig","extConfig","createProcessTelemetryContext","internalContext","_processNext","env","_createNew","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","add","lastProxy_1","newProxy","createTelemetryPluginProxy","hasProcessTelemetry","hasSetNext","chainId","proxyChain","_processTelemetry","_unloadPlugin","_updatePlugin","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","nextId","error","hasNextRun","_callProcessTelemetry","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","objFreeze","createUnloadHandlerContainer","handlers","_addHandler","_runHandlers","createUnloadHookContainer","_hooks","_doUnload","oldHooks","fn","_addHook","hooks","arrAppend","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","_initDefaults","pluginChain","_setDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_updateCallback","next","currentCtx","rootCtx","_addInitializer","_initializers","id","telemetryInitializer","theInitializer","initializer","_runInitializers","item","doNotSendItem","telemetryInitializersCount","TelemetryInitializerPlugin","_super","__extends","_id","_base","strValidationError","strNotificationManager","strSdkUnloadingError","strSdkNotInitialized","maxInitQueueSize","maxInitTimeout","objDeepFreeze","_createPerfManager","notificationMgr","_validateExtensions","channelPriority","allExtensions","coreExtensions","channels","extPriorities","ext","throwError","extPriority","_isPluginPresent","exists","_deepMergeConfig","newValues","merge","_findWatcher","newWatcher","theListener","_addDelayedCfgListener","fnd","_registerDelayedCfgListener","unloadHdl","_initDebugListener","unloadContainer","notificationManager","debugListener","disableDbgExt","_createUnloadHook","unloadHook","AppInsightsCore","_configHandler","_isInitialized","_logger","_eventQueue","_notificationManager","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_evtNamespace","_unloadHandlers","_traceCtx","_instrumentationKey","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_activeStatus","_endpoint","_initInMemoMaxSize","_isStatusSet","_initTimer","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","_addUnloadHook","rootCfg","_handleIKeyEndpointPromises","_initPerfManager","cfgExtensions","__spreadArray","_initPluginChain","teeController","_releaseQueues","controls","channel","telemetryItem","_notifyInvalidEvent","_createTelCtx","eventQueue","_startLogPoller","ikey","endpointUrl","promises","isPromiseLike","_waitForInitPromises","_setStatus","initTimeout","allPromises","createSyncAllSettledPromise","response","ikeyRes","endpointRes","alwaysStart","shouldStart","interval","isRunning","createTimeout","_flushInternalLogs","unloadComplete","cbTimeout","processUnloadCtx","_getPluginChain","flushComplete","_flushChannels","_getPlugin","replaceExisting","addCb","_logOrThrowError","existingPlugin","_addPlugin","removed","removedPlugins_1","_removePlugins","mergeExisting","deepExtend","_doUpdate","createNew","traceCtx","hasDocument","_setPluginVersions","thePlugins","_addPluginVersions","ver","newLogger","theCtx","theExtensions","pluginIdentifier","theExt","channelHosts","host","removeCb","pluginsToRemove","removeComplete","unloadChain","newConfigExtensions","newChannelConfig","queue","newQueue","callBack","doneIterating","cbTimer","doCallback","flushCtx","handled_1","prevCfgPerfMgr","enablePerfMgr","createPerfMgr","parseResponse","diagLog","STR_NO_RESPONSE_BODY","_noResponseQs","STR_POST_METHOD","SenderPostManager","_syncFetchPayload","_enableSendPromise","_diagLog","_isOneDs","_onCompleteFuncs","_disableCredentials","_fetchCredentials","_fallbackInst","_disableXhr","_disableBeacon","_disableBeaconSync","_disableFetchKeepAlive","_addNoResponse","_timeoutWrapper","_sendCredentials","_xhrSender","location_1","transports","sync","_getSenderInterface","zipPayload","payload","csStream","body","controller","compressedStream","reader_1","chunks_1","totalLength_1","callbackCalled_1","processChunk","combined","offset","chunks_2","chunk","_onSuccess","res","_doOnComplete","_onError","_onNoPayloadUrl","syncSupport","transportType","sendPostFunc","_xdrSender","_doFetchSender","_beaconSender","oncomplete","status","_doBeaconSend","plainTextBatch","queued","onRetry","thePromise","resolveFunc","rejectFunc","reject","endPointUrl","objKeys","headerName","_doOnReadyFunc","onReadyFunc","onReadyFuncExist","requestHeaders","batchLength","ignoreResponse","responseHandled","init","_handleError","statusCode","_onFetchComplete","onCompleteFunc","response_1","resp","_window","getWindow","onloadFunc","hostingProtocol","endpoint","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","_getRegisteredEvents","aiEvts","registeredEvents","_doDetach","obj","handlerRef","useCapture","_doAttach","_doUnregister","unRegFn","theEvent","_unregisterEvents","eventCache","evtType","mergeEvtNamespace","theNamespace","namespaces","newNamespaces","eventOn","registeredEvent","eventOff","evtName_1","found_1","regEvent","addEventHandler","w","removeEventHandler","_addEventListeners","excludeEvents","added","addEventListeners","removeEventListeners","addPageUnloadEventListener","removePageUnloadEventListener","addPageHideEventListener","_handlePageVisibility","evt","pageUnloadAdded","removePageHideEventListener","aiInstrumentHooks","cbNames","_arrLoop","arr","_doCallbacks","callDetails","cbArgs","hookCtx","type","hook","cbks","err","orgEx","hookErrorCb","_createFunctionHook","aiHook","funcThis","orgArgs","funcArgs","_replaceArg","_createArgs","_getOwner","checkPrototype","checkParentProto","owner","InstrumentProto","InstrumentFunc","_createInstrumentHook","newFunc","theHook","InstrumentEvent","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","RequestHeaders","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_PRE_TRIGGER_DATE","_DYN_GET_UTCDATE","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_MATCH","_DYN_CORRELATION_HEADER_E0","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_EXCEPTIONS","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_PARSED_STACK","_DYN_HAS_FULL_STACK","_DYN_ASSEMBLY","_DYN_FILE_NAME","_DYN_LINE","_DYN_AI_DATA_CONTRACT","_DYN_DURATION","dataSanitizeKeyAndAddUniqueness","map","origLength","dataSanitizeKey","uniqueField","dsPadNumber","nameTrunc","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exception","exceptionTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","dataSanitizeId","_msgId","inputTrunc","num","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","urlParseHost","urlGetAbsoluteUrl","urlGetCompleteUrl","absoluteUrl","inclPort","fullHost","urlParseFullHost","protocol","port","_internalEndpoints","_correlationIdPrefix","isInternalApplicationInsightsEndpoint","correlationIdCanIncludeCorrelationHeader","requestUrl","currentHost","requestHost","includedDomains","matchExists_1","regex","excludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationId","correlationIdGetCorrelationContextValue","keyValues","keyValue","AjaxHelperParseDependencyPath","commandName","parsedUrl","pathName","dateTimeUtilsNow","perf","getPerformance","dateNow","dateTimeUtilsDuration","start","end","createDistributedTraceContextFromTrace","telemetryTrace","StorageType","_canUseLocalStorage","_canUseSessionStorage","_storagePrefix","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","storage","getGlobalInst","fail","_getSessionStorageObject","utlCanUseSessionStorage","utlDisableStorage","utlSetStoragePrefix","storagePrefix","utlEnableStorage","reset","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","THROTTLE_STORAGE_PREFIX","ThrottleMgr","namePrefix","_config","_localStorageObj","_isTriggered","_namePrefix","_queue","_isReady","_isSpecificDaysGiven","_initConfig","localObj","_getLocalStorageObjByKey","_getCfgByKey","_canThrottle","_isTrigger","_getQueueByKey","items","_flushMessage","result_1","isFlushed","isReady","flushAll","msgID","saveUnsentMsg","isSampledIn","_canSampledIn","localStorageObj","canThrottle","throttled","isTriggered","mathMin","localStorageName","_getLocalStorageName","_resetLocalStorage","_sendMessage","_setCfgByKey","coreConfig","configMgr","curCfg","configInterval","_getIntervalConfig","limit","monthInterval","dayInterval","canUseLocalStorage","curDate","_getThrottleDate","monthCheck","monthExpand","_checkInterval","dayCheck","daySpan","msgKey","prefix","fix","_isTriggeredOnCurDate","preTriggerDate","_getLocalStorageObj","storageName","storageObj","curObj","dateStr","current","isTrigger","_FIELDS_SEPARATOR","_FIELD_KEY_VALUE_SEPARATOR","parseConnectionString","connectionString","kvPairs","arrReduce","fields","kv","kvParts","locationPrefix","Envelope","Event","STACKFRAME_BASE_SIZE","IS_FRAME","FULL_STACK_FRAME_1","FULL_STACK_FRAME_2","FULL_STACK_FRAME_3","EXTRACT_FILENAME","PARSE_FILENAME_LINE_COL","PARSE_FILENAME_LINE_ONLY","NoMethod","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_parseSequence","_ignoreNative","_scrubAnonymous","_handleFilename","frame","_stringify","convertToString","_formatMessage","errorType","evtMessage","_isExceptionDetailsInternal","_isExceptionInternal","_isStackDetails","_convertStackObj","errorStack","_getOperaStack","errorMessage","stack","lines","entry","_getStackFromErrorObj","errorObj","_formatStackTrace","stackDetails","_parseStack","parsedStack","frames","level_1","foundStackStart_1","totalSizeInBytes_1","_isStackFrame","theFrame","parsedFrame","_extractStackFrame","exceptionParsedStackThreshold","left","right","size","acceptedLeft","acceptedRight","lSize","rSize","howMany","_getErrorType","typeName","funcNameRegex","results","_formatErrorCode","Exception","severityLevel","_createExceptionDetails","lineNumber","columnNumber","errorSrc","exceptions","arrMap","_createExDetailsFromInterface","exceptionData","__assign","problemGroup","isManual","exceptionDetailsInterface","assembly","fileName","line","exDetailsAiDataContract","_toInterface","_parsedFrameToInterface","outerId","hasFullStack","theStack","_stackFrameFromInterface","exceptionDetails","_parseFilename","lineCol","lineNo","sequence","matches","filename","trimmedFrame","stackFrameAiDataContract","level","_populateFrameSizeInBytes","sizeInBytes","DataPoint","Metric","count","min","max","stdDev","dataPoint","strEmpty","msToTimeSpan","totalms","mathRound","ms","sec","hour","days","isCrossOriginError","PageView","durationMs","RemoteDependencyData","success","resultCode","requestAPI","correlationContext","dependencyFields","Trace","PageViewPerformance","unused","cs4BaseData","Data","baseType","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","createTelemetryItem","envelopeName","customProperties","systemProperties","iKey","Extensions","CtxTagKeys","createDomEvent","_disableEvents","createOfflineListener","parentEvtNamespace","_navigator","_isListening","listenerList","rState","uState","_currentState","calCurrentState","_enableEvents","_setOnline","_setOffline","_isOnline","listnerNoticeCheck","newState","offlineState","setOnlineState","_unload","win","addListener","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_CONFIG","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_DYN_REF_URI","_DYN_START_TIME","_DYN_SEND_PAGE_VIEW_PERFO3","_DYN_POPULATE_PAGE_VIEW_P4","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER5","_DYN_ERROR","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI6","_DYN_ADD_TELEMETRY_INITIA7","_DYN_OVERRIDE_PAGE_VIEW_D8","_DYN_AUTO_EXCEPTION_INSTR9","_DYN_AUTO_TRACK_PAGE_VISI10","_DYN_IS_BROWSER_LINK_TRAC11","_DYN_ENABLE_AUTO_ROUTE_TR12","_DYN_ENABLE_UNHANDLED_PRO13","_DYN_AUTO_UNHANDLED_PROMI14","_DYN_GET_ENTRIES_BY_TYPE","_DYN_IS_PERFORMANCE_TIMIN15","_DYN_GET_PERFORMANCE_TIMI16","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT17","_DYN_IS_PERFORMANCE_TIMIN18","_DYN_RESPONSE_START","_DYN_REQUEST_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","queueTimer","itemQueue","pageViewPerformanceSent","firstPageViewSent","_startTimer","allItems","doFlush","_addQueue","pageView","uri","navigationEntries","loadEventStart","duration_1","isWebWorker","pageViewSent","customDuration","duration","maxDurationLimit","processed","pageViewPerformance","MAX_DURATION_ALLOWED","botAgentNames","_isPerformanceTimingSupported","_isPerformanceNavigationTimingSupported","_isPerformanceTimingDataReady","timing","_getPerformanceTiming","_getPerformanceNavigationTiming","_shouldCollectDuration","durations","isGoogleBot","PageViewPerformanceManager","navigationTiming","total","network","dom","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","prevPageVisitData","stopPageVisitTimer","currPageVisitDataStr","PageVisitData","pageVisitEndTime","pageVisitDataJsonStr","Timing","_events","strEvent","_dispatchEvent","_getReason","MinMilliSeconds","_chkConfigMilliseconds","_chkSampling","_updateStorageUsage","AnalyticsPlugin","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","_expCfg","_prevUri","_currUri","_errorHookCnt","EventTelemetry","metric","inPv","_resetAjaxAttempts","inPvp","measurement","loc","theError","exceptionPartB","scriptsInfo","logs","_sendCORSException","errorString","_populateDefaults","pageVisitTime","trackPageVisitTime","pageViewItem","hasWindow","_updateExceptionTracking","_updateLocationChange","ajaxPlugin","_addDefaultTelemetryInitializers","browserLinkPaths_1","dropBrowserLinkRequests","envelope","remoteData","locn","_addUnhandledPromiseRejectionTracking","hasHistory","_history","getHistory","strUndefined","_addHistoryListener","_getDistributedTraceCtx","distributedTraceCtx","history","_popstateHandler","_locationChangeHandler","traceLocationName","_location","_DYN_FEATURE_OPT_IN","_DYN_SCHEDULE_FETCH_TIMEO0","replaceByNonOverrideCfg","nonOverrideConfigs","curLevel","maxLevel","exceedMaxLevel","curCfg_1","nonOverrideVal","F","M","ON","OFF","resolveCdnFeatureCfg","cdnCfg","userOptInDetails","cdnFt","cdnM","cdnOnV","cdnOffV","userFt","userM","userOnV","userOffV","blockCdn","mFld","onFld","offFld","onV","offV","applyCdnfeatureCfg","optInMap","cdnConfig_1","featureVal","val","setValueByKey","_overrideCdnCfgByFeature","ftVal","dVal","EVENT_NAME","STR_GET_METHOD","FETCH_TIMEOUT","udfVal","defaultNonOverrideCfg","_defaultConfig","CfgSyncPlugin","_extensionConfig","_mainConfig","_evtName","_cfgUrl","_timeoutHandle","_receiveChanges","_broadcastChanges","_blkCdnCfg","_fetchTimeout","_retryCnt","_onCfgChangeReceive","_nonOverrideConfigs","_fetchFn","_overrideFetchFn","_overrideSyncFn","_paused","_enableAjax","_clearScheduledTimer","_setupTimer","_setCfg","_sendCfgsyncEvents","_updateEventListenerName","_eventOff","preBlkCdn","newEvtName","_getFetchFnInterface","isAutoSync","global_1","_addEventListener","_fetchSender","fetchFn","xhr_1","JSON_1","newCfg","_replaceTartgetByKeys","global_2","cfgEvent","_cfg","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN_TRACE_ID","_DYN_ENQUEUE","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN_CONCAT","_DYN__MAX__BUFFER__SIZE","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_ENDPOINT_URL","_DYN_INSTRUMENTATION_KEY","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ALWAYS_USE_XHR_OVERR4","_DYN_ENABLE_SESSION_STORA5","_DYN__BUFFER","_DYN_ONUNLOAD_DISABLE_FET6","_DYN_DISABLE_SEND_BEACON_7","_DYN_GET_SENDER_INST","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN_GET_HASH_CODE_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPartAExtensions","envTags","itmExt","itmTags","extUser","extApp","extDevice","web","envData","envBaseData","envProps","extOs","extTrace","tgs","tg","theTags","EnvelopeCreator","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","envelopeType","iKeyNoDashes","EnvelopeCreatorInit","DependencyEnvelopeCreator","customMeasurements","bd","remoteDepData","EventEnvelopeCreator","eventData","ExceptionEnvelopeCreator","exData","MetricEnvelopeCreator","baseData","baseMetricData","PageViewEnvelopeCreator","currentContextId","pageTags","pageViewData","PageViewPerformanceEnvelopeCreator","TraceEnvelopeCreator","BaseSendBuffer","_buffer","_bufferFullMessageSent","_maxRetryCnt","buffer","payloads","payloadStr_1","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","PREVIOUS_KEYS","getItem","setItem","bufferItems","_getBuffer","itemsInSentBuffer","previousItems","_getPreviousEvents","notDeliveredItems","_setBuffer","_removePayloadsFromBuffer","sentElements","unsentItems","sentItems","remaining","payloadStr","prefixedKey","_getBufferBase","bufferJson","buffer_1","_getItemsFromPreviousKey","prefixEvents","transFormedItems_1","internalItem","Serializer","output","_serializeObject","circularReferenceCheck","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isPresent","isObj","sources","expectedType","MIN_INPUT_LENGTH","HashCodeScoreGenerator","score","hash","SamplingScoreGenerator","hashCodeGenerator","keys","Sample","sampleRate","samplingPercentage","EMPTY_STR","FetchSyncRequestSizeLimitBytes","_getResponseText","isOverrideFn","httpXHROverride","defaultAppInsightsChannelConfig","CrossOriginResourcePolicyHeader","EnvelopeTypeCreator","Sender","_consecutiveErrors","_retryAt","_lastSend","_serializer","_stamp_specific_redirects","_headers","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_beaconOnUnloadSupported","_beaconNormalSupported","_customHeaders","_disableTelemetry","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_alwaysUseCustomSend","_fetchKeepAlive","_xhrSend","_fallbackSend","_disableBeaconSplit","_sendPostMgr","_retryCodes","_zipPayload","_checkMaxSize","rsp","_doUnloadSend","senderConfig","curExtUrl","coreUrl","corsPolicy","customHeader","bufferOverride","shouldUpdate","_validateInstrumentationKey","sendPostConfig","_getSendPostMgrConfig","customInterface","httpInterface","syncInterface","xhrInterface","_doSend","_fetchKeepAliveSender","syncTransports","transport","diagLogger","isValidate","_validate","aiEnvelope","_getEnvelope","payloadItem","countOfItemsInPayload","_isStringArr","_xhrReadyStateChange","forcedSender","_notifySendRequest","ieVer","_createPayload","_serialize","_batch","_onPartialSuccess","_xdrOnLoad","responseText","onCompleteFuncs","payloadArr","_getPayloadArr","resValue","_checkResponsStatus","canSend","_onBeaconRetry","failed","retry","errors","errors_1","extracted","_isRetriable","_resendPayload","internalPayload","_isSampledIn","defaultEnvelopeIkey","rlt","valid","_getHeaders","_getOnComplete","sendInterface","markAsSent","payloadData","_getPayload","result_2","callbackExecuted_1","resolveFn_1","rejectFn_1","processedPayload","doAwait","incomingPayload","incomingSize","responseUrl","_checkAndUpdateEndPointUrl","offlineBackOffMultiplier","beaconInst","droppedPayload","thePayload","payloadSize","syncFetchPayload","linearFactor","payload_1","_setRetryTime","SlotDelayInSeconds","delayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","_getNotifyMgr","sendRequest","instrumentationKey","disableValidation","disableIKeyValidationFlag","UUID_Regex","regexp","orig","convertUndefined","creator","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_SPAN_ID","_DYN_CONTEXT","_DYN_ABORTED","_DYN_INCLUDE_CORRELATION_0","_DYN_GET_ABSOLUTE_URL","_DYN_REQUEST_HEADERS","_DYN_SET_REQUEST_HEADER","_DYN_TRACK_DEPENDENCY_DAT1","_DYN_ENABLE_REQUEST_HEADE2","_DYN_ENABLE_AJAX_ERROR_ST3","_DYN_ENABLE_AJAX_PERF_TRA4","_DYN_MAX_AJAX_CALLS_PER_V5","_DYN_EXCLUDE_REQUEST_FROM6","_DYN_DISABLE_AJAX_TRACKIN7","_DYN_AJAX_PERF_LOOKUP_DEL8","_DYN_DISABLE_FETCH_TRACKI9","_DYN_ENABLE_RESPONSE_HEAD10","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_REQUEST_SENT_TIME","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_METHOD","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE11","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI12","_DYN__CREATE_TRACK_ITEM","_DYN_GET_ALL_RESPONSE_HEA13","_DYN_GET_PART_APROPS","_DYN_PERF_MARK","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES14","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","perfData","_populatePerfData","ajaxData","dependency","propsSet","strName","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","XHRMonitoringState","ajaxRecord","strResponseText","ajaxType","enableRequestHeaderTracking","getResponse","responseType","partA","traceExt","strDiagLog","AJAX_DATA_CONTAINER","STR_FETCH","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_supportsFetch","_global","strPrototype","_supportsAjaxMonitoring","ajaxMonitorInstance","ajaxDataId","xhrData","theOpen","_throwInternalCritical","_getAjaxData","_addSharedXhrHeaders","_isHeaderSet","_getFailedAjaxDiagnosticsMessage","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_indexOf","container","theHandler","_processDependencyContainer","_processDependencyListeners","initializersCount","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_ajaxDataId","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_appId","_polyfillInitialized","_instrumentXhr","_instrumentFetch","_populateContext","_reportDependencyInternal","currentWindowHost","appId","traceFlags","traceParent","dependencyListener","dependencyInitializer","propExt","_canIncludeHeaders","fetch","isPolyfill","fetchData","_isDisabledRequest","_createFetchRecord","newInit","fetchData_1","_reportFetchMetrics","ajaxResponse","_getFetchCorrelationContext","responseHeaderMap_1","_hookProto","_isMonitoredXhrInstance","_openHandler","_attachToOnReadyStateChange","_createMarkId","isDisabled","theUrl","theRegex","idx2","excludeAjaxDataValidation","ajaxValidation","initialized","traceID","spanID","xhrRequestData","ajaxDataCntr","_onAjaxComplete","exceptionText","_reportXhrError","failedProps","errorProps","_findPerfResourceEntry","_getAjaxCorrelationContext","responseHeaderMap_2","sysProperties","responseHeadersString","performance_1","markId","entries","initiatorType","trackCallback","reportError","perfMark","performance","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","strSplit","_getFailedFetchDiagnosticsMessage","_reportFetchError","initializers","Application","Device","Version","Internal","unloadHookContainer","Location","_DYN_SESSION","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_GET_SESSION_ID","_DYN_SESSION_COOKIE_POSTF6","_DYN_AUTOMATIC_SESSION","_DYN_ACCOUNT_ID","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","SESSION_COOKIE_NAME","ACQUISITION_SPAN","RENEWAL_SPAN","COOKIE_UPDATE_INTERVAL","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","isExpired","session","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","_renew","_setCookie","_setStorage","_initializeAutomaticSessionWithData","storageValue","sessionData","sessionReset","tokens","acqMs","renewalMs","getNewId","acq","renewalPeriodMs","acqTimeLeftMs","cookie","cookieDomain","guid","renewal","TelemetryTrace","parentId","_validateUserInput","User","userCookiePostfix","params","_generateNewId","newCookie","_generateNewCookie","_setUserCookie","authCookie","authCookieString","userId","acqStr","oneYear","authenticatedUserId","accountId","storeInCookie","isInvalidInput","user_id","user_cookie","strExt","strTags","_removeEmpty","_nullResult","TelemetryContext","previousTraceCtx","sesId","autoSession","application","tags","device","internal","user","undefString","nullValue","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_disableUserInitMessage","theContext","userCtx","_processTelemetryInternal","breezeChannel","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_GET_COOKIE_MGR","STR_START_TRACK_PAGE","STR_STOP_TRACK_PAGE","STR_FLUSH","STR_START_TRACK_EVENT","STR_STOP_TRACK_EVENT","STR_ADD_TELEMETRY_INITIALIZER","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","CONFIG_ENDPOINT_URL","_DYN_CONNECTION_STRING","_DYN_QUEUE","_DYN_USER_OVERRIDE_ENDPOI0","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF1","_DYN_SEND_MESSAGE","_DYN_UPDATE_SNIPPET_DEFIN2","_c","_d","_internalSdkSrc","_ignoreUpdateSnippetProperties","IKEY_USAGE","CDN_USAGE","SDK_LOADER_VER","ZIP_PAYLOAD","default_limit","default_interval","default_throttle_config","defaultConfigValues","_chkDiagLevel","_parseCs","configCs","createSyncPromise","curCs","parsedCs","AppInsightsSku","snippet","dependencies","_sender","_snippetVersion","_houseKeepingNamespace","_core","_analyticsPlugin","_cfgSyncPlugin","_throttleMgr","_iKeySentMessage","_cdnSentMessage","_sdkVerSentMessage","DependenciesPlugin","ikeyPromise","cs","url_1","ingest","flushDone","legacyMode","throwUnsupported","_updateSnippetProperties","snippetVer","sdkSrc","_findSdkSourceFile","defaultEnable","length_1","call","properties_1","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","added_1","analyticsPlugin","_removePageEventHandlers","excludePageUnloadEvents","_getCurrentDependencies","isModule","cdns","scrpt","url_2","src_1"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]}