{"version":3,"file":"static/js/8239.01af30f5.js","mappings":"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","sources":["../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-shims/src/Constants.ts","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-shims/src/TsLibShims.ts","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/dynamicproto-js/src/DynamicProto.ts","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Offline.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","../node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strDefault = \"default\";\r\n\r\nexport const ObjClass = Object;\r\nexport const ObjProto = ObjClass[strShimPrototype];\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport {\r\n ObjClass, ObjProto,\r\n strDefault, strShimFunction, strShimPrototype\r\n} from \"./Constants\";\r\n\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\n\r\nexport const SymbolObj = (getGlobal()||{})[\"Symbol\"];\r\nexport const ReflectObj = (getGlobal()||{})[\"Reflect\"];\r\nexport const __hasReflect = !!ReflectObj;\r\n\r\nconst strDecorate = \"decorate\";\r\nconst strMetadata = \"metadata\";\r\nconst strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nconst strIterator = \"iterator\";\r\nconst strHasOwnProperty = \"hasOwnProperty\";\r\n\r\nexport declare type ObjAssignFunc = (t: any, ...sources:any[]) => any;\r\n\r\nexport var __objAssignFnImpl: ObjAssignFunc = function(t: any): any {\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 as any)[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\n\r\nexport var __assignFn: ObjAssignFunc = objAssign || __objAssignFnImpl;\r\n\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function(d: any, b: any): any {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d: any, b: any) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d: any, b: any) {\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\n\r\nexport function __extendsFn(d: any, b: any) {\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 __(this: any) {\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 (__ as any)());\r\n}\r\n\r\nexport function __restFn(s: any, e: any) {\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\n\r\nexport function __decorateFn(decorators: any, target: any, key: any, desc: any) {\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 } 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\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\n\r\nexport function __paramFn(paramIndex: number, decorator: Function) {\r\n return function (target: any, key: any) {\r\n decorator(target, key, paramIndex);\r\n }\r\n}\r\n\r\nexport function __metadataFn(metadataKey: any, metadataValue: any) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\n\r\nexport function __exportStarFn(m: any, o: any) {\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\n\r\nexport function __createBindingFn(o: any, m: any, k: any, k2?: any) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n \r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get() {\r\n return m[k];\r\n }\r\n });\r\n } else {\r\n o[k2] = m[k];\r\n }\r\n}\r\n\r\nexport function __valuesFn(o: any) {\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\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next () {\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\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __readFn(o: any, n: any) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\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 } catch (error) {\r\n e = {\r\n error\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 } 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\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\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\r\n return r;\r\n}\r\n\r\nexport function __spreadArrayFn(to: any, from: any) {\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\r\n return to;\r\n}\r\n\r\nexport function __makeTemplateObjectFn(cooked: any, raw: any) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n } else {\r\n cooked.raw = raw;\r\n }\r\n\r\n return cooked;\r\n}\r\n\r\nexport function __importStarFn(mod: any) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\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\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp( result, strDefault, { enumerable: true, value: mod });\r\n } else {\r\n result[strDefault] = mod;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function __importDefaultFn(mod:any) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { getGlobal, objCreate, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n\r\ninterface DynamicGlobalSettings {\r\n /**\r\n * Stores the global options which will also be exposed on the runtime global\r\n */\r\n o: IDynamicProtoOpts,\r\n\r\n /**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */ \r\n n: number\r\n};\r\n\r\nconst UNDEFINED = \"undefined\";\r\n\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */ \r\nconst Constructor = 'constructor';\r\n\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */ \r\nconst Prototype = 'prototype';\r\n \r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst strFunction = 'function';\r\n\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */ \r\nconst DynInstFuncTable = '_dynInstFuncs';\r\n \r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */ \r\nconst DynProxyTag = '_isDynProxy';\r\n \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\nconst DynClassName = '_dynClass';\r\n \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\nconst DynClassNamePrefix = '_dynCls$';\r\n \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\nconst DynInstChkTag = '_dynInstChk';\r\n \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\nconst DynAllowInstChkTag = DynInstChkTag;\r\n \r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nconst DynProtoDefaultOptions = '_dfOpts';\r\n \r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */ \r\nconst UnknownValue = '_unknown_';\r\n \r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst str__Proto = \"__proto__\";\r\n \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\nconst DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nconst DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nconst DynProtoCurrent = \"_dynInstProto\";\r\n \r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst strUseBaseInst = 'useBaseInst';\r\n \r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst strSetInstFuncs = 'setInstFuncs';\r\n \r\nconst Obj = Object;\r\n\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\nlet _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nlet _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n\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\nlet _gbl = getGlobal();\r\nlet _gblInst: DynamicGlobalSettings = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: {\r\n [strSetInstFuncs]: true,\r\n [strUseBaseInst]: true\r\n },\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/**\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:any) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\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:any) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\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:any) {\r\n let newProto;\r\n\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\r\n let curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n\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\r\n return newProto;\r\n}\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: any, func: (name: string) => void) {\r\n let props: string[] = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n } else {\r\n for (let name in target) {\r\n if (typeof name === \"string\" && objHasOwnProperty(target, name)) {\r\n props.push(name);\r\n }\r\n }\r\n }\r\n\r\n if (props && props.length > 0) {\r\n for (let lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\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:any, funcName:string, skipOwn:boolean) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\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:string) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\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:any): any {\r\n // Get the base proto\r\n var instFuncs = objCreate(null);\r\n\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, (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\r\n return instFuncs;\r\n}\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:any[], value:any) {\r\n for (let lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\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:any, thisTarget:any, instFuncs:any, useBaseInst:boolean): any {\r\n function _instFuncProxy(target:any, funcHost: any, funcName: string) {\r\n let 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 let instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\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\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, (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 \r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n let visited:any[] = [];\r\n\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, (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\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\r\n return baseFuncs;\r\n}\r\n\r\nfunction _getInstFunc(target: any, funcName: string, proto: any, currentDynProtoProxy: any) {\r\n let instFunc = null;\r\n\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\r\n let instFuncTable = target[DynInstFuncTable] || objCreate(null);\r\n instFunc = (instFuncTable[proto[DynClassName]] || objCreate(null))[funcName];\r\n\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\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 let canAddInst = !objHasOwnProperty(target, funcName);\r\n\r\n // Get current prototype\r\n let objProto = _getObjProto(target);\r\n let visited:any[] = [];\r\n\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 let protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\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\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\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\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\r\n return instFunc;\r\n}\r\n\r\nfunction _getProtoFunc(funcName: string, proto: any, currentDynProtoProxy: any) {\r\n let protoFunc = proto[funcName];\r\n\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\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n\r\n return protoFunc;\r\n}\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:any, className:string, target:any, baseInstFuncs:any, setInstanceFunc:boolean) {\r\n function _createDynamicPrototype(proto:any, funcName:string) {\r\n let dynProtoProxy = function() {\r\n // Use the instance or prototype function\r\n let 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 \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 as any)[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n \r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n let instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || objCreate(null);\r\n if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n let instFuncs = instFuncTable[className] = (instFuncTable[className] || objCreate(null)); // fetch and assign if as it may not exist yet\r\n\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\r\n if (!_isObjectOrArrayPrototype(instFuncs)) {\r\n _forEachProp(target, (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[name] = target[name];\r\n delete target[name];\r\n \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/**\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:any, thisTarget:any) {\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 let visited:any[] = [];\r\n let 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\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\r\n return false;\r\n }\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/**\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:any, unknownValue?:string) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue\r\n }\r\n\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n\r\n/**\r\n * Interface to define additional configuration options to control how the dynamic prototype functions operate.\r\n */\r\nexport interface IDynamicProtoOpts {\r\n\r\n /**\r\n * Should the dynamic prototype attempt to set an instance function for instances that do not already have an\r\n * function of the same name or have been extended by a class with a (non-dynamic proto) prototype function.\r\n */\r\n setInstFuncs: boolean,\r\n\r\n /**\r\n * When looking for base (super) functions if it finds a dynamic proto instances can it use the instance functions\r\n * and bypass the prototype lookups. Defaults to true.\r\n */\r\n useBaseInst?: boolean\r\n}\r\n\r\n/**\r\n * The delegate signature for the function used as the callback for dynamicProto() \r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid for the proxy instance, even \r\n * though it is only a proxy that only contains the functions \r\n * @param theTarget This is the real \"this\" of the current target object\r\n * @param baseFuncProxy The is a proxy object which ONLY contains this function that existed on the \"this\" instance before\r\n * calling dynamicProto, it does NOT contain properties of this. This is basically equivalent to using the \"super\" keyword.\r\n */\r\nexport type DynamicProtoDelegate = (theTarget:DPType, baseFuncProxy?:DPType) => void;\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:DPCls, target:DPType, delegateFunc: DynamicProtoDelegate, options?:IDynamicProtoOpts): void {\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\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n let classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n\r\n let 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 } 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\r\n let perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n let useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n\r\n // Get the current instance functions\r\n let instFuncs = _getInstanceFuncs(target);\r\n\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n let baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n\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 as DPType);\r\n\r\n // Don't allow setting instance functions for older IE instances\r\n let setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\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/**\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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 ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 4\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\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_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 6\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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 ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 9\r\nexport var _DYN_BLK_VAL = \"blkVal\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 42\r\nexport var _DYN_RD_ONLY = \"rdOnly\"; // Count: 4\r\nexport var _DYN_NOTIFY = \"notify\"; // Count: 4\r\nexport var _DYN_WARN_TO_CONSOLE = \"warnToConsole\"; // Count: 4\r\nexport var _DYN_THROW_INTERNAL = \"throwInternal\"; // Count: 5\r\nexport var _DYN_SET_DF = \"setDf\"; // Count: 6\r\nexport var _DYN_WATCH = \"watch\"; // Count: 9\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 21\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 31\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_HDLR = \"hdlr\"; // Count: 6\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 5\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 4\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 6\r\nexport var _DYN_POLL_INTERNAL_LOGS = \"pollInternalLogs\"; // Count: 2\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_TIME = \"time\"; // Count: 6\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT0 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_REMOVE_NOTIFICATION_2 = \"removeNotificationListener\"; // Count: 4\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: 9\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\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: 6\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 10\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 4\r\nexport var _DYN_UPDATE = \"update\"; // Count: 6\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\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: 5\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 8\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\n//# sourceMappingURL=__DynamicConstants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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_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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\n//# sourceMappingURL=HelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isString, isUndefined, 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 strPerformance = \"performance\";\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\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 Math.max(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 * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\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\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\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//# sourceMappingURL=EnvUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { 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\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((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 = Math.floor((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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.0.2';\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[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BLK_VAL, _DYN_LENGTH, _DYN_RD_ONLY } 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[_DYN_RD_ONLY /* @min:%2erdOnly */];\r\n blkDynamicValue = cfgDefaults[_DYN_BLK_VAL /* @min:%2eblkVal */];\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[_DYN_BLK_VAL /* @min:%2eblkVal */](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[_DYN_RD_ONLY /* @min:%2erdOnly */](theConfig, name);\r\n }\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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 * @param value\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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_HDLR, _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[_DYN_HDLR /* @min:%2ehdlr */];\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_BLK_VAL, _DYN_CANCEL, _DYN_HDLR, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var _a;\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[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler),\r\n ref: cfgHandler.ref.bind(cfgHandler),\r\n rdOnly: cfgHandler[_DYN_RD_ONLY /* @min:%2erdOnly */].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 = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n rf: dynamicPropertyReferenced\r\n },\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = dynamicPropertyBlockValue,\r\n _a[_DYN_HDLR /* @min:hdlr */] = cfgHandler,\r\n _a.add = _addWatcher,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a.trk = _trackHandler,\r\n _a);\r\n return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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_BLK_VAL, _DYN_LOGGER, _DYN_NOTIFY, _DYN_RD_ONLY, _DYN_SET_DF, _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 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 _a;\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[_DYN_NOTIFY /* @min:%2enotify */]();\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 = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a.ref = _ref,\r\n _a[_DYN_RD_ONLY /* @min:rdOnly */] = _rdOnly,\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = _blkPropValue,\r\n _a._block = _block,\r\n _a);\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 * @param message\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[_DYN_SET_DF /* @min:%2esetDf */](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 config\r\n * @param configHandler\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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_LOG_INTERNAL_MESSAGE, _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 - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - 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[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _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 /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.consoleLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\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 - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n DiagnosticLogger.prototype.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write a debug message to the console if possible\r\n * @param message - {string} - The debug message\r\n */\r\n DiagnosticLogger.prototype.debugToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message - {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.warnToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message - {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.errorToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n DiagnosticLogger.prototype.resetInternalMessageCount = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\n DiagnosticLogger.prototype.logInternalMessage = function (severity, message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Unload and remove any state that this IDiagnosticLogger may be holding, this is generally called when the\r\n * owning SDK is being unloaded.\r\n * @param isAsync - Can the unload be performed asynchronously (default)\r\n * @return If the unload occurs synchronously then nothing should be returned, if happening asynchronously then\r\n * the function should return an [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise to allow any listeners to wait for the operation to complete.\r\n */\r\n DiagnosticLogger.prototype.unload = function (isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\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 - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - 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 - {_InternalLogMessage} - 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 - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\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 = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } 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[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __assign } from \"tslib\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _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, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\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\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 (window && window[\"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 arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\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 totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack.push(parsedFrame);\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 _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(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 }\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[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\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 _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](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;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\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 _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\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\n var _self = this;\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 _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]); });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\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 },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\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\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _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.match(/(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.match(/(\\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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//# sourceMappingURL=Enums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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\n/**\r\n * Gets the localStorage object if available\r\n * @return {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 * @return {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 storage.setItem(uid, uid);\r\n var fail = storage.getItem(uid) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](uid);\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 * @return {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\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _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 var _a;\r\n return _a = {},\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = true,\r\n _a.v = defaultValue,\r\n _a;\r\n}\r\n//# sourceMappingURL=ConfigDefaultHelpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _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 var _a;\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 _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\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 var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\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.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], 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 var _a;\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 = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\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 - {string} - 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 - {any} - 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[_DYN_HANDLER /* @min:%2ehandler */] === 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 - {string} - 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 - {any} - 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 - {string} - The name of the event\r\n * @param callback - {any} - 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 * @return {boolean} - 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 - {string} - 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 - {any} - - 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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } 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[_DYN_IS_ASYNC /* @min:%2eisAsync */] = 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[_DYN_COMPLETE /* @min:%2ecomplete */] = 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[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = utcNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = 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[_DYN_COMPLETE /* @min:%2ecomplete */]();\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 /**\r\n * Create a new event and start timing, the manager may return null/undefined to indicate that it does not\r\n * want to monitor this source event.\r\n * @param src - The source name of the event\r\n * @param payloadDetails - An optional callback function to fetch the payload details for the event.\r\n * @param isAsync - Is the event occurring from a async event\r\n */\r\n PerfManager.prototype.create = function (src, payload, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Complete the perfEvent and fire any notifications.\r\n * @param perfEvent - Fire the event which will also complete the passed event\r\n */\r\n PerfManager.prototype.fire = function (perfEvent) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Set an execution context value\r\n * @param key - The context key name\r\n * @param value - The value\r\n */\r\n PerfManager.prototype.setCtx = function (key, value) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the execution context value\r\n * @param key - The context key\r\n */\r\n PerfManager.prototype.getCtx = function (key) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _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[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = 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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_DF, _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[_DYN_SET_DF /* @min:%2esetDf */](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[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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_CONT0, _DYN_INITIALIZE, _DYN_IS_ASYNC, _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 var _a;\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 || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\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_CONT0 /* @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 BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Tear down the plugin and remove any hooked value, the plugin should be removed so that it is no longer initialized and\r\n * therefore could be re-initialized after being torn down. The plugin should ensure that once this has been called any further\r\n * processTelemetry calls are ignored and it just calls the processNext() with the provided context.\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 * @returns boolean - true if the plugin has or will call processNext(), this for backward compatibility as previously teardown was synchronous and returned nothing.\r\n */\r\n BaseTelemetryPlugin.prototype.teardown = function (unloadCtx, unloadState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * The the plugin should re-evaluate configuration and update any cached configuration settings.\r\n * @param updateCtx - This is the context that should be used during updating.\r\n * @param updateState - The details / state of the update process, it holds details like the current and previous configuration.\r\n * @returns boolean - true if the plugin has or will call updateCtx.processNext(), this allows the plugin to perform any asynchronous operations.\r\n */\r\n BaseTelemetryPlugin.prototype.update = function (updateCtx, updateState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add an unload handler that will be called when the SDK is being unloaded\r\n * @param handler - the handler\r\n */\r\n BaseTelemetryPlugin.prototype._addUnloadCb = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add this hook so that it is automatically removed during unloading\r\n * @param hooks - The single hook or an array of IInstrumentHook objects\r\n */\r\n BaseTelemetryPlugin.prototype._addHook = function (hooks) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\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 }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\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","import { 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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _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.aiDataContract = {\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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 ES3 this will export 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: 36\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_ON_LINE = \"onLine\"; // Count: 4\r\nexport var _DYN_IS_ONLINE = \"isOnline\"; // Count: 3\r\nexport var _DYN__GET = \"_get\"; // Count: 5\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 6\r\nexport var _DYN_EVENTS_LIMIT_IN_MEM = \"eventsLimitInMem\"; // Count: 2\r\nexport var _DYN_PUSH = \"push\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 7\r\nexport var _DYN_BATCH_PAYLOADS = \"batchPayloads\"; // Count: 5\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 3\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 7\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__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__SENDER = \"_sender\"; // 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: 2\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA4 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 11\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 5\r\nexport var _DYN_ONUNLOAD_DISABLE_FET5 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN__XHR_READY_STATE_CHA6 = \"_xhrReadyStateChange\"; // Count: 2\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 11\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 5\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 6\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","import { __assign } from \"tslib\";\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 }\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 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.0.2'\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","import { createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_IS_ONLINE, _DYN_ON_LINE } from \"./__DynamicConstants\";\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 _a;\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 _onlineStatus = true;\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 if (_isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\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 _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n function _isOnline() {\r\n var result = true;\r\n if (_isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n result = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n return result;\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 return _a = {},\r\n _a[_DYN_IS_ONLINE /* @min:isOnline */] = _isOnline,\r\n _a.isListening = function () { return _isListening; },\r\n _a.unload = _unload,\r\n _a;\r\n}\r\n//# sourceMappingURL=Offline.js.map","import { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BATCH_PAYLOADS, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__GET, _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 this[_DYN__GET /* @min:%2e_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[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */]) {\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 _buffer[_DYN_PUSH /* @min:%2epush */](payload);\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][_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[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */] = function (payload) {\r\n if (payload && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = 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 BaseSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseSendBuffer.prototype.count = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseSendBuffer.prototype.size = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseSendBuffer.prototype.getItems = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseSendBuffer.prototype.batchPayloads = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseSendBuffer.prototype.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\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 ArraySendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ArraySendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\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 var _a = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _a.getItem, setItem = _a.setItem;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var buffer = _self._set(bufferItems.concat(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 _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_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[_DYN__GET /* @min:%2e_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.concat(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[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n canUseSessionStorage = !!canUseSessionStorage;\r\n var unsentItems = _self[_DYN__GET /* @min:%2e_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 arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -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 try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = getItem(logger, prefixedKey);\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: \" + prefixedKey + \", \" + 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 });\r\n return _this;\r\n }\r\n SessionStorageSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\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","var _a, _b;\r\nimport { __assign, __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, DisabledPropertyName, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, getExceptionName, getIEVersion, getJSON, getNavigator, getWindow, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, isXhrSupported, mergeEvtNamespace, objExtend, objKeys, onConfigChange, runTargetUnload, useXDomainRequest } from \"@microsoft/applicationinsights-core-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isTruthy, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { createOfflineListener } from \"./Offline\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_BASE_TYPE, _DYN_BATCH_PAYLOADS, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_CUSTOM_HEADERS, _DYN_DIAG_LOG, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SESSION_STORA4, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_EVENTS_SEND_REQUEST, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_IS_ONLINE, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET5, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SET_REQUEST_HEADER, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER, _DYN__XHR_READY_STATE_CHA6 } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\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\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[_DYN_MAX_BATCH_INTERVAL /* @min: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_STORA4 /* @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_XHR /* @min:disableXhr */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_FET5 /* @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[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = UNDEFINED_VALUE,\r\n _a[_DYN_EVENTS_LIMIT_IN_MEM /* @min:eventsLimitInMem */] = 10000,\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\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 _fallbackSender; // The sender to use if the payload size is too large\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 _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 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) {\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.initialize = 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.initialize(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 var ctx = createProcessTelemetryContext(null, config, core);\r\n var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\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.endpointUrl) {\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.endpointUrl;\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 var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA4 /* @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._buffer = _self._buffer[_DYN_CREATE_NEW /* @min:%2ecreateNew */](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 _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!_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 (!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 sendPostFunc = null;\r\n if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n _disableTelemetry = senderConfig.disableTelemetry;\r\n _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */] || UNDEFINED_VALUE;\r\n _isRetryDisabled = senderConfig.isRetryDisabled;\r\n _maxBatchInterval = senderConfig[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */];\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 // if master off switch is set, don't send any data\r\n if (_disableTelemetry) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return;\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 _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return;\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 _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;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\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_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n if (!aiEnvelope_1) {\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_1 = 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_1) === false) {\r\n doNotSendItem_1 = 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_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\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 // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\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 /**\r\n * xhr state changes\r\n */\r\n _self[_DYN__XHR_READY_STATE_CHA6 /* @min:%2e_xhrReadyStateChange */] = function (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 * Immediately send buffered data\r\n * @param async - {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - 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._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 _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 _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (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 _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (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.itemsReceived && results.itemsReceived > 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 _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\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[_DYN_IS_ONLINE /* @min:%2eisOnline */]()) { // 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 (!_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 if (_offlineListener && !_offlineListener[_DYN_IS_ONLINE /* @min:%2eisOnline */]()) { // 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 }\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 _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var url = _endpointUrl;\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\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 = new Blob([batch], { 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 if (queued) {\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - 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, isAsync) {\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\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)) {\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 < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\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 }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSender && _fallbackSender(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 }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _endpointUrl;\r\n try {\r\n xhr[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 xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n };\r\n xhr.onerror = function (event) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXhr(xhr), event);\r\n rejectFunc && rejectFunc(event);\r\n };\r\n if (isAsync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n // compose an array of payloads\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xhr.send(batch);\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n return thePromise;\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\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][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\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 _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, 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 xhrSender.\");\r\n }\r\n }\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - not used\r\n */\r\n function _fetchSender(payload, isAsync) {\r\n return _doFetchSender(payload, true);\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _endpointUrl;\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n var plainTextBatch = 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 // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\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 if (!isAsync) {\r\n init.keepalive = true;\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 _syncFetchPayload += batchLength;\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 _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n if (isAsync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n try {\r\n doAwaitResponse(fetch(request), function (result) {\r\n if (!isAsync) {\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.value;\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 (!response_1.ok) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _checkResponsStatus(response_1.status, payload, response_1.url, payload[_DYN_LENGTH /* @min:%2elength */], response_1.statusText, resp.value || \"\");\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, result.reason && result.reason.message);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, 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 _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */] &&\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(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\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 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 = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(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 ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_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 return statusCode === 401 // Unauthorized\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 function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - Indicates if the request should be sent asynchronously\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, isAsync) {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n // NOTE: xdr may send previous retry payload to new endpoint since we are not able to check response URL\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr), event); };\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 if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n return;\r\n }\r\n var endpointUrl = _endpointUrl.replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xdr.send(batch);\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\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[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](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 _fallbackSender = null;\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 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 /**\r\n * Pause the sending (transmission) of events, this will cause all events to be batched only until the maximum limits are\r\n * hit at which point new events are dropped. Will also cause events to NOT be sent during page unload, so if Session storage\r\n * is disabled events will be lost.\r\n * SessionStorage Limit is 2000 events, In-Memory (Array) Storage is 10,000 events (can be configured via the eventsLimitInMem).\r\n */\r\n Sender.prototype.pause = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resume the sending (transmission) of events, this will restart the timer and any batched events will be sent using the normal\r\n * send interval.\r\n */\r\n Sender.prototype.resume = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush to send data immediately; channel should default to sending data asynchronously. If executing asynchronously (the default) and\r\n * you DO NOT pass a callback function then a [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * will be returned which will resolve once the flush is complete. The actual implementation of the `IPromise`\r\n * will be a native Promise (if supported) or the default as supplied by [ts-async library](https://github.com/nevware21/ts-async)\r\n * @param async - send data asynchronously when true\r\n * @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.\r\n * If the caller doesn't return true the caller should assume that it may never be called.\r\n * @param sendReason - specify the reason that you are calling \"flush\" defaults to ManualFlush (1) if not specified\r\n * @returns - If a callback is provided `true` to indicate that callback will be called after the flush is complete otherwise the caller\r\n * should assume that any provided callback will never be called, Nothing or if occurring asynchronously a\r\n * [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) which will be resolved once the unload is complete,\r\n * the [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) will only be returned when no callback is provided\r\n * and async is true.\r\n */\r\n Sender.prototype.flush = function (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush the batched events synchronously (if possible -- based on configuration).\r\n * Will not flush if the Send has been paused.\r\n */\r\n Sender.prototype.onunloadFlush = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.processTelemetry = function (telemetryItem, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n Sender.prototype._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Trigger the immediate send of buffered data; If executing asynchronously (the default) this may (not required) return\r\n * an [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) that will resolve once the\r\n * send is complete. The actual implementation of the `IPromise` will be a native Promise (if supported) or the default\r\n * as supplied by [ts-async library](https://github.com/nevware21/ts-async)\r\n * @param async - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n * @returns - Nothing or optionally, if occurring asynchronously a [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * which will be resolved (or reject) once the send is complete, the [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * should only be returned when async is true.\r\n */\r\n Sender.prototype.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * error handler\r\n */\r\n Sender.prototype._onError = function (payload, message, event) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n Sender.prototype._onPartialSuccess = function (payload, results) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * success handler\r\n */\r\n Sender.prototype._onSuccess = function (payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n Sender.prototype._xdrOnLoad = function (xdr, payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add header to request\r\n * @param name - Header name.\r\n * @param value - Header value.\r\n */\r\n Sender.prototype.addHeader = function (name, value) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","import 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 if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\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 /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n Serializer.prototype.serialize = function (input) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _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.concat(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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_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[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = 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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _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[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\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 } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map"],"names":["strShimUndefined","strShimPrototype","ObjClass","Object","ObjProto","strHasOwnProperty","getGlobal","__assignFn","objAssign","t","s","i","n","arguments","length","p","call","extendStaticsFn","d","b","__proto__","Array","__extendsFn","__","this","constructor","throwTypeError","String","objCreate","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_gbl","_gblInst","o","_a","_isObjectOrArrayPrototype","target","_isObjectArrayOrFunctionPrototype","Function","_getObjProto","newProto","curProto","objHasOwnProperty","_forEachProp","func","props","name_1","push","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","message","_hasVisited","values","value","_populatePrototype","proto","className","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFunc","currentDynProtoProxy","instFuncTable","canAddInst","objProto","visited","protoFunc","e","_getInstFunc","_getProtoFunc","apply","instFuncs_1","name","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","options","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","undefined","instFuncs","_getInstanceFuncs","baseFuncs","_instFuncProxy","funcHost","theFunc","baseProto","_getBaseFuncs","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","_DYN_SPLIT","_DYN_LENGTH","_DYN_TO_LOWER_CASE","_DYN_TO_STRING","_DYN_NAME","_DYN_MESSAGE","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_ASSEMBLY","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_FILE_NAME","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","_DYN_BLK_VAL","_DYN_RD_ONLY","_DYN_NOTIFY","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_SET_DF","_DYN_WATCH","_DYN_LOGGER","_DYN_APPLY","_DYN_PUSH","_DYN_SPLICE","_DYN_HDLR","_DYN_IDENTIFIER","_DYN_IS_INITIALIZED","_DYN_GET_PLUGIN","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_UNLOAD","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_IS_ASYNC","_DYN_DIAG_LOG","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_USER_AGENT","_DYN_NODE_TYPE","_DYN_REPLACE","_DYN_TYPE","_DYN_HANDLER","_DYN_IS_CHILD_EVT","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","STR_EMPTY","STR_CORE","STR_DISABLED","STR_EXTENSION_CONFIG","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_PERF_EVENT","STR_GET_PERF_MGR","rCamelCase","rNormalizeInvalid","rLeadingNumeric","normalizeJsName","isString","_all","letter","toUpperCase","match","strContains","search","strIndexOf","toISOString","date","getExceptionName","object","isError","_createProxyFunction","source","srcFunc","src","isFunction","originalArguments","proxyFunctionAs","overwriteTarget","isUndefined","optimizeObject","theObject","ObjAssign","objExtend","obj1","obj2","obj3","obj4","obj5","obj6","theArgs","extended","argLen","deep","idx","isBoolean","isObject","arg","isArgArray","isArray","isArgObj","prop","objHasOwn","newValue","isNewArray","isPlainObject","clone","strJSON","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_useXDomainRequest","_beaconsSupported","_hasProperty","property","supported","tmp","hasJSON","Boolean","JSON","getInst","getJSON","isBeaconsSupported","hasNavigator","getNavigator","sendBeacon","isFetchSupported","withKeepAlive","isSupported","request","useXDomainRequest","XDomainRequest","isXhrSupported","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","now","utcNow","Math","random","random32","signed","c","getRandomValues","Uint32Array","nav","userAgent","isIE","mwcRandom32","floor","version","instanceName","maxLength","number","chars","result","charAt","newId","_dataUid","_canAcceptData","createUniqueNamespace","includeVersion","createElmNodeData","data","id","accept","get","defValue","addDefault","theCache","objDefine","v","_getCache","kill","_isConfigDefaults","isVal","fb","set","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","dfVal","isDefined","fallbacks","fallback","fbValue","cfg","asString","_resolveDefaultValue","newValue_1","theValue","objForEachKey","key","_applyDefaultValue","defaultValue","isValid","setFn","mergeDf","reference","readOnly","blkDynamicValue","mrg","ref","usingDefault","cfgValue","isNullOrUndefined","dfName","dfValue","CFG_HANDLER_LINK","symbolFor","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","_canMakeDynamic","getFunc","state","blkVal","throwInvalidAccess","aggregationErrorType","arrayMethodsToPatch","_throwDynamicError","logger","desc","concat","dumpObj","_getOwnPropGetter","propDesc","objGetOwnPropertyDescriptor","_setDynamicProperty","getter","detail","h","trk","handler","fn","arrIndexOf","clr","checkDynamic","isObjectOrArray","_getProperty","_makeDynamicObject","activeHandler","act","chng","add","g","ro","upd","isReferenced","rf","hdlr","valueState","newIsObjectOrArray","_createDynamicProperty","_setDynamicPropertyState","flags","isDynamic","inPlace","rdOnly","blkProp","blockDynamicConversion","objDefineProp","arrForEach","method","orgMethod","args","_i","_patchArray","symPrefix","symPostfix","_createState","cfgHandler","theState","dynamicPropertySymbol","newSymbol","uid","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","_useHandler","callback","prevWatcher","bind","setDf","_notifyWatchers","notifyHandlers","watcherFailures_1","sourceErrors","createCustomError","self","errors","theMessage","srcError","throwAggregationError","scheduleTimeout","use","details","_createDynamicHandler","getDynamicConfigHandler","newTarget","defaultValues","configHandler","rm","_createAndUseHandler","_block","allowUpdate","prevUpd","w","createDynamicConfig","config","defaultConfig","onConfigChange","_logInvalidAccess","_aiNamespace","getDebugExt","ns","disableDbgExt","_getExtensionNamespace","STR_WARN_TO_CONSOLE","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","enableDebug","_logFuncs","_sanitizeDiagnosticText","text","_logToConsole","theConsole","console","logFunc","_InternalLogMessage","msgId","msg","isUserAct","properties","_self","strProps","stringify","diagnosticText","dataType","safeGetLogger","core","DiagnosticLogger","identifier","queue","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_messageCount","_messageLogged","_logInternalMessage","severity","logMessage","messageKey","_debugExtMsg","throttleLimitMessage","throttleMessage","errorToConsole","dbgExt","_setDefaultsFromConfig","consoleLoggingLevel","debugToConsole","resetInternalMessageCount","isAsync","_getLogger","_throwInternal","_warnToConsole","dataSanitizeKeyAndAddUniqueness","map","origLength","field","nameTrunc","strTrim","strSubstring","dataSanitizeKey","uniqueField","dsPadNumber","dataSanitizeString","valueTrunc","dataSanitizeUrl","url","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeProperties","tempProps_1","exception","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","input","_msgId","inputTrunc","num","strSubstr","Event","aiDataContract","ver","envelopeType","Trace","severityLevel","msToTimeSpan","totalms","isNaN","ms","round","sec","min","hour","days","PageView","durationMs","duration","dataSanitizeId","PageViewPerformance","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","theEvent","errorType","evtMessage","_isStackDetails","obj","_convertStackObj","errorStack","items","_getStackFromErrorObj","errorObj","window","errorMessage","stack","lines","entry","_getOperaStack","reason","_getErrorType","typeName","results","exec","_formatErrorCode","Exception","exceptions","_isExceptionInternal","_ExceptionDetails","CreateAutoException","lineNumber","columnNumber","error","evt","errorSrc","stackDetails","CreateFromInterface","arrMap","ex","__assign","prototype","toInterface","_b","problemGroup","isManual","exceptionDetailsInterface","CreateSimpleException","assembly","fileName","line","formatError","outerId","hasFullStack","parsedStack","_isExceptionDetailsInternal","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","regex","test","parsedFrame","left","right","size","acceptedLeft","acceptedRight","howMany","splice","_parseStack","exceptionTrunc","dataSanitizeException","_formatStackTrace","sourceFrame","level","matches","parseInt","sizeInBytes","baseSize","toString","DataPoint","kind","count","max","stdDev","Metric","metrics","dataPoint","_document","getDocument","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","createElement","host","urlParseHost","href","inclPort","fullHost","protocol","port","urlParseFullHost","_internalEndpoints","isInternalApplicationInsightsEndpoint","endpointUrl","RemoteDependencyData","absoluteUrl","commandName","success","resultCode","requestAPI","correlationContext","type","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","parsedUrl","pathName","pathname","AjaxHelperParseDependencyPath","createEnumStyle","createEnum","createValueMap","createTypeMap","StorageType","LocalStorage","SessionStorage","_canUseSessionStorage","AI","AI_AND_W3C","W3C","_getVerifiedStorageObject","storageType","Date","storage","getGlobalInst","setItem","fail","getItem","_getSessionStorageObject","utlCanUseSessionStorage","reset","utlGetSessionStorage","utlSetSessionStorage","RequestHeaders","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","_stringToBoolOrDefault","cfgDfValidate","validator","fallBackName","cfgDfBoolean","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","eventName","evtNamespace","theNamespace_1","parsedEvent","replace","sort","join","_getRegisteredEvents","evtName","aiEvts","registeredEvents","_doDetach","handlerRef","useCapture","_doUnregister","events","unRegFn","capture","mergeEvtNamespace","theNamespace","namespaces","eventOn","_doAttach","registeredEvent","guid","eventOff","evtName_1","found_1","eventCache","evtType","objKeys","_unregisterEvents","regEvent","strExecutionContextKey","strParentContextKey","strChildrenContextKey","PerfEvent","payloadDetails","theDetails_1","start","childTime","childEvts","childEvt","exTime","ParentContextKey","ChildrenContextKey","doPerfActiveKey","PerfManager","manager","ctx","create","fire","perfEvent","pluginStateData","_getPluginState","plugin","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_createInternalContext","telemetryChain","startAt","_nextProxy","_onComplete","proxy","createTelemetryProxyChain","_getNextProxyStart","context","_next","nextProxy","onComplete","completeDetails","diagLog","getCfg","getExtCfg","newConfig","_getExtCfg","getConfig","extConfig","rootConfig","hasNext","getNext","setNext","nextPlugin","iterate","cb","that","createIfMissing","idCfg","extCfg","createProcessTelemetryContext","internalContext","env","plugins","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","thePlugin","newProxy","chainId","hasProcessTelemetry","hasSetNext","proxyChain","getPlugin","processTelemetry","_processTelemetry","unload","_unloadPlugin","update","_updatePlugin","_id","_setNext","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","mgrSource","getSource","perfMgr","perfEvt","currentActive","children","doPerf","nextId","hasNextRun","_callProcessTelemetry","pluginState","item","sync","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","objFreeze","createTelemetryPluginProxy","runTargetUnload","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","currentCtx","rootCtx","_setDefaults","pluginChain","_initDefaults","_hooks","run","oldHooks","remove","hooks","arrAppend","createUnloadHookContainer","handlers","createUnloadHandlerContainer","extensions","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_doUpdate","_updateCallback","setInitialized","isInitialized","next","_aiNameFunc","baseName","aiName","defaults","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","_super","__extends","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","_this","CtxTagKeys","Envelope","sampleRate","tags","time","iKey","Data","baseType","baseData","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN_DATA","_DYN_TRACE_ID","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_ON_LINE","_DYN_IS_ONLINE","_DYN__GET","_DYN_ENQUEUE","_DYN_COUNT","_DYN_EVENTS_LIMIT_IN_MEM","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_BATCH_PAYLOADS","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN__MAX__BUFFER__SIZE","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ENABLE_SESSION_STORA4","_DYN__BUFFER","_DYN_INSTRUMENTATION_KEY","_DYN_DISABLE_XHR","_DYN_ONUNLOAD_DISABLE_FET5","_DYN_CONVERT_UNDEFINED","_DYN_MAX_BATCH_INTERVAL","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_SET_REQUEST_HEADER","_DYN_EVENTS_SEND_REQUEST","_DYN_GET_SAMPLING_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","valChk","srcChk","setValue","isTruthy","_extractPropsAndMeasurements","isNumber","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","telemetryItem","envelope","startTime","iKeyNoDashes","envTags","itmExt","ext","itmTags","extUser","user","authId","localId","extApp","app","sesId","extDevice","device","deviceClass","ip","model","web","browserLang","browserVer","browser","envData","envBaseData","envProps","domain","screenRes","userConsent","extOs","os","extTrace","trace","parentID","tgs","tg","theTags","EnvelopeCreator","Version","_extractPartAExtensions","EnvelopeCreatorInit","EventEnvelopeCreator","customProperties","customMeasurements","eventData","_disableEvents","BaseSendBuffer","_buffer","_bufferFullMessageSent","_set","buffer","payload","getItems","slice","newLogger","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","_base","_namePrefix","namePrefix","bufferItems","_getBuffer","notDeliveredItems","_removePayloadsFromBuffer","payloads","remaining","prefixedKey","bufferJson","buffer_1","parse","_setBuffer","BUFFER_KEY","sentElements","unsentItems","sentItems","SENT_BUFFER_KEY","MAX_BUFFER_SIZE","Serializer","_serializeObject","circularReferenceCheck","output","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isPresent","isObj","sources","expectedType","parseFloat","serialize","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","hash","charCodeAt","abs","SamplingScoreGenerator","hashCodeGenerator","keys","telemetryTrace","Sample","_logger","throwInternal","samplingRate","samplingScoreGenerator","isSampledIn","samplingPercentage","UNDEFINED_VALUE","_getResponseText","xhr","responseText","defaultAppInsightsChannelConfig","objDeepFreeze","disableTelemetry","isRetryDisabled","EnvelopeTypeCreator","currentContextId","bd","uri","refUri","pageType","isLoggedIn","pageTags","pageViewData","exData","baseMetricData","average","sampleCount","remoteDepData","responseCode","Sender","_consecutiveErrors","_retryAt","_paused","_timeoutHandle","_serializer","_stamp_specific_redirects","_headers","priority","_fallbackSender","_syncUnloadSender","_offlineListener","_evtNamespace","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_customHeaders","_disableTelemetry","_instrumentationKey","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_enableSendPromise","_syncFetchPayload","_checkMaxSize","incomingPayload","incomingSize","_checkResponsStatus","status","responseUrl","countOfItemsInPayload","res","response","_appId","_parseResponse","appId","_checkAndUpdateEndPointUrl","_isRetriable","_resendPayload","isOnline","_doUnloadSend","_beaconSender","_doBeaconSend","batch","plainTextBatch","Blob","queued","_onSuccess","droppedPayload","thePayload","_xhrSender","thePromise","resolveFunc","rejectFunc","XMLHttpRequest","endPointUrl","open","headerName","onreadystatechange","_xhrReadyStateChange","readyState","onerror","event","_formatErrorMessageXhr","createPromise","resolve","reject","send","_fetchKeepAliveSender","payloadSize","_doFetchSender","_fetchSender","requestHeaders","Headers","batchLength","ignoreResponse","responseHandled","append","init","headers","body","keepalive","Request","doAwaitResponse","fetch","rejected","response_1","ok","resp","statusText","itemsReceived","itemsAccepted","linearFactor","payload_1","delayInSeconds","SlotDelayInSeconds","backOffSlot","pow","backOffDelay","retryAfterTimeSpan","dateNow","_setRetryTime","_setupTimer","retryInterval","timerValue","_clearScheduledTimer","cancel","statusCode","_xdrSender","_window","getWindow","xdr","onload","_xdrOnLoad","_formatErrorMessageXdr","hostingProtocol","location","lastIndexOf","_sample","pause","resume","flush","callBack","sendReason","onunloadFlush","addHeader","initialize","parentEvtNamespace","_navigator","_isListening","_onlineStatus","_enableEvents","ononline","enabled","_setOnline","_setOffline","isListening","win","createOfflineListener","_addHook","senderConfig","customHeader","header","bufferOverride","shouldUpdate","instrumentationKey","disableValidation","disableInstrumentationKeyValidation","RegExp","_validateInstrumentationKey","enableSendPromise","sendPostFunc","diagLogger","defaultEnvelopeIkey","aiEnvelope_1","constructEnvelope","doNotSendItem_1","processNext","responseURL","async","forcedSender","sendRequest","_getNotifyMgr","_notifySendRequest","ieVer","userAgentStr","navigator_1","ua","doc","tridentVer","getIEVersion","_doTeardown","failed","retry","errors_1","reverse","extracted","index","orig","convertUndefined"],"sourceRoot":""}