{"version":3,"file":"js/45.2de44d4880dc169ed310.chunk.js","mappings":"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","sources":["webpack:///./node_modules/@nevware21/ts-utils/dist/es5/mod/ts-utils.js","webpack:///./node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","webpack:///./node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","webpack:///./node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","webpack:///./node_modules/@nevware21/ts-async/dist/es5/mod/ts-async.js","webpack:///./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/__DynamicConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncPlugin.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Offline.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/InitActiveStatusEnum.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/SenderPostManager.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ResponseHelpers.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/ThrottleMgr.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","webpack:///./node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js","webpack:///./node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","webpack:///./node_modules/@microsoft/applicationinsights-web/dist-es5/ApplicationInsightsContainer.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/LoggingEnums.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/SeverityLevel.js"],"sourcesContent":["/*! https://github.com/nevware21/ts-utils v0.11.8 */\n/*\n * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureAssign(func1, func2) {\n return func1 || func2;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureRef(value, name) {\n return value[name];\n}\n\nvar UNDEF_VALUE = undefined;\nvar NULL_VALUE = null;\nvar EMPTY = \"\";\nvar FUNCTION = \"function\";\nvar OBJECT = \"object\";\nvar PROTOTYPE = \"prototype\";\nvar __PROTO__ = \"__proto__\";\nvar UNDEFINED = \"undefined\";\nvar CONSTRUCTOR = \"constructor\";\nvar SYMBOL = \"Symbol\";\nvar POLYFILL_TAG = \"_polyfill\";\nvar LENGTH = \"length\";\nvar NAME = \"name\";\nvar CALL = \"call\";\nvar TO_STRING = \"toString\";\nvar ObjClass = ( /*#__PURE__*/_pureAssign(Object));\nvar ObjProto = ( /*#__PURE__*/_pureRef(ObjClass, PROTOTYPE));\nvar StrCls = ( /*#__PURE__*/_pureAssign(String));\nvar StrProto = ( /*#__PURE__*/_pureRef(StrCls, PROTOTYPE));\nvar MathCls = ( /*#__PURE__*/_pureAssign(Math));\nvar ArrCls = ( /*#__PURE__*/_pureAssign(Array));\nvar ArrProto = ( /*#__PURE__*/_pureRef(ArrCls, PROTOTYPE));\nvar ArrSlice = ( /*#__PURE__*/_pureRef(ArrProto, \"slice\"));\n\nfunction safe(func, argArray) {\n try {\n return {\n v: func.apply(this, argArray)\n };\n }\n catch (e) {\n return { e: e };\n }\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGet(cb, defValue) {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n}\n\nvar _primitiveTypes;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createIs(theType) {\n return function (value) {\n return typeof value === theType;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createObjIs(theName) {\n var theType = \"[object \" + theName + \"]\";\n return function (value) {\n return !!(value && objToString(value) === theType);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objToString(value) {\n return ObjProto[TO_STRING].call(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTypeof(value, theType) {\n return typeof value === theType;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isUndefined(value) {\n return typeof value === UNDEFINED || value === UNDEFINED;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictUndefined(arg) {\n return !isDefined(arg);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNullOrUndefined(value) {\n return value === NULL_VALUE || isUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictNullOrUndefined(value) {\n return value === NULL_VALUE || !isDefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isDefined(arg) {\n return !!arg || arg !== UNDEF_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitive(value) {\n return value === NULL_VALUE || isPrimitiveType(typeof value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitiveType(theType) {\n !_primitiveTypes && (_primitiveTypes = [\"string\", \"number\", \"boolean\", UNDEFINED, \"symbol\", \"bigint\"]);\n return !!(theType !== OBJECT && _primitiveTypes.indexOf(theType) !== -1);\n}\nvar isString = ( /*#__PURE__*/_createIs(\"string\"));\nvar isFunction = ( /*#__PURE__*/_createIs(FUNCTION));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isObject(value) {\n if (!value && isNullOrUndefined(value)) {\n return false;\n }\n return !!value && typeof value === OBJECT;\n}\nvar isArray = ( /* #__PURE__*/_pureRef(ArrCls, \"isArray\"));\nvar isDate = ( /*#__PURE__*/_createObjIs(\"Date\"));\nvar isNumber = ( /*#__PURE__*/_createIs(\"number\"));\nvar isBoolean = ( /*#__PURE__*/_createIs(\"boolean\"));\nvar isRegExp = ( /*#__PURE__*/_createObjIs(\"RegExp\"));\nvar isFile = ( /*#__PURE__*/_createObjIs(\"File\"));\nvar isFormData = ( /*#__PURE__*/_createObjIs(\"FormData\"));\nvar isBlob = ( /*#__PURE__*/_createObjIs(\"Blob\"));\nvar isArrayBuffer = ( /*#__PURE__*/_createObjIs(\"ArrayBuffer\"));\nvar isError = ( /*#__PURE__*/_createObjIs(\"Error\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromiseLike(value) {\n return !!(value && value.then && isFunction(value.then));\n}\nvar isThenable = isPromiseLike;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromise(value) {\n return !!(value && value.then && value.catch && isFunction(value.then) && isFunction(value.catch));\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNotTruthy(value) {\n return !value || !isTruthy(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTruthy(value) {\n return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));\n}\n\nvar objGetOwnPropertyDescriptor = ( /* #__PURE__ */_pureRef(ObjClass, \"getOwnPropertyDescriptor\"));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction objHasOwnProperty(obj, prop) {\n return !!obj && ObjProto.hasOwnProperty[CALL](obj, prop);\n}\n\nvar objHasOwn = ( /*#__PURE__*/_pureAssign(( /* #__PURE__ */_pureRef(ObjClass, \"hasOwn\")), polyObjHasOwn));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjHasOwn(obj, prop) {\n return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);\n}\n\nfunction objForEachKey(theObject, callbackfn, thisArg) {\n if (theObject && isObject(theObject)) {\n for (var prop in theObject) {\n if (objHasOwn(theObject, prop)) {\n if (callbackfn[CALL](thisArg || theObject, prop, theObject[prop]) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar propMap = {\n e: \"enumerable\",\n c: \"configurable\",\n v: \"value\",\n w: \"writable\",\n g: \"get\",\n s: \"set\"\n};\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createProp(value) {\n var prop = {};\n prop[propMap[\"c\"]] = true;\n prop[propMap[\"e\"]] = true;\n if (value.l) {\n prop.get = function () { return value.l.v; };\n var desc = objGetOwnPropertyDescriptor(value.l, \"v\");\n if (desc && desc.set) {\n prop.set = function (newValue) {\n value.l.v = newValue;\n };\n }\n }\n objForEachKey(value, function (key, value) {\n prop[propMap[key]] = isStrictUndefined(value) ? prop[propMap[key]] : value;\n });\n return prop;\n}\nvar objDefineProp = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperty\"));\nvar objDefineProperties = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperties\"));\nfunction objDefineGet(target, key, value, configurable, enumerable) {\n var _a;\n return objDefineProp(target, key, _createProp((_a = {\n e: enumerable,\n c: configurable\n },\n _a[isFunction(value) ? \"g\" : \"v\"] = value,\n _a)));\n}\nfunction objDefineAccessors(target, prop, getProp, setProp, configurable, enumerable) {\n var desc = {\n e: enumerable,\n c: configurable\n };\n if (getProp) {\n desc.g = getProp;\n }\n if (setProp) {\n desc.s = setProp;\n }\n return objDefineProp(target, prop, _createProp(desc));\n}\nfunction objDefine(target, key, propDesc) {\n return objDefineProp(target, key, _createProp(propDesc));\n}\nfunction objDefineProps(target, propDescMap) {\n var props = {};\n objForEachKey(propDescMap, function (key, value) {\n props[key] = _createProp(value);\n });\n return objDefineProperties(target, props);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createKeyValueMap(values, keyType, valueType, completeFn, writable) {\n var theMap = {};\n objForEachKey(values, function (key, value) {\n _assignMapValue(theMap, key, keyType ? value : key);\n _assignMapValue(theMap, value, valueType ? value : key);\n });\n return completeFn ? completeFn(theMap) : theMap;\n}\nfunction _assignMapValue(theMap, key, value, writable) {\n objDefineProp(theMap, key, {\n value: value,\n enumerable: true,\n writable: false\n });\n}\n\nvar asString = ( /* #__PURE__ */_pureAssign(StrCls));\n\nvar ERROR_TYPE = \"[object Error]\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction dumpObj(object, format) {\n var propertyValueDump = EMPTY;\n var objType = ObjProto[TO_STRING][CALL](object);\n if (objType === ERROR_TYPE) {\n object = { stack: asString(object.stack), message: asString(object.message), name: asString(object.name) };\n }\n try {\n propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? ((typeof format === \"number\") ? format : 4) : UNDEF_VALUE);\n propertyValueDump = (propertyValueDump ? propertyValueDump.replace(/\"(\\w+)\"\\s*:\\s{0,1}/g, \"$1: \") : NULL_VALUE) || asString(object);\n }\n catch (e) {\n propertyValueDump = \" - \" + dumpObj(e, format);\n }\n return objType + \": \" + propertyValueDump;\n}\n\nfunction throwError(message) {\n throw new Error(message);\n}\nfunction throwTypeError(message) {\n throw new TypeError(message);\n}\nfunction throwRangeError(message) {\n throw new RangeError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjKeys(obj) {\n if (!isObject(obj) || obj === NULL_VALUE) {\n throwTypeError(\"non-object \" + dumpObj(obj));\n }\n var result = [];\n for (var prop in obj) {\n if (objHasOwn(obj, prop)) {\n result.push(prop);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjEntries(value) {\n var result = [];\n objForEachKey(value, function (key, value) {\n result.push([key, value]);\n });\n return result;\n}\n\nvar _objFreeze = ( /* #__PURE__ */_pureRef(ObjClass, \"freeze\"));\nfunction _doNothing(value) {\n return value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getProto(value) {\n return value[__PROTO__] || NULL_VALUE;\n}\nvar objAssign = ( /*#__PURE__*/_pureRef(ObjClass, \"assign\"));\nvar objKeys = ( /*#__PURE__*/_pureRef(ObjClass, \"keys\"));\nfunction objDeepFreeze(value) {\n if (_objFreeze) {\n objForEachKey(value, function (key, value) {\n if (isArray(value) || isObject(value)) {\n objDeepFreeze(value);\n }\n });\n }\n return objFreeze(value);\n}\nvar objFreeze = ( /* #__PURE__*/_pureAssign(_objFreeze, _doNothing));\nvar objSeal = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"seal\")), _doNothing));\nvar objGetPrototypeOf = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"getPrototypeOf\")), _getProto));\nvar objEntries = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"entries\")), polyObjEntries));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnum(values) {\n return _createKeyValueMap(values, 1 , 0 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumKeyMap(values) {\n return _createKeyValueMap(values, 0 , 0 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumValueMap(values) {\n return _createKeyValueMap(values, 1 , 1 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createSimpleMap(values) {\n var mapClass = {};\n objForEachKey(values, function (key, value) {\n _assignMapValue(mapClass, key, value[1]);\n _assignMapValue(mapClass, value[0], value[1]);\n });\n return objFreeze(mapClass);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createTypeMap(values) {\n return createSimpleMap(values);\n}\n\nvar _wellKnownSymbolMap = /*#__PURE__*/ createEnumKeyMap({\n asyncIterator: 0 ,\n hasInstance: 1 ,\n isConcatSpreadable: 2 ,\n iterator: 3 ,\n match: 4 ,\n matchAll: 5 ,\n replace: 6 ,\n search: 7 ,\n species: 8 ,\n split: 9 ,\n toPrimitive: 10 ,\n toStringTag: 11 ,\n unscopables: 12\n});\n\nvar GLOBAL_CONFIG_KEY = \"__tsUtils$gblCfg\";\nvar _globalCfg;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalValue() {\n var result;\n if (typeof globalThis !== UNDEFINED) {\n result = globalThis;\n }\n if (!result && typeof self !== UNDEFINED) {\n result = self;\n }\n if (!result && typeof window !== UNDEFINED) {\n result = window;\n }\n if (!result && typeof global !== UNDEFINED) {\n result = global;\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalConfig() {\n if (!_globalCfg) {\n var gbl = safe(_getGlobalValue).v || {};\n _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};\n }\n return _globalCfg;\n}\n\nvar _unwrapFunction = ( _unwrapFunctionWithPoly);\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapFunctionWithPoly(funcName, clsProto, polyFunc) {\n var clsFn = clsProto ? clsProto[funcName] : NULL_VALUE;\n return function (thisArg) {\n var theFunc = (thisArg ? thisArg[funcName] : NULL_VALUE) || clsFn;\n if (theFunc || polyFunc) {\n var theArgs = arguments;\n return (theFunc || polyFunc).apply(thisArg, theFunc ? ArrSlice[CALL](theArgs, 1) : theArgs);\n }\n throwTypeError(\"\\\"\" + asString(funcName) + \"\\\" not defined for \" + dumpObj(thisArg));\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapProp(propName) {\n return function (thisArg) {\n return thisArg[propName];\n };\n}\n\nvar mathMin = ( /*#__PURE__*/_pureRef(MathCls, \"min\"));\nvar mathMax = ( /*#__PURE__*/_pureRef(MathCls, \"max\"));\n\nvar strSlice = ( /*#__PURE__*/_unwrapFunction(\"slice\", StrProto));\n\nvar strSubstring = ( /*#__PURE__*/_unwrapFunction(\"substring\", StrProto));\nvar strSubstr = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"substr\", StrProto, polyStrSubstr));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSubstr(value, start, length) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"Invalid \" + dumpObj(value));\n }\n if (length < 0) {\n return EMPTY;\n }\n start = start || 0;\n if (start < 0) {\n start = mathMax(start + value[LENGTH], 0);\n }\n if (isUndefined(length)) {\n return strSlice(value, start);\n }\n return strSlice(value, start, start + length);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLeft(value, count) {\n return strSubstring(value, 0, count);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strRight(value, count) {\n return count <= 0 ? EMPTY : (value[LENGTH] > count ? strSlice(value, -count) : value);\n}\n\nvar UNIQUE_REGISTRY_ID = \"_urid\";\nvar _polySymbols;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _globalSymbolRegistry() {\n if (!_polySymbols) {\n var gblCfg = _getGlobalConfig();\n _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s: {} };\n }\n return _polySymbols;\n}\nvar _wellKnownSymbolCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyNewSymbol(description) {\n var theSymbol = {\n description: asString(description),\n toString: function () { return SYMBOL + \"(\" + description + \")\"; }\n };\n theSymbol[POLYFILL_TAG] = true;\n return theSymbol;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolFor(key) {\n var registry = _globalSymbolRegistry();\n if (!objHasOwn(registry.k, key)) {\n var newSymbol_1 = polyNewSymbol(key);\n var regId_1 = objKeys(registry.s).length;\n newSymbol_1[UNIQUE_REGISTRY_ID] = function () { return regId_1 + \"_\" + newSymbol_1[TO_STRING](); };\n registry.k[key] = newSymbol_1;\n registry.s[newSymbol_1[UNIQUE_REGISTRY_ID]()] = asString(key);\n }\n return registry.k[key];\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolKeyFor(sym) {\n if (!sym || !sym[TO_STRING] || strSubstring(sym[TO_STRING](), 0, 6) != SYMBOL) {\n throwTypeError(sym + \" is not a symbol\");\n }\n var regId = sym[POLYFILL_TAG] && sym[UNIQUE_REGISTRY_ID] && sym[UNIQUE_REGISTRY_ID]();\n return regId ? _globalSymbolRegistry().s[regId] : undefined;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyGetKnownSymbol(name) {\n !_wellKnownSymbolCache && (_wellKnownSymbolCache = {});\n var result;\n var knownName = _wellKnownSymbolMap[name];\n if (knownName) {\n result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + \".\" + knownName);\n }\n return result;\n}\n\nvar _globalLazyTestHooks;\nfunction _initTestHooks() {\n _globalLazyTestHooks = _getGlobalConfig();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getLazy(cb) {\n var lazyValue = {};\n !_globalLazyTestHooks && _initTestHooks();\n lazyValue.b = _globalLazyTestHooks.lzy;\n objDefineProp(lazyValue, \"v\", {\n configurable: true,\n get: function () {\n var result = cb();\n if (!_globalLazyTestHooks.lzy) {\n objDefineProp(lazyValue, \"v\", {\n value: result\n });\n }\n lazyValue.b = _globalLazyTestHooks.lzy;\n return result;\n }\n });\n return lazyValue;\n}\nfunction setBypassLazyCache(newValue) {\n !_globalLazyTestHooks && _initTestHooks();\n _globalLazyTestHooks.lzy = newValue;\n}\nfunction getWritableLazy(cb) {\n var lazyValue = {};\n !_globalLazyTestHooks && _initTestHooks();\n lazyValue.b = _globalLazyTestHooks.lzy;\n var _setValue = function (newValue) {\n objDefineProp(lazyValue, \"v\", {\n value: newValue,\n writable: true\n });\n if (lazyValue.b) {\n delete lazyValue.b;\n }\n };\n objDefineProp(lazyValue, \"v\", {\n configurable: true,\n get: function () {\n var result = cb();\n if (!_globalLazyTestHooks.lzy) {\n _setValue(result);\n }\n if (_globalLazyTestHooks.lzy && lazyValue.b !== _globalLazyTestHooks.lzy) {\n lazyValue.b = _globalLazyTestHooks.lzy;\n }\n return result;\n },\n set: _setValue\n });\n return lazyValue;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCachedValue(value) {\n return objDefineProp({\n toJSON: function () { return value; }\n }, \"v\", { value: value });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createDeferredCachedValue(cb) {\n var theValue = {\n toJSON: function () { return theValue.v; }\n };\n return objDefineProp(theValue, \"v\", {\n get: function () {\n var result = cb();\n cb = NULL_VALUE;\n objDefineProp(theValue, \"v\", { value: result });\n return result;\n },\n configurable: true\n });\n}\n\nvar WINDOW = \"window\";\nvar _cachedGlobal;\nfunction _getGlobalInstFn(getFn, theArgs) {\n var cachedValue;\n return function () {\n !_globalLazyTestHooks && _initTestHooks();\n if (!cachedValue || _globalLazyTestHooks.lzy) {\n cachedValue = createCachedValue(safe(getFn, theArgs).v);\n }\n return cachedValue.v;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction lazySafeGetInst(name) {\n return getLazy(function () { return safe((getInst), [name]).v || UNDEF_VALUE; });\n}\nfunction getGlobal(useCached) {\n !_globalLazyTestHooks && _initTestHooks();\n if (!_cachedGlobal || useCached === false || _globalLazyTestHooks.lzy) {\n _cachedGlobal = createCachedValue(safe(_getGlobalValue).v || NULL_VALUE);\n }\n return _cachedGlobal.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getInst(name, useCached) {\n var gbl;\n if (!_cachedGlobal || useCached === false) {\n gbl = getGlobal(useCached);\n }\n else {\n gbl = _cachedGlobal.v;\n }\n if (gbl && gbl[name]) {\n return gbl[name];\n }\n if (name === WINDOW) {\n try {\n return window;\n }\n catch (e) {\n }\n }\n return NULL_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasDocument() {\n return !!( /*#__PURE__*/getDocument());\n}\nvar getDocument = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"document\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasWindow() {\n return !!( /*#__PURE__*/getWindow());\n}\nvar getWindow = ( /*#__PURE__*/_getGlobalInstFn(getInst, [WINDOW]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasNavigator() {\n return !!( /*#__PURE__*/getNavigator());\n}\nvar getNavigator = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"navigator\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasHistory() {\n return !!( /*#__PURE__*/getHistory());\n}\nvar getHistory = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"history\"]));\nvar isNode = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return (process && (process.versions || {}).node); }).v);\n}));\nvar isWebWorker = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return self && self instanceof WorkerGlobalScope; }).v);\n}));\n\nvar _symbol;\nvar _symbolFor;\nvar _symbolKeyFor;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _initSymbol() {\n _symbol = ( /*#__PURE__*/createCachedValue(safe((getInst), [SYMBOL]).v));\n return _symbol;\n}\nfunction _getSymbolKey(key) {\n var gblSym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return (gblSym.v ? gblSym.v[key] : UNDEF_VALUE);\n}\nvar isSymbol = ( /*#__PURE__*/_createIs(\"symbol\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasSymbol() {\n return !!( /*#__PURE__*/getSymbol());\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getSymbol() {\n !_globalLazyTestHooks && _initTestHooks();\n return ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol()).v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getKnownSymbol(name, noPoly) {\n var knownName = _wellKnownSymbolMap[name];\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction newSymbol(description, noPoly) {\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v(description) : (!noPoly ? polyNewSymbol(description) : NULL_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolFor(key) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolFor = ((!_globalLazyTestHooks.lzy ? _symbolFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"for\"]).v)));\n return (_symbolFor.v || polySymbolFor)(key);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolKeyFor(sym) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolKeyFor = ((!_globalLazyTestHooks.lzy ? _symbolKeyFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"keyFor\"]).v)));\n return (_symbolKeyFor.v || polySymbolKeyFor)(sym);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterator(value) {\n return !!value && isFunction(value.next);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterable(value) {\n return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(3 )]);\n}\n\nvar _iterSymbol$1;\nfunction iterForOf(iter, callbackfn, thisArg) {\n if (iter) {\n if (!isIterator(iter)) {\n !_iterSymbol$1 && (_iterSymbol$1 = createCachedValue(getKnownSymbol(3 )));\n iter = iter[_iterSymbol$1.v] ? iter[_iterSymbol$1.v]() : NULL_VALUE;\n }\n if (isIterator(iter)) {\n var err = UNDEF_VALUE;\n var iterResult = UNDEF_VALUE;\n try {\n var count = 0;\n while (!(iterResult = iter.next()).done) {\n if (callbackfn[CALL](thisArg || iter, iterResult.value, count, iter) === -1) {\n break;\n }\n count++;\n }\n }\n catch (failed) {\n err = { e: failed };\n if (iter.throw) {\n iterResult = NULL_VALUE;\n iter.throw(err);\n }\n }\n finally {\n try {\n if (iterResult && !iterResult.done) {\n iter.return && iter.return(iterResult);\n }\n }\n finally {\n if (err) {\n // eslint-disable-next-line no-unsafe-finally\n throw err.e;\n }\n }\n }\n }\n }\n}\n\nfunction fnApply(fn, thisArg, argArray) {\n return fn.apply(thisArg, argArray);\n}\nfunction fnCall(fn, thisArg) {\n return fn.apply(thisArg, ArrSlice[CALL](arguments, 2));\n}\nfunction fnBind(fn, thisArg) {\n return fn.bind.apply(fn, ArrSlice[CALL](arguments, 1));\n}\n\nfunction arrAppend(target, elms) {\n if (!isUndefined(elms) && target) {\n if (isArray(elms)) {\n fnApply(target.push, target, elms);\n }\n else if (isIterator(elms) || isIterable(elms)) {\n iterForOf(elms, function (elm) {\n target.push(elm);\n });\n }\n else {\n target.push(elms);\n }\n }\n return target;\n}\n\nvar arrEvery = /*#__PURE__*/ _unwrapFunction(\"every\", ArrProto);\nvar arrFilter = /*#__PURE__*/ _unwrapFunction(\"filter\", ArrProto);\n\nfunction arrForEach(theArray, callbackfn, thisArg) {\n if (theArray) {\n var len = theArray[LENGTH] >>> 0;\n for (var idx = 0; idx < len; idx++) {\n if (idx in theArray) {\n if (callbackfn[CALL](thisArg || theArray, theArray[idx], idx, theArray) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar arrIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", ArrProto));\nvar arrLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", ArrProto));\n\nvar arrMap = ( /*#__PURE__*/_unwrapFunction(\"map\", ArrProto));\n\nfunction arrSlice(theArray, start, end) {\n return ((theArray ? theArray[\"slice\"] : NULL_VALUE) || ArrSlice).apply(theArray, ArrSlice[CALL](arguments, 1));\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyIsArray(value) {\n if (isNullOrUndefined(value)) {\n return false;\n }\n return objToString(value) === \"[object Array]\";\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyArrIncludes(theArray, searchElement, fromIndex) {\n return arrIndexOf(theArray, searchElement, fromIndex) !== -1;\n}\nfunction polyArrFind(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n arrForEach(theArray, function (value, index) {\n if (callbackFn[CALL](thisArg | theArray, value, index, theArray)) {\n result = index;\n return -1;\n }\n });\n return result;\n}\nfunction polyArrFindLast(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindLastIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindLastIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n var len = theArray[LENGTH] >>> 0;\n for (var idx = len - 1; idx >= 0; idx--) {\n if (idx in theArray && callbackFn[CALL](thisArg | theArray, theArray[idx], idx, theArray)) {\n result = idx;\n break;\n }\n }\n return result;\n}\nfunction polyArrFrom(theValue, mapFn, thisArg) {\n if (isArray(theValue)) {\n var result_1 = arrSlice(theValue);\n return mapFn ? arrMap(result_1, mapFn, thisArg) : result_1;\n }\n var result = [];\n iterForOf(theValue, function (value, cnt) {\n return result.push(mapFn ? mapFn[CALL](thisArg, value, cnt) : value);\n });\n return result;\n}\n\nvar arrFind = /*#__PURE__*/ _unwrapFunctionWithPoly(\"find\", ArrProto, polyArrFind);\nvar arrFindIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findIndex\", ArrProto, polyArrFindIndex);\nvar arrFindLast = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLast\", ArrProto, polyArrFindLast);\nvar arrFindLastIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLastIndex\", ArrProto, polyArrFindLastIndex);\n\nvar arrFrom = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ArrCls, \"from\")), polyArrFrom));\n\nvar arrIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", ArrProto, polyArrIncludes));\nvar arrContains = arrIncludes;\n\nvar arrReduce = ( /*#__PURE__*/_unwrapFunction(\"reduce\", ArrProto));\n\nvar arrSome = ( /*#__PURE__*/_unwrapFunction(\"some\", ArrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFnDeferredProxy(hostFn, funcName) {\n return function () {\n var theArgs = ArrSlice[CALL](arguments);\n var theHost = hostFn();\n return fnApply(theHost[funcName], theHost, theArgs);\n };\n}\nfunction createProxyFuncs(target, host, funcDefs) {\n if (target && host && isArray(funcDefs)) {\n var isDeferred_1 = isFunction(host);\n arrForEach(funcDefs, function (funcDef) {\n var targetName = (funcDef.as || funcDef.n);\n if (funcDef.rp === false && target[targetName]) {\n return;\n }\n target[targetName] = isDeferred_1 ?\n createFnDeferredProxy(host, funcDef.n) :\n fnBind(host[funcDef.n], host);\n });\n }\n return target;\n}\n\nvar _iterSymbol;\n/*#__NO_SIDE_EFFECTS__*/\nfunction readArgs(theArgs, start, end) {\n if (!objHasOwn(theArgs, LENGTH)) {\n !_iterSymbol && (_iterSymbol = createCachedValue(hasSymbol() && getKnownSymbol(3 )));\n var iterFn = void 0;\n if (_iterSymbol.v) {\n iterFn = theArgs[_iterSymbol.v];\n }\n if (iterFn) {\n var values_1 = [];\n var from_1 = (start === UNDEF_VALUE || start < 0) ? 0 : start;\n var to_1 = end < 0 || start < 0 ? UNDEF_VALUE : end;\n iterForOf(iterFn[CALL](theArgs), function (value, cnt) {\n if (to_1 !== UNDEF_VALUE && cnt >= to_1) {\n return -1;\n }\n if (cnt >= from_1) {\n values_1.push(value);\n }\n });\n if ((start === UNDEF_VALUE || start >= 0) && (end === UNDEF_VALUE || end >= 0)) {\n return values_1;\n }\n theArgs = values_1;\n }\n }\n return arrSlice(theArgs, start, end);\n}\n\nvar objCreate = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"create\")), polyObjCreate));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjCreate(obj) {\n if (!obj) {\n return {};\n }\n var type = typeof obj;\n if (type !== OBJECT && type !== FUNCTION) {\n throwTypeError(\"Prototype must be an Object or function: \" + dumpObj(obj));\n }\n function tempFunc() { }\n tempFunc[PROTOTYPE] = obj;\n return new tempFunc();\n}\n\nvar _isProtoArray;\nfunction objSetPrototypeOf(obj, proto) {\n var fn = ObjClass[\"setPrototypeOf\"] ||\n function (d, b) {\n var _a;\n !_isProtoArray && (_isProtoArray = createCachedValue((_a = {}, _a[__PROTO__] = [], _a) instanceof Array));\n _isProtoArray.v ? d[__PROTO__] = b : objForEachKey(b, function (key, value) { return d[key] = value; });\n };\n return fn(obj, proto);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createCustomError(name, d, b) {\n safe(objDefine, [d, NAME, { v: name, c: true, e: false }]);\n d = objSetPrototypeOf(d, b);\n function __() {\n this[CONSTRUCTOR] = d;\n safe(objDefine, [this, NAME, { v: name, c: true, e: false }]);\n }\n d[PROTOTYPE] = b === NULL_VALUE ? objCreate(b) : (__[PROTOTYPE] = b[PROTOTYPE], new __());\n return d;\n}\nfunction _setName(baseClass, name) {\n name && (baseClass[NAME] = name);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCustomError(name, constructCb, errorBase) {\n var theBaseClass = errorBase || Error;\n var orgName = theBaseClass[PROTOTYPE][NAME];\n var captureFn = Error.captureStackTrace;\n return _createCustomError(name, function () {\n var _this = this;\n var theArgs = arguments;\n try {\n safe(_setName, [theBaseClass, name]);\n var _self = fnApply(theBaseClass, _this, ArrSlice[CALL](theArgs)) || _this;\n if (_self !== _this) {\n var orgProto = objGetPrototypeOf(_this);\n if (orgProto !== objGetPrototypeOf(_self)) {\n objSetPrototypeOf(_self, orgProto);\n }\n }\n captureFn && captureFn(_self, _this[CONSTRUCTOR]);\n constructCb && constructCb(_self, theArgs);\n return _self;\n }\n finally {\n safe(_setName, [theBaseClass, orgName]);\n }\n }, theBaseClass);\n}\nvar _unsupportedError;\nfunction throwUnsupported(message) {\n if (!_unsupportedError) {\n _unsupportedError = createCustomError(\"UnsupportedError\");\n }\n throw new _unsupportedError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction utcNow() {\n return (Date.now || polyUtcNow)();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyUtcNow() {\n return new Date().getTime();\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTrimFn(exp) {\n return function _doTrim(value) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"strTrim called [\" + dumpObj(value) + \"]\");\n }\n if (value && value.replace) {\n value = value.replace(exp, EMPTY);\n }\n return value;\n };\n}\nvar polyStrTrim = ( /*#__PURE__*/_createTrimFn(/^\\s+|(?=\\s)\\s+$/g));\nvar polyStrTrimStart = ( /*#__PURE__*/_createTrimFn(/^\\s+/g));\nvar polyStrTrimEnd = ( /*#__PURE__*/_createTrimFn(/(?=\\s)\\s+$/g));\n\nvar strTrim = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trim\", StrProto, polyStrTrim));\nvar strTrimStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimStart\", StrProto, polyStrTrimStart));\nvar strTrimLeft = ( /*#__PURE__*/_pureAssign(strTrimStart));\nvar strTrimEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimEnd\", StrProto, polyStrTrimEnd));\nvar strTrimRight = ( /*#__PURE__*/_pureAssign(strTrimEnd));\n\nvar strUpper = ( /*#__PURE__*/_unwrapFunction(\"toUpperCase\", StrProto));\nvar strLower = ( /*#__PURE__*/_unwrapFunction(\"toLowerCase\", StrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _convertCase(value, newPrefix, upperWord) {\n return strTrim(asString(value)).replace(/((_|\\W)+(\\w){0,1}|([a-z])([A-Z]))/g, function (_match, _g1, _g2, wordStart, upperPrefix, upperLetter) {\n var convertMatch = wordStart || upperLetter || EMPTY;\n if (upperWord) {\n convertMatch = strUpper(convertMatch);\n }\n return (upperPrefix || EMPTY) + newPrefix + convertMatch;\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLetterCase(value) {\n return asString(value).replace(/(_|\\b)\\w/g, strUpper);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strCamelCase(value, upperFirst) {\n var result = _convertCase(value, \"\", true);\n return result.replace(/^\\w/, upperFirst ? strUpper : strLower);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strKebabCase(value, scream) {\n var result = _convertCase(value, \"-\");\n return (scream ? strUpper : strLower)(result);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strSnakeCase(value, scream) {\n var result = _convertCase(value, \"_\");\n return (scream ? strUpper : strLower)(result);\n}\n\nvar mathFloor = ( /*#__PURE__*/_pureRef(MathCls, \"floor\"));\nvar mathCeil = ( /*#__PURE__*/_pureRef(MathCls, \"ceil\"));\n\nvar mathTrunc = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(MathCls, \"trunc\")), polyMathTrunc));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyMathTrunc(value) {\n var theValue = +value;\n return (theValue > 0 ? mathFloor : mathCeil)(theValue);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction mathToInt(value, throwInfinity) {\n var result = +value;\n if (result == Infinity && throwInfinity) {\n throwRangeError(\"invalid value [\" + dumpObj(value) + \"]\");\n }\n return result !== result || result === 0 ? 0 : mathTrunc(result);\n}\n\nvar strRepeat = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"repeat\", StrProto, polyStrRepeat));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrRepeat(value, count) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"can't convert [\" + dumpObj(value) + \"]\");\n }\n count = mathToInt(count, true);\n if (count < 0) {\n throwRangeError(\"invalid count must be >= 0 && < Infinity\");\n }\n var pad = isString(value) ? value : asString(value);\n var result = EMPTY;\n for (; count > 0; (count >>>= 1) && (pad += pad)) {\n if (count & 1) {\n result += pad;\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _padValue(value, targetLength, padString) {\n var result = EMPTY;\n targetLength = mathToInt(targetLength, true);\n targetLength >>= 0;\n var len = value[LENGTH];\n if (len < targetLength) {\n result = isNullOrUndefined(padString) ? \" \" : asString(padString);\n targetLength = targetLength - len;\n if (targetLength > result[LENGTH]) {\n result = strRepeat(result, mathCeil(targetLength / result[LENGTH]));\n }\n if (result[LENGTH] > targetLength) {\n result = strSubstring(result, 0, targetLength);\n }\n }\n return result;\n}\nvar strPadStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padStart\", StrProto, polyStrPadStart));\nvar strPadEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padEnd\", StrProto, polyStrPadEnd));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadStart(value, targetLength, padString) {\n return _padValue(value, targetLength, padString) + value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadEnd(value, targetLength, padString) {\n return value + _padValue(value, targetLength, padString);\n}\n\nvar DBL_QUOTE = \"\\\"\";\nvar INVALID_JS_NAME = /([^\\w\\d_$])/g;\nvar _htmlEntityCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction normalizeJsName(jsName, camelCase) {\n var result = asString(jsName).replace(INVALID_JS_NAME, \"_\");\n return !isUndefined(camelCase) ? strCamelCase(result, !camelCase) : result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsJson(value, format) {\n var result;\n if (isString(value)) {\n result = DBL_QUOTE + value.replace(/[^\\w .,\\-!@#$%\\^&*\\(\\)_+={}\\[\\]:;|<>?]/g, function (match) {\n if (match === DBL_QUOTE || match === \"\\\\\") {\n return \"\\\\\" + match;\n }\n var hex = match.charCodeAt(0)[TO_STRING](16);\n return \"\\\\u\" + strPadStart(strUpper(hex), 4, \"0\");\n }) + DBL_QUOTE;\n }\n else {\n try {\n result = JSON.stringify(value, NULL_VALUE, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);\n }\n catch (e) {\n result = DBL_QUOTE + dumpObj(e) + DBL_QUOTE;\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsHtml(value) {\n !_htmlEntityCache && (_htmlEntityCache = {\n \"&\": \"amp\",\n \"<\": \"lt\",\n \">\": \"gt\",\n \"\\\"\": \"quot\",\n \"'\": \"#39\"\n });\n return asString(value).replace(/[&<>\"']/g, function (match) { return \"&\" + _htmlEntityCache[match] + \";\"; });\n}\n\nvar _fnToString;\nvar _objCtrFnString;\nvar _gblWindow;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPlainObject(value) {\n if (!value || typeof value !== OBJECT) {\n return false;\n }\n if (!_gblWindow) {\n _gblWindow = hasWindow() ? getWindow() : true;\n }\n var result = false;\n if (value !== _gblWindow) {\n if (!_objCtrFnString) {\n _fnToString = Function[PROTOTYPE][TO_STRING];\n _objCtrFnString = _fnToString[CALL](ObjClass);\n }\n try {\n var proto = objGetPrototypeOf(value);\n result = !proto;\n if (!result) {\n if (objHasOwnProperty(proto, CONSTRUCTOR)) {\n proto = proto[CONSTRUCTOR];\n }\n result = !!(proto && typeof proto === FUNCTION && _fnToString[CALL](proto) === _objCtrFnString);\n }\n }\n catch (ex) {\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _defaultDeepCopyHandler(details) {\n details.value && plainObjDeepCopyHandler(details);\n return true;\n}\nvar defaultDeepCopyHandlers = [\n arrayDeepCopyHandler,\n plainObjDeepCopyHandler,\n functionDeepCopyHandler,\n dateDeepCopyHandler\n];\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getSetVisited(visitMap, source, newPath, cb) {\n var theEntry;\n arrForEach(visitMap, function (entry) {\n if (entry.k === source) {\n theEntry = entry;\n return -1;\n }\n });\n if (!theEntry) {\n theEntry = { k: source, v: source };\n visitMap.push(theEntry);\n cb(theEntry);\n }\n return theEntry.v;\n}\nfunction _deepCopy(visitMap, value, ctx, key) {\n var userHandler = ctx.handler;\n var newPath = ctx.path ? (key ? ctx.path.concat(key) : ctx.path) : [];\n var newCtx = {\n handler: ctx.handler,\n src: ctx.src,\n path: newPath\n };\n var theType = typeof value;\n var isPlain = false;\n var isPrim = value === NULL_VALUE;\n if (!isPrim) {\n if (value && theType === OBJECT) {\n isPlain = isPlainObject(value);\n }\n else {\n isPrim = isPrimitiveType(theType);\n }\n }\n var details = {\n type: theType,\n isPrim: isPrim,\n isPlain: isPlain,\n value: value,\n result: value,\n path: newPath,\n origin: ctx.src,\n copy: function (source, newKey) {\n return _deepCopy(visitMap, source, newKey ? newCtx : ctx, newKey);\n },\n copyTo: function (target, source) {\n return _copyProps(visitMap, target, source, newCtx);\n }\n };\n if (!details.isPrim) {\n return _getSetVisited(visitMap, value, newPath, function (newEntry) {\n objDefine(details, \"result\", {\n g: function () {\n return newEntry.v;\n },\n s: function (newValue) {\n newEntry.v = newValue;\n }\n });\n var idx = 0;\n var handler = userHandler;\n while (!(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler))[CALL](ctx, details)) {\n handler = NULL_VALUE;\n }\n });\n }\n if (userHandler && userHandler[CALL](ctx, details)) {\n return details.result;\n }\n return value;\n}\nfunction _copyProps(visitMap, target, source, ctx) {\n if (!isNullOrUndefined(source)) {\n for (var key in source) {\n target[key] = _deepCopy(visitMap, source[key], ctx, key);\n }\n }\n return target;\n}\nfunction objCopyProps(target, source, handler) {\n var ctx = {\n handler: handler,\n src: source,\n path: []\n };\n return _copyProps([], target, source, ctx);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objDeepCopy(source, handler) {\n var ctx = {\n handler: handler,\n src: source\n };\n return _deepCopy([], source, ctx);\n}\nfunction arrayDeepCopyHandler(details) {\n var value = details.value;\n if (isArray(value)) {\n var target = details.result = [];\n target.length = value.length;\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\nfunction dateDeepCopyHandler(details) {\n var value = details.value;\n if (isDate(value)) {\n details.result = new Date(value.getTime());\n return true;\n }\n return false;\n}\nfunction functionDeepCopyHandler(details) {\n if (details.type === FUNCTION) {\n return true;\n }\n return false;\n}\nfunction plainObjDeepCopyHandler(details) {\n var value = details.value;\n if (value && details.isPlain) {\n var target = details.result = {};\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\n\nfunction _doExtend(target, theArgs) {\n arrForEach(theArgs, function (theArg) {\n objCopyProps(target, theArg);\n });\n return target;\n}\nfunction deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(objDeepCopy(target) || {}, ArrSlice[CALL](arguments));\n}\nfunction objExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(target || {}, ArrSlice[CALL](arguments));\n}\n\nvar getLength = ( /*#__PURE__*/_unwrapProp(LENGTH));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getIntValue(value, defValue) {\n if (!isNullOrUndefined(value)) {\n if (isNumber(value)) {\n return value;\n }\n var theValue = parseInt(value, 10);\n return isNaN(theValue) ? defValue : theValue;\n }\n return defValue;\n}\n\nvar _perf;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasPerformance() {\n return !!getPerformance();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getPerformance() {\n !_globalLazyTestHooks && _initTestHooks();\n if (!_perf || _globalLazyTestHooks.lzy) {\n _perf = createCachedValue(safe((getInst), [\"performance\"]).v);\n }\n return _perf.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction perfNow() {\n var perf = getPerformance();\n if (perf && perf.now) {\n return perf.now();\n }\n return utcNow();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction elapsedTime(startTime) {\n return perfNow() - startTime;\n}\n\nvar MATCH_ANY = \"(.*)\";\nvar MATCH_SINGLE = \"(.)\";\nfunction _createRegExp(value, escapeRgx, replaceFn, ignoreCase, fullMatch) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n return new RegExp((fullMatch ? \"^\" : EMPTY) + replaceFn(value.replace(escapeRgx, \"\\\\$1\")) + (fullMatch ? \"$\" : EMPTY), ignoreCase ? \"i\" : \"\");\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createWildcardRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.\\?{}()\\[\\]\\\\/\\\"\\'])/g, function (value) {\n return value.replace(/\\*/g, MATCH_ANY);\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFilenameRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\\\\\\\|\\\\\\/|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n return g1 == \"*\" ? MATCH_ANY : MATCH_SINGLE;\n });\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction makeGlobRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\*\\*\\\\[\\\\\\/]|\\\\\\\\|\\\\\\/|\\*\\*|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"**\\\\/\" || g1 == \"**\\\\\\\\\") {\n return \"(.*[\\\\\\\\\\\\/])*\";\n }\n if (g1 === \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n if (g1 === \"**\") {\n return MATCH_ANY;\n }\n return g1 === \"*\" ? \"([^\\\\\\\\\\\\/]*)\" : \"([^\\\\\\\\\\\\/]{1})\";\n });\n }, !!ignoreCase, fullMatch);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGetLazy(cb, defValue) {\n return getLazy(function () {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGetWritableLazy(cb, defValue) {\n return getWritableLazy(function () {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n });\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _checkLength(value, props) {\n var result;\n arrForEach(props, function (prop) {\n if (prop in value) {\n var propValue = value[prop];\n result = (isFunction(propValue) ? propValue() : propValue) > 0;\n return -1;\n }\n });\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _hasValue(value, depth) {\n var result = value === false || value === 0;\n if (!result && !isNullOrUndefined(value)) {\n if (isArray(value)) {\n result = value[LENGTH] > 0;\n }\n else if (isDate(value)) {\n result = !isNaN(value.getTime());\n }\n else if (isBoolean(value)) {\n return true;\n }\n else if (isObject(value)) {\n try {\n var chkValue = _checkLength(value, [LENGTH, \"byteLength\", \"size\", \"count\"]);\n if (isBoolean(chkValue)) {\n return chkValue;\n }\n if (isFunction(value.valueOf) && depth < 5) {\n return _hasValue(value.valueOf(), ++depth);\n }\n }\n catch (e) {\n }\n return !!objKeys(value)[LENGTH];\n }\n else {\n result = isTruthy(value);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasValue(value) {\n return _hasValue(value, 0);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterable(ctx) {\n return makeIterable({}, ctx);\n}\nfunction makeIterable(target, ctx) {\n var itSymbol = getKnownSymbol(3 );\n function _createIterator() {\n return createIterator(ctx);\n }\n target[itSymbol] = _createIterator;\n return target;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterator(ctx) {\n var isDone = false;\n function _value() {\n return ctx.v;\n }\n function _next() {\n if (!isDone) {\n isDone = (ctx.n ? ctx.n(arguments) : true);\n }\n var result = {\n done: isDone\n };\n if (!isDone) {\n objDefine(result, \"value\", { g: _value });\n }\n return result;\n }\n function _return(value) {\n isDone = true;\n return {\n done: true,\n value: ctx.r && ctx.r(value)\n };\n }\n function _throw(e) {\n isDone = true;\n return {\n done: true,\n value: ctx.t && ctx.t(e)\n };\n }\n var theIterator = {\n next: _next\n };\n if (ctx.r) {\n theIterator.return = _return;\n }\n if (ctx.t) {\n theIterator.throw = _throw;\n }\n return theIterator;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createArrayIterator(values) {\n var idx = -1;\n var theValues = values ? values.slice() : [];\n var len = theValues[LENGTH];\n function _value() {\n if (idx >= 0 && idx < len) {\n return theValues[idx];\n }\n }\n function _getNext() {\n idx++;\n return idx >= len;\n }\n var ctx = {\n n: _getNext\n };\n objDefine(ctx, \"v\", { g: _value });\n return createIterator(ctx);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createRangeIterator(start, end, step) {\n var nextValue = start;\n var theValue = UNDEF_VALUE;\n if (isNullOrUndefined(end)) {\n end = start;\n }\n var theStep = step;\n if (!theStep) {\n theStep = (start <= end) ? 1 : -1;\n }\n function _value() {\n return theValue;\n }\n function _getNext() {\n var isDone = (theStep > 0) ? (nextValue > end) : (nextValue < end);\n if (!isDone) {\n theValue = nextValue;\n nextValue += theStep;\n }\n return isDone;\n }\n return createIterator(objDefine({\n n: _getNext\n }, \"v\", { g: _value }));\n}\n\nvar mathRound = ( /*#__PURE__*/_pureRef(MathCls, \"round\"));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSymSplit(value, splitter, limit) {\n var splitFn = splitter ? splitter[getKnownSymbol(9 )] : UNDEF_VALUE;\n return splitFn ? splitFn(value, limit) : [value];\n}\n\nvar strSplit = ( /*#__PURE__*/_unwrapFunction(\"split\", StrProto));\nvar strSymSplit = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"split\", StrProto, !hasSymbol() ? polyStrSymSplit : NULL_VALUE));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByKey(target, path, defValue) {\n if (!path || !target) {\n return defValue;\n }\n var parts = strSplit(path, \".\");\n var cnt = parts.length;\n for (var lp = 0; lp < cnt && !isNullOrUndefined(target); lp++) {\n target = target[parts[lp]];\n }\n return (!isNullOrUndefined(target) ? target : defValue);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByIter(target, iter, defValue) {\n if (!iter || !target) {\n return defValue;\n }\n iterForOf(iter, function (value) {\n if (isNullOrUndefined(target)) {\n return -1;\n }\n target = target[value];\n });\n return (!isNullOrUndefined(target) ? target : defValue);\n}\nfunction setValueByKey(target, path, value) {\n if (target && path) {\n var parts = strSplit(path, \".\");\n var lastKey = parts.pop();\n arrForEach(parts, function (key) {\n if (isNullOrUndefined(target[key])) {\n target[key] = {};\n }\n target = target[key];\n });\n target[lastKey] = value;\n }\n}\nfunction setValueByIter(target, iter, value) {\n if (target && iter) {\n var lastKey_1;\n iterForOf(iter, function (key) {\n if (lastKey_1) {\n if (isNullOrUndefined(target[lastKey_1])) {\n target[lastKey_1] = {};\n }\n target = target[lastKey_1];\n }\n lastKey_1 = key;\n });\n target[lastKey_1] = value;\n }\n}\n\nvar strEndsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"endsWith\", StrProto, polyStrEndsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrEndsWith(value, searchString, length) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var end = (!isUndefined(length) && length < value[LENGTH]) ? length : value[LENGTH];\n return strSubstring(value, end - searchValue[LENGTH], end) === searchValue;\n}\n\nvar strIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", StrProto));\nvar strLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", StrProto));\n\nvar strIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", StrProto, polyStrIncludes));\nvar strContains = ( /*#__PURE__*/_pureAssign(strIncludes));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrIncludes(value, searchString, position) {\n if (isRegExp(searchString)) {\n throwTypeError(\"'searchString' must not be a regular expression\" + dumpObj(searchString));\n }\n return strIndexOf(value, asString(searchString), position) !== -1;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrWhiteSpace(value) {\n if (isString(value)) {\n return value.replace(/[\\s\\t\\r\\n\\f]+/g, EMPTY) === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrEmpty(value) {\n if (isString(value)) {\n return value === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n\nvar strStartsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"startsWith\", StrProto, polyStrStartsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrStartsWith(value, searchString, position) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var pos = position > 0 ? position : 0;\n return strSubstring(value, pos, pos + searchValue[LENGTH]) === searchValue;\n}\n\nvar REF = \"ref\";\nvar UNREF = \"unref\";\nvar HAS_REF = \"hasRef\";\nvar ENABLED = \"enabled\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTimerHandler(startTimer, refreshFn, cancelFn) {\n var ref = true;\n var timerId = startTimer ? refreshFn(NULL_VALUE) : NULL_VALUE;\n var theTimerHandler;\n function _unref() {\n ref = false;\n timerId && timerId[UNREF] && timerId[UNREF]();\n return theTimerHandler;\n }\n function _cancel() {\n timerId && cancelFn(timerId);\n timerId = NULL_VALUE;\n }\n function _refresh() {\n timerId = refreshFn(timerId);\n if (!ref) {\n _unref();\n }\n return theTimerHandler;\n }\n function _setEnabled(value) {\n !value && timerId && _cancel();\n value && !timerId && _refresh();\n }\n theTimerHandler = {\n cancel: _cancel,\n refresh: _refresh\n };\n theTimerHandler[HAS_REF] = function () {\n if (timerId && timerId[HAS_REF]) {\n return timerId[HAS_REF]();\n }\n return ref;\n };\n theTimerHandler[REF] = function () {\n ref = true;\n timerId && timerId[REF] && timerId[REF]();\n return theTimerHandler;\n };\n theTimerHandler[UNREF] = _unref;\n theTimerHandler = objDefineProp(theTimerHandler, ENABLED, {\n get: function () { return !!timerId; },\n set: _setEnabled\n });\n return {\n h: theTimerHandler,\n dn: function () {\n timerId = NULL_VALUE;\n }\n };\n}\n\nfunction _createTimeoutWith(startTimer, overrideFn, theArgs) {\n var isArr = isArray(overrideFn);\n var len = isArr ? overrideFn.length : 0;\n var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;\n var clearFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;\n var timerFn = theArgs[0];\n theArgs[0] = function () {\n handler.dn();\n fnApply(timerFn, UNDEF_VALUE, ArrSlice[CALL](arguments));\n };\n var handler = _createTimerHandler(startTimer, function (timerId) {\n if (timerId) {\n if (timerId.refresh) {\n timerId.refresh();\n return timerId;\n }\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n }\n return fnApply(setFn, UNDEF_VALUE, theArgs);\n }, function (timerId) {\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n });\n return handler.h;\n}\nfunction scheduleTimeout(callback, timeout) {\n return _createTimeoutWith(true, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction scheduleTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(true, overrideFn, ArrSlice[CALL](arguments, 1));\n}\nfunction createTimeout(callback, timeout) {\n return _createTimeoutWith(false, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction createTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(false, overrideFn, ArrSlice[CALL](arguments, 1));\n}\n\nvar _defaultIdleTimeout = 100;\nvar _maxExecutionTime = 50;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasIdleCallback() {\n return !!( /*#__PURE__*/getIdleCallback());\n}\nvar getIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"requestIdleCallback\"]));\nvar getCancelIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"cancelIdleCallback\"]));\nfunction setDefaultIdleTimeout(timeout) {\n _defaultIdleTimeout = timeout;\n}\nfunction setDefaultMaxExecutionTime(maxTime) {\n _maxExecutionTime = maxTime;\n}\nfunction scheduleIdleCallback(callback, options) {\n function _createDeadline(timedOut) {\n var startTime = perfNow();\n return {\n didTimeout: timedOut,\n timeRemaining: function () {\n return _maxExecutionTime - elapsedTime(startTime);\n }\n };\n }\n if (hasIdleCallback()) {\n var handler_1 = _createTimerHandler(true, function (idleId) {\n idleId && getCancelIdleCallback()(idleId);\n return getIdleCallback()(function (deadline) {\n handler_1.dn();\n callback(deadline || _createDeadline(false));\n }, options);\n }, function (idleId) {\n getCancelIdleCallback()(idleId);\n });\n return handler_1.h;\n }\n var timeout = (options || {}).timeout;\n if (isUndefined(timeout)) {\n timeout = _defaultIdleTimeout;\n }\n return scheduleTimeout(function () {\n callback(_createDeadline(true));\n }, timeout);\n}\n\nfunction scheduleInterval(callback, timeout) {\n var theArguments = ArrSlice[CALL](arguments);\n var handler = _createTimerHandler(true, function (intervalId) {\n intervalId && clearInterval(intervalId);\n return fnApply(setInterval, UNDEF_VALUE, theArguments);\n }, function (intervalId) {\n fnApply(clearInterval, UNDEF_VALUE, [intervalId]);\n });\n return handler.h;\n}\n\nexport { arrAppend, arrContains, arrEvery, arrFilter, arrFind, arrFindIndex, arrFindLast, arrFindLastIndex, arrForEach, arrFrom, arrIncludes, arrIndexOf, arrLastIndexOf, arrMap, arrReduce, arrSlice, arrSome, arrayDeepCopyHandler, asString, createArrayIterator, createCachedValue, createCustomError, createDeferredCachedValue, createEnum, createEnumKeyMap, createEnumValueMap, createFilenameRegex, createFnDeferredProxy, createIterable, createIterator, createProxyFuncs, createRangeIterator, createSimpleMap, createTimeout, createTimeoutWith, createTypeMap, createWildcardRegex, dateDeepCopyHandler, deepExtend, dumpObj, elapsedTime, encodeAsHtml, encodeAsJson, fnApply, fnBind, fnCall, functionDeepCopyHandler, getCancelIdleCallback, getDocument, getGlobal, getHistory, getIdleCallback, getInst, getIntValue, getKnownSymbol, getLazy, getLength, getNavigator, getPerformance, getSymbol, getValueByIter, getValueByKey, getWindow, getWritableLazy, hasDocument, hasHistory, hasIdleCallback, hasNavigator, hasPerformance, hasSymbol, hasValue, hasWindow, isArray, isArrayBuffer, isBlob, isBoolean, isDate, isDefined, isError, isFile, isFormData, isFunction, isIterable, isIterator, isNode, isNotTruthy, isNullOrUndefined, isNumber, isObject, isPlainObject, isPrimitive, isPrimitiveType, isPromise, isPromiseLike, isRegExp, isStrictNullOrUndefined, isStrictUndefined, isString, isSymbol, isThenable, isTruthy, isTypeof, isUndefined, isWebWorker, iterForOf, lazySafeGetInst, makeGlobRegex, makeIterable, mathCeil, mathFloor, mathMax, mathMin, mathRound, mathToInt, mathTrunc, newSymbol, normalizeJsName, objAssign, objCopyProps, objCreate, objDeepCopy, objDeepFreeze, objDefine, objDefineAccessors, objDefineGet, objDefineProp, objDefineProperties, objDefineProps, objEntries, objExtend, objForEachKey, objFreeze, objGetOwnPropertyDescriptor, objGetPrototypeOf, objHasOwn, objHasOwnProperty, objKeys, objSeal, objSetPrototypeOf, objToString, perfNow, plainObjDeepCopyHandler, polyArrFind, polyArrFindIndex, polyArrFindLast, polyArrFindLastIndex, polyArrFrom, polyArrIncludes, polyGetKnownSymbol, polyIsArray, polyNewSymbol, polyObjEntries, polyObjHasOwn, polyObjKeys, polyStrIncludes, polyStrSubstr, polyStrSymSplit, polyStrTrim, polyStrTrimEnd, polyStrTrimStart, polySymbolFor, polySymbolKeyFor, polyUtcNow, readArgs, safe, safeGet, safeGetLazy, safeGetWritableLazy, scheduleIdleCallback, scheduleInterval, scheduleTimeout, scheduleTimeoutWith, setBypassLazyCache, setDefaultIdleTimeout, setDefaultMaxExecutionTime, setValueByIter, setValueByKey, strCamelCase, strContains, strEndsWith, strIncludes, strIndexOf, strIsNullOrEmpty, strIsNullOrWhiteSpace, strKebabCase, strLastIndexOf, strLeft, strLetterCase, strLower, strPadEnd, strPadStart, strRepeat, strRight, strSlice, strSnakeCase, strSplit, strStartsWith, strSubstr, strSubstring, strSymSplit, strTrim, strTrimEnd, strTrimLeft, strTrimRight, strTrimStart, strUpper, symbolFor, symbolKeyFor, throwError, throwRangeError, throwTypeError, throwUnsupported, utcNow };\n//# sourceMappingURL=ts-utils.js.map\n","// 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.6\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: 55\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: 35\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 20\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 6\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: 10\r\nexport var _DYN_VALUE = \"value\"; // Count: 5\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_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: 7\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 9\r\nexport var _DYN_TYPE = \"type\"; // Count: 13\r\nexport var _DYN_EVT_NAME = \"evtName\"; // Count: 4\r\nexport var _DYN_STATUS = \"status\"; // Count: 5\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: 6\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_URL_STRING = \"urlString\"; // Count: 5\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 5\r\nexport var _DYN_TIMEOUT = \"timeout\"; // Count: 6\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.6\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\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.6\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_LENGTH, _DYN_NAME, _DYN_REPLACE, _DYN_SPLIT, _DYN_STATUS, _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\nexport function isFeatureEnabled(feature, cfg) {\r\n var rlt = false;\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 rlt = (mode == 3 /* FeatureOptInMode.enable */) || (mode == 1 /* FeatureOptInMode.none */);\r\n }\r\n return rlt;\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.indexOf(\": \");\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.substring(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.6\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 } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } 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//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.6\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.6\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.6';\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.6\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) && (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.6\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.6\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.6\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.6\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.6\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.6\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.6\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.6\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 - Common, 3.3.6\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 = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = 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 = 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.6\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.6\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.6\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 - Common, 3.3.6\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.6\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, 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) {\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.6\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.\\.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.6\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.6\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.6\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.6\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.6\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.6\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.6\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.6\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 = \"\";\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\\))/, \"\");\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 - Core, 3.3.6\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.6\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_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.indexOf(\",\") !== -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 - Common, 3.3.6\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 = 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.6\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.6\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.6\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 - Core, 3.3.6\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_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)),\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 // 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 // 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 }, 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 // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\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_1 = getLocation();\r\n if (location_1 && location_1.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 //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\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 return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\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 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 // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\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 }\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 - Common, 3.3.6\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 - Core, 3.3.6\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.6\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.6\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.6\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\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.6\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.6\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.6\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.6\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 - Core, 3.3.6\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 - Web Analytics, 3.3.6\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: 7\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_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\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.6\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, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPerformance, isUndefined, isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _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 (!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.6\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.6\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, 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_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_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 // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\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 _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.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\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 _trackAjaxAttempts = 0;\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 _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 _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 (_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 // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\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 _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.6'; // 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 - Web Analytics, 3.3.6\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.6\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 * NevWare21 Solutions LLC - ts-async, 0.5.4\n * https://github.com/nevware21/ts-async\n * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\nimport { isPromiseLike, objDefineProperties, getDocument, createCachedValue, safe, getInst, dumpObj, arrSlice, objDefineProp, hasSymbol, getKnownSymbol, isFunction, throwTypeError, iterForOf, scheduleTimeout, isNode, getWindow, getGlobal, objDefine, objToString, isUndefined, isArray, arrForEach, isIterable, createCustomError, isNumber, scheduleIdleCallback, utcNow, getLength, isIterator, fnCall, arrIndexOf } from '@nevware21/ts-utils';\n\nvar STR_PROMISE = \"Promise\";\nvar DONE = \"done\";\nvar VALUE = \"value\";\nvar RETURN = \"return\";\nvar REJECTED = \"rejected\";\n\nfunction doAwaitResponse(value, cb) {\n return doAwait(value, function (value) {\n return cb ? cb({\n status: \"fulfilled\",\n rejected: false,\n value: value\n }) : value;\n }, function (reason) {\n return cb ? cb({\n status: REJECTED,\n rejected: true,\n reason: reason\n }) : reason;\n });\n}\nfunction doAwait(value, resolveFn, rejectFn, finallyFn) {\n var result = value;\n try {\n if (isPromiseLike(value)) {\n if (resolveFn || rejectFn) {\n result = value.then(resolveFn, rejectFn);\n }\n }\n else {\n try {\n if (resolveFn) {\n result = resolveFn(value);\n }\n }\n catch (err) {\n if (rejectFn) {\n result = rejectFn(err);\n }\n else {\n throw err;\n }\n }\n }\n }\n finally {\n if (finallyFn) {\n doFinally(result, finallyFn);\n }\n }\n return result;\n}\nfunction doFinally(value, finallyFn) {\n var result = value;\n if (finallyFn) {\n if (isPromiseLike(value)) {\n if (value.finally) {\n result = value.finally(finallyFn);\n }\n else {\n result = value.then(function (value) {\n finallyFn();\n return value;\n }, function (reason) {\n finallyFn();\n throw reason;\n });\n }\n }\n else {\n finallyFn();\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureAssign(func1, func2) {\n return func1 || func2;\n}\n\nvar _debugState;\nvar _debugResult;\nvar _debugHandled;\nvar _promiseDebugEnabled = false;\nfunction _addDebugState$1(thePromise, stateFn, resultFn, handledFn) {\n _debugState = _debugState || { toString: function () { return \"[[PromiseState]]\"; } };\n _debugResult = _debugResult || { toString: function () { return \"[[PromiseResult]]\"; } };\n _debugHandled = _debugHandled || { toString: function () { return \"[[PromiseIsHandled]]\"; } };\n var props = {};\n props[_debugState] = { get: stateFn };\n props[_debugResult] = { get: resultFn };\n props[_debugHandled] = { get: handledFn };\n objDefineProperties(thePromise, props);\n}\nfunction setPromiseDebugState(enabled, logger) {\n _promiseDebugEnabled = enabled;\n}\n\nvar STRING_STATES = [\n \"pending\", \"resolving\", \"resolved\", REJECTED\n];\n\nvar DISPATCH_EVENT = \"dispatchEvent\";\nvar _hasInitEvent;\nfunction _hasInitEventFn(doc) {\n var evt;\n if (doc && doc.createEvent) {\n evt = doc.createEvent(\"Event\");\n }\n return (!!evt && evt.initEvent);\n}\nfunction emitEvent(target, evtName, populateEvent, useNewEvent) {\n var doc = getDocument();\n !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [doc]).v));\n var theEvt = _hasInitEvent.v ? doc.createEvent(\"Event\") : (useNewEvent ? new Event(evtName) : {});\n populateEvent && populateEvent(theEvt);\n if (_hasInitEvent.v) {\n theEvt.initEvent(evtName, false, true);\n }\n if (theEvt && target[DISPATCH_EVENT]) {\n target[DISPATCH_EVENT](theEvt);\n }\n else {\n var handler = target[\"on\" + evtName];\n if (handler) {\n handler(theEvt);\n }\n else {\n var theConsole = getInst(\"console\");\n theConsole && (theConsole[\"error\"] || theConsole[\"log\"])(evtName, dumpObj(theEvt));\n }\n }\n}\n\nvar NODE_UNHANDLED_REJECTION = \"unhandledRejection\";\nvar UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();\nvar _currentPromiseId = [];\nvar _uniquePromiseId = 0;\nvar _unhandledRejectionTimeout = 10;\nvar _aggregationError;\nvar _hasPromiseRejectionEvent;\nfunction dumpFnObj(value) {\n if (isFunction(value)) {\n return value.toString();\n }\n return dumpObj(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAggregationError(values) {\n !_aggregationError && (_aggregationError = createCachedValue(safe(getInst, [\"AggregationError\"]).v || createCustomError(\"AggregationError\", function (self, args) {\n self.errors = args[0];\n })));\n return new _aggregationError.v(values);\n}\nfunction _createPromise(newPromise, processor, executor) {\n var additionalArgs = arrSlice(arguments, 3);\n var _state = 0 ;\n var _hasResolved = false;\n var _settledValue;\n var _queue = [];\n var _id = _uniquePromiseId++;\n var _parentId = _currentPromiseId.length > 0 ? _currentPromiseId[_currentPromiseId.length - 1] : undefined;\n var _handled = false;\n var _unHandledRejectionHandler = null;\n var _thePromise;\n function _then(onResolved, onRejected) {\n try {\n _currentPromiseId.push(_id);\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n var thenPromise = newPromise(function (resolve, reject) {\n _queue.push(function () {\n try {\n var handler = _state === 2 ? onResolved : onRejected;\n var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);\n if (isPromiseLike(value)) {\n value.then(resolve, reject);\n }\n else if (handler) {\n resolve(value);\n }\n else if (_state === 3 ) {\n reject(value);\n }\n else {\n resolve(value);\n }\n }\n catch (e) {\n reject(e);\n }\n });\n if (_hasResolved) {\n _processQueue();\n }\n }, additionalArgs);\n return thenPromise;\n }\n finally {\n _currentPromiseId.pop();\n }\n }\n function _catch(onRejected) {\n return _then(undefined, onRejected);\n }\n function _finally(onFinally) {\n var thenFinally = onFinally;\n var catchFinally = onFinally;\n if (isFunction(onFinally)) {\n thenFinally = function (value) {\n onFinally && onFinally();\n return value;\n };\n catchFinally = function (reason) {\n onFinally && onFinally();\n throw reason;\n };\n }\n return _then(thenFinally, catchFinally);\n }\n function _strState() {\n return STRING_STATES[_state];\n }\n function _processQueue() {\n if (_queue.length > 0) {\n var pending = _queue.slice();\n _queue = [];\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n processor(pending);\n }\n }\n function _createSettleIfFn(newState, allowState) {\n return function (theValue) {\n if (_state === allowState) {\n if (newState === 2 && isPromiseLike(theValue)) {\n _state = 1 ;\n theValue.then(_createSettleIfFn(2 , 1 ), _createSettleIfFn(3 , 1 ));\n return;\n }\n _state = newState;\n _hasResolved = true;\n _settledValue = theValue;\n _processQueue();\n if (!_handled && newState === 3 && !_unHandledRejectionHandler) {\n _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);\n }\n }\n };\n }\n function _notifyUnhandledRejection() {\n if (!_handled) {\n _handled = true;\n if (isNode()) {\n process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);\n }\n else {\n var gbl = getWindow() || getGlobal();\n !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = createCachedValue(safe((getInst), [STR_PROMISE + \"RejectionEvent\"]).v));\n emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {\n objDefine(theEvt, \"promise\", { g: function () { return _thePromise; } });\n theEvt.reason = _settledValue;\n return theEvt;\n }, !!_hasPromiseRejectionEvent.v);\n }\n }\n }\n _thePromise = {\n then: _then,\n \"catch\": _catch,\n finally: _finally\n };\n objDefineProp(_thePromise, \"state\", {\n get: _strState\n });\n if (_promiseDebugEnabled) {\n _addDebugState$1(_thePromise, _strState, function () { return objToString(_settledValue); }, function () { return _handled; });\n }\n if (hasSymbol()) {\n _thePromise[getKnownSymbol(11 )] = \"IPromise\";\n }\n function _toString() {\n return \"IPromise\" + (_promiseDebugEnabled ? \"[\" + _id + (!isUndefined(_parentId) ? (\":\" + _parentId) : \"\") + \"]\" : \"\") + \" \" + _strState() + (_hasResolved ? (\" - \" + dumpFnObj(_settledValue)) : \"\") + (\"\");\n }\n _thePromise.toString = _toString;\n (function _initialize() {\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpFnObj(executor));\n }\n var _rejectFn = _createSettleIfFn(3 , 0 );\n try {\n executor.call(_thePromise, _createSettleIfFn(2 , 0 ), _rejectFn);\n }\n catch (e) {\n _rejectFn(e);\n }\n })();\n return _thePromise;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllPromise(newPromise) {\n return function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n try {\n var values_1 = [];\n var pending_1 = 1;\n iterForOf(input, function (item, idx) {\n if (item) {\n pending_1++;\n doAwait(item, function (value) {\n values_1[idx] = value;\n if (--pending_1 === 0) {\n resolve(values_1);\n }\n }, reject);\n }\n });\n pending_1--;\n if (pending_1 === 0) {\n resolve(values_1);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createResolvedPromise(newPromise) {\n return function (value) {\n var additionalArgs = arrSlice(arguments, 1);\n if (isPromiseLike(value)) {\n return value;\n }\n return newPromise(function (resolve) {\n resolve(value);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRejectedPromise(newPromise) {\n return function (reason) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (_resolve, reject) {\n reject(reason);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllSettledPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var values = [];\n var pending = 1;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (value.rejected) {\n values[idx] = {\n status: REJECTED,\n reason: value.reason\n };\n }\n else {\n values[idx] = {\n status: \"fulfilled\",\n value: value.value\n };\n }\n if (--pending === 0) {\n resolve(values);\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0) {\n resolve(values);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRacePromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var isDone = false;\n function processItem(item) {\n doAwaitResponse(item, function (value) {\n if (!isDone) {\n isDone = true;\n if (value.rejected) {\n reject(value.reason);\n }\n else {\n resolve(value.value);\n }\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAnyPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var theErros = [];\n var pending = 1;\n var isDone = false;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (!value.rejected) {\n isDone = true;\n resolve(value.value);\n return;\n }\n else {\n theErros[idx] = value.reason;\n }\n if (--pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n\nfunction syncItemProcessor(pending) {\n arrForEach(pending, function (fn) {\n try {\n fn();\n }\n catch (e) {\n }\n });\n}\nfunction timeoutItemProcessor(timeout) {\n var callbackTimeout = isNumber(timeout) ? timeout : 0;\n return function (pending) {\n scheduleTimeout(function () {\n syncItemProcessor(pending);\n }, callbackTimeout);\n };\n}\nfunction idleItemProcessor(timeout) {\n var options;\n if (timeout >= 0) {\n options = {\n timeout: +timeout\n };\n }\n return function (pending) {\n scheduleIdleCallback(function (deadline) {\n syncItemProcessor(pending);\n }, options);\n };\n}\n\nvar _allAsyncSettledCreator;\nvar _raceAsyncCreator;\nvar _anyAsyncCreator;\nfunction createAsyncPromise(executor, timeout) {\n return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);\n}\nvar createAsyncAllPromise = /*#__PURE__*/ _createAllPromise(createAsyncPromise);\nvar createAsyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createAsyncPromise);\nvar createAsyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createAsyncPromise);\nfunction createAsyncAllSettledPromise(input, timeout) {\n !_allAsyncSettledCreator && (_allAsyncSettledCreator = _createAllSettledPromise(createAsyncPromise));\n return _allAsyncSettledCreator.v(input, timeout);\n}\nfunction createAsyncRacePromise(values, timeout) {\n !_raceAsyncCreator && (_raceAsyncCreator = _createRacePromise(createAsyncPromise));\n return _raceAsyncCreator.v(values, timeout);\n}\nfunction createAsyncAnyPromise(values, timeout) {\n !_anyAsyncCreator && (_anyAsyncCreator = _createAnyPromise(createAsyncPromise));\n return _anyAsyncCreator.v(values, timeout);\n}\n\nvar _promiseCls;\nvar _allCreator;\nvar _allNativeSettledCreator;\nvar _raceNativeCreator;\nvar _anyNativeCreator;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createNativePromiseHelper(name, func) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n if (_promiseCls.v && _promiseCls.v[name]) {\n return createCachedValue(function (input, timeout) {\n return createNativePromise(function (resolve, reject) {\n _promiseCls.v[name](input).then(resolve, reject);\n });\n });\n }\n return func();\n}\nfunction createNativePromise(executor, timeout) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n var PrmCls = _promiseCls.v;\n if (!PrmCls) {\n return createAsyncPromise(executor);\n }\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpObj(executor));\n }\n var _state = 0 ;\n function _strState() {\n return STRING_STATES[_state];\n }\n var thePromise = new PrmCls(function (resolve, reject) {\n function _resolve(value) {\n _state = 2 ;\n resolve(value);\n }\n function _reject(reason) {\n _state = 3 ;\n reject(reason);\n }\n executor(_resolve, _reject);\n });\n objDefineProp(thePromise, \"state\", {\n get: _strState\n });\n return thePromise;\n}\nfunction createNativeAllPromise(input, timeout) {\n !_allCreator && (_allCreator = _createNativePromiseHelper(\"all\", function () { return createCachedValue(_createAllPromise(createNativePromise)); }));\n return _allCreator.v(input, timeout);\n}\nvar createNativeResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createNativePromise);\nvar createNativeRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createNativePromise);\nfunction createNativeAllSettledPromise(input, timeout) {\n !_allNativeSettledCreator && (_allNativeSettledCreator = _createNativePromiseHelper(\"allSettled\", function () { return _createAllSettledPromise(createNativePromise); }));\n return _allNativeSettledCreator.v(input, timeout);\n}\nfunction createNativeRacePromise(values, timeout) {\n !_raceNativeCreator && (_raceNativeCreator = _createNativePromiseHelper(\"race\", function () { return _createRacePromise(createNativePromise); }));\n return _raceNativeCreator.v(values, timeout);\n}\nfunction createNativeAnyPromise(values, timeout) {\n !_anyNativeCreator && (_anyNativeCreator = _createNativePromiseHelper(\"any\", function () { return _createAnyPromise(createNativePromise); }));\n return _anyNativeCreator.v(values, timeout);\n}\n\nvar _allSyncSettledCreator;\nvar _raceSyncCreator;\nvar _anySyncCreator;\nfunction createSyncPromise(executor) {\n return _createPromise(createSyncPromise, syncItemProcessor, executor);\n}\nvar createSyncAllPromise = /*#__PURE__*/ _createAllPromise(createSyncPromise);\nvar createSyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createSyncPromise);\nvar createSyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createSyncPromise);\nfunction createSyncAllSettledPromise(input, timeout) {\n !_allSyncSettledCreator && (_allSyncSettledCreator = _createAllSettledPromise(createSyncPromise));\n return _allSyncSettledCreator.v(input, timeout);\n}\nfunction createSyncRacePromise(values, timeout) {\n !_raceSyncCreator && (_raceSyncCreator = _createRacePromise(createSyncPromise));\n return _raceSyncCreator.v(values, timeout);\n}\nfunction createSyncAnyPromise(values, timeout) {\n !_anySyncCreator && (_anySyncCreator = _createAnyPromise(createSyncPromise));\n return _anySyncCreator.v(values, timeout);\n}\n\nvar _defaultIdleTimeout;\nvar _allIdleSettledCreator;\nvar _raceIdleCreator;\nvar _anyIdleCreator;\nfunction setDefaultIdlePromiseTimeout(idleDeadline) {\n _defaultIdleTimeout = idleDeadline;\n}\nvar setDefaultIdleTimeout = ( /*#__PURE__*/_pureAssign(setDefaultIdlePromiseTimeout));\nfunction createIdlePromise(executor, timeout) {\n var theTimeout = isUndefined(timeout) ? _defaultIdleTimeout : timeout;\n return _createPromise(createIdlePromise, idleItemProcessor(theTimeout), executor, theTimeout);\n}\nvar createIdleAllPromise = /*#__PURE__*/ _createAllPromise(createIdlePromise);\nvar createIdleResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createIdlePromise);\nvar createIdleRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createIdlePromise);\nfunction createIdleAllSettledPromise(input, timeout) {\n !_allIdleSettledCreator && (_allIdleSettledCreator = _createAllSettledPromise(createIdlePromise));\n return _allIdleSettledCreator.v(input, timeout);\n}\nfunction createIdleRacePromise(values, timeout) {\n !_raceIdleCreator && (_raceIdleCreator = _createRacePromise(createIdlePromise));\n return _raceIdleCreator.v(values, timeout);\n}\nfunction createIdleAnyPromise(values, timeout) {\n !_anyIdleCreator && (_anyIdleCreator = _createAnyPromise(createIdlePromise));\n return _anyIdleCreator.v(values, timeout);\n}\n\nvar _promiseCreator;\nvar _allSettledCreator;\nvar _raceCreator;\nvar _anyCreator;\nfunction setCreatePromiseImpl(creator) {\n _promiseCreator = creator ? createCachedValue(creator) : null;\n}\nfunction createPromise(executor, timeout) {\n !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));\n return _promiseCreator.v.call(this, executor, timeout);\n}\nvar createAllPromise = /*#__PURE__*/ _createAllPromise(createPromise);\nvar createResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createPromise);\nvar createRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createPromise);\nfunction createAllSettledPromise(input, timeout) {\n !_allSettledCreator && (_allSettledCreator = _createAllSettledPromise(createPromise));\n return _allSettledCreator.v(input, timeout);\n}\nfunction createRacePromise(values, timeout) {\n !_raceCreator && (_raceCreator = _createRacePromise(createPromise));\n return _raceCreator.v(values, timeout);\n}\nfunction createAnyPromise(values, timeout) {\n !_anyCreator && (_anyCreator = _createAnyPromise(createPromise));\n return _anyCreator.v(values, timeout);\n}\n\nfunction createTimeoutPromise(timeout, resolveReject, message) {\n return createPromise(function (resolve, reject) {\n scheduleTimeout(function () {\n (resolveReject ? resolve : reject)(!isUndefined(message) ? message : \"Timeout of \" + timeout + \"ms exceeded\");\n }, timeout);\n });\n}\n\nfunction _doneChk(isDone, state, value, thisArg) {\n var result = isDone;\n state.res = value;\n if (!result) {\n if (state.isDone && isFunction(state.isDone)) {\n return doAwait(state.isDone.call(thisArg, state), function (done) {\n state.iter++;\n return !!done;\n });\n }\n else {\n result = !!state.isDone;\n }\n }\n state.iter++;\n return result;\n}\nfunction doWhileAsync(callbackFn, isDoneFn, thisArg) {\n var promise;\n var resolve;\n var reject = function (reason) {\n isDone = true;\n throw reason;\n };\n var isDone = false;\n var state = {\n st: utcNow(),\n iter: 0,\n isDone: isDoneFn || false\n };\n if (callbackFn) {\n var _createPromise_1 = function () {\n return createPromise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n };\n var _handleAsyncDone_1 = function (done) {\n isDone = !!done;\n if (!isDone) {\n _processNext_1();\n }\n else {\n resolve(state.res);\n }\n };\n var _processNext_1 = function () {\n while (!isDone) {\n try {\n var cbResult = callbackFn.call(thisArg, state);\n if (isPromiseLike(cbResult)) {\n promise = promise || _createPromise_1();\n doAwait(cbResult, function (res) {\n try {\n doAwait(_doneChk(isDone, state, res, thisArg), _handleAsyncDone_1, reject);\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n return promise;\n }\n else {\n var dnRes = _doneChk(isDone, state, cbResult, thisArg);\n if (isPromiseLike(dnRes)) {\n promise = promise || _createPromise_1();\n doAwait(dnRes, _handleAsyncDone_1, reject);\n return promise;\n }\n else {\n isDone = !!dnRes;\n }\n }\n }\n catch (e) {\n reject(e);\n return promise;\n }\n }\n if (isDone && resolve) {\n resolve(state.res);\n }\n return promise || state.res;\n };\n return _processNext_1();\n }\n}\n\nfunction arrForEachAsync(theArray, callbackFn, thisArg) {\n if (theArray) {\n var len_1 = getLength(theArray);\n if (len_1) {\n var isDone = function (state) {\n if (state.iter >= len_1 || state.res === -1) {\n return true;\n }\n };\n return doWhileAsync(function (state) {\n var idx = state.iter;\n if (idx in theArray) {\n return callbackFn.call(thisArg || theArray, theArray[idx], idx, theArray);\n }\n }, isDone);\n }\n }\n}\n\nvar _iterSymbol;\nvar _iterAsyncSymbol;\nfunction iterForOfAsync(iter, callbackFn, thisArg) {\n var err;\n var iterResult;\n var theIter = iter;\n function onFailed(failed) {\n err = { e: failed };\n if (theIter.throw) {\n iterResult = null;\n theIter.throw(err);\n }\n throw failed;\n }\n function onFinally() {\n try {\n if (iterResult && !iterResult[DONE]) {\n theIter[RETURN] && theIter[RETURN](iterResult);\n }\n }\n finally {\n if (err) {\n throw err.e;\n }\n }\n }\n if (iter) {\n if (!isIterator(iter)) {\n !_iterAsyncSymbol && (_iterAsyncSymbol = createCachedValue(getKnownSymbol(0 )));\n theIter = iter[_iterAsyncSymbol.v] ? iter[_iterAsyncSymbol.v]() : null;\n if (!theIter) {\n !_iterSymbol && (_iterSymbol = createCachedValue(getKnownSymbol(3 )));\n theIter = iter[_iterSymbol.v] ? iter[_iterSymbol.v]() : null;\n }\n }\n if (theIter && isIterator(theIter)) {\n var result = void 0;\n try {\n result = doWhileAsync(function (state) {\n return doAwait(theIter.next(), function (res) {\n iterResult = res;\n if (!res[DONE]) {\n return fnCall(callbackFn, thisArg || theIter, iterResult[VALUE], state.iter, theIter);\n }\n }, function (reason) {\n state.isDone = true;\n onFailed(reason);\n });\n }, function (state) {\n if (!iterResult || iterResult[DONE] || state.res === -1) {\n onFinally();\n return true;\n }\n }, thisArg || theIter);\n if (isPromiseLike(result)) {\n result = doFinally(result.catch(onFailed), onFinally);\n }\n return result;\n }\n catch (failed) {\n onFailed(failed);\n }\n finally {\n if (result && !isPromiseLike(result)) {\n onFinally();\n }\n }\n }\n }\n}\n\nvar REJECT = \"reject\";\nvar REJECTED_ERROR = \"Rejected\";\nvar _schedulerId = 0;\nvar _debugName;\nvar _debugIntState;\nvar _customErrors = {};\nfunction _rejectDone() {\n}\nfunction _createError(type, evt, message) {\n !_customErrors[type] && (_customErrors[type] = createCustomError(type));\n var now = utcNow();\n return new (_customErrors[type])(\"Task [\".concat(evt.id, \"] \").concat(message || \"\", \"- \").concat((evt.st ? \"Running\" : \"Waiting\"), \": \").concat(_calcTime(now, evt.st || evt.cr)));\n}\nfunction _calcTime(now, start) {\n return ((now - start) || \"0\") + \" ms\";\n}\nfunction _abortStaleTasks(taskQueue, staleTimeoutPeriod) {\n var now = utcNow();\n var expired = now - staleTimeoutPeriod;\n arrForEach(taskQueue, function (evt) {\n if (evt && !evt.rj && (evt.st && evt.st < expired) || (!evt.st && evt.cr && evt.cr < expired)) {\n evt && evt[REJECT](evt.rj || _createError(\"Aborted\", evt, \"Stale \"));\n }\n });\n}\nfunction _removeTask(queue, taskDetail) {\n var idx = arrIndexOf(queue, taskDetail);\n if (idx !== -1) {\n queue.splice(idx, 1);\n }\n}\nfunction _addDebugState(theScheduler, nameFn, stateFn) {\n _debugName = _debugName || { toString: function () { return \"[[SchedulerName]]\"; } };\n _debugIntState = _debugIntState || { toString: function () { return \"[[SchedulerState]]\"; } };\n objDefineProp(theScheduler, _debugName, { get: nameFn });\n objDefineProp(theScheduler, _debugIntState, { get: stateFn });\n}\nfunction createTaskScheduler(newPromise, name) {\n var _theTask;\n var _running = [];\n var _waiting = [];\n var _staleTimeoutPeriod = 600000;\n var _staleTimeoutCheckPeriod = _staleTimeoutPeriod / 10;\n var _taskCount = 0;\n var _schedulerName = (name ? (name + \".\") : \"\") + _schedulerId++;\n var _blockedTimer;\n newPromise = newPromise || createPromise;\n var _startBlockedTimer = function () {\n var hasTasks = (getLength(_running) + getLength(_waiting)) > 0;\n if (_staleTimeoutPeriod > 0) {\n if (!_blockedTimer) {\n _blockedTimer = scheduleTimeout(function () {\n _abortStaleTasks(_running, _staleTimeoutPeriod);\n _abortStaleTasks(_waiting, _staleTimeoutPeriod);\n _blockedTimer && (_blockedTimer.enabled = ((getLength(_running) + getLength(_waiting)) > 0));\n }, _staleTimeoutCheckPeriod);\n _blockedTimer.unref();\n }\n _blockedTimer && (_blockedTimer.enabled = hasTasks);\n }\n };\n var _queueTask = function (startAction, taskName, timeout) {\n var _a;\n var taskId = _schedulerName + \".\" + _taskCount++;\n if (taskName) {\n taskId += \"-(\" + taskName + \")\";\n }\n var newTask = (_a = {\n id: taskId,\n cr: utcNow(),\n to: timeout\n },\n _a[REJECT] = function (reason) {\n newTask.rj = reason || _createError(REJECTED_ERROR, newTask);\n newTask[REJECT] = _rejectDone;\n },\n _a);\n if (!_theTask) {\n newTask.p = newPromise(_runTask(newTask, startAction));\n }\n else {\n newTask.p = _waitForPreviousTask(newTask, _theTask, startAction);\n }\n _theTask = newTask;\n return newTask.p;\n };\n var _runTask = function (taskDetail, startAction) {\n taskDetail.st = utcNow();\n _running.push(taskDetail);\n _startBlockedTimer();\n return function (onTaskResolve, onTaskReject) {\n var _promiseReject = function (reason) {\n taskDetail.rj = taskDetail.rj || reason || _createError(REJECTED_ERROR, taskDetail);\n taskDetail[REJECT] = _rejectDone;\n _doCleanup(taskDetail);\n onTaskResolve = null;\n onTaskReject && onTaskReject(reason);\n onTaskReject = null;\n };\n var taskId = taskDetail.id;\n if (taskDetail.rj) {\n _promiseReject(taskDetail.rj);\n }\n else {\n taskDetail[REJECT] = _promiseReject;\n try {\n var startResult = startAction(taskId);\n if (taskDetail.to && isPromiseLike(startResult)) {\n taskDetail.t = scheduleTimeout(function () {\n _promiseReject(_createError(\"Timeout\", taskDetail));\n }, taskDetail.to);\n }\n doAwait(startResult, function (theResult) {\n _doCleanup(taskDetail);\n try {\n onTaskResolve && onTaskResolve(theResult);\n }\n catch (e) {\n onTaskReject && onTaskReject(e);\n }\n onTaskReject = null;\n onTaskResolve = null;\n }, _promiseReject);\n }\n catch (e) {\n _promiseReject(e);\n }\n }\n };\n };\n var _waitForPreviousTask = function (taskDetail, prevTask, startAction) {\n _waiting.push(taskDetail);\n _startBlockedTimer();\n return newPromise(function (onWaitResolve, onWaitReject) {\n doAwaitResponse(prevTask.p, function () {\n _removeTask(_waiting, taskDetail);\n _runTask(taskDetail, startAction)(onWaitResolve, onWaitReject);\n });\n });\n };\n var _doCleanup = function (taskDetail) {\n _removeTask(_running, taskDetail);\n taskDetail.t && taskDetail.t.cancel();\n taskDetail.t = null;\n if (_theTask && _theTask === taskDetail) {\n _theTask = null;\n if (getLength(_running) + getLength(_waiting) === 0) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n }\n }\n };\n var theScheduler = {\n idle: true,\n queue: _queueTask,\n setStaleTimeout: function (staleTimeout, staleCheckPeriod) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n _staleTimeoutPeriod = staleTimeout;\n _staleTimeoutCheckPeriod = staleCheckPeriod || staleTimeout / 10;\n _startBlockedTimer();\n }\n };\n objDefine(theScheduler, \"idle\", {\n g: function () {\n return getLength(_running) + getLength(_waiting) === 0;\n }\n });\n _addDebugState(theScheduler, function () { return _schedulerName; }, function () {\n return {\n l: _theTask,\n r: _running,\n w: _waiting\n };\n });\n return theScheduler;\n}\n\nvar toStringTagSymbol = getKnownSymbol(11 );\nvar PolyPromise = /*#__PURE__*/ (function () {\n function PolyPromiseImpl(executor) {\n this._$ = createAsyncPromise(executor);\n if (toStringTagSymbol) {\n this[toStringTagSymbol] = \"Promise\";\n }\n objDefineProp(this, \"state\", {\n get: function () {\n return this._$.state;\n }\n });\n }\n PolyPromiseImpl.all = createAsyncAllPromise;\n PolyPromiseImpl.race = createAsyncRacePromise;\n PolyPromiseImpl.any = createAsyncAnyPromise;\n PolyPromiseImpl.reject = createAsyncRejectedPromise;\n PolyPromiseImpl.resolve = createAsyncResolvedPromise;\n PolyPromiseImpl.allSettled = createAsyncAllSettledPromise;\n var theProto = PolyPromiseImpl.prototype;\n theProto.then = function (onResolved, onRejected) {\n return this._$.then(onResolved, onRejected);\n };\n theProto.catch = function (onRejected) {\n return this._$.catch(onRejected);\n };\n theProto.finally = function (onfinally) {\n return this._$.finally(onfinally);\n };\n return PolyPromiseImpl;\n}());\n\nexport { PolyPromise, arrForEachAsync, createAllPromise, createAllSettledPromise, createAnyPromise, createAsyncAllPromise, createAsyncAllSettledPromise, createAsyncAnyPromise, createAsyncPromise, createAsyncRacePromise, createAsyncRejectedPromise, createAsyncResolvedPromise, createIdleAllPromise, createIdleAllSettledPromise, createIdleAnyPromise, createIdlePromise, createIdleRacePromise, createIdleRejectedPromise, createIdleResolvedPromise, createNativeAllPromise, createNativeAllSettledPromise, createNativeAnyPromise, createNativePromise, createNativeRacePromise, createNativeRejectedPromise, createNativeResolvedPromise, createPromise, createRacePromise, createRejectedPromise, createResolvedPromise, createSyncAllPromise, createSyncAllSettledPromise, createSyncAnyPromise, createSyncPromise, createSyncRacePromise, createSyncRejectedPromise, createSyncResolvedPromise, createTaskScheduler, createTimeoutPromise, doAwait, doAwaitResponse, doFinally, doWhileAsync, iterForOfAsync, setCreatePromiseImpl, setDefaultIdlePromiseTimeout, setDefaultIdleTimeout, setPromiseDebugState };\n//# sourceMappingURL=ts-async.js.map\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.6\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.6\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.6\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 - Common, 3.3.6\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 - Core, 3.3.6\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createEnumStyle } from \"./EnumHelperFuncs\";\r\nexport var ActiveStatus = 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.6\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.6\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, getNavigator, getWindow, isFunction, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DATA, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_LENGTH, _DYN_MESSAGE, _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 /**\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);\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) {\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 _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, _isOneDs ? STR_EMPTY : res);\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 _handleError(response_1.statusText);\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 _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n else {\r\n _handleError(result.reason && result.reason[_DYN_MESSAGE /* @min:%2emessage */]);\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));\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 // 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.6\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.6\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 - Common, 3.3.6\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.6\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.6\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.6\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 - Channel, 3.3.6\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.6\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.6\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.6'\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.6\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 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.6\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, isFetchSupported, isNullOrUndefined, mergeEvtNamespace, objExtend, onConfigChange, parseResponse, prependTransports, runTargetUnload } from \"@microsoft/applicationinsights-core-js\";\r\nimport { 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.maxRetryCnt = { isVal: isNumber, v: 10 },\r\n _a));\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 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 return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\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 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 async - 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 (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = 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 */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n result = forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\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 }\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 _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 data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, data);\r\n },\r\n fetchOnComplete: function (response, onComplete, resValue, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH /* @min:%2elength */], response.statusText, resValue || \"\");\r\n },\r\n xhrOnComplete: function (request, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(request, data, data[_DYN_LENGTH /* @min:%2elength */]);\r\n },\r\n beaconOnRetry: function (data, onComplete, canSend) {\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 return _getOnComplete(payload, status, headers, response);\r\n };\r\n var payloadData = _getPayload(payload);\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 return sendPostFunc(payloadData, onComplete, !isAsync);\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 if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\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 - Channel, 3.3.6\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.6\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.6\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.6\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 - Common, 3.3.6\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.6\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 - Core, 3.3.6\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 */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\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.6\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.6\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\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\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 * 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 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 var isPending = _activeStatus === 3 /* eActiveStatus.PENDING */;\r\n if (isPending) {\r\n // means waiting for previous promises to be resolved, won't apply new changes\r\n return;\r\n }\r\n _initInMemoMaxSize = rootCfg.initInMemoMaxSize || maxInitQueueSize;\r\n // app Insights core only handle ikey and endpointurl, aisku will handle cs\r\n var ikey = rootCfg.instrumentationKey;\r\n var endpointUrl = rootCfg.endpointUrl; // do not need to validate endpoint url, if it is null, default one will be set by sender\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 // reset to false for new dynamic changes\r\n _isStatusSet = false;\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n var initTimeout = isNotNullOrUndefined(rootCfg.initTimeOut) ? rootCfg.initTimeOut : maxInitTimeout; // rootCfg.initTimeOut could be 0\r\n var allPromises = createSyncAllSettledPromise(promises);\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 config.instrumentationKey = _instrumentationKey; // set config.instrumentationKey for extensions to consume\r\n config.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 else {\r\n // means no promises\r\n _setStatus();\r\n }\r\n //_instrumentationKey = details.cfg.instrumentationKey;\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.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 _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 _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 _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 }\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// 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 - Dependencies Plugin, 3.3.6\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.6\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: 7\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.6\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 // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\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.6\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, 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 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 _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}\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[_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 _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 return init;\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 return xhr;\r\n }\r\n return undefined;\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 /// Verifies that particular instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\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 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.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.6\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.6\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.6\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.6';\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.6\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.6\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.6\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.6\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\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 }\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.6\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: |\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.6\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.6\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.6\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.6\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 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),\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\n/**\r\n * Application Insights API\r\n * @group Entrypoint\r\n * @group Classes\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\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 function _parseCs() {\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 if (isPromiseLike(configCs)) {\r\n var ikeyPromise = createSyncPromise(function (resolve, reject) {\r\n _parseCs().then(function (cs) {\r\n var ikey = _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n ikey = cs && cs.instrumentationkey || ikey;\r\n resolve(ikey);\r\n }).catch(function (e) {\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 var url = _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */];\r\n if (isNullOrUndefined(url)) {\r\n url = createSyncPromise(function (resolve, reject) {\r\n _parseCs().then(function (cs) {\r\n var url = _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n var ingest = cs && cs.ingestionendpoint;\r\n url = ingest ? ingest + DEFAULT_BREEZE_PATH : url;\r\n resolve(url);\r\n }).catch(function (e) {\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 _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 (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n if (async && !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 */](async, flushDone);\r\n }\r\n });\r\n // decrement the initial \"waiting\"\r\n flushDone();\r\n }, null, async);\r\n return result;\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = 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 */](async);\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)) {\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)) {\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)) {\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 && !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_1 = sdkSrc.toLowerCase();\r\n if (url_1) {\r\n var src_1 = \"\";\r\n arrForEach(cdns, function (value, idx) {\r\n if (strIndexOf(url_1, value) !== -1) {\r\n src_1 = \"cdn\" + (idx + 1);\r\n if (strIndexOf(url_1, \"/scripts/\") === -1) {\r\n if (strIndexOf(url_1, \"/next/\") !== -1) {\r\n src_1 += \"-next\";\r\n }\r\n else if (strIndexOf(url_1, \"/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","/*\n * Application Insights JavaScript SDK - Web, 3.3.6\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_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 4\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.6\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { throwUnsupported } from \"@nevware21/ts-utils\";\r\nimport { AppInsightsSku } from \"./AISku\";\r\nimport { _DYN_UPDATE_SNIPPET_DEFIN2 } from \"./__DynamicConstants\";\r\nvar ApplicationInsightsContainer = /** @class */ (function () {\r\n function ApplicationInsightsContainer() {\r\n }\r\n ApplicationInsightsContainer.getAppInsights = function (snippet, version) {\r\n var theSku = new AppInsightsSku(snippet);\r\n // Two target scenarios:\r\n // Removed: 1. Customer runs v1 snippet + runtime. If customer updates just cdn location to new SDK, it will run in compat mode so old apis work\r\n // 2. Customer updates to new snippet (that uses cdn location to new SDK. This is same as a new customer onboarding\r\n // and all api signatures are expected to map to new SDK. Note new snippet specifies version\r\n if (version >= 2.0) {\r\n theSku[_DYN_UPDATE_SNIPPET_DEFIN2 /* @min:%2eupdateSnippetDefinitions */](snippet);\r\n theSku.loadAppInsights(false);\r\n return theSku; // default behavior with new snippet\r\n }\r\n throwUnsupported(\"V1 API compatibility is no longer supported\");\r\n };\r\n return ApplicationInsightsContainer;\r\n}());\r\nexport { ApplicationInsightsContainer };\r\n//# sourceMappingURL=ApplicationInsightsContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.6\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\nimport { createEnumStyle } from \"../JavaScriptSDK.Enums/EnumHelperFuncs\";\r\nexport var LoggingSeverity = createEnumStyle({\r\n DISABLED: 0 /* eLoggingSeverity.DISABLED */,\r\n CRITICAL: 1 /* eLoggingSeverity.CRITICAL */,\r\n WARNING: 2 /* eLoggingSeverity.WARNING */,\r\n DEBUG: 3 /* eLoggingSeverity.DEBUG */\r\n});\r\n//# sourceMappingURL=LoggingEnums.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.6\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel = createEnumStyle({\r\n Verbose: 0 /* eSeverityLevel.Verbose */,\r\n Information: 1 /* eSeverityLevel.Information */,\r\n Warning: 2 /* eSeverityLevel.Warning */,\r\n Error: 3 /* eSeverityLevel.Error */,\r\n Critical: 4 /* eSeverityLevel.Critical */\r\n});\r\n//# sourceMappingURL=SeverityLevel.js.map"],"names":["_pureAssign","func1","func2","_pureRef","value","name","_primitiveTypes","UNDEF_VALUE","undefined","NULL_VALUE","EMPTY","FUNCTION","OBJECT","PROTOTYPE","__PROTO__","UNDEFINED","CONSTRUCTOR","SYMBOL","POLYFILL_TAG","LENGTH","NAME","CALL","TO_STRING","Object","StrCls","String","StrProto","MathCls","Math","ArrCls","Array","ArrProto","ArrSlice","func","argArray","v","apply","this","e","_createIs","theType","_createObjIs","theName","objToString","call","isNullOrUndefined","isDefined","arg","isPrimitiveType","indexOf","isObject","isDate","isNumber","isBoolean","isError","then","isTruthy","cb","defValue","result","objGetOwnPropertyDescriptor","obj","prop","hasOwnProperty","objHasOwn","polyObjHasOwn","theObject","callbackfn","thisArg","propMap","c","w","g","s","_createProp","l","get","desc","set","newValue","key","objDefineProperties","target","propDesc","_createKeyValueMap","values","keyType","valueType","completeFn","writable","theMap","_assignMapValue","enumerable","asString","ERROR_TYPE","dumpObj","object","format","propertyValueDump","objType","stack","message","JSON","stringify","replace","throwError","Error","TypeError","_objFreeze","_doNothing","_getProto","objAssign","objKeys","objFreeze","objGetPrototypeOf","createEnumKeyMap","_globalCfg","_wellKnownSymbolMap","asyncIterator","hasInstance","isConcatSpreadable","iterator","match","matchAll","search","species","split","toPrimitive","toStringTag","unscopables","GLOBAL_CONFIG_KEY","_getGlobalValue","globalThis","self","window","_getGlobalConfig","gbl","_unwrapFunction","_unwrapFunctionWithPoly","funcName","clsProto","polyFunc","clsFn","theFunc","theArgs","arguments","_unwrapProp","propName","mathMin","mathMax","strSlice","strSubstr","polyStrSubstr","start","length","strLeft","count","_polySymbols","_wellKnownSymbolCache","_globalLazyTestHooks","UNIQUE_REGISTRY_ID","_globalSymbolRegistry","gblCfg","gblSym","k","polyNewSymbol","description","theSymbol","toString","polySymbolFor","registry","newSymbol_1","regId_1","_initTestHooks","getLazy","lazyValue","b","lzy","configurable","toJSON","_cachedGlobal","WINDOW","_getGlobalInstFn","getFn","cachedValue","getGlobal","useCached","hasDocument","hasWindow","getWindow","_symbol","_symbolFor","getHistory","isNode","process","versions","node","isWebWorker","WorkerGlobalScope","_initSymbol","_getSymbolKey","_iterSymbol$1","hasSymbol","getSymbol","noPoly","knownName","sym","polyGetKnownSymbol","newSymbol","symbolFor","next","isStrictNullOrUndefined","iter","err","iterResult","done","failed","throw","return","fnApply","fn","arrAppend","elms","push","elm","theArray","len","idx","arrMap","end","arrReduce","_isProtoArray","_unsupportedError","objCreate","polyObjCreate","type","tempFunc","objSetPrototypeOf","proto","d","_a","_setName","baseClass","constructCb","errorBase","theBaseClass","orgName","captureFn","captureStackTrace","__","_createCustomError","_this","_self","orgProto","throwUnsupported","Date","now","polyUtcNow","getTime","_createTrimFn","exp","mathFloor","_fnToString","_objCtrFnString","_gblWindow","isPlainObject","Function","ex","_defaultDeepCopyHandler","details","plainObjDeepCopyHandler","defaultDeepCopyHandlers","copyTo","_deepCopy","visitMap","ctx","userHandler","handler","newPath","path","concat","newCtx","src","isPlain","isPrim","origin","copy","source","newKey","_copyProps","theEntry","entry","_getSetVisited","newEntry","_doExtend","theArg","objCopyProps","deepExtend","obj1","obj2","obj3","obj4","obj5","obj6","_perf","mathRound","strSplit","setValueByKey","parts","lastKey","pop","strEndsWith","polyStrEndsWith","searchString","searchValue","REF","UNREF","HAS_REF","ENABLED","_createTimerHandler","startTimer","refreshFn","cancelFn","theTimerHandler","ref","timerId","_unref","_cancel","_refresh","cancel","refresh","h","dn","_createTimeoutWith","overrideFn","isArr","setFn","setTimeout","clearFn","clearTimeout","timerFn","callback","timeout","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_gbl","_gblInst","o","n","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","curProto","_forEachProp","props","name_1","lp","_isDynamicCandidate","skipOwn","_throwTypeError","_hasVisited","_populatePrototype","className","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFunc","currentDynProtoProxy","instFuncTable","canAddInst","objProto","visited","protoFunc","_getInstFunc","_getProtoFunc","instFuncs_1","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","options","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","baseFuncs","_instFuncProxy","funcHost","baseProto","_getBaseFuncs","strShimObject","strHasOwnProperty","__assignFn","t","i","p","extendStaticsFn","__proto__","__extendsFn","constructor","__spreadArrayFn","to","from","il","j","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_WATCH","_DYN_APPLY","_DYN_SPLICE","_DYN_LOGGER","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_REMOVE_NOTIFICATION_0","_DYN_ADD_NOTIFICATION_LIS1","_DYN_IS_INITIALIZED","_DYN_VALUE","_DYN_GET_NOTIFY_MGR","_DYN_GET_PLUGIN","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT2","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_DIAG_LOG","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_USER_AGENT","_DYN_REPLACE","_DYN_STATUS","_DYN_GET_ALL_RESPONSE_HEA5","_DYN_IS_CHILD_EVT","_DYN_DATA","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_ITEMS_RECEIVED","_DYN_URL_STRING","_DYN_HEADERS","_DYN_TIMEOUT","_DYN_GET_ATTRIBUTE","UNDEFINED_VALUE","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","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","_all","letter","toUpperCase","toISOString","date","getExceptionName","setValue","field","valChk","srcChk","theValue","getSetValue","_createProxyFunction","srcFunc","originalArguments","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","theFuncName","optimizeObject","extended","argLen","deep","isArgArray","isArgObj","isNewArray","clone","isFeatureEnabled","feature","cfg","rlt","ft","featureOptIn","mode","getResponseText","xhr","responseText","formatErrorMessageXdr","xdr","formatErrorMessageXhr","prependTransports","theTransports","newTransports","strWithCredentials","_appendHeader","theHeaders","getResponseHeader","_getAllResponseHeaders","isOneDs","headersString","headers","headerEntry","header","substring","strDocumentMode","strLocation","strConsole","strJSON","strCrypto","strMsCrypto","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","property","supported","getLocation","checkForMock","mockLocation","location","hasJSON","Boolean","getJSON","isIE","nav","userAgent","getIEVersion","userAgentStr","navigator_1","ua","doc","parseInt","tridentVer","isBeaconsSupported","sendBeacon","isFetchSupported","withKeepAlive","isSupported","request","useXDomainRequest","XDomainRequest","isXhrSupported","sendCustomEvent","evtName","customDetails","evnt","global","CustomEvent","eventName","event","detail","createEvent","initCustomEvent","createCustomDomEvent","dispatchEvent","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","random","random32","signed","getRandomValues","Uint32Array","mwcRandom32","newId","maxLength","number","chars","charAt","version","instanceName","_dataUid","_canAcceptData","nodeType","createUniqueNamespace","includeVersion","createElmNodeData","data","id","accept","addDefault","theCache","_getCache","kill","_isConfigDefaults","isVal","fb","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","dfVal","fallbacks","fallback","fbValue","_resolveDefaultValue","newValue_1","_applyDefaultValue","defaultValue","isValid","mergeDf","reference","readOnly","blkDynamicValue","rdOnly","blkVal","mrg","usingDefault","cfgValue","dfName","dfValue","CFG_HANDLER_LINK","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","_canMakeDynamic","getFunc","state","throwInvalidAccess","aggregationErrorType","arrayMethodsToPatch","_throwDynamicError","logger","_getOwnPropGetter","_setDynamicProperty","getter","trk","clr","checkDynamic","isObjectOrArray","_getProperty","_makeDynamicObject","activeHandler","act","chng","add","ro","upd","isReferenced","rf","hdlr","valueState","newIsObjectOrArray","_createDynamicProperty","_setDynamicPropertyState","flags","isDynamic","inPlace","blkProp","blockDynamicConversion","method","orgMethod","args","_i","_patchArray","symPrefix","symPostfix","_createState","cfgHandler","theState","dynamicPropertySymbol","uid","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","_useHandler","prevWatcher","bind","setDf","_notifyWatchers","notifyHandlers","watcherFailures_1","sourceErrors","errors","theMessage","srcError","throwAggregationError","notify","use","_createDynamicHandler","getDynamicConfigHandler","newTarget","defaultValues","watch","configHandler","rm","_createAndUseHandler","_block","allowUpdate","prevUpd","createDynamicConfig","config","defaultConfig","onConfigChange","_logInvalidAccess","_debugListener","listenerFuncs","_aiNamespace","_listenerProxyFunc","dbgExt","getDebugExt","listener","ns","disableDbgExt","STR_WARN_TO_CONSOLE","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","enableDebug","_logFuncs","_sanitizeDiagnosticText","text","_logToConsole","theConsole","console","logFunc","_InternalLogMessage","msgId","msg","isUserAct","properties","strProps","diagnosticText","dataType","safeGetLogger","core","DiagnosticLogger","identifier","queue","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_messageCount","_messageLogged","_logInternalMessage","severity","logMessage","messageKey","_debugExtMsg","throttleLimitMessage","throttleMessage","errorToConsole","_setDefaultsFromConfig","consoleLoggingLevel","debugToConsole","resetInternalMessageCount","logInternalMessage","isAsync","__ieDyn","_getLogger","_throwInternal","_warnToConsole","createEnumStyle","createValueMap","mapClass","createSimpleMap","StorageType","LocalStorage","SessionStorage","DistributedTracingModes","AI","AI_AND_W3C","W3C","EventPersistence","Normal","Critical","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_PRE_TRIGGER_DATE","_DYN_GET_UTCDATE","_DYN_STRINGIFY","_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","_canUseLocalStorage","_canUseSessionStorage","_storagePrefix","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","storage","setItem","fail","getItem","exception","_getSessionStorageObject","utlCanUseSessionStorage","utlSetStoragePrefix","storagePrefix","reset","utlGetLocalStorage","utlSetLocalStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","dataSanitizeKeyAndAddUniqueness","map","origLength","nameTrunc","dataSanitizeKey","uniqueField","dataSanitizeString","valueTrunc","dataSanitizeUrl","url","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","input","_msgId","inputTrunc","createTelemetryItem","item","baseType","envelopeName","customProperties","systemProperties","iKey","telemetryItem","time","ext","tags","baseData","TelemetryItemCreator","create","Event","aiDataContract","ver","envelopeType","Trace","severityLevel","DataPoint","kind","min","max","stdDev","Metric","metrics","dataPoint","isNaN","strEmpty","msToTimeSpan","totalms","ms","sec","hour","days","PageView","durationMs","duration","dataSanitizeId","PageViewPerformance","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","STACKFRAME_BASE_SIZE","IS_FRAME","PARSE_FILENAME_LINE_COL","PARSE_FILENAME_LINE_ONLY","NoMethod","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_parseSequence","re","m","ln","col","chk","frame","pre","hdl","_handleFilename","_stringify","convertToString","_formatMessage","theEvent","errorType","evtMessage","_isStackDetails","_convertStackObj","errorStack","items","_getStackFromErrorObj","errorObj","errorMessage","lines","_getOperaStack","reason","_parseStack","parsedStack","frames","level_1","foundStackStart_1","totalSizeInBytes_1","trimmedFrame","test","_isStackFrame","theFrame","parsedFrame","level","stackFrameAiDataContract","assembly","fileName","line","sizeInBytes","sequence","matches","_parseFilename","_populateFrameSizeInBytes","_extractStackFrame","left","right","size","acceptedLeft","acceptedRight","howMany","splice","_getErrorType","typeName","results","exec","_formatErrorCode","Exception","exceptions","_isExceptionInternal","_createExceptionDetails","isManual","CreateAutoException","lineNumber","columnNumber","error","evt","errorSrc","stackDetails","CreateFromInterface","_stackFrameFromInterface","exceptionDetails","_createExDetailsFromInterface","prototype","toInterface","problemGroup","CreateSimpleException","formatError","exDetailsAiDataContract","outerId","hasFullStack","_toInterface","_parsedFrameToInterface","theStack","_isExceptionDetailsInternal","exceptionTrunc","dataSanitizeException","join","_formatStackTrace","lineCol","lineNo","filename","generateW3CId","tmp","hexValues","oct","a","clockSequenceHi","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","_formatFlags","createTraceParent","traceId","spanId","isValidTraceId","isValidSpanId","traceFlags","formatTraceParent","toLowerCase","RequestHeaders","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","createElement","host","urlParseHost","href","inclPort","fullHost","urlParseFullHost","protocol","port","_internalEndpoints","_correlationIdPrefix","isInternalApplicationInsightsEndpoint","endpointUrl","correlationIdCanIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","enableCorsCorrelation","matchExists_1","includedDomains","correlationHeaderDomains","domain","regex","RegExp","excludedDomains","correlationHeaderExcludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationId","keyValues","keyValue","correlationIdGetCorrelationContextValue","dateTimeUtilsNow","perf","timing","navigationStart","dateTimeUtilsDuration","createDistributedTraceContextFromTrace","telemetryTrace","parentCtx","trace","getName","setName","getTraceId","traceID","setTraceId","getSpanId","parentID","setSpanId","getTraceFlags","setTraceFlags","newTraceFlags","_b","RemoteDependencyData","absoluteUrl","commandName","success","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","parsedUrl","pathName","pathname","AjaxHelperParseDependencyPath","createDomEvent","initEvent","_stringToBoolOrDefault","cfgDfMerge","cfgDfSet","setter","cfgDfValidate","validator","fallBackName","cfgDfBoolean","_doc","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_cookieCache","_globalCookieConfig","rootDefaultConfig","cookieCfg","enabled","ignoreCookies","blockedCookies","cookieDomain","cookiePath","_getDoc","_isMgrEnabled","cookieMgr","isEnabled","_isIgnoredCookie","cookieMgrCfg","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","getCookieMgr","createCookieMgr","inst","_gblCookieMgr","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","getCookie","_getCookieValue","setCookie","_setCookieValue","delCookie","areCookiesSupported","gblManager","setEnabled","maxAgeSec","_isBlockedCookie","_extractParts","_isIE","expireMs","expiry","setTime","_formatDate","location_1","uaDisallowsSameSiteNone","_formatCookieValue","del","purge","unload","thePart","theDate","cookieValue","theCookie","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","sort","_getRegisteredEvents","aiEvts","registeredEvents","_doDetach","handlerRef","useCapture","_doUnregister","events","unRegFn","capture","mergeEvtNamespace","theNamespace","namespaces","eventOn","_doAttach","registeredEvent","guid","eventOff","evtName_1","found_1","eventCache","evtType","_unregisterEvents","regEvent","_addEventListeners","excludeEvents","added","addEventHandler","removeEventListeners","removeEventHandler","addPageUnloadEventListener","addEventListeners","addPageHideEventListener","newNamespaces","pageUnloadAdded","visibilityState","strExecutionContextKey","strParentContextKey","strChildrenContextKey","_defaultPerfManager","PerfEvent","payloadDetails","theDetails_1","complete","childTime","childEvts","childEvt","exTime","ParentContextKey","ChildrenContextKey","PerfManager","manager","fire","perfEvent","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","children","pluginStateData","_getPluginState","plugin","initializePlugins","processContext","extensions","pluginState","initPlugins","lastPlugin","proxy","thePlugin","isInitialized","getCfg","sortPlugins","plugins","extA","extB","bHasProcess","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_createInternalContext","telemetryChain","startAt","_nextProxy","_onComplete","createTelemetryProxyChain","_getNextProxyStart","context","_next","nextProxy","onComplete","completeDetails","diagLog","getExtCfg","newConfig","_getExtCfg","getConfig","extConfig","hasNext","getNext","setNext","nextPlugin","iterate","that","createIfMissing","idCfg","extCfg","createProcessTelemetryContext","internalContext","env","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","newProxy","chainId","hasProcessTelemetry","hasSetNext","proxyChain","getPlugin","processTelemetry","_processTelemetry","_unloadPlugin","update","_updatePlugin","_id","_setNext","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","nextId","hasNextRun","_callProcessTelemetry","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","createTelemetryPluginProxy","_maxHooks","_hookAddMonitor","aiInstrumentHooks","cbNames","_arrLoop","arr","_doCallbacks","hooks","callDetails","cbArgs","hookCtx","hook","cbks","orgEx","hookErrorCb","_getOwner","checkPrototype","checkParentProto","owner","_createInstrumentHook","callbacks","aiHook","newFunc","orgArgs","funcArgs","_createArgs","f","rslt","_createFunctionHook","theHook","InstrumentFunc","InstrumentEvent","createUnloadHandlerContainer","handlers","run","createUnloadHookContainer","_hooks","oldHooks","remove","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","currentCtx","rootCtx","_setDefaults","pluginChain","_initDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_doUpdate","_updateCallback","setInitialized","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_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_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_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","_logger","queueTimer","itemQueue","pageViewPerformanceSent","firstPageViewSent","_flushChannels","flush","_startTimer","allItems","slice","doFlush","_addQueue","pageView","title","uri","navigationEntries","timeOrigin","loadEventStart","duration_1","customDuration","pageViewSent","processed","pageViewPerformance","teardown","botAgentNames","_isPerformanceTimingSupported","_isPerformanceTimingDataReady","domainLookupStart","domLoading","_getPerformanceTiming","_getPerformanceNavigationTiming","getEntriesByType","_shouldCollectDuration","durations","isGoogleBot","PageViewPerformanceManager","navigationTiming","total","network","response","dom","requestStart","responseEnd","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","pageName","pageUrl","prevPageVisitData","pageVisitEndTime","pageVisitDataJsonStr","parse","pageVisitTime","pageVisitStartTime","stopPageVisitTimer","currPageVisitDataStr","PageVisitData","restartPageVisitTimer","Timing","_events","stop","action","_dispatchEvent","sessionRenewalMs","_chkConfigMilliseconds","sessionExpirationMs","disableExceptionTracking","samplingPercentage","namePrefix","disableFlushOnBeforeUnload","disableFlushOnUnload","expCfg","inclScripts","expLog","maxLogs","_updateStorageUsage","_debugState","_debugResult","_debugHandled","AnalyticsPlugin","_super","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","_expCfg","priority","autoRoutePVDelay","_prevUri","_currUri","_evtNamespace","_errorHookCnt","_base","_addHook","throwInternal","processNext","trackEvent","startTrackEvent","stopTrackEvent","trackTrace","trackMetric","metric","inPv","refUri","referrer","trackPageViewPerformance","inPvp","startTrackPage","stopTrackPage","measurement","loc","theError","exceptionPartB","scriptsInfo","scripts","getElementsByTagName","script","crossOrigin","async","hasAttribute","defer","referrerPolicy","info","findAllScripts","logs","trackException","_onerror","_window","URL","isCrossOriginError","_sendCORSException","errorString","telemetryInitializer","initialize","initializer","browserLinkPaths_1","dropBrowserLinkRequests","envelope","remoteData","_addDefaultTelemetryInitializers","_populateDefaults","PageName","PageUrl","average","sampleCount","trackPageVisitTime","pageViewItem","locn","rsp","_location","_getReason","_addUnhandledPromiseRejectionTracking","win","_history","pushState","replaceState","history","_popstateHandler","_locationChangeHandler","distributedTraceCtx","getTraceCtx","_getDistributedTraceCtx","traceLocationName","hash","_addHistoryListener","_updateLocationChange","_doTeardown","Version","STR_PROMISE","REJECTED","doAwaitResponse","doAwait","status","rejected","resolveFn","rejectFn","finallyFn","doFinally","finally","_promiseDebugEnabled","_hasInitEvent","STRING_STATES","DISPATCH_EVENT","_hasInitEventFn","_hasPromiseRejectionEvent","NODE_UNHANDLED_REJECTION","UNHANDLED_REJECTION","_currentPromiseId","_uniquePromiseId","_unhandledRejectionTimeout","dumpFnObj","_createPromise","newPromise","processor","executor","_settledValue","_thePromise","additionalArgs","_state","_hasResolved","_queue","_parentId","_handled","_unHandledRejectionHandler","_then","onResolved","onRejected","resolve","reject","_processQueue","_strState","pending","_createSettleIfFn","newState","allowState","_notifyUnhandledRejection","emit","populateEvent","useNewEvent","theEvt","emitEvent","onFinally","thenFinally","catchFinally","thePromise","stateFn","resultFn","handledFn","_addDebugState$1","_rejectFn","_createAllPromise","values_1","pending_1","_createAllSettledPromise","processItem","syncItemProcessor","createAsyncPromise","callbackTimeout","timeoutItemProcessor","_promiseCls","createNativePromise","PrmCls","_allSyncSettledCreator","createSyncPromise","_promiseCreator","createPromise","createAllPromise","_DYN_FEATURE_OPT_IN","_DYN_SCHEDULE_FETCH_TIMEO0","replaceByNonOverrideCfg","nonOverrideConfigs","curLevel","maxLevel","exceedMaxLevel","curCfg_1","objExtend","nonOverrideVal","F","M","ON","OFF","applyCdnfeatureCfg","cdnCfg","optInMap","cdnConfig_1","featureVal","userOptInDetails","cdnFt","cdnM","cdnOnV","onCfg","cdnOffV","offCfg","userFt","userM","userOnV","userOffV","blockCdn","blockCdnCfg","onFld","offFld","onV","offV","resolveCdnFeatureCfg","val","ftVal","dVal","_overrideCdnCfgByFeature","EVENT_NAME","udfVal","_defaultConfig","syncMode","blkCdnCfg","customEvtName","cfgUrl","overrideSyncFn","overrideFetchFn","onCfgChangeReceive","instrumentationKey","connectionString","enableAjax","CfgSyncPlugin","_extensionConfig","_mainConfig","_evtName","_cfgUrl","_timeoutHandle","_receiveChanges","_broadcastChanges","_blkCdnCfg","_fetchTimeout","_retryCnt","_onCfgChangeReceive","_nonOverrideConfigs","_fetchFn","_overrideFetchFn","_overrideSyncFn","_enableAjax","_paused","_setCfg","isAutoSync","_sendCfgsyncEvents","updateCfg","_eventOff","global_1","_updateEventListenerName","global_2","cfgEvent","newCfg","_replaceTartgetByKeys","_addEventListener","_fetchSender","oncomplete","fetchFn","fetch","init","Request","_doOnComplete","ok","res","_xhrSender","xhr_1","XMLHttpRequest","open","onreadystatechange","readyState","DONE","onerror","ontimeout","send","_onFetchComplete","JSON_1","_setupTimer","_cfg","unref","_clearScheduledTimer","preBlkCdn","newEvtName","_getFetchFnInterface","pause","resume","setCfg","sync","updateEventListenerName","_disableEvents","ActiveStatus","NONE","PENDING","INACTIVE","ACTIVE","_noResponseQs","STR_POST_METHOD","SenderPostManager","_enableSendPromise","_isInitialized","_diagLog","_isOneDs","_onCompleteFuncs","_disableCredentials","_fetchCredentials","_fallbackInst","_disableXhr","_disableBeacon","_disableBeaconSync","_disableFetchKeepAlive","_addNoResponse","_timeoutWrapper","_syncFetchPayload","_sendCredentials","_onError","_onNoPayloadUrl","_doBeaconSend","payload","plainTextBatch","Blob","_beaconSender","onRetry","beaconOnRetry","sendPOST","resolveFunc","rejectFunc","disableXhrSync","endPointUrl","urlString","withCredentials","disabled","isSync","_wrapSetXhrProp","openXhr","_doOnReadyFunc","onReadyFunc","xhrOnComplete","setRequestHeader","headerName","onload","_doFetchSender","batch","requestHeaders","Headers","batchLength","ignoreResponse","responseHandled","body","append","credentials","keepalive","_handleError","onCompleteFunc","fetchOnComplete","response_1","resp","statusText","_xdrSender","onloadFunc","xdrOnComplete","onprogress","hostingProtocol","endpoint","lastIndexOf","SetConfig","senderOnCompleteCallBack","disableCredentials","fetchCredentials","enableSendPromise","disableXhr","disableBeacon","disableBeaconSync","timeWrapper","addNoResponse","disableFetchKeepAlive","getSyncFetchPayload","getSenderInst","transports","syncSupport","transportType","sendPostFunc","_transport","_isSync","_getSenderInterface","getFallbackInst","runTargetUnload","doUnloadAll","targets","resolved","parseResponse","itemsAccepted","itemsReceived","_aiNameFunc","baseName","aiName","defaults","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","Extensions","CtxTagKeys","Envelope","sampleRate","Data","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","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","startTime","iKeyNoDashes","envTags","itmExt","itmTags","extUser","user","authId","localId","extApp","app","sesId","extDevice","device","deviceClass","ip","model","web","browserLang","browserVer","browser","envData","envBaseData","envProps","screenRes","userConsent","extOs","os","osVer","extTrace","tgs","tg","theTags","EnvelopeCreator","_extractPartAExtensions","EnvelopeCreatorInit","EventEnvelopeCreator","customMeasurements","eventData","BaseSendBuffer","_buffer","_bufferFullMessageSent","_maxRetryCnt","maxRetryCnt","_get","_set","buffer","eventsLimitInMem","cnt","getItems","batchPayloads","payloads","payloadStr_1","createNew","newLogger","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","PREVIOUS_KEYS","_namePrefix","bufferItems","_getBuffer","itemsInSentBuffer","previousItems","_getItemsFromPreviousKey","prefixEvents","_getPreviousEvents","notDeliveredItems","_removePayloadsFromBuffer","remaining","payloadStr","prefixedKey","_getBufferBase","bufferJson","buffer_1","_setBuffer","transFormedItems_1","internalItem","sentElements","unsentItems","sentItems","VERSION","BUFFER_KEY","SENT_BUFFER_KEY","MAX_BUFFER_SIZE","Serializer","_serializeObject","circularReferenceCheck","output","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isArray","isPresent","isObj","sources","expectedType","num","parseFloat","serialize","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","charCodeAt","abs","SamplingScoreGenerator","hashCodeGenerator","keys","getSamplingScore","Sample","samplingRate","samplingScoreGenerator","isSampledIn","_getResponseText","defaultAppInsightsChannelConfig","maxBatchInterval","disableTelemetry","isRetryDisabled","convertUndefined","httpXHROverride","retryCodes","EnvelopeTypeCreator","currentContextId","bd","pageType","isLoggedIn","pageViewData","exData","baseMetricData","remoteDepData","responseCode","Sender","_consecutiveErrors","_retryAt","_serializer","_stamp_specific_redirects","_headers","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_beaconOnUnloadSupported","_beaconNormalSupported","_customHeaders","_disableTelemetry","_instrumentationKey","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_alwaysUseCustomSend","_fetchKeepAlive","_xhrSend","_fallbackSend","_disableBeaconSplit","_sendPostMgr","_retryCodes","_xdrOnLoad","_xhrReadyStateChange","countOfItemsInPayload","_checkResponsStatus","responseURL","_getPayloadArr","oriPayload","_validate","diagLogger","_sample","_getEnvelope","defaultEnvelopeIkey","aiEnvelope","constructEnvelope","doNotSendItem","callBack","_serialize","valid","_batch","_createPayload","_getHeaders","_doSend","sendInterface","markAsSent","payloadData","_getPayload","_onSuccess","_getOnComplete","_checkMaxSize","incomingPayload","incomingSize","isOnline","responseUrl","_appId","appId","_checkAndUpdateEndPointUrl","_resendPayload","_isRetriable","_doUnloadSend","_isStringArr","_fetchKeepAliveSender","transport","payloadSize","linearFactor","payload_1","delayInSeconds","SlotDelayInSeconds","backOffSlot","pow","backOffDelay","retryAfterTimeSpan","_setRetryTime","retryInterval","timerValue","statusCode","sendReason","onunloadFlush","addHeader","parentEvtNamespace","_navigator","_isListening","listenerList","rState","onLine","uState","_currentState","calCurrentState","_enableEvents","ononline","_setOnline","_setOffline","listnerNoticeCheck","offlineState","isListening","addListener","index","setOnlineState","createOfflineListener","senderConfig","curExtUrl","coreUrl","activeStatus","customHeader","bufferOverride","shouldUpdate","disableValidation","disableInstrumentationKeyValidation","_validateInstrumentationKey","sendPostConfig","resValue","canSend","internalPayload","droppedPayload","thePayload","_onBeaconRetry","_getSendPostMgrConfig","customInterface","httpInterface","syncInterface","xhrInterface","syncTransports","unloadTransports","filter","payloadItem","isCompletelyIdle","getOfflineListener","forcedSender","sendRequest","_getNotifyMgr","eventsSendRequest","_notifySendRequest","ieVer","getOfflineSupport","getUrl","createPayload","shouldProcess","retry","reverse","errors_1","extracted","_onPartialSuccess","orig","parseConnectionString","kvPairs","fields","kv","kvParts","endpointsuffix","locationPrefix","ThrottleMgr","_config","_localStorageObj","_isTriggered","_isReady","_isSpecificDaysGiven","_flushMessage","msgID","saveUnsentMsg","_getCfgByKey","maxValue","limit","_canSampledIn","localStorageObj","_getLocalStorageObjByKey","canThrottle","_canThrottle","throttled","isTriggered","_isTrigger","maxSendNumber","localStorageName","_getLocalStorageName","_resetLocalStorage","_sendMessage","isThrottled","throttleNum","_getQueueByKey","_setCfgByKey","interval","monthInterval","dayInterval","curCfg","configInterval","daysOfMonth","canUseLocalStorage","curDate","_getThrottleDate","monthCheck","monthExpand","getUTCFullYear","getUTCMonth","_checkInterval","dayCheck","daySpan","msgKey","prefix","fix","dateStr","getDate","storageName","current","curObj","storageObj","preTriggerDate","_getLocalStorageObj","isTrigger","_isTriggeredOnCurDate","addUnloadHook","coreConfig","throttleMgrCfg","localObj","isReady","flushAll","result_1","isFlushed","onReadyState","sendMessage","perfEvtsSendAll","_runScheduledListeners","asyncNotifications","_runListeners","listeners","NotificationManager","_listeners","_asyncNotifications","rn_1","waiting","_finishUnload","asyncUnload","TelemetryInitializerPlugin","_initializers","addTelemetryInitializer","theInitializer","_addInitializer","telemetryInitializersCount","_runInitializers","strValidationError","strSdkUnloadingError","diagnosticLogInterval","_createPerfManager","notificationMgr","_isPluginPresent","exists","_deepMergeConfig","newValues","merge","_findWatcher","newWatcher","theListener","_initDebugListener","unloadContainer","notificationManager","debugListener","getDebugListener","AppInsightsCore","_configHandler","_eventQueue","_notificationManager","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_unloadHandlers","_traceCtx","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_activeStatus","_endpoint","_initInMemoMaxSize","_isStatusSet","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","_setStatus","_releaseQueues","releaseQueue","pollInternalLogs","_startLogPoller","alwaysStart","_addUnloadHook","isRunning","createTimeout","_flushInternalLogs","_setPluginVersions","thePlugins","_addPluginVersions","channels","cfgExtensions","_createTelCtx","theCtx","_getPluginChain","_initPluginChain","theExtensions","channelPriority","allExtensions","coreExtensions","extPriorities","extPriority","_validateExtensions","_getPlugin","pluginIdentifier","theExt","channelHosts","getChannel","removeCb","pluginsToRemove","_removePlugins","removed","removeComplete","newConfigExtensions","newChannelConfig","newQueue","channel","track","cbTimeout","doneIterating","cbTimer","doCallback","handled_1","_updateHook","_logOrThrowError","_notifyInvalidEvent","_setPendingStatus","prevCfgPerfMgr","rootCfg","initInMemoMaxSize","ikey","promises","initTimeout","initTimeOut","allPromises","ikeyRes","endpointRes","enablePerfMgr","createPerfMgr","teeController","unloadHdl","_registerDelayedCfgListener","getChannels","controls","getNotifyMgr","setCookieMgr","setPerfMgr","eventCnt","eventQueue","unloadComplete","flushComplete","processUnloadCtx","_doUnload","addPlugin","replaceExisting","addCb","existingPlugin","_addPlugin","removedPlugins_1","mergeExisting","oldCfg","setTraceCtx","traceCtx","onCfgChange","unloadHook","fnd","_createUnloadHook","getWParam","enableWParam","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","XHRMonitoringState","openDone","setRequestHeaderDone","sendDone","abortDone","ajaxRecord","completed","requestHeadersSize","responseReceivingDuration","callbackDuration","requestSize","responseStartedTime","callbackFinishedTime","endTime","xhrMonitoringState","clientFailure","getAbsoluteUrl","getPathName","ajaxType","enableRequestHeaderTracking","getResponse","ajaxTotalDuration","requestSentTime","responseFinishedTime","dependency","ajaxData","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","perfAttempts","_populatePerfData","headerMap","responseHeaders","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","_getAjaxData","ajaxDataId","_isHeaderSet","xh","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_ajaxDataId","_indexOf","_addHandler","container","theHandler","_processDependencyContainer","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","distributedTracingMode","maxAjaxPerfLookupAttempts","ignoreHeaders","addRequestContext","addIntEndpoints","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_polyfillInitialized","_canIncludeHeaders","_hookProto","InstrumentProto","_isDisabledRequest","isDisabled","theUrl","theRegex","idx2","_isMonitoredXhrInstance","excludeAjaxDataValidation","ajaxValidation","initialized","_createMarkId","performance_1","mark","markId","entries","getEntriesByName","_findPerfResourceEntry","initiatorType","trackCallback","reportError","perfMark","performance","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","getEntries","entryType","clearMarks","_getFailedFetchDiagnosticsMessage","_reportFetchMetrics","_reportFetchError","failedProps","errorProps","sysProperties","_reportDependencyInternal","initializers","aborted","propExt","abort","xhrData","theOpen","_supportsAjaxMonitoring","req","spanID","xhrRequestData","ajaxDataCntr","_openHandler","_reportXhrError","ajaxResponse","responseHeadersString","_getAjaxCorrelationContext","responseHeaderMap_2","shift","_onAjaxComplete","exceptionText","_attachToOnReadyStateChange","hkErr","_addSharedXhrHeaders","_instrumentXhr","_global","isPolyfill","polyfill","fetchData","forEach","_createFetchRecord","newInit","fetchData_1","fetchDiagnosticsMessage","_getFetchCorrelationContext","responseHeaderMap_1","catch","_instrumentFetch","trackDependencyData","currentWindowHost","_processDependencyListeners","traceParent","addDependencyListener","dependencyListener","addDependencyInitializer","dependencyInitializer","Application","Device","Internal","unloadHookContainer","sdkExtension","sdkVersion","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","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","_initializeAutomaticSessionWithData","session","sessionData","sessionReset","tokens","acqMs","renewalMs","_setCookie","nowMs","acq","renewalPeriodMs","acqTimeLeftMs","cookie","isExpired","storageValue","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","getNewId","idLength","_renew","backup","renewal","TelemetryTrace","parentId","_validateUserInput","User","isNewUser","isUserCookieSet","userCookiePostfix","userCookieName","params","_generateNewId","_setUserCookie","_generateNewCookie","utlRemoveStorage","authCookie","authCookieString","decodeURI","acqStr","accountAcquisitionDate","setAuthenticatedUserContext","authenticatedUserId","accountId","storeInCookie","encodeURI","clearAuthenticatedUserContext","cookieSeparator","authUserCookieName","strExt","strTags","_removeEmpty","_nullResult","undefString","TelemetryContext","previousTraceCtx","application","internal","autoSession","build","applyDeviceContext","agentVersion","snippetVer","sdkSrc","applyWebContext","applyUserContext","cleanUp","nullValue","isBrowserLinkTrackingEnabled","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_disableUserInitMessage","disableUserInitMessage","_unloadHooks","breezeChannel","theContext","userCtx","_processTelemetryInternal","_c","_d","_internalSdkSrc","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_FLUSH","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","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_USER_OVERRIDE_ENDPOI0","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF1","_DYN_SEND_MESSAGE","_DYN_UPDATE_SNIPPET_DEFIN2","_ignoreUpdateSnippetProperties","IKEY_USAGE","CDN_USAGE","SDK_LOADER_VER","default_throttle_config","defaultConfigValues","extensionConfig","AppInsightsSku","snippet","dependencies","_sender","_snippetVersion","_houseKeepingNamespace","_core","_analyticsPlugin","_cfgSyncPlugin","_throttleMgr","_iKeySentMessage","_cdnSentMessage","_sdkVerSentMessage","sv","_removePageEventHandlers","removePageHideEventListener","configCs","_parseCs","curCs","parsedCs","ikeyPromise","cs","instrumentationkey","ingest","ingestionendpoint","flushDone","loadAppInsights","legacyMode","isModule","cdns","scrpt","document","currentScript","url_1","src_1","_findSdkSourceFile","_updateSnippetProperties","emptyQueue","defaultEnable","chkSet","_loop_1","proxyAssign","length_1","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","_sessionManager","added_1","analyticsPlugin","excludePageUnloadEvents","disablePageUnloadEvents","product","getSender","ApplicationInsightsContainer","getAppInsights","theSku","LoggingSeverity","DISABLED","CRITICAL","WARNING","DEBUG","SeverityLevel","Verbose","Information","Warning"],"sourceRoot":""}