{"version":3,"file":"static/js/1627.c9260f5e.js","mappings":"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","sources":["../node_modules/@microsoft/applicationinsights-shims/src/TsLibShims.ts","../node_modules/@microsoft/applicationinsights-react-js/dist-esm/ReactPlugin.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-shims/src/Constants.ts","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-shims/src/TsLibShims.ts","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/dynamicproto-js/src/DynamicProto.ts","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","../node_modules/@microsoft/applicationinsights-properties-js/node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","../node_modules/@microsoft/applicationinsights-shims/src/Constants.ts","../node_modules/@microsoft/applicationinsights-shims/src/Helpers.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto,\r\n strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype\r\n} from \"./Constants\";\r\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\";\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 ES3 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 __hasSymbol = !!SymbolObj;\r\nexport const __hasReflect = !!ReflectObj;\r\n\r\nconst strDecorate = \"decorate\";\r\nconst strMetadata = \"metadata\";\r\nconst strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nconst strIterator = \"iterator\";\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[strShimHasOwnProperty].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[strShimHasOwnProperty](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 ? objCreateFn(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.call(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 && ObjDefineProperty(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.call(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 (!!ObjCreate) {\r\n ObjDefineProperty(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 (ObjDefineProperty) {\r\n ObjDefineProperty(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 (!!ObjCreate) {\r\n ObjDefineProperty( 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","/**\r\n* ReactPlugin.ts\r\n* @copyright Microsoft 2019\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, _throwInternal, arrForEach, isFunction, objDefineAccessors, proxyFunctions, safeGetCookieMgr } from \"@microsoft/applicationinsights-core-js\";\r\nvar ReactPlugin = /** @class */ (function (_super) {\r\n __extends(ReactPlugin, _super);\r\n function ReactPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 185;\r\n _this.identifier = 'ReactPlugin';\r\n var _analyticsPlugin;\r\n var _extensionConfig;\r\n var _unlisten;\r\n var _pageViewTimer;\r\n dynamicProto(ReactPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _super.prototype.initialize.call(_this, config, core, extensions, pluginChain);\r\n _extensionConfig =\r\n config.extensionConfig && config.extensionConfig[_self.identifier]\r\n ? config.extensionConfig[_self.identifier]\r\n : { history: null };\r\n arrForEach(extensions, function (ext) {\r\n var identifier = ext.identifier;\r\n if (identifier === 'ApplicationInsightsAnalytics') {\r\n _analyticsPlugin = ext;\r\n }\r\n });\r\n if (_extensionConfig.history) {\r\n _addHistoryListener(_extensionConfig.history);\r\n var pageViewTelemetry = {\r\n uri: _extensionConfig.history.location.pathname\r\n };\r\n _self.trackPageView(pageViewTelemetry);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self.core);\r\n };\r\n _self.getAppInsights = _getAnalytics;\r\n _self.processTelemetry = function (event, itemCtx) {\r\n _self.processNext(event, itemCtx);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState, asyncCallback) {\r\n if (isFunction(_unlisten)) {\r\n _unlisten();\r\n }\r\n if (_pageViewTimer) {\r\n clearTimeout(_pageViewTimer);\r\n }\r\n _initDefaults();\r\n };\r\n // Proxy the analytics functions\r\n proxyFunctions(_self, _getAnalytics, [\r\n \"trackMetric\",\r\n \"trackPageView\",\r\n \"trackEvent\",\r\n \"trackException\",\r\n \"trackTrace\",\r\n ]);\r\n function _initDefaults() {\r\n _analyticsPlugin = null;\r\n _extensionConfig = null;\r\n _unlisten = null;\r\n _pageViewTimer = null;\r\n }\r\n function _getAnalytics() {\r\n if (!_analyticsPlugin) {\r\n _throwInternal(_self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n return _analyticsPlugin;\r\n }\r\n function _addHistoryListener(history) {\r\n var locationListener = function (arg) {\r\n // v4 of the history API passes \"location\" as the first argument, while v5 passes an object that contains location and action \r\n var locn = null;\r\n if (\"location\" in arg) {\r\n // Looks like v5\r\n locn = arg[\"location\"];\r\n }\r\n else {\r\n locn = arg;\r\n }\r\n // Timeout to ensure any changes to the DOM made by route changes get included in pageView telemetry\r\n _pageViewTimer = setTimeout(function () {\r\n _pageViewTimer = null;\r\n var pageViewTelemetry = { uri: locn.pathname };\r\n _self.trackPageView(pageViewTelemetry);\r\n }, 500);\r\n };\r\n _unlisten = history.listen(locationListener);\r\n }\r\n objDefineAccessors(_self, \"_extensionConfig\", function () { return _extensionConfig; });\r\n });\r\n return _this;\r\n }\r\n ReactPlugin.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 * Get the current cookie manager for this instance\r\n */\r\n ReactPlugin.prototype.getCookieMgr = function () {\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 * Get application insights instance.\r\n */\r\n ReactPlugin.prototype.getAppInsights = function () {\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 * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n ReactPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackMetric = function (metric, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackPageView = function (pageView) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackEvent = function (event, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackException = function (exception, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackTrace = function (trace, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return ReactPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default ReactPlugin;\r\n//# sourceMappingURL=ReactPlugin.js.map","// 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\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","// 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 { 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\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\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","import { isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_SPAN_ID, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value\r\n * @returns\r\n */\r\nexport function parseTraceParent(value) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @returns\r\n */\r\nexport function findW3cTraceParent() {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name));\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name));\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.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 { 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","var _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_SET_DF, _DYN_SPLIT, _DYN_UNLOAD, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n cookieCfg: cfgDfMerge((_b = {},\r\n _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n _b.enabled = UNDEFINED_VALUE,\r\n _b.ignoreCookies = UNDEFINED_VALUE,\r\n _b.blockedCookies = UNDEFINED_VALUE,\r\n _b)),\r\n cookieDomain: UNDEFINED_VALUE,\r\n cookiePath: UNDEFINED_VALUE\r\n },\r\n _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n _a);\r\nfunction _getDoc() {\r\n !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n if (isNullOrUndefined(isCfgEnabled)) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n // This field is deprecated and dynamic updates will not be fully supported\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n // If this value is defined it takes precedent over the above\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n // So future \"updates\" then may not be as expected\r\n isCfgEnabled = cookieEnabled;\r\n }\r\n return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig;\r\n var _path;\r\n var _domain;\r\n var unloadHandler;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled;\r\n var _getCookieFn;\r\n var _setCookieFn;\r\n var _delCookieFn;\r\n // Make sure the root config is dynamic as it may be the global config\r\n rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n // Will get recalled if the referenced configuration is changed\r\n unloadHandler = onConfigChange(rootConfig, function (details) {\r\n // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n details[_DYN_SET_DF /* @min:%2esetDf */](details.cfg, rootDefaultConfig);\r\n // Create and apply the defaults to the cookieCfg element\r\n cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n }, logger);\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = strIndexOf(theValue, \";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(strLeft(value, idx));\r\n values = _extractParts(strSubstring(value, idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = utcNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[STR_PATH] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n },\r\n _a[_DYN_UNLOAD /* @min:unload */] = function (isAsync) {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n !_doc && _getDoc();\r\n try {\r\n var doc = _doc.v || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = strIndexOf(thePart, \"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","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\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nvar Version = '3.0.2';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config, unloadHookContainer) {\r\n var _this = this;\r\n var unloadHook = onConfigChange((config), function () {\r\n var prefix = config.sdkExtension;\r\n _this.sdkVersion = (prefix ? prefix + \"_\" : \"\") + \"javascript:\" + Version;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","// 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 { 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\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_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 7\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 2\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 2\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 4\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 3\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM7 = \"authUserCookieName\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar SESSION_COOKIE_NAME = \"ai_session\";\r\nvar ACQUISITION_SPAN = 86400000; // 24 hours in ms\r\nvar RENEWAL_SPAN = 1800000; // 30 minutes in ms\r\nvar COOKIE_UPDATE_INTERVAL = 60000; // 1 minute in ms\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core, unloadHookContainer) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _sessionExpirationMs;\r\n var _sessionRenewalMs;\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n var unloadHook = onConfigChange(config, function (details) {\r\n _sessionExpirationMs = config.sessionExpirationMs || ACQUISITION_SPAN;\r\n _sessionRenewalMs = config.sessionRenewalMs || RENEWAL_SPAN;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = config.sessionCookiePostfix || config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n _storageNamePrefix = SESSION_COOKIE_NAME + sessionCookiePostfix;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n if (!isExpired && _sessionExpirationMs > 0) {\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > _sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > _sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > COOKIE_UPDATE_INTERVAL) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix);\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix);\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var getNewId = config[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n _self.automaticSession.id = getNewId(config[_DYN_ID_LENGTH /* @min:%2eidLength */] || 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var renewalPeriodMs = _sessionRenewalMs;\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + _sessionExpirationMs) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain || null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix, cookie[_DYN_JOIN /* @min:%2ejoin */](\"|\"), _sessionExpirationMs > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix, [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n _SessionManager.prototype.update = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _SessionManager.prototype.backup = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, onConfigChange, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM7, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core, unloadHookContainer) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return config; }\r\n });\r\n var unloadHook = onConfigChange(config, function () {\r\n var userCookiePostfix = config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] || \"\";\r\n _storageNamePrefix = User.userCookieName + userCookiePostfix;\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix);\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = (config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\") + \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] || undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */] : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix, cookie, oneYear);\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n /**\r\n * Sets the authenticated user id and the account id in this session.\r\n *\r\n * @param authenticatedUserId - {string} - The authenticated user id. A unique and persistent string that represents each authenticated user in the service.\r\n * @param accountId - {string} - An optional string to represent the account associated with the authenticated user.\r\n */\r\n User.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n User.prototype.clearAuthenticatedUserContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Update or create the user cookie if cookies where previously disabled or the new userId does not match the existing value.\r\n * If you pass nothing a new random user id will be created.\r\n * @param userId - Specific either the current (via appInsights.context.user.id) or new id that you want to set\r\n */\r\n User.prototype.update = function (userId) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nfunction _nullResult() {\r\n return null;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx, unloadHookContainer) {\r\n var _this = this;\r\n var logger = core.logger;\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.appId = _nullResult;\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = _nullResult;\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig, unloadHookContainer);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core, unloadHookContainer);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core, unloadHookContainer);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n TelemetryContext.prototype.applySessionContext = function (evt, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyOperatingSystemContxt = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyApplicationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyDeviceContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyInternalContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyLocationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyOperationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyWebContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyUserContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.cleanUp = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze, objDefine } from \"@nevware21/ts-utils\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar undefString;\r\nvar nullValue = null;\r\nvar _defaultConfig = objDeepFreeze((_a = {},\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = nullValue,\r\n _a.sessionRenewalMs = 30 * 60 * 1000,\r\n _a.samplingPercentage = 100,\r\n _a.sessionExpirationMs = 24 * 60 * 60 * 1000,\r\n _a.cookieDomain = nullValue,\r\n _a.sdkExtension = nullValue,\r\n _a.isBrowserLinkTrackingEnabled = false,\r\n _a.appId = nullValue,\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = nullValue,\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = undefString,\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = undefString,\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = undefString,\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = 22,\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = nullValue,\r\n _a));\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n var _context;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n objDefine(_self, \"context\", {\r\n g: function () {\r\n return _context;\r\n }\r\n });\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event - The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (!isNullOrUndefined(event)) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n _context = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }));\r\n // This is outside of the onConfigChange as we don't want to update (replace) these values whenever a referenced config item changes\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx, _self._unloadHooks);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n PropertiesPlugin.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 * Add Part A fields to the event\r\n * @param event - The event that needs to be processed\r\n */\r\n PropertiesPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.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\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport const strDefault = \"default\";\r\n\r\nexport const ObjClass = Object;\r\nexport const ObjProto = ObjClass[strShimPrototype];\r\nexport const ObjAssign = ObjClass[\"assign\"];\r\nexport const ObjCreate = ObjClass[\"create\"];\r\nexport const ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport const ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\r\n\r\ndeclare var globalThis: Window;\r\ndeclare var global: Window;\r\n\r\nlet _cachedGlobal: Window = null;\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport function getGlobal(useCached: boolean = true): Window {\r\n let result = useCached === false ? null : _cachedGlobal;\r\n\r\n if (!result) {\r\n if (typeof globalThis !== strShimUndefined) {\r\n result = globalThis;\r\n }\r\n\r\n if (!result && typeof self !== strShimUndefined) {\r\n result = self;\r\n }\r\n\r\n if (!result && typeof window !== strShimUndefined) {\r\n result = window;\r\n }\r\n \r\n if (!result && typeof global !== strShimUndefined) {\r\n result = global;\r\n }\r\n\r\n _cachedGlobal = result;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function throwTypeError(message: string): never {\r\n throw new TypeError(message);\r\n}\r\n\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj: any): any {\r\n var func = ObjCreate;\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj);\r\n }\r\n if (obj == null) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) {\r\n throwTypeError(\"Object prototype may only be an Object:\" + obj);\r\n }\r\n\r\n function tmpFunc() {}\r\n tmpFunc[strShimPrototype] = obj;\r\n\r\n return new (tmpFunc as any)();\r\n}\r\n\r\n"],"names":["extendStaticsFn","getGlobal","d","b","ObjClass","__proto__","Array","p","strShimHasOwnProperty","_super","ReactPlugin","_analyticsPlugin","_extensionConfig","_unlisten","_pageViewTimer","_this","call","priority","identifier","dynamicProto","_self","_base","_initDefaults","_getAnalytics","_throwInternal","diagLog","initialize","config","core","extensions","pluginChain","prototype","extensionConfig","history","arrForEach","ext","locationListener","arg","locn","setTimeout","pageViewTelemetry","uri","pathname","trackPageView","listen","_addHistoryListener","location","getCookieMgr","safeGetCookieMgr","getAppInsights","processTelemetry","event","itemCtx","processNext","_doTeardown","unloadCtx","unloadState","asyncCallback","isFunction","clearTimeout","proxyFunctions","objDefineAccessors","__","this","constructor","strShimFunction","throwTypeError","String","strShimPrototype","objCreateFn","__extends","BaseTelemetryPlugin","strShimObject","Object","strHasOwnProperty","__extendsFn","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","n","_isObjectOrArrayPrototype","target","_isObjectArrayOrFunctionPrototype","Function","_getObjProto","newProto","curProto","objHasOwnProperty","_forEachProp","func","props","name_1","push","length","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","arguments","instFuncs_1","name","_getObjName","unknownValue","theClass","delegateFunc","options","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","undefined","instFuncs","_getInstanceFuncs","baseFuncs","_instFuncProxy","funcHost","theFunc","baseProto","_getBaseFuncs","BreezeChannelIdentifier","_DYN_LENGTH","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_NAME","_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_HDLR","_DYN_IDENTIFIER","_DYN_IS_INITIALIZED","_DYN_GET_PLUGIN","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_ENABLED","_DYN_UNLOAD","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_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_LOG_INTERNAL_MESSAGE","_DYN_IS_CHILD_EVT","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","UNDEFINED_VALUE","STR_EMPTY","STR_CORE","STR_DISABLED","STR_EXTENSION_CONFIG","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_PERF_EVENT","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","isNullOrUndefined","normalizeJsName","isString","_all","letter","toUpperCase","match","strContains","search","strIndexOf","getExceptionName","object","isError","setValue","field","valChk","srcChk","theValue","getSetValue","defValue","isUndefined","_createProxyFunction","source","srcFunc","src","originalArguments","proxyFunctionAs","overwriteTarget","strJSON","strMsie","strTrident","_isTrident","_navUserAgentCheck","_enableMocks","getLocation","checkForMock","mockLocation","getInst","hasJSON","Boolean","JSON","getJSON","isIE","nav","getNavigator","userAgent","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","now","utcNow","Math","random","random32","signed","c","getRandomValues","Uint32Array","mwcRandom32","floor","newId","maxLength","number","chars","result","charAt","version","instanceName","_dataUid","_canAcceptData","createUniqueNamespace","includeVersion","_isConfigDefaults","isObject","isVal","fb","objHasOwn","set","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","dfVal","isDefined","fallbacks","isArray","fallback","fbValue","cfg","asString","v","_resolveDefaultValue","newValue_1","isPlainObject","objForEachKey","key","_applyDefaultValue","defaultValue","isValid","setFn","mergeDf","reference","readOnly","blkDynamicValue","mrg","ref","usingDefault","cfgValue","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","get","_setDynamicProperty","getter","prop","detail","h","trk","handler","fn","arrIndexOf","clr","idx","checkDynamic","isObjectOrArray","_getProperty","_makeDynamicObject","activeHandler","act","chng","add","objDefine","g","s","newValue","ro","upd","isReferenced","rf","hdlr","valueState","newIsObjectOrArray","_createDynamicProperty","_setDynamicPropertyState","flags","isDynamic","inPlace","rdOnly","blkProp","blockDynamicConversion","objDefineProp","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","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","strProps","stringify","diagnosticText","dataType","safeGetLogger","DiagnosticLogger","queue","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_messageCount","_messageLogged","_logInternalMessage","severity","logMessage","messageKey","_debugExtMsg","throttleLimitMessage","throttleMessage","errorToConsole","data","dbgExt","_setDefaultsFromConfig","consoleLoggingLevel","debugToConsole","resetInternalMessageCount","isAsync","_getLogger","dataSanitizeKeyAndAddUniqueness","map","origLength","nameTrunc","strTrim","strSubstring","dataSanitizeKey","i","uniqueField","dsPadNumber","dataSanitizeString","valueTrunc","dataSanitizeInput","input","_msgId","inputTrunc","num","strSubstr","PageView","url","durationMs","measurements","id","aiDataContract","ver","duration","dataSanitizeId","dataSanitizeUrl","isNaN","totalms","ms","round","sec","min","hour","days","msToTimeSpan","tempProps_1","exception","dataSanitizeProperties","tempMeasurements_1","measure","dataSanitizeMeasurements","envelopeType","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","len","invalidValue","isValidTraceId","isValidSpanId","strExecutionContextKey","strParentContextKey","strChildrenContextKey","PerfEvent","payloadDetails","theDetails_1","start","childTime","childEvts","childEvt","exTime","ParentContextKey","ChildrenContextKey","doPerfActiveKey","PerfManager","manager","ctx","create","fire","perfEvent","pluginStateData","accept","addDefault","theCache","_getCache","kill","createElmNodeData","_getPluginState","plugin","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_createInternalContext","telemetryChain","startAt","_nextProxy","_onComplete","proxy","createTelemetryProxyChain","_getNextProxyStart","context","_next","nextProxy","onComplete","completeDetails","getCfg","getExtCfg","newConfig","_getExtCfg","getConfig","extConfig","rootConfig","hasNext","getNext","setNext","nextPlugin","iterate","cb","that","createIfMissing","idCfg","extCfg","createProcessTelemetryContext","internalContext","env","plugins","createProcessTelemetryUnloadContext","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","thePlugin","newProxy","chainId","hasProcessTelemetry","hasSetNext","proxyChain","getPlugin","_processTelemetry","unload","_unloadPlugin","update","_updatePlugin","_id","_setNext","_getTelCtx","_processChain","processPluginFn","hasRun","hasRunContext","mgrSource","getSource","perfMgr","perfEvt","currentActive","children","ex","doPerf","nextId","error","hasNextRun","_callProcessTelemetry","pluginState","item","sync","_callTeardown","pluginCore","updateCtx","_callUpdate","objFreeze","createTelemetryPluginProxy","strGetPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","currentCtx","rootCtx","_setDefaults","_hooks","run","oldHooks","remove","hooks","arrAppend","createUnloadHookContainer","handlers","createUnloadHandlerContainer","unloadDone","theUnloadCtx","theUnloadState","reason","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_doUpdate","_updateCallback","setInitialized","isInitialized","next","_aiNameFunc","baseName","aiName","defaults","_b","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","Extensions","CtxTagKeys","Application","Device","deviceClass","Internal","unloadHookContainer","unloadHook","prefix","sdkExtension","sdkVersion","Location","createEnumStyle","createEnum","StorageType","LocalStorage","SessionStorage","_canUseLocalStorage","AI","AI_AND_W3C","W3C","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","Date","storage","getGlobalInst","setItem","fail","getItem","reset","_doc","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_cookieCache","_globalCookieConfig","rootDefaultConfig","cookieCfg","path","enabled","ignoreCookies","blockedCookies","cookieDomain","cookiePath","_getDoc","getLazy","getDocument","_isMgrEnabled","cookieMgr","isEnabled","_isIgnoredCookie","cookieMgrCfg","_isCfgEnabled","cookieMgrConfig","isCfgEnabled","cookieEnabled","createCookieMgr","inst","_gblCookieMgr","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","getCookie","_getCookieValue","setCookie","_setCookieValue","delCookie","areCookiesSupported","gblManager","setEnabled","maxAgeSec","domain","_isBlockedCookie","strLeft","_extractParts","isTruthy","_isIE","expireMs","expiry","setTime","_formatDate","location_1","protocol","strEndsWith","uaDisallowsSameSiteNone","_formatCookieValue","del","purge","doc","parts","thePart","theDate","cookieValue","theCookie","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_GET_SESSION_ID","_DYN_NAME_PREFIX","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","_logger","_cookieManager","sessionExpirationMs","sessionRenewalMs","sessionCookiePostfix","_initializeAutomaticSessionWithData","session","sessionData","sessionReset","tokens","split","acqMs","renewalMs","_setCookie","nowMs","acq","renewalPeriodMs","acqTimeLeftMs","cookie","dateNow","isExpired","storageValue","utlGetLocalStorage","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","getNewId","automaticSession","_renew","backup","guid","renewal","utlSetLocalStorage","generateW3CId","tmp","hexValues","oct","a","clockSequenceHi","TelemetryTrace","parentId","traceID","parentID","_validateUserInput","User","isNewUser","isUserCookieSet","userCookiePostfix","userCookieName","params","_generateNewId","_setUserCookie","_generateNewCookie","utlRemoveStorage","authCookie","authCookieString","decodeURI","date","acqStr","toISOString","accountAcquisitionDate","setAuthenticatedUserContext","authenticatedUserId","accountId","storeInCookie","encodeURI","clearAuthenticatedUserContext","cookieSeparator","authUserCookieName","strExt","strTags","_removeEmpty","objKeys","_nullResult","undefString","TelemetryContext","previousTraceCtx","appId","application","internal","hasWindow","device","user","traceId","getTraceId","getSpanId","getName","sesId","autoSession","evt","os","tags","build","extDevice","ip","model","agentVersion","baseType","snippetVer","sdkSrc","telemetryTrace","extTrace","applyWebContext","web","extUser","cleanUp","nullValue","_defaultConfig","objDeepFreeze","samplingPercentage","isBrowserLinkTrackingEnabled","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_context","_addHook","_unloadHooks","parentCtx","trace","setName","setTraceId","setSpanId","getTraceFlags","traceFlags","setTraceFlags","newTraceFlags","createDistributedTraceContextFromTrace","setTraceCtx","breezeChannel","_populateDefaults","theContext","userCtx","_processTelemetryInternal","strShimUndefined","ObjProto","ObjCreate","ObjDefineProperty","ObjHasOwnProperty","_cachedGlobal","useCached","globalThis","window","global","TypeError","obj","type","tmpFunc"],"sourceRoot":""}