{"version":3,"file":"static/js/vendor.initial~f143930b.c4db47a8.js","mappings":"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","sources":["../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Interfaces/IChannelControls.js","../../../../node_modules/.pnpm/@microsoft+dynamicproto-js@2.0.3/node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","../../../../node_modules/.pnpm/@microsoft+1ds-core-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-core-js/dist-es5/Enums.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-shims@3.0.1/node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EventsDiscardedReason.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-shims@3.0.1/node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","../../../../node_modules/.pnpm/@microsoft+1ds-core-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-core-js/dist-es5/InternalConstants.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","../../../../node_modules/.pnpm/@microsoft+1ds-core-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-core-js/dist-es5/__DynamicConstants.js","../../../../node_modules/.pnpm/@microsoft+1ds-core-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-core-js/dist-es5/Utils.js","../../../../node_modules/.pnpm/@microsoft+1ds-core-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-core-js/dist-es5/AppInsightsCore.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/DataModels.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/InternalConstants.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/__DynamicConstants.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/EventBatch.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/SenderPostManager.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/ClockSkewManager.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/KillSwitch.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/RetryPolicy.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/Serializer.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/HttpManager.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/TimeoutOverrideWrapper.js","../../../../node_modules/.pnpm/@microsoft+1ds-post-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-post-js/dist-es5/PostChannel.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/Utils.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/InternalConstants.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/ExtensionKeys.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Session.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/SessionManager.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Application.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Cloud.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Device.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/IntWeb.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Loc.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/OperatingSystem.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Sdk.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Trace.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/User.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Utc.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Web.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/TelemetryContext.js","../../../../node_modules/.pnpm/@microsoft+1ds-properties-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-properties-js/dist-es5/PropertiesPlugin.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/Enums.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/Behaviors.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-common@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-core-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-analytics-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-analytics-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-analytics-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-analytics-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-analytics-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../../../../node_modules/.pnpm/@microsoft+applicationinsights-analytics-js@3.2.1_tslib@2.7.0/node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/common/Utils.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/DataCollector.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/Id.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/Timespan.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/WebEvent.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/common/Constants.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/ContentUpdate.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/PageAction.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/PageUnload.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/PageView.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/PageViewPerformance.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/handlers/AutoCaptureHandler.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/handlers/DomContentHandler.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/WebAnalyticsPlugin.js","../../../../node_modules/.pnpm/@microsoft+1ds-analytics-web-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-analytics-web-js/dist-es5/ApplicationInsights.js","../../../../node_modules/.pnpm/@microsoft+1ds-analytics-web-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-analytics-web-js/dist-es5/Index.js","../../../../node_modules/.pnpm/@microsoft+load-themed-styles@1.10.31/node_modules/@microsoft/load-themed-styles/lib-es6/index.js","../../../../node_modules/.pnpm/mini-create-react-context@0.4.1_prop-types@15.8.1_react@17.0.1/node_modules/mini-create-react-context/dist/esm/index.js","../../../../node_modules/.pnpm/minigrid@3.1.1/node_modules/minigrid/src/index.js"],"sourcesContent":["/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\r\nexport var MinChannelPriorty = 100;\r\n//# sourceMappingURL=IChannelControls.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { getGlobal, objCreate, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && objHasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = objCreate(null);\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = objCreate(null);\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && objHasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || objCreate(null);\r\n instFunc = (instFuncTable[proto[DynClassName]] || objCreate(null))[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !objHasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || objCreate(null);\r\n if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || objCreate(null)); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n if (!_isObjectOrArrayPrototype(instFuncs_1)) {\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!objHasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (objHasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n//# sourceMappingURL=DynamicProto.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","/*\n * 1DS JS SDK Core, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Enums.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n* File containing the enums as constants.\r\n*/\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * The ValueKind contains a set of values that specify value kind of the property.\r\n * Either PII (Personal Identifiable Information) or customer content.\r\n */\r\nexport var ValueKind = createEnumStyle({\r\n NotSet: 0 /* eValueKind.NotSet */,\r\n Pii_DistinguishedName: 1 /* eValueKind.Pii_DistinguishedName */,\r\n Pii_GenericData: 2 /* eValueKind.Pii_GenericData */,\r\n Pii_IPV4Address: 3 /* eValueKind.Pii_IPV4Address */,\r\n Pii_IPv6Address: 4 /* eValueKind.Pii_IPv6Address */,\r\n Pii_MailSubject: 5 /* eValueKind.Pii_MailSubject */,\r\n Pii_PhoneNumber: 6 /* eValueKind.Pii_PhoneNumber */,\r\n Pii_QueryString: 7 /* eValueKind.Pii_QueryString */,\r\n Pii_SipAddress: 8 /* eValueKind.Pii_SipAddress */,\r\n Pii_SmtpAddress: 9 /* eValueKind.Pii_SmtpAddress */,\r\n Pii_Identity: 10 /* eValueKind.Pii_Identity */,\r\n Pii_Uri: 11 /* eValueKind.Pii_Uri */,\r\n Pii_Fqdn: 12 /* eValueKind.Pii_Fqdn */,\r\n Pii_IPV4AddressLegacy: 13 /* eValueKind.Pii_IPV4AddressLegacy */,\r\n Pii_IPv6ScrubLastHextets: 14 /* eValueKind.Pii_IPv6ScrubLastHextets */,\r\n Pii_DropValue: 15 /* eValueKind.Pii_DropValue */,\r\n CustomerContent_GenericContent: 32 /* eValueKind.CustomerContent_GenericContent */\r\n});\r\n/**\r\n * The EventLatency contains a set of values that specify the latency with which an event is sent.\r\n */\r\nexport var EventLatency = createEnumStyle({\r\n /**\r\n * Normal latency.\r\n */\r\n Normal: 1 /* EventLatencyValue.Normal */,\r\n /**\r\n * Cost deferred latency. At the moment this latency is treated as Normal latency.\r\n */\r\n CostDeferred: 2 /* EventLatencyValue.CostDeferred */,\r\n /**\r\n * Real time latency.\r\n */\r\n RealTime: 3 /* EventLatencyValue.RealTime */,\r\n /**\r\n * Bypass normal batching/timing and send as soon as possible, this will still send asynchronously.\r\n * Added in v3.1.1\r\n */\r\n Immediate: 4 /* EventLatencyValue.Immediate */\r\n});\r\n/**\r\n * Enum for property types.\r\n */\r\nexport var EventPropertyType = createEnumStyle({\r\n Unspecified: 0 /* eEventPropertyType.Unspecified */,\r\n String: 1 /* eEventPropertyType.String */,\r\n Int32: 2 /* eEventPropertyType.Int32 */,\r\n UInt32: 3 /* eEventPropertyType.UInt32 */,\r\n Int64: 4 /* eEventPropertyType.Int64 */,\r\n UInt64: 5 /* eEventPropertyType.UInt64 */,\r\n Double: 6 /* eEventPropertyType.Double */,\r\n Bool: 7 /* eEventPropertyType.Bool */,\r\n Guid: 8 /* eEventPropertyType.Guid */,\r\n DateTime: 9 /* eEventPropertyType.DateTime */\r\n});\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = createEnumStyle({\r\n /**\r\n * Normal persistence.\r\n */\r\n Normal: 1 /* EventPersistenceValue.Normal */,\r\n /**\r\n * Critical persistence.\r\n */\r\n Critical: 2 /* EventPersistenceValue.Critical */\r\n});\r\nexport var TraceLevel = createEnumStyle({\r\n NONE: 0 /* eTraceLevel.NONE */,\r\n ERROR: 1 /* eTraceLevel.ERROR */,\r\n WARNING: 2 /* eTraceLevel.WARNING */,\r\n INFORMATION: 3 /* eTraceLevel.INFORMATION */\r\n});\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 11\r\nexport var _DYN_BLK_VAL = \"blkVal\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 51\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: 8\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 21\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 32\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_HDLR = \"hdlr\"; // Count: 6\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 6\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 5\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_REMOVE_NOTIFICATION_0 = \"removeNotificationListener\"; // Count: 4\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\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: 12\r\nexport var _DYN_TIME = \"time\"; // Count: 6\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT2 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_ENABLED = \"enabled\"; // Count: 6\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_UNLOAD = \"unload\"; // Count: 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: 7\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: 5\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_PROTOCOL = \"protocol\"; // Count: 3\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 7\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 9\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_STATUS = \"status\"; // Count: 5\r\nexport var _DYN_GET_RESPONSE_HEADER = \"getResponseHeader\"; // Count: 2\r\nexport var _DYN_GET_ALL_RESPONSE_HEA5 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 7\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_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_URL_STRING = \"urlString\"; // Count: 5\r\nexport var _DYN_SEND_POST = \"sendPOST\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 5\r\nexport var _DYN_TIMEOUT = \"timeout\"; // Count: 6\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 2\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\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_OFFLINE_STORE = \"offlineEventsStored\";\r\nexport var STR_OFFLINE_SENT = \"offlineBatchSent\";\r\nexport var STR_OFFLINE_DROP = \"offlineBatchDrop\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isNumber, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_GET_ALL_RESPONSE_HEA5, _DYN_GET_RESPONSE_HEADER, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE, _DYN_SPLIT, _DYN_STATUS, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\nexport function isFeatureEnabled(feature, cfg) {\r\n var rlt = false;\r\n var ft = cfg && cfg.featureOptIn && cfg.featureOptIn[feature];\r\n if (feature && ft) {\r\n var mode = ft.mode;\r\n // NOTE: None will be considered as true\r\n rlt = (mode == 3 /* FeatureOptInMode.enable */) || (mode == 1 /* FeatureOptInMode.none */);\r\n }\r\n return rlt;\r\n}\r\nexport function getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nexport function formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n}\r\nexport function formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr[_DYN_STATUS /* @min:%2estatus */] + \",Response:\" + getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n}\r\nexport function prependTransports(theTransports, newTransports) {\r\n if (newTransports) {\r\n if (isNumber(newTransports)) {\r\n theTransports = [newTransports].concat(theTransports);\r\n }\r\n else if (isArray(newTransports)) {\r\n theTransports = newTransports.concat(theTransports);\r\n }\r\n }\r\n return theTransports;\r\n}\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n if (disabled === void 0) { disabled = false; }\r\n if (isSync === void 0) { isSync = false; }\r\n function _wrapSetXhrProp(xhr, prop, value) {\r\n try {\r\n xhr[prop] = value;\r\n }\r\n catch (e) {\r\n // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n }\r\n }\r\n var xhr = new XMLHttpRequest();\r\n if (disabled) {\r\n // Tag the instance so it's not tracked (trackDependency)\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n }\r\n if (withCredentials) {\r\n // Some libraries require that the withCredentials flag is set \"before\" open and\r\n // - Wrapping as IE 10 has started throwing when setting before open\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n xhr.open(method, urlString, !isSync);\r\n if (withCredentials) {\r\n // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n // Only set the timeout for asynchronous requests as\r\n // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n if (!isSync && timeout) {\r\n _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n }\r\n return xhr;\r\n}\r\n/**\r\n* Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n* @internal\r\n*/\r\n// tslint:disable-next-line: align\r\nexport function convertAllHeadersToMap(headersString) {\r\n var headers = {};\r\n if (isString(headersString)) {\r\n var headersArray = strTrim(headersString)[_DYN_SPLIT /* @min:%2esplit */](/[\\r\\n]+/);\r\n arrForEach(headersArray, function (headerEntry) {\r\n if (headerEntry) {\r\n var idx = headerEntry.indexOf(\": \");\r\n if (idx !== -1) {\r\n // The new spec has the headers returning all as lowercase -- but not all browsers do this yet\r\n var header = strTrim(headerEntry.substring(0, idx))[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = strTrim(headerEntry.substring(idx + 1));\r\n headers[header] = value;\r\n }\r\n else {\r\n headers[strTrim(headerEntry)] = 1;\r\n }\r\n }\r\n });\r\n }\r\n return headers;\r\n}\r\n/**\r\n* append the XHR headers.\r\n* @internal\r\n*/\r\nexport function _appendHeader(theHeaders, xhr, name) {\r\n if (!theHeaders[name] && xhr && xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */]) {\r\n var value = xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */](name);\r\n if (value) {\r\n theHeaders[name] = strTrim(value);\r\n }\r\n }\r\n return theHeaders;\r\n}\r\nvar STR_KILL_DURATION_HEADER = \"kill-duration\";\r\nvar STR_KILL_DURATION_SECONDS_HEADER = \"kill-duration-seconds\";\r\nvar STR_TIME_DELTA_HEADER = \"time-delta-millis\";\r\n/**\r\n* get the XHR getAllResponseHeaders.\r\n* @internal\r\n*/\r\nexport function _getAllResponseHeaders(xhr, isOneDs) {\r\n var theHeaders = {};\r\n if (!xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]) {\r\n // Firefox 2-63 doesn't have getAllResponseHeaders function but it does have getResponseHeader\r\n // Only call these if getAllResponseHeaders doesn't exist, otherwise we can get invalid response errors\r\n // as collector is not currently returning the correct header to allow JS to access these headers\r\n if (!!isOneDs) {\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);\r\n }\r\n }\r\n else {\r\n theHeaders = convertAllHeadersToMap(xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]());\r\n }\r\n return theHeaders;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isFunction, isString, isUndefined, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\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 * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported(useCached) {\r\n if (_beaconsSupported === null || useCached === false) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getInst(\"fetch\");\r\n var request = getInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\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// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n var event = null;\r\n var detail = { detail: details || null };\r\n if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n event = new CustomEvent(eventName, detail);\r\n }\r\n else { // CustomEvent has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventName, true, true, detail);\r\n }\r\n }\r\n return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n var global = getGlobal();\r\n if (global && global.CustomEvent) {\r\n try {\r\n var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\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.2.1';\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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n if (!aggregationErrorType) {\r\n aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n // Save the provided errors\r\n self.errors = args[1];\r\n }\r\n });\r\n }\r\n var theMessage = message || \"One or more errors occurred.\";\r\n arrForEach(sourceErrors, function (srcError, idx) {\r\n theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n });\r\n throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n//# sourceMappingURL=AggregationError.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_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 objDefine(handler, \"toJSON\", { v: function () { return \"WatcherHandler\" + (handler.fn ? \"\" : \"[X]\"); } });\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, safe, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_DATA, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_OFFLINE_DROP, STR_OFFLINE_SENT, STR_OFFLINE_STORE, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n perfEvtsSendAll: false\r\n};\r\nfunction _runScheduledListeners(asyncNotifications) {\r\n asyncNotifications.h = null;\r\n var callbacks = asyncNotifications.cb;\r\n asyncNotifications.cb = [];\r\n arrForEach(callbacks, function (cb) {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(cb.fn, [cb.arg]);\r\n });\r\n}\r\n// This function is used to combine the logic of running the listeners and handling the async notifications so that they don't\r\n// create multiple timers if there are multiple async listeners.\r\nfunction _runListeners(listeners, name, asyncNotifications, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (asyncNotifications) {\r\n // Schedule the callback to be called after the current call stack has cleared.\r\n asyncNotifications.cb[_DYN_PUSH /* @min:%2epush */]({\r\n fn: callback,\r\n arg: listener\r\n });\r\n asyncNotifications.h = asyncNotifications.h || scheduleTimeout(_runScheduledListeners, 0, asyncNotifications);\r\n }\r\n else {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(callback, [listener]);\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll;\r\n var unloadHandler;\r\n var _listeners = [];\r\n var _asyncNotifications = {\r\n h: null,\r\n cb: []\r\n };\r\n var cfgHandler = createDynamicConfig(config, defaultValues);\r\n unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n });\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n objDefine(_self, \"listeners\", {\r\n g: function () { return _listeners; }\r\n });\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_listeners, listener);\r\n while (index > -1) {\r\n _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_listeners, STR_EVENTS_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync ? _asyncNotifications : null, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_listeners, STR_PERF_EVENT, null, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n _self[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */] = function (events) {\r\n if (events && events[_DYN_LENGTH /* @min:%2elength */]) {\r\n _runListeners(_listeners, STR_OFFLINE_STORE, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */](events);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */] = function (batch) {\r\n if (batch && batch[_DYN_DATA /* @min:%2edata */]) {\r\n _runListeners(_listeners, STR_OFFLINE_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */](batch);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */] = function (cnt, reason) {\r\n if (cnt > 0) {\r\n var rn_1 = reason || 0; // default is unknown\r\n _runListeners(_listeners, STR_OFFLINE_DROP, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */](cnt, rn_1);\r\n });\r\n }\r\n };\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n var _finishUnload = function () {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n _listeners = [];\r\n // Clear any async listener\r\n _asyncNotifications.h && _asyncNotifications.h[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _asyncNotifications.h = null;\r\n _asyncNotifications.cb = [];\r\n };\r\n var waiting;\r\n _runListeners(_listeners, \"unload\", null, function (listener) {\r\n var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n if (asyncUnload) {\r\n if (!waiting) {\r\n waiting = [];\r\n }\r\n waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n }\r\n });\r\n if (waiting) {\r\n return createPromise(function (resolve) {\r\n return doAwaitResponse(createAllPromise(waiting), function () {\r\n _finishUnload();\r\n resolve();\r\n });\r\n });\r\n }\r\n else {\r\n _finishUnload();\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n// Removed Stub for NotificationManager.prototype.perfEvent.\r\n// Removed Stub for NotificationManager.prototype.unload.\r\n// Removed Stub for NotificationManager.prototype.offlineEventsStored.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchSent.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchDrop.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_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// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.debugToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n// Removed Stub for DiagnosticLogger.prototype.unload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"../JavaScriptSDK.Enums/EnumHelperFuncs\";\r\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\r\nexport var EventsDiscardedReason = createEnumStyle({\r\n /**\r\n * Unknown.\r\n */\r\n Unknown: 0 /* eEventsDiscardedReason.Unknown */,\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n NonRetryableStatus: 1 /* eEventsDiscardedReason.NonRetryableStatus */,\r\n /**\r\n * The event is invalid.\r\n */\r\n InvalidEvent: 2 /* eEventsDiscardedReason.InvalidEvent */,\r\n /**\r\n * The size of the event is too large.\r\n */\r\n SizeLimitExceeded: 3 /* eEventsDiscardedReason.SizeLimitExceeded */,\r\n /**\r\n * The server is not accepting events from this instrumentation key.\r\n */\r\n KillSwitch: 4 /* eEventsDiscardedReason.KillSwitch */,\r\n /**\r\n * The event queue is full.\r\n */\r\n QueueFull: 5 /* eEventsDiscardedReason.QueueFull */\r\n});\r\n/**\r\n * The eBatchDiscardedReason enumeration contains a set of values that specify the reason for discarding offline batches.\r\n */\r\nexport var BatchDiscardedReason = createEnumStyle({\r\n /**\r\n * Unknown.\r\n */\r\n Unknown: 0 /* eBatchDiscardedReason.Unknown */,\r\n /**\r\n * Status set to non-retryable after sending\r\n */\r\n NonRetryableStatus: 1 /* eBatchDiscardedReason.NonRetryableStatus */,\r\n /**\r\n * Batches with lower number of critical events are dropped to free up storage space\r\n */\r\n CleanStorage: 2 /* eBatchDiscardedReason.CleanStorage */,\r\n /**\r\n * The batches in storage exceed max allowed time\r\n */\r\n MaxInStorageTimeExceeded: 3 /* eBatchDiscardedReason.MaxInStorageTimeExceeded */\r\n});\r\n//# sourceMappingURL=EventsDiscardedReason.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { ObjClass, ObjProto, strDefault, strShimFunction, strShimPrototype } from \"./Constants\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = objAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_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// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n var result;\r\n if (!done) {\r\n result = createPromise(function (resolved) {\r\n done = resolved;\r\n });\r\n }\r\n if (targets && getLength(targets) > 0) {\r\n doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=AsyncUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var ChannelControllerPriority = 500;\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\n// export const SampleRate = \"sampleRate\";\r\n// export const ProcessLegacy = \"ProcessLegacy\";\r\n// export const HttpMethod = \"http.method\";\r\n// export const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\n// export const DEFAULT_BREEZE_PATH = \"/v2/track\";\r\n// export const strNotSpecified = \"not_specified\";\r\n// export const strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROTOCOL, _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[_DYN_PROTOCOL /* @min:%2eprotocol */] === \"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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_SPAN_ID, _DYN_SPLIT, _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 - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n 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 if (value.indexOf(\",\") !== -1) {\r\n var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _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 * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_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","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nvar _maxHooks;\r\nvar _hookAddMonitor;\r\n/**\r\n * Test hook for setting the maximum number of unload hooks and calling a monitor function when the hooks are added or removed\r\n * This allows for automatic test failure when the maximum number of unload hooks is exceeded\r\n * @param maxHooks - The maximum number of unload hooks\r\n * @param addMonitor - The monitor function to call when hooks are added or removed\r\n */\r\nexport function _testHookMaxUnloadHooksCb(maxHooks, addMonitor) {\r\n _maxHooks = maxHooks;\r\n _hookAddMonitor = addMonitor;\r\n}\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n var _hooks = [];\r\n function _doUnload(logger) {\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all registered unload hooks\r\n arrForEach(oldHooks, function (fn) {\r\n // allow either rm or remove callback function\r\n try {\r\n (fn.rm || fn.remove).call(fn);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n }\r\n });\r\n if (_maxHooks && oldHooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"doUnload\", oldHooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\r\n if (_maxHooks && _hooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"Add\", _hooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n }\r\n return {\r\n run: _doUnload,\r\n add: _addHook\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHookContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT2, _DYN_INITIALIZE, _DYN_IS_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_CONT2 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n var theInitializer = {\r\n id: id,\r\n fn: telemetryInitializer\r\n };\r\n arrAppend(_initializers, theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT2, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_POLL_INTERNAL_LOGS, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_UNLOAD, _DYN_VERSION, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n cookieCfg: {}\r\n },\r\n _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n var channels = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channels\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by AppInsightsCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n else {\r\n channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {},\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a[STR_CHANNELS /* @min:channels */] = channels,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n // Lets assign the new values to the existing config\r\n if (newValues) {\r\n objForEachKey(newValues, function (key, value) {\r\n if (merge) {\r\n if (isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n }\r\n if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n else {\r\n // Just Assign (replace) and/or make the property dynamic\r\n details.set(target, key, value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n var theListener = null;\r\n var idx = -1;\r\n arrForEach(listeners, function (listener, lp) {\r\n if (listener.w === newWatcher) {\r\n theListener = listener;\r\n idx = lp;\r\n return -1;\r\n }\r\n });\r\n return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n var theListener = _findWatcher(listeners, newWatcher).l;\r\n if (!theListener) {\r\n theListener = {\r\n w: newWatcher,\r\n rm: function () {\r\n var fnd = _findWatcher(listeners, newWatcher);\r\n if (fnd.i !== -1) {\r\n listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n }\r\n }\r\n };\r\n listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n }\r\n return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n arrForEach(listeners, function (listener) {\r\n var unloadHdl = onConfigChange(config, listener.w, logger);\r\n delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n // replace the remove function\r\n listener.rm = function () {\r\n unloadHdl.rm();\r\n };\r\n });\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _initDebugListener(configHandler, unloadContainer, notificationManager, debugListener) {\r\n // Will get recalled if any referenced config values are changed\r\n unloadContainer.add(configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var disableDbgExt = details.cfg.disableDbgExt;\r\n if (disableDbgExt === true && debugListener) {\r\n // Remove any previously loaded debug listener\r\n notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](debugListener);\r\n debugListener = null;\r\n }\r\n if (notificationManager && !debugListener && disableDbgExt !== true) {\r\n debugListener = getDebugListener(details.cfg);\r\n notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](debugListener);\r\n }\r\n }));\r\n return debugListener;\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _createUnloadHook(unloadHook) {\r\n return objDefine({\r\n rm: function () {\r\n unloadHook.rm();\r\n }\r\n }, \"toJSON\", { v: function () { return \"aicore::onCfgChange<\" + JSON.stringify(unloadHook) + \">\"; } });\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _configHandler;\r\n var _isInitialized;\r\n var _logger;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _channelConfig;\r\n var _channels;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _hookContainer;\r\n var _debugListener;\r\n var _traceCtx;\r\n var _instrumentationKey;\r\n var _cfgListeners;\r\n var _extensions;\r\n var _pluginVersionStringArr;\r\n var _pluginVersionString;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller;\r\n var _internalLogPollerListening;\r\n var _forceStopInternalLogPoller;\r\n dynamicProto(AppInsightsCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_extensions];\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core cannot be initialized more than once\");\r\n }\r\n _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n config = _configHandler.cfg;\r\n // This will be \"re-run\" if the referenced config properties are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n _instrumentationKey = details.cfg.instrumentationKey;\r\n // Mark the extensionConfig and all first level keys as referenced\r\n // This is so that calls to getExtCfg() will always return the same object\r\n // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n objForEachKey(extCfg, function (key) {\r\n details.ref(extCfg, key);\r\n });\r\n if (isNullOrUndefined(_instrumentationKey)) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n }));\r\n _notificationManager = notificationManager;\r\n // Initialize the debug listener outside of the closure to reduce the retained memory footprint\r\n _debugListener = _initDebugListener(_configHandler, _hookContainer, _notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */](), _debugListener);\r\n _initPerfManager();\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n _initPluginChain(null);\r\n if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n if (!teeController || !teeController.plugin) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n }\r\n }\r\n _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n _cfgListeners = null;\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n };\r\n _self.getChannels = function () {\r\n var controls = [];\r\n if (_channels) {\r\n arrForEach(_channels, function (channel) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = telemetryItem.iKey || _instrumentationKey;\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n _notificationManager = new NotificationManager(_configHandler.cfg);\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.getNotifyMgr()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n if (_cookieManager !== cookieMgr) {\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = cookieMgr;\r\n }\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n arrForEach(eventQueue, function (event) {\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n return _startLogPoller(true);\r\n };\r\n function _startLogPoller(alwaysStart) {\r\n if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n if (!_internalLogPollerListening) {\r\n _internalLogPollerListening = true;\r\n // listen for any configuration changes so that changes to the\r\n // interval will cause the timer to be re-initialized\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var interval = details.cfg.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n var isRunning = false;\r\n if (_internalLogPoller) {\r\n // It was already created so remember it's running and cancel\r\n isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n }\r\n // Create / reconfigure\r\n _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n _internalLogPoller.unref();\r\n // Restart if previously running\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n }));\r\n }\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _flushInternalLogs();\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n });\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n return result;\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.updateCfg = function (newConfig, mergeExisting) {\r\n if (mergeExisting === void 0) { mergeExisting = true; }\r\n var updateState;\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n updateState = {\r\n reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n cfg: _configHandler.cfg,\r\n oldCfg: deepExtend({}, _configHandler.cfg),\r\n newConfig: deepExtend({}, newConfig),\r\n merge: mergeExisting\r\n };\r\n newConfig = updateState.newConfig;\r\n var cfg = _configHandler.cfg;\r\n // replace the immutable (if initialized) values\r\n // We don't currently allow updating the extensions and channels via the update config\r\n // So overwriting any user provided values to reuse the existing values\r\n newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n }\r\n // Explicitly blocking any previous config watchers so that they don't get called because\r\n // of this bulk update (Probably not necessary)\r\n _configHandler._block(function (details) {\r\n // Lets assign the new values to the existing config either overwriting or re-assigning\r\n var theConfig = details.cfg;\r\n _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n if (!mergeExisting) {\r\n // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n objForEachKey(theConfig, function (key) {\r\n if (!objHasOwn(newConfig, key)) {\r\n // Set the value to undefined\r\n details.set(theConfig, key, UNDEFINED_VALUE);\r\n }\r\n });\r\n }\r\n // Apply defaults to the new config\r\n details[_DYN_SET_DF /* @min:%2esetDf */](theConfig, defaultConfig);\r\n }, true);\r\n // Now execute all of the listeners (synchronously) so they update their values immediately\r\n _configHandler[_DYN_NOTIFY /* @min:%2enotify */]();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self.flush = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n _self.addUnloadHook = _addUnloadHook;\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n _self.onCfgChange = function (handler) {\r\n var unloadHook;\r\n if (!_isInitialized) {\r\n unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n }\r\n else {\r\n unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _createUnloadHook(unloadHook);\r\n };\r\n _self.getWParam = function () {\r\n return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n };\r\n function _setPluginVersions() {\r\n var thePlugins = {};\r\n _pluginVersionStringArr = [];\r\n var _addPluginVersions = function (plugins) {\r\n if (plugins) {\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n thePlugins[plugin.identifier] = plugin;\r\n }\r\n });\r\n }\r\n };\r\n _addPluginVersions(_channels);\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (channels) {\r\n _addPluginVersions(channels);\r\n });\r\n }\r\n _addPluginVersions(_configExtensions);\r\n }\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _configHandler.cfg; },\r\n s: function (newValue) {\r\n _self.updateCfg(newValue, false);\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionStringArr\", {\r\n g: function () {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n return _pluginVersionStringArr;\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionString\", {\r\n g: function () {\r\n if (!_pluginVersionString) {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n }\r\n return _pluginVersionString || STR_EMPTY;\r\n }\r\n });\r\n objDefine(_self, \"logger\", {\r\n g: function () {\r\n if (!_logger) {\r\n _logger = new DiagnosticLogger(_configHandler.cfg);\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n }\r\n return _logger;\r\n },\r\n s: function (newLogger) {\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n if (_logger !== newLogger) {\r\n runTargetUnload(_logger, false);\r\n _logger = newLogger;\r\n }\r\n }\r\n });\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n _extensions = [];\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n runTargetUnload(_notificationManager, false);\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _configExtensions = [];\r\n _channelConfig = null;\r\n _channels = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n _instrumentationKey = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _cfgListeners = [];\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller = null;\r\n _internalLogPollerListening = false;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _pluginChain = null;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Get the primary channel queue and include as part of the normal extensions\r\n _channels = (_channelConfig || [])[0] || [];\r\n // Add any channels provided in the extensions and sort them\r\n _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n // Create an array of all extensions, including the _channels\r\n var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _extensions = objFreeze(allExtensions);\r\n // This has a side effect of adding the extensions passed during initialization\r\n // into the config.extensions, so you can see all of the extensions loaded.\r\n // This will also get updated by the addPlugin() and remove plugin code.\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n var rootCtx = _createTelCtx();\r\n // Initializing the channels first\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n }\r\n // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n initializePlugins(rootCtx, allExtensions);\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var theExt = null;\r\n var thePlugin = null;\r\n var channelHosts = [];\r\n arrForEach(_extensions, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n if (ext.getChannel) {\r\n channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelHosts, function (host) {\r\n thePlugin = host.getChannel(pluginIdentifier);\r\n if (!thePlugin) {\r\n return -1;\r\n }\r\n });\r\n }\r\n if (thePlugin) {\r\n theExt = {\r\n plugin: thePlugin,\r\n setEnabled: function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n isEnabled: function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n remove: function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n }\r\n };\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_extensions || []).slice();\r\n // During add / remove this may get called again, so don't read if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startLogPoller();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_logger && _logger.queue) {\r\n var queue = _logger.queue.slice(0);\r\n _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a.iKey = _instrumentationKey,\r\n _a[_DYN_TIME /* @min:time */] = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n cbTimer = null;\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n flushCtx.iterate(function (plugin) {\r\n if (plugin.flush) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin.flush(isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = scheduleTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n doneIterating = true;\r\n doCallback();\r\n return true;\r\n }\r\n function _initPerfManager() {\r\n // Save the previous config based performance manager creator to avoid creating new perf manager instances if unchanged\r\n var prevCfgPerfMgr;\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var enablePerfMgr = details.cfg.enablePerfMgr;\r\n if (enablePerfMgr) {\r\n var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n if (prevCfgPerfMgr !== createPerfMgr) {\r\n if (!createPerfMgr) {\r\n createPerfMgr = _createPerfManager;\r\n }\r\n // Set the performance manager creation function if not defined\r\n getSetValue(details.cfg, STR_CREATE_PERF_MGR, createPerfMgr);\r\n prevCfgPerfMgr = createPerfMgr;\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n // Only create the performance manager if it's not already created or manually set\r\n if (!_perfManager && !_cfgPerfManager && isFunction(createPerfMgr)) {\r\n // Create a new config based performance manager\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n else {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n // Clear the previous cached value so it can be GC'd\r\n prevCfgPerfMgr = null;\r\n }\r\n }));\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startLogPoller();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _hookContainer.add(hooks);\r\n }\r\n });\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.getChannels.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.getProcessTelContext.\r\n// Removed Stub for AppInsightsCore.prototype.getNotifyMgr.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.getPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.eventCnt.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for AppInsightsCore.prototype.unload.\r\n// Removed Stub for AppInsightsCore.prototype.getPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.addPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.updateCfg.\r\n// Removed Stub for AppInsightsCore.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsCore.prototype.flush.\r\n// Removed Stub for AppInsightsCore.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.setTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadHook.\r\n// Removed Stub for AppInsightsCore.prototype.onCfgChange.\r\n// Removed Stub for AppInsightsCore.prototype.releaseQueue.\r\n// Removed Stub for AppInsightsCore.prototype._updateHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * 1DS JS SDK Core, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n\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 ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_DEFAULT_ENDPOINT_URL = \"https://browser.events.data.microsoft.com/OneCollector/1.0/\";\r\nexport var STR_VERSION = \"version\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*\n * 1DS JS SDK Core, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n\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_INITIALIZE = \"initialize\"; // Count: 4\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 4\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 4\r\nexport var _DYN_TIMINGS = \"timings\"; // Count: 4\r\nexport var _DYN_POLL_INTERNAL_LOGS = \"pollInternalLogs\"; // Count: 4\r\nexport var _DYN_VALUE = \"value\"; // Count: 20\r\nexport var _DYN_KIND = \"kind\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 7\r\nexport var _DYN_PROCESS_TELEMETRY_ST0 = \"processTelemetryStart\"; // Count: 3\r\nexport var _DYN_HANDLE_FIELD = \"handleField\"; // Count: 3\r\nexport var _DYN_RM_SANITIZER = \"rmSanitizer\"; // Count: 3\r\nexport var _DYN_RM_FIELD_SANITIZER = \"rmFieldSanitizer\"; // Count: 3\r\nexport var _DYN_CAN_HANDLE = \"canHandle\"; // Count: 7\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * 1DS JS SDK Core, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nvar _a;\r\n/**\r\n* Utils.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n* File containing utility functions.\r\n*/\r\nimport { arrForEach, getGlobalInst, getNavigator, hasDocument, hasWindow, isArray, isBoolean, isNullOrUndefined, isNumber, isObject, isReactNative, isString, isUndefined, newGuid, objForEachKey, perfNow } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ObjProto, strShimObject } from \"@microsoft/applicationinsights-shims\";\r\nimport { strIndexOf, strLeft } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { _DYN_INDEX_OF, _DYN_KIND, _DYN_LENGTH, _DYN_PROCESS_TELEMETRY_ST0, _DYN_TIMINGS, _DYN_VALUE } from \"./__DynamicConstants\";\r\nexport var Version = '4.2.1';\r\nexport var FullVersionString = \"1DS-Web-JS-\" + Version;\r\nvar ObjHasOwnProperty = ObjProto.hasOwnProperty;\r\n// Defining here so we don't need to take (import) the ApplicationInsights Common module\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n// If value is array just get the type for the first element\r\nvar _fieldTypeEventPropMap = (_a = {},\r\n _a[0 /* FieldValueSanitizerType.NotSet */] = 0 /* eEventPropertyType.Unspecified */,\r\n _a[2 /* FieldValueSanitizerType.Number */] = 6 /* eEventPropertyType.Double */,\r\n _a[1 /* FieldValueSanitizerType.String */] = 1 /* eEventPropertyType.String */,\r\n _a[3 /* FieldValueSanitizerType.Boolean */] = 7 /* eEventPropertyType.Bool */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 2 /* FieldValueSanitizerType.Number */] = 6 /* eEventPropertyType.Double */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 1 /* FieldValueSanitizerType.String */] = 1 /* eEventPropertyType.String */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 3 /* FieldValueSanitizerType.Boolean */] = 7 /* eEventPropertyType.Bool */,\r\n _a);\r\n/**\r\n * @ignore\r\n */\r\n// let _uaDisallowsSameSiteNone = null;\r\nvar uInt8ArraySupported = null;\r\n// var _areCookiesAvailable: boolean | undefined;\r\n/**\r\n * Checks if document object is available\r\n */\r\nexport var isDocumentObjectAvailable = hasDocument();\r\n/**\r\n * Checks if window object is available\r\n */\r\nexport var isWindowObjectAvailable = hasWindow();\r\n/**\r\n * Checks if value is assigned to the given param.\r\n * @param value - The token from which the tenant id is to be extracted.\r\n * @returns True/false denoting if value is assigned to the param.\r\n */\r\nexport function isValueAssigned(value) {\r\n /// takes a value and checks for undefined, null and empty string \r\n /// value to be tested \r\n /// true if value is null undefined or emptyString \r\n return !(value === STR_EMPTY || isNullOrUndefined(value));\r\n}\r\n/**\r\n * Gets the tenant id from the tenant token.\r\n * @param apiKey - The token from which the tenant id is to be extracted.\r\n * @returns The tenant id.\r\n */\r\nexport function getTenantId(apiKey) {\r\n if (apiKey) {\r\n var indexTenantId = strIndexOf(apiKey, \"-\");\r\n if (indexTenantId > -1) {\r\n return strLeft(apiKey, indexTenantId);\r\n }\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Checks if Uint8Array are available in the current environment. Safari and Firefox along with\r\n * ReactNative are known to not support Uint8Array properly.\r\n * @returns True if available, false otherwise.\r\n */\r\nexport function isUint8ArrayAvailable() {\r\n if (uInt8ArraySupported === null) {\r\n uInt8ArraySupported = !isUndefined(Uint8Array) && !isSafariOrFirefox() && !isReactNative();\r\n }\r\n return uInt8ArraySupported;\r\n}\r\n/**\r\n * Checks if the value is a valid EventLatency.\r\n * @param value - The value that needs to be checked.\r\n * @returns True if the value is in AWTEventLatency, false otherwise.\r\n */\r\nexport function isLatency(value) {\r\n if (value && isNumber(value) && value >= 1 /* EventLatencyValue.Normal */ && value <= 4 /* EventLatencyValue.Immediate */) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Sanitizes the Property. It checks the that the property name and value are valid. It also\r\n * checks/populates the correct type and pii of the property value.\r\n * @param name - property name - The property name.\r\n * @param property - The property value or an IEventProperty containing value,\r\n * type ,pii and customer content.\r\n * @returns IEventProperty containing valid name, value, pii and type or null if invalid.\r\n */\r\nexport function sanitizeProperty(name, property, stringifyObjects) {\r\n // Check that property is valid\r\n if ((!property && !isValueAssigned(property)) || typeof name !== \"string\") {\r\n return null;\r\n }\r\n // Perf optimization -- only need to get the type once not multiple times\r\n var propType = typeof property;\r\n // If the property isn't IEventProperty (and is either string, number, boolean or array), convert it into one.\r\n if (propType === \"string\" || propType === \"number\" || propType === \"boolean\" || isArray(property)) {\r\n property = { value: property };\r\n }\r\n else if (propType === \"object\" && !ObjHasOwnProperty.call(property, \"value\")) {\r\n property = { value: stringifyObjects ? JSON.stringify(property) : property };\r\n }\r\n else if (isNullOrUndefined(property[_DYN_VALUE /* @min:%2evalue */])\r\n || property[_DYN_VALUE /* @min:%2evalue */] === STR_EMPTY || (!isString(property[_DYN_VALUE /* @min:%2evalue */])\r\n && !isNumber(property[_DYN_VALUE /* @min:%2evalue */]) && !isBoolean(property[_DYN_VALUE /* @min:%2evalue */])\r\n && !isArray(property[_DYN_VALUE /* @min:%2evalue */]))) {\r\n // Since property is IEventProperty, we need to validate its value\r\n return null;\r\n }\r\n // We need to check that if the property value is an array, it is valid\r\n if (isArray(property[_DYN_VALUE /* @min:%2evalue */]) &&\r\n !isArrayValid(property[_DYN_VALUE /* @min:%2evalue */])) {\r\n return null;\r\n }\r\n // If either pii or cc is set convert value to string (since only string pii/cc is allowed).\r\n // If the value is a complex type like an array that can't be converted to string we will drop\r\n // the property.\r\n if (!isNullOrUndefined(property[_DYN_KIND /* @min:%2ekind */])) {\r\n if (isArray(property[_DYN_VALUE /* @min:%2evalue */]) || !isValueKind(property[_DYN_KIND /* @min:%2ekind */])) {\r\n return null;\r\n }\r\n property[_DYN_VALUE /* @min:%2evalue */] = property[_DYN_VALUE /* @min:%2evalue */].toString();\r\n }\r\n return property;\r\n}\r\nexport function getCommonSchemaMetaData(value, kind, type) {\r\n var encodedTypeValue = -1;\r\n if (!isUndefined(value)) {\r\n if (kind > 0) {\r\n if (kind === 32 /* eValueKind.CustomerContent_GenericContent */) {\r\n // encode customer content. Value can only be string. bit 13-16 are for cc\r\n encodedTypeValue = (1 << 13);\r\n }\r\n else if (kind <= 13) {\r\n // encode PII. Value can only be string. bits 5-12 are for Pii\r\n encodedTypeValue = (kind << 5);\r\n }\r\n }\r\n // isDataType checks that the \"type\" is a number so we don't need to check for undefined\r\n if (isDataType(type)) {\r\n // Data Type is provided and valid, so use that\r\n if (encodedTypeValue === -1) {\r\n // Don't return -1\r\n encodedTypeValue = 0;\r\n }\r\n encodedTypeValue |= type;\r\n }\r\n else {\r\n var propType = _fieldTypeEventPropMap[getFieldValueType(value)] || -1;\r\n if (encodedTypeValue !== -1 && propType !== -1) {\r\n // pii exists so we must return correct type\r\n encodedTypeValue |= propType;\r\n }\r\n else if (propType === 6 /* eEventPropertyType.Double */) {\r\n encodedTypeValue = propType;\r\n }\r\n }\r\n }\r\n return encodedTypeValue;\r\n}\r\n/**\r\n * Helper to get and decode the cookie value using decodeURIComponent, this is for historical\r\n * backward compatibility where the document.cookie value was decoded before parsing.\r\n * @param cookieMgr - The cookie manager to use\r\n * @param name - The name of the cookie to get\r\n * @param decode - A flag to indicate whether the cookie value should be decoded\r\n * @returns The decoded cookie value (if available) otherwise an empty string.\r\n */\r\nexport function getCookieValue(cookieMgr, name, decode) {\r\n if (decode === void 0) { decode = true; }\r\n var cookieValue;\r\n if (cookieMgr) {\r\n cookieValue = cookieMgr.get(name);\r\n if (decode && cookieValue && decodeURIComponent) {\r\n cookieValue = decodeURIComponent(cookieValue);\r\n }\r\n }\r\n return cookieValue || STR_EMPTY;\r\n}\r\n/**\r\n * Create a new guid.\r\n * @param style - The style of guid to generated, defaults to Digits\r\n * Digits (Default) : 32 digits separated by hyphens: 00000000-0000-0000-0000-000000000000\r\n * Braces - 32 digits separated by hyphens, enclosed in braces: {00000000-0000-0000-0000-000000000000}\r\n * Parentheses - 32 digits separated by hyphens, enclosed in parentheses: (00000000-0000-0000-0000-000000000000)\r\n * Numeric - 32 digits: 00000000000000000000000000000000\r\n * @returns The formatted guid.\r\n */\r\nexport function createGuid(style) {\r\n if (style === void 0) { style = \"D\" /* GuidStyle.Digits */; }\r\n var theGuid = newGuid();\r\n if (style === \"B\" /* GuidStyle.Braces */) {\r\n theGuid = \"{\" + theGuid + \"}\";\r\n }\r\n else if (style === \"P\" /* GuidStyle.Parentheses */) {\r\n theGuid = \"(\" + theGuid + \")\";\r\n }\r\n else if (style === \"N\" /* GuidStyle.Numeric */) {\r\n theGuid = theGuid.replace(/-/g, STR_EMPTY);\r\n }\r\n return theGuid;\r\n}\r\n/**\r\n * Pass in the objects to merge as arguments.\r\n * @param obj1 - object to merge. Set this argument to 'true' for a deep extend.\r\n * @param obj2 - object to merge.\r\n * @param obj3 - object to merge.\r\n * @param obj4 - object to merge.\r\n * @param obj5 - object to merge.\r\n * @returns The extended object.\r\n */\r\nexport function extend(obj, obj2, obj3, obj4, obj5) {\r\n // Variables\r\n var extended = {};\r\n var deep = false;\r\n var i = 0;\r\n var length = arguments[_DYN_LENGTH /* @min:%2elength */];\r\n var theArgs = arguments;\r\n // Check if a deep merge\r\n if (isBoolean(theArgs[0])) {\r\n deep = theArgs[0];\r\n i++;\r\n }\r\n // Loop through each object and conduct a merge\r\n for (; i < length; i++) {\r\n var obj = theArgs[i];\r\n objForEachKey(obj, function (prop, value) {\r\n // If deep merge and property is an object, merge properties\r\n if (deep && value && isObject(value)) {\r\n if (isArray(value)) {\r\n extended[prop] = extended[prop] || [];\r\n arrForEach(value, function (arrayValue, arrayIndex) {\r\n if (arrayValue && isObject(arrayValue)) {\r\n extended[prop][arrayIndex] = extend(true, extended[prop][arrayIndex], arrayValue);\r\n }\r\n else {\r\n extended[prop][arrayIndex] = arrayValue;\r\n }\r\n });\r\n }\r\n else {\r\n extended[prop] = extend(true, extended[prop], value);\r\n }\r\n }\r\n else {\r\n extended[prop] = value;\r\n }\r\n });\r\n }\r\n return extended;\r\n}\r\nexport var getTime = perfNow;\r\nexport function isValueKind(value) {\r\n // Always assume that it's a number (no type checking) for performance as this is used during the JSON serialization\r\n if (value === 0 /* eValueKind.NotSet */ || ((value > 0 /* eValueKind.NotSet */ && value <= 13 /* eValueKind.Pii_IPV4AddressLegacy */) || value === 32 /* eValueKind.CustomerContent_GenericContent */)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isDataType(value) {\r\n // Remark: 0 returns false, but it doesn't affect encoding anyways\r\n // Always assume that it's a number (no type checking) for performance as this is used during the JSON serialization\r\n if (value >= 0 && value <= 9) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSafariOrFirefox() {\r\n var nav = getNavigator();\r\n // If non-browser navigator will be undefined\r\n if (!isUndefined(nav) && nav.userAgent) {\r\n var ua = nav.userAgent.toLowerCase();\r\n if ((ua[_DYN_INDEX_OF /* @min:%2eindexOf */](\"safari\") >= 0 || ua[_DYN_INDEX_OF /* @min:%2eindexOf */](\"firefox\") >= 0) && ua[_DYN_INDEX_OF /* @min:%2eindexOf */](\"chrome\") < 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nexport function isArrayValid(value) {\r\n return value[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nexport function setProcessTelemetryTimings(event, identifier) {\r\n var evt = event;\r\n evt[_DYN_TIMINGS /* @min:%2etimings */] = evt[_DYN_TIMINGS /* @min:%2etimings */] || {};\r\n evt[_DYN_TIMINGS /* @min:%2etimings */][_DYN_PROCESS_TELEMETRY_ST0 /* @min:%2eprocessTelemetryStart */] = evt[_DYN_TIMINGS /* @min:%2etimings */][_DYN_PROCESS_TELEMETRY_ST0 /* @min:%2eprocessTelemetryStart */] || {};\r\n evt[_DYN_TIMINGS /* @min:%2etimings */][_DYN_PROCESS_TELEMETRY_ST0 /* @min:%2eprocessTelemetryStart */][identifier] = getTime();\r\n}\r\n/**\r\n * Returns a bitwise value for the FieldValueSanitizerType enum representing the decoded type of the passed value\r\n * @param value The value to determine the type\r\n */\r\nexport function getFieldValueType(value) {\r\n var theType = 0 /* FieldValueSanitizerType.NotSet */;\r\n if (value !== null && value !== undefined) {\r\n var objType = typeof value;\r\n if (objType === \"string\") {\r\n theType = 1 /* FieldValueSanitizerType.String */;\r\n }\r\n else if (objType === \"number\") {\r\n theType = 2 /* FieldValueSanitizerType.Number */;\r\n }\r\n else if (objType === \"boolean\") {\r\n theType = 3 /* FieldValueSanitizerType.Boolean */;\r\n }\r\n else if (objType === strShimObject) {\r\n theType = 4 /* FieldValueSanitizerType.Object */;\r\n if (isArray(value)) {\r\n theType = 4096 /* FieldValueSanitizerType.Array */;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Empty arrays are not supported and are considered to be the same as null\r\n theType |= getFieldValueType(value[0]);\r\n }\r\n }\r\n else if (ObjHasOwnProperty.call(value, \"value\")) {\r\n // Looks like an IEventProperty\r\n theType = 8192 /* FieldValueSanitizerType.EventProperty */ | getFieldValueType(value[_DYN_VALUE /* @min:%2evalue */]);\r\n }\r\n }\r\n }\r\n return theType;\r\n}\r\n/**\r\n * Helper to identify whether we are running in a chromium based browser environment\r\n */\r\nexport function isChromium() {\r\n return !!getGlobalInst(\"chrome\");\r\n}\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n if (disabled === void 0) { disabled = false; }\r\n if (isSync === void 0) { isSync = false; }\r\n function _wrapSetXhrProp(xhr, prop, value) {\r\n try {\r\n xhr[prop] = value;\r\n }\r\n catch (e) {\r\n // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n }\r\n }\r\n var xhr = new XMLHttpRequest();\r\n if (disabled) {\r\n // Tag the instance so it's not tracked (trackDependency)\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n }\r\n if (withCredentials) {\r\n // Some libraries require that the withCredentials flag is set \"before\" open and\r\n // - Wrapping as IE 10 has started throwing when setting before open\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n xhr.open(method, urlString, !isSync);\r\n if (withCredentials) {\r\n // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n // Only set the timeout for asynchronous requests as\r\n // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n if (!isSync && timeout) {\r\n _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n }\r\n return xhr;\r\n}\r\n/**\r\n * Check to see if the value is > 0\r\n * @param value - The value to check\r\n * @returns true if > 0 otherwise false\r\n */\r\nexport function isGreaterThanZero(value) {\r\n return value > 0;\r\n}\r\n//# sourceMappingURL=Utils.js.map","/*\n * 1DS JS SDK Core, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* AppInsightsCore.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AppInsightsCore as InternalCore, _throwInternal, createDynamicConfig, doPerf, dumpObj, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze } from \"@nevware21/ts-utils\";\r\nimport { STR_DEFAULT_ENDPOINT_URL, STR_EMPTY, STR_PROPERTIES, STR_VERSION } from \"./InternalConstants\";\r\nimport { FullVersionString, getTime, isLatency } from \"./Utils\";\r\nimport { _DYN_INDEX_OF, _DYN_INITIALIZE, _DYN_LOGGER, _DYN_POLL_INTERNAL_LOGS, _DYN_TIMINGS } from \"./__DynamicConstants\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze({\r\n endpointUrl: STR_DEFAULT_ENDPOINT_URL,\r\n propertyStorageOverride: { isVal: _chkPropOverride }\r\n});\r\nfunction _chkPropOverride(propertyStorageOverride) {\r\n // Validate property storage override\r\n if (propertyStorageOverride && (!propertyStorageOverride.getProperty || !propertyStorageOverride.setProperty)) {\r\n throwError(\"Invalid property storage override passed.\");\r\n }\r\n return true;\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n __extends(AppInsightsCore, _super);\r\n function AppInsightsCore() {\r\n var _this = _super.call(this) || this;\r\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n doPerf(_self, function () { return \"AppInsightsCore.initialize\"; }, function () {\r\n try {\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false).cfg, extensions, logger, notificationManager);\r\n }\r\n catch (e) {\r\n var logger_1 = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n var message = dumpObj(e);\r\n if (message[_DYN_INDEX_OF /* @min:%2eindexOf */](\"channels\") !== -1) {\r\n // Add some additional context to the underlying reported error\r\n message += \"\\n - Channels must be provided through config.channels only!\";\r\n }\r\n _throwInternal(logger_1, 1 /* eLoggingSeverity.CRITICAL */, 514 /* _eExtendedInternalMessageId.FailedToInitializeSDK */, \"SDK Initialization Failed - no telemetry will be sent: \" + message);\r\n }\r\n }, function () { return ({ config: config, extensions: extensions, logger: logger, notificationManager: notificationManager }); });\r\n };\r\n _self.track = function (item) {\r\n doPerf(_self, function () { return \"AppInsightsCore.track\"; }, function () {\r\n var telemetryItem = item;\r\n if (telemetryItem) {\r\n telemetryItem[_DYN_TIMINGS /* @min:%2etimings */] = telemetryItem[_DYN_TIMINGS /* @min:%2etimings */] || {};\r\n telemetryItem[_DYN_TIMINGS /* @min:%2etimings */].trackStart = getTime();\r\n if (!isLatency(telemetryItem.latency)) {\r\n telemetryItem.latency = 1 /* EventLatencyValue.Normal */;\r\n }\r\n var itemExt = telemetryItem.ext = telemetryItem.ext || {};\r\n itemExt.sdk = itemExt.sdk || {};\r\n itemExt.sdk.ver = FullVersionString;\r\n var baseData = telemetryItem.baseData = telemetryItem.baseData || {};\r\n baseData[STR_PROPERTIES /* @min:%2eproperties */] = baseData[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var itemProperties = baseData[STR_PROPERTIES /* @min:%2eproperties */];\r\n itemProperties[STR_VERSION] = itemProperties[STR_VERSION] || _self.pluginVersionString || STR_EMPTY;\r\n }\r\n _base.track(telemetryItem);\r\n }, function () { return ({ item: item }); }, !(item.sync));\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n return _base[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */](eventName || \"InternalLog\");\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}(InternalCore));\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName - {string} - The name of the event\r\n * @param callback - {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n * Real Time profile (default profile). RealTime Latency events are sent every 1 sec and\r\n * Normal Latency events are sent every 2 sec.\r\n */\r\nexport var RT_PROFILE = \"REAL_TIME\";\r\n/**\r\n * Near Real Time profile. RealTime Latency events are sent every 3 sec and\r\n * Normal Latency events are sent every 6 sec.\r\n */\r\nexport var NRT_PROFILE = \"NEAR_REAL_TIME\";\r\n/**\r\n * Best Effort. RealTime Latency events are sent every 9 sec and\r\n * Normal Latency events are sent every 18 sec.\r\n */\r\nexport var BE_PROFILE = \"BEST_EFFORT\";\r\n//# sourceMappingURL=DataModels.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n\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 ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_POST_METHOD = \"POST\";\r\nexport var STR_DISABLED_PROPERTY_NAME = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var STR_DROPPED = \"drop\";\r\nexport var STR_SENDING = \"send\";\r\nexport var STR_REQUEUE = \"requeue\";\r\nexport var STR_RESPONSE_FAIL = \"rspFail\";\r\nexport var STR_OTHER = \"oth\";\r\nexport var DEFAULT_CACHE_CONTROL = \"no-cache, no-store\";\r\nexport var DEFAULT_CONTENT_TYPE = \"application/x-json-stream\";\r\nexport var STR_CACHE_CONTROL = \"cache-control\";\r\nexport var STR_CONTENT_TYPE_HEADER = \"content-type\";\r\nexport var STR_KILL_TOKENS_HEADER = \"kill-tokens\";\r\nexport var STR_KILL_DURATION_HEADER = \"kill-duration\";\r\nexport var STR_KILL_DURATION_SECONDS_HEADER = \"kill-duration-seconds\";\r\nexport var STR_TIME_DELTA_HEADER = \"time-delta-millis\";\r\nexport var STR_CLIENT_VERSION = \"client-version\";\r\nexport var STR_CLIENT_ID = \"client-id\";\r\nexport var STR_TIME_DELTA_TO_APPLY = \"time-delta-to-apply-millis\";\r\nexport var STR_UPLOAD_TIME = \"upload-time\";\r\nexport var STR_API_KEY = \"apikey\";\r\nexport var STR_MSA_DEVICE_TICKET = \"AuthMsaDeviceTicket\";\r\nexport var STR_AUTH_WEB_TOKEN = \"WebAuthToken\";\r\nexport var STR_AUTH_XTOKEN = \"AuthXToken\";\r\nexport var STR_SDK_VERSION = \"sdk-version\";\r\nexport var STR_NO_RESPONSE_BODY = \"NoResponseBody\";\r\nexport var STR_MSFPC = \"msfpc\";\r\nexport var STR_TRACE = \"trace\";\r\nexport var STR_USER = \"user\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n\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_ALLOW_REQUEST_SENDIN0 = \"allowRequestSending\"; // Count: 3\r\nexport var _DYN_FIRST_REQUEST_SENT = \"firstRequestSent\"; // Count: 2\r\nexport var _DYN_SHOULD_ADD_CLOCK_SKE1 = \"shouldAddClockSkewHeaders\"; // Count: 2\r\nexport var _DYN_GET_CLOCK_SKEW_HEADE2 = \"getClockSkewHeaderValue\"; // Count: 2\r\nexport var _DYN_SET_CLOCK_SKEW = \"setClockSkew\"; // Count: 3\r\nexport var _DYN_LENGTH = \"length\"; // Count: 38\r\nexport var _DYN_CONCAT = \"concat\"; // Count: 7\r\nexport var _DYN_I_KEY = \"iKey\"; // Count: 11\r\nexport var _DYN_COUNT = \"count\"; // Count: 19\r\nexport var _DYN_EVENTS = \"events\"; // Count: 8\r\nexport var _DYN_PUSH = \"push\"; // Count: 15\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 4\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 3\r\nexport var _DYN_HDRS = \"hdrs\"; // Count: 7\r\nexport var _DYN_USE_HDRS = \"useHdrs\"; // Count: 5\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 5\r\nexport var _DYN_SET_TIMEOUT_OVERRIDE = \"setTimeoutOverride\"; // Count: 3\r\nexport var _DYN_CLEAR_TIMEOUT_OVERRI3 = \"clearTimeoutOverride\"; // Count: 3\r\nexport var _DYN_PAYLOAD_PREPROCESSOR = \"payloadPreprocessor\"; // Count: 2\r\nexport var _DYN_OVERRIDE_ENDPOINT_UR4 = \"overrideEndpointUrl\"; // Count: 3\r\nexport var _DYN_AVOID_OPTIONS = \"avoidOptions\"; // Count: 3\r\nexport var _DYN_DISABLE_EVENT_TIMING5 = \"disableEventTimings\"; // Count: 2\r\nexport var _DYN_STRINGIFY_OBJECTS = \"stringifyObjects\"; // Count: 2\r\nexport var _DYN_ENABLE_COMPOUND_KEY = \"enableCompoundKey\"; // Count: 4\r\nexport var _DYN_DISABLE_XHR_SYNC = \"disableXhrSync\"; // Count: 6\r\nexport var _DYN_DISABLE_FETCH_KEEP_A6 = \"disableFetchKeepAlive\"; // Count: 7\r\nexport var _DYN_ADD_NO_RESPONSE = \"addNoResponse\"; // Count: 3\r\nexport var _DYN_EXCLUDE_CS_META_DATA = \"excludeCsMetaData\"; // Count: 2\r\nexport var _DYN_USE_SEND_BEACON = \"useSendBeacon\"; // Count: 3\r\nexport var _DYN_ALWAYS_USE_XHR_OVERR7 = \"alwaysUseXhrOverride\"; // Count: 3\r\nexport var _DYN_UNLOAD_TRANSPORTS = \"unloadTransports\"; // Count: 2\r\nexport var _DYN_SERIALIZE_OFFLINE_EV8 = \"serializeOfflineEvt\"; // Count: 2\r\nexport var _DYN_GET_OFFLINE_REQUEST_9 = \"getOfflineRequestDetails\"; // Count: 2\r\nexport var _DYN_CREATE_PAYLOAD = \"createPayload\"; // Count: 4\r\nexport var _DYN_CREATE_ONE_DSPAYLOAD = \"createOneDSPayload\"; // Count: 4\r\nexport var _DYN_PAYLOAD_BLOB = \"payloadBlob\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 12\r\nexport var _DYN__THE_PAYLOAD = \"_thePayload\"; // Count: 6\r\nexport var _DYN_URL_STRING = \"urlString\"; // Count: 5\r\nexport var _DYN_BATCHES = \"batches\"; // Count: 15\r\nexport var _DYN_SEND_TYPE = \"sendType\"; // Count: 13\r\nexport var _DYN_ADD_HEADER = \"addHeader\"; // Count: 3\r\nexport var _DYN_CAN_SEND_REQUEST = \"canSendRequest\"; // Count: 3\r\nexport var _DYN_SEND_QUEUED_REQUESTS = \"sendQueuedRequests\"; // Count: 5\r\nexport var _DYN_IS_COMPLETELY_IDLE = \"isCompletelyIdle\"; // Count: 2\r\nexport var _DYN_SET_UNLOADING = \"setUnloading\"; // Count: 3\r\nexport var _DYN_IS_TENANT_KILLED = \"isTenantKilled\"; // Count: 3\r\nexport var _DYN_SEND_SYNCHRONOUS_BAT10 = \"sendSynchronousBatch\"; // Count: 2\r\nexport var _DYN__TRANSPORT = \"_transport\"; // Count: 3\r\nexport var _DYN_GET_WPARAM = \"getWParam\"; // Count: 4\r\nexport var _DYN_IS_BEACON = \"isBeacon\"; // Count: 4\r\nexport var _DYN_TIMINGS = \"timings\"; // Count: 4\r\nexport var _DYN_IS_TEARDOWN = \"isTeardown\"; // Count: 3\r\nexport var _DYN_IS_SYNC = \"isSync\"; // Count: 4\r\nexport var _DYN_DATA = \"data\"; // Count: 7\r\nexport var _DYN_TIMEOUT = \"timeout\"; // Count: 4\r\nexport var _DYN__SEND_REASON = \"_sendReason\"; // Count: 4\r\nexport var _DYN_SET_KILL_SWITCH_TENA11 = \"setKillSwitchTenants\"; // Count: 2\r\nexport var _DYN__BACK_OFF_TRANSMISSI12 = \"_backOffTransmission\"; // Count: 2\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 4\r\nexport var _DYN_DISABLE_OPTIMIZE_OBJ = \"disableOptimizeObj\"; // Count: 2\r\nexport var _DYN_IGNORE_MC1_MS0_COOKI13 = \"ignoreMc1Ms0CookieProcessing\"; // Count: 2\r\nexport var _DYN_EVENTS_LIMIT_IN_MEM = \"eventsLimitInMem\"; // Count: 2\r\nexport var _DYN_AUTO_FLUSH_EVENTS_LI14 = \"autoFlushEventsLimit\"; // Count: 2\r\nexport var _DYN_DISABLE_AUTO_BATCH_F15 = \"disableAutoBatchFlushLimit\"; // Count: 2\r\nexport var _DYN_OVERRIDE_INSTRUMENTA16 = \"overrideInstrumentationKey\"; // Count: 2\r\nexport var _DYN_DISABLE_TELEMETRY = \"disableTelemetry\"; // Count: 2\r\nexport var _DYN_BASE_DATA = \"baseData\"; // Count: 3\r\nexport var _DYN_SEND_ATTEMPT = \"sendAttempt\"; // Count: 4\r\nexport var _DYN_LATENCY = \"latency\"; // Count: 7\r\nexport var _DYN_SYNC = \"sync\"; // Count: 7\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* EventBatch.ts\r\n* @author Nev Wylie (newylie)\r\n* @copyright Microsoft 2020\r\n*/\r\nimport { isNullOrUndefined, isValueAssigned } from \"@microsoft/1ds-core-js\";\r\nimport { STR_EMPTY, STR_MSFPC } from \"./InternalConstants\";\r\nimport { _DYN_CONCAT, _DYN_COUNT, _DYN_EVENTS, _DYN_I_KEY, _DYN_LENGTH, _DYN_PUSH, _DYN_SPLICE, _DYN_SPLIT } from \"./__DynamicConstants\";\r\nfunction _getEventMsfpc(theEvent) {\r\n var intWeb = ((theEvent.ext || {})[\"intweb\"]);\r\n if (intWeb && isValueAssigned(intWeb[STR_MSFPC])) {\r\n return intWeb[STR_MSFPC];\r\n }\r\n return null;\r\n}\r\nfunction _getMsfpc(theEvents) {\r\n var msfpc = null;\r\n for (var lp = 0; msfpc === null && lp < theEvents[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n msfpc = _getEventMsfpc(theEvents[lp]);\r\n }\r\n return msfpc;\r\n}\r\n/**\r\n* This class defines a \"batch\" events related to a specific iKey, it is used by the PostChannel and HttpManager\r\n* to collect and transfer ownership of events without duplicating them in-memory. This reduces the previous\r\n* array duplication and shared ownership issues that occurred due to race conditions caused by the async nature\r\n* of sending requests.\r\n*/\r\nvar EventBatch = /** @class */ (function () {\r\n /**\r\n * Private constructor so that caller is forced to use the static create method.\r\n * @param iKey - The iKey to associate with the events (not validated)\r\n * @param addEvents - The optional collection of events to assign to this batch - defaults to an empty array.\r\n */\r\n function EventBatch(iKey, addEvents) {\r\n var events = addEvents ? [][_DYN_CONCAT /* @min:%2econcat */](addEvents) : [];\r\n var _self = this;\r\n var _msfpc = _getMsfpc(events);\r\n _self[_DYN_I_KEY /* @min:%2eiKey */] = function () {\r\n return iKey;\r\n };\r\n _self.Msfpc = function () {\r\n // return the cached value unless it's undefined -- used to avoid cpu\r\n return _msfpc || STR_EMPTY;\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return events[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self[_DYN_EVENTS /* @min:%2eevents */] = function () {\r\n return events;\r\n };\r\n _self.addEvent = function (theEvent) {\r\n if (theEvent) {\r\n events[_DYN_PUSH /* @min:%2epush */](theEvent);\r\n if (!_msfpc) {\r\n // Not found so try and find one\r\n _msfpc = _getEventMsfpc(theEvent);\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n _self[_DYN_SPLIT /* @min:%2esplit */] = function (fromEvent, numEvents) {\r\n // Create a new batch with the same iKey\r\n var theEvents;\r\n if (fromEvent < events[_DYN_LENGTH /* @min:%2elength */]) {\r\n var cnt = events[_DYN_LENGTH /* @min:%2elength */] - fromEvent;\r\n if (!isNullOrUndefined(numEvents)) {\r\n cnt = numEvents < cnt ? numEvents : cnt;\r\n }\r\n theEvents = events[_DYN_SPLICE /* @min:%2esplice */](fromEvent, cnt);\r\n // reset the fetched msfpc value\r\n _msfpc = _getMsfpc(events);\r\n }\r\n return new EventBatch(iKey, theEvents);\r\n };\r\n }\r\n /**\r\n * Creates a new Event Batch object\r\n * @param iKey The iKey associated with this batch of events\r\n */\r\n EventBatch.create = function (iKey, theEvents) {\r\n return new EventBatch(iKey, theEvents);\r\n };\r\n return EventBatch;\r\n}());\r\nexport { EventBatch };\r\n//# sourceMappingURL=EventBatch.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, dumpObj, getNavigator, getWindow, isFunction, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DATA, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PROTOCOL, _DYN_REPLACE, _DYN_SEND_POST, _DYN_SET_REQUEST_HEADER, _DYN_STATUS, _DYN_TIMEOUT, _DYN_TO_LOWER_CASE, _DYN_URL_STRING, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { DisabledPropertyName } from \"./Constants\";\r\nimport { _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getLocation, isBeaconsSupported, isFetchSupported, isXhrSupported, useXDomainRequest } from \"./EnvUtils\";\r\nimport { _getAllResponseHeaders, formatErrorMessageXdr, formatErrorMessageXhr, getResponseText, openXhr } from \"./HelperFuncs\";\r\nvar STR_EMPTY = \"\";\r\nvar STR_NO_RESPONSE_BODY = \"NoResponseBody\";\r\nvar _noResponseQs = \"&\" + STR_NO_RESPONSE_BODY + \"=true\";\r\nvar STR_POST_METHOD = \"POST\";\r\n/**\r\n * This Internal component\r\n * Manager SendPost functions\r\n * SendPostManger\r\n * @internal for internal use only\r\n */\r\nvar SenderPostManager = /** @class */ (function () {\r\n function SenderPostManager() {\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _enableSendPromise;\r\n var _isInitialized;\r\n var _diagLog;\r\n var _isOneDs;\r\n var _onCompleteFuncs;\r\n var _disableCredentials;\r\n var _fallbackInst;\r\n var _disableXhr;\r\n var _disableBeacon;\r\n var _disableBeaconSync;\r\n var _disableFetchKeepAlive;\r\n var _addNoResponse;\r\n var _timeoutWrapper;\r\n dynamicProto(SenderPostManager, this, function (_self, _base) {\r\n var _sendCredentials = true; // for 1ds\r\n _initDefaults();\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, diagLog) {\r\n _diagLog = diagLog;\r\n if (_isInitialized) {\r\n _throwInternal(_diagLog, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _self.SetConfig(config);\r\n _isInitialized = true;\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];\r\n };\r\n // This componet might get its config from sender, offline sender, 1ds post\r\n // so set this function to mock dynamic changes\r\n _self.SetConfig = function (config) {\r\n try {\r\n _onCompleteFuncs = config.senderOnCompleteCallBack || {};\r\n _disableCredentials = !!config.disableCredentials;\r\n _isOneDs = !!config.isOneDs;\r\n _enableSendPromise = !!config.enableSendPromise;\r\n _disableXhr = !!config.disableXhr;\r\n _disableBeacon = !!config.disableBeacon;\r\n _disableBeaconSync = !!config.disableBeaconSync;\r\n _timeoutWrapper = config.timeWrapper;\r\n _addNoResponse = !!config.addNoResponse;\r\n _disableFetchKeepAlive = !!config.disableFetchKeepAlive;\r\n _fallbackInst = { sendPOST: _xhrSender };\r\n if (!_isOneDs) {\r\n _sendCredentials = false; // for appInsights, set it to false always\r\n }\r\n if (_disableCredentials) {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"file:\") {\r\n // Special case where a local html file fails with a CORS error on Chromium browsers\r\n _sendCredentials = false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n _self.getSyncFetchPayload = function () {\r\n return _syncFetchPayload;\r\n };\r\n _self.getSenderInst = function (transports, sync) {\r\n if (transports && transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n return _getSenderInterface(transports, sync);\r\n }\r\n return null;\r\n };\r\n _self.getFallbackInst = function () {\r\n return _fallbackInst;\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function (unloadCtx, unloadState) {\r\n _initDefaults();\r\n };\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(res, onComplete) {\r\n _doOnComplete(onComplete, 200, {}, res);\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(message, onComplete) {\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _doOnComplete(onComplete, 400, {});\r\n }\r\n function _onNoPayloadUrl(onComplete) {\r\n _onError(\"No endpoint url is provided for the batch\", onComplete);\r\n }\r\n function _getSenderInterface(transports, syncSupport) {\r\n var _a;\r\n var transportType = 0 /* TransportType.NotSet */;\r\n var sendPostFunc = null;\r\n var lp = 0;\r\n while (sendPostFunc == null && lp < transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n transportType = transports[lp];\r\n if (!_disableXhr && transportType === 1 /* TransportType.Xhr */) {\r\n if (useXDomainRequest()) {\r\n // IE 8 and 9\r\n sendPostFunc = _xdrSender;\r\n }\r\n else if (isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n }\r\n else if (transportType === 2 /* TransportType.Fetch */ && isFetchSupported(syncSupport) && (!syncSupport || !_disableFetchKeepAlive)) {\r\n sendPostFunc = _doFetchSender;\r\n }\r\n else if (transportType === 3 /* TransportType.Beacon */ && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {\r\n sendPostFunc = _beaconSender;\r\n }\r\n lp++;\r\n }\r\n if (sendPostFunc) {\r\n return _a = {\r\n _transport: transportType,\r\n _isSync: syncSupport\r\n },\r\n _a[_DYN_SEND_POST /* @min:sendPOST */] = sendPostFunc,\r\n _a;\r\n }\r\n return null;\r\n }\r\n function _doOnComplete(oncomplete, status, headers, response) {\r\n try {\r\n oncomplete && oncomplete(status, headers, response);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doBeaconSend(payload, oncomplete) {\r\n var nav = getNavigator();\r\n var url = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!url) {\r\n _onNoPayloadUrl(oncomplete);\r\n // return true here, because we don't want to retry it with fallback sender\r\n return true;\r\n }\r\n url = payload[_DYN_URL_STRING /* @min:%2eurlString */] + (_addNoResponse ? _noResponseQs : STR_EMPTY);\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = _isOneDs ? data : new Blob([data], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, oncomplete, sync) {\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n try {\r\n if (data) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload, oncomplete)) {\r\n var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;\r\n if (onRetry && isFunction(onRetry)) {\r\n onRetry(payload, oncomplete, _doBeaconSend);\r\n }\r\n else {\r\n _fallbackInst && _fallbackInst[_DYN_SEND_POST /* @min:%2esendPOST */](payload, oncomplete, true);\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n // if can send\r\n _onSuccess(STR_EMPTY, oncomplete);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _isOneDs && _warnToConsole(_diagLog, \"Failed to send telemetry using sendBeacon API. Ex:\" + dumpObj(e));\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, STR_EMPTY);\r\n }\r\n return;\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n */\r\n function _xhrSender(payload, oncomplete, sync) {\r\n //let internalPayload = payload as IInternalPayloadData;\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (_isOneDs && sync && payload.disableXhrSync) {\r\n sync = false;\r\n }\r\n //const xhr = new XMLHttpRequest();\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n if (!_isOneDs) {\r\n // application/json should NOT add to 1ds post by default\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n }\r\n arrForEach(objKeys(headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n if (!_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }\r\n };\r\n xhr.onload = function () {\r\n if (_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n }\r\n };\r\n function _doOnReadyFunc(xhr) {\r\n var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;\r\n var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);\r\n if (onReadyFuncExist) {\r\n onReadyFunc(xhr, oncomplete, payload);\r\n }\r\n else {\r\n var response = getResponseText(xhr);\r\n _doOnComplete(oncomplete, xhr[_DYN_STATUS /* @min:%2estatus */], _getAllResponseHeaders(xhr, _isOneDs), response);\r\n }\r\n }\r\n xhr.onerror = function (event) {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 400, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n rejectFunc && rejectFunc(event);\r\n };\r\n xhr.ontimeout = function () {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 500, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n resolveFunc && resolveFunc(false);\r\n };\r\n xhr.send(payload[_DYN_DATA /* @min:%2edata */]);\r\n return thePromise;\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, oncomplete, sync) {\r\n var _a;\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n var batch = payload[_DYN_DATA /* @min:%2edata */];\r\n var plainTextBatch = _isOneDs ? batch : new Blob([batch], { type: \"application/json\" });\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n //TODO: handle time out for 1ds\r\n var init = (_a = {\r\n method: STR_POST_METHOD,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n // Only add headers if there are headers to add, due to issue with some polyfills\r\n if (payload.headers && objKeys(payload.headers)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(objKeys(headers), function (headerName) {\r\n requestHeaders.append(headerName, headers[headerName]);\r\n });\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = requestHeaders;\r\n }\r\n if (_sendCredentials && _isOneDs) {\r\n // for 1ds, Don't send credentials when URL is file://\r\n init.credentials = \"include\";\r\n }\r\n if (sync) {\r\n init.keepalive = true;\r\n _syncFetchPayload += batchLength;\r\n if (_isOneDs) {\r\n if (payload[\"_sendReason\"] === 2 /* SendRequestReason.Unload */) {\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n if (_addNoResponse) {\r\n endPointUrl += _noResponseQs;\r\n }\r\n }\r\n }\r\n else {\r\n // for appinsights, set to true for all sync request\r\n ignoreResponse = true;\r\n }\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n function _handleError(res) {\r\n // In case there is an error in the request. Set the status to 0 for 1ds and 400 for appInsights\r\n // so that the events can be retried later.\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, _isOneDs ? STR_EMPTY : res);\r\n }\r\n function _onFetchComplete(response, payload, value) {\r\n var status = response[_DYN_STATUS /* @min:%2estatus */];\r\n var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;\r\n if (onCompleteFunc && isFunction(onCompleteFunc)) {\r\n onCompleteFunc(response, oncomplete, value || STR_EMPTY, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, status, {}, value || STR_EMPTY);\r\n }\r\n }\r\n try {\r\n doAwaitResponse(fetch(_isOneDs ? endPointUrl : request, _isOneDs ? init : null), function (result) {\r\n if (sync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n if (!result.rejected) {\r\n var response_1 = result.value;\r\n try {\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!_isOneDs && !response_1.ok) {\r\n // this is for appInsights only\r\n _handleError(response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n if (_isOneDs && !response_1.body) {\r\n _onFetchComplete(response_1, null, STR_EMPTY);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _onFetchComplete(response_1, payload, resp.value);\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n else {\r\n _handleError(result.reason && result.reason[_DYN_MESSAGE /* @min:%2emessage */]);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 200, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n if (_isOneDs && !responseHandled && payload[_DYN_TIMEOUT /* @min:%2etimeout */] > 0) {\r\n // Simulate timeout\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n if (!responseHandled) {\r\n // Assume a 500 response (which will cause a retry)\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 500, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, oncomplete, sync) {\r\n // It doesn't support custom headers, so no action is taken with current requestHeaders\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n xdr.onload = function () {\r\n var response = getResponseText(xdr);\r\n var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;\r\n if (onloadFunc && isFunction(onloadFunc)) {\r\n onloadFunc(xdr, oncomplete, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 200, {}, response);\r\n }\r\n };\r\n xdr.onerror = function () {\r\n _doOnComplete(oncomplete, 400, {}, _isOneDs ? STR_EMPTY : formatErrorMessageXdr(xdr));\r\n };\r\n xdr.ontimeout = function () {\r\n _doOnComplete(oncomplete, 500, {});\r\n };\r\n xdr.onprogress = function () { };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location[_DYN_PROTOCOL /* @min:%2eprotocol */] || \"\";\r\n var endpoint = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endpoint) {\r\n _onNoPayloadUrl(oncomplete);\r\n return;\r\n }\r\n if (!_isOneDs && endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n var msg = \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\";\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + msg);\r\n _onError(msg, oncomplete);\r\n return;\r\n }\r\n var endpointUrl = _isOneDs ? endpoint : endpoint[_DYN_REPLACE /* @min:%2ereplace */](/^(https?:)/, \"\");\r\n xdr.open(STR_POST_METHOD, endpointUrl);\r\n if (payload[_DYN_TIMEOUT /* @min:%2etimeout */]) {\r\n xdr[_DYN_TIMEOUT /* @min:%2etimeout */] = payload[_DYN_TIMEOUT /* @min:%2etimeout */];\r\n }\r\n xdr.send(data);\r\n if (_isOneDs && sync) {\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n xdr.send(data);\r\n }, 0);\r\n }\r\n else {\r\n xdr.send(data);\r\n }\r\n }\r\n function _initDefaults() {\r\n _syncFetchPayload = 0;\r\n _isInitialized = false;\r\n _enableSendPromise = false;\r\n _diagLog = null;\r\n _isOneDs = null;\r\n _onCompleteFuncs = null;\r\n _disableCredentials = null;\r\n _fallbackInst = null;\r\n _disableXhr = false;\r\n _disableBeacon = false;\r\n _disableBeaconSync = false;\r\n _disableFetchKeepAlive = false;\r\n _addNoResponse = false;\r\n _timeoutWrapper = null;\r\n }\r\n });\r\n }\r\n// Removed Stub for SenderPostManager.prototype.initialize.\r\n// Removed Stub for SenderPostManager.prototype.getSyncFetchPayload.\r\n// Removed Stub for SenderPostManager.prototype.SetConfig.\r\n// Removed Stub for SenderPostManager.prototype.getSenderInst.\r\n// Removed Stub for SenderPostManager.prototype.getFallbackInst.\r\n// Removed Stub for SenderPostManager.prototype._doTeardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n SenderPostManager.__ieDyn=1;\n\n return SenderPostManager;\r\n}());\r\nexport { SenderPostManager };\r\n//# sourceMappingURL=SenderPostManager.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* ClockSkewManager.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_ALLOW_REQUEST_SENDIN0, _DYN_FIRST_REQUEST_SENT, _DYN_GET_CLOCK_SKEW_HEADE2, _DYN_SET_CLOCK_SKEW, _DYN_SHOULD_ADD_CLOCK_SKE1 } from \"./__DynamicConstants\";\r\n/**\r\n* Class to manage clock skew correction.\r\n*/\r\nvar ClockSkewManager = /** @class */ (function () {\r\n function ClockSkewManager() {\r\n var _allowRequestSending = true;\r\n var _shouldAddClockSkewHeaders = true;\r\n var _isFirstRequest = true;\r\n var _clockSkewHeaderValue = \"use-collector-delta\";\r\n var _clockSkewSet = false;\r\n dynamicProto(ClockSkewManager, this, function (_self) {\r\n /**\r\n * Determine if requests can be sent.\r\n * @returns True if requests can be sent, false otherwise.\r\n */\r\n _self[_DYN_ALLOW_REQUEST_SENDIN0 /* @min:%2eallowRequestSending */] = function () {\r\n return _allowRequestSending;\r\n };\r\n /**\r\n * Tells the ClockSkewManager that it should assume that the first request has now been sent,\r\n * If this method had not yet been called AND the clock Skew had not been set this will set\r\n * allowRequestSending to false until setClockSet() is called.\r\n */\r\n _self[_DYN_FIRST_REQUEST_SENT /* @min:%2efirstRequestSent */] = function () {\r\n if (_isFirstRequest) {\r\n _isFirstRequest = false;\r\n if (!_clockSkewSet) {\r\n // Block sending until we get the first clock Skew\r\n _allowRequestSending = false;\r\n }\r\n }\r\n };\r\n /**\r\n * Determine if clock skew headers should be added to the request.\r\n * @returns True if clock skew headers should be added, false otherwise.\r\n */\r\n _self[_DYN_SHOULD_ADD_CLOCK_SKE1 /* @min:%2eshouldAddClockSkewHeaders */] = function () {\r\n return _shouldAddClockSkewHeaders;\r\n };\r\n /**\r\n * Gets the clock skew header value.\r\n * @returns The clock skew header value.\r\n */\r\n _self[_DYN_GET_CLOCK_SKEW_HEADE2 /* @min:%2egetClockSkewHeaderValue */] = function () {\r\n return _clockSkewHeaderValue;\r\n };\r\n /**\r\n * Sets the clock skew header value. Once clock skew is set this method\r\n * is no-op.\r\n * @param timeDeltaInMillis - Time delta to be saved as the clock skew header value.\r\n */\r\n _self[_DYN_SET_CLOCK_SKEW /* @min:%2esetClockSkew */] = function (timeDeltaInMillis) {\r\n if (!_clockSkewSet) {\r\n if (timeDeltaInMillis) {\r\n _clockSkewHeaderValue = timeDeltaInMillis;\r\n _shouldAddClockSkewHeaders = true;\r\n _clockSkewSet = true;\r\n }\r\n else {\r\n _shouldAddClockSkewHeaders = false;\r\n }\r\n // Unblock sending\r\n _allowRequestSending = true;\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for ClockSkewManager.prototype.allowRequestSending.\r\n// Removed Stub for ClockSkewManager.prototype.firstRequestSent.\r\n// Removed Stub for ClockSkewManager.prototype.shouldAddClockSkewHeaders.\r\n// Removed Stub for ClockSkewManager.prototype.getClockSkewHeaderValue.\r\n// Removed Stub for ClockSkewManager.prototype.setClockSkew.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ClockSkewManager.__ieDyn=1;\n\n return ClockSkewManager;\r\n}());\r\nexport { ClockSkewManager };\r\n//# sourceMappingURL=ClockSkewManager.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* KillSwitch.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrForEach, dateNow, strTrim } from \"@microsoft/1ds-core-js\";\r\nimport { _DYN_IS_TENANT_KILLED, _DYN_LENGTH, _DYN_PUSH, _DYN_SET_KILL_SWITCH_TENA11, _DYN_SPLIT } from \"./__DynamicConstants\";\r\nvar SecToMsMultiplier = 1000;\r\n/**\r\n* Class to stop certain tenants sending events.\r\n*/\r\nvar KillSwitch = /** @class */ (function () {\r\n function KillSwitch() {\r\n var _killedTokenDictionary = {};\r\n function _normalizeTenants(values) {\r\n var result = [];\r\n if (values) {\r\n arrForEach(values, function (value) {\r\n result[_DYN_PUSH /* @min:%2epush */](strTrim(value));\r\n });\r\n }\r\n return result;\r\n }\r\n dynamicProto(KillSwitch, this, function (_self) {\r\n _self[_DYN_SET_KILL_SWITCH_TENA11 /* @min:%2esetKillSwitchTenants */] = function (killTokens, killDuration) {\r\n if (killTokens && killDuration) {\r\n try {\r\n var killedTokens = _normalizeTenants(killTokens[_DYN_SPLIT /* @min:%2esplit */](\",\"));\r\n if (killDuration === \"this-request-only\") {\r\n return killedTokens;\r\n }\r\n var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;\r\n for (var i = 0; i < killedTokens[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n _killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;\r\n }\r\n }\r\n catch (ex) {\r\n return [];\r\n }\r\n }\r\n return [];\r\n };\r\n _self[_DYN_IS_TENANT_KILLED /* @min:%2eisTenantKilled */] = function (tenantToken) {\r\n var killDictionary = _killedTokenDictionary;\r\n var name = strTrim(tenantToken);\r\n if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {\r\n return true;\r\n }\r\n delete killDictionary[name];\r\n return false;\r\n };\r\n });\r\n }\r\n// Removed Stub for KillSwitch.prototype.setKillSwitchTenants.\r\n// Removed Stub for KillSwitch.prototype.isTenantKilled.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n KillSwitch.__ieDyn=1;\n\n return KillSwitch;\r\n}());\r\nexport { KillSwitch };\r\n//# sourceMappingURL=KillSwitch.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* RetryPolicy.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n*/\r\nvar RandomizationLowerThreshold = 0.8;\r\nvar RandomizationUpperThreshold = 1.2;\r\nvar BaseBackoff = 3000;\r\nvar MaxBackoff = 600000;\r\n/**\r\n * Determine if the request should be retried for the given status code.\r\n * The below expression reads that we should only retry for:\r\n * - HttpStatusCodes that are smaller than 300.\r\n * - HttpStatusCodes greater or equal to 500 (except for 501-NotImplement\r\n * and 505-HttpVersionNotSupport).\r\n * - HttpStatusCode 408-RequestTimeout.\r\n * - HttpStatusCode 429.\r\n * This is based on Microsoft.WindowsAzure.Storage.RetryPolicies.ExponentialRetry class\r\n * @param httpStatusCode - The status code returned for the request.\r\n * @returns True if request should be retried, false otherwise.\r\n */\r\nexport function retryPolicyShouldRetryForStatus(httpStatusCode) {\r\n /* tslint:disable:triple-equals */\r\n // Disabling triple-equals rule to avoid httpOverrides from failing because they are returning a string value\r\n return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 429)\r\n || (httpStatusCode == 501)\r\n || (httpStatusCode == 505));\r\n /* tslint:enable:triple-equals */\r\n}\r\n/**\r\n * Gets the number of milliseconds to back off before retrying the request. The\r\n * back off duration is exponentially scaled based on the number of retries already\r\n * done for the request.\r\n * @param retriesSoFar - The number of times the request has already been retried.\r\n * @returns The back off duration for the request before it can be retried.\r\n */\r\nexport function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {\r\n var waitDuration = 0;\r\n var minBackoff = BaseBackoff * RandomizationLowerThreshold;\r\n var maxBackoff = BaseBackoff * RandomizationUpperThreshold;\r\n var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;\r\n waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;\r\n return Math.min(waitDuration, MaxBackoff);\r\n}\r\n//# sourceMappingURL=RetryPolicy.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Serializer.ts\r\n* @author Abhilash Panwar (abpanwar); Hector Hernandez (hectorh); Nev Wylie (newylie)\r\n* @copyright Microsoft 2018-2020\r\n*/\r\n// @skip-file-minify\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrIndexOf, doPerf, getCommonSchemaMetaData, getTenantId, isArray, isValueAssigned, objForEachKey, sanitizeProperty, strStartsWith } from \"@microsoft/1ds-core-js\";\r\nimport { EventBatch } from \"./EventBatch\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { strSubstr } from \"@nevware21/ts-utils\";\r\n/**\r\n * Note: This is an optimization for V8-based browsers. When V8 concatenates a string,\r\n * the strings are only joined logically using a \"cons string\" or \"constructed/concatenated\r\n * string\". These containers keep references to one another and can result in very large\r\n * memory usage. For example, if a 2MB string is constructed by concatenating 4 bytes\r\n * together at a time, the memory usage will be ~44MB; so ~22x increase. The strings are\r\n * only joined together when an operation requiring their joining takes place, such as\r\n * substr(). This function is called when adding data to this buffer to ensure these\r\n * types of strings are periodically joined to reduce the memory footprint.\r\n * Setting to every 20 events as the JSON.stringify() may have joined many strings\r\n * and calling this too much causes a minor delay while processing.\r\n */\r\nvar _MAX_STRING_JOINS = 20;\r\nvar RequestSizeLimitBytes = 3984588; // approx 3.8 Mb\r\nvar BeaconRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nvar MaxRecordSize = 2000000; // approx 2 Mb\r\nvar MaxBeaconRecordSize = Math.min(MaxRecordSize, BeaconRequestSizeLimitBytes);\r\nvar metadata = \"metadata\";\r\nvar f = \"f\";\r\nvar rCheckDot = /\\./;\r\n/**\r\n* Class to handle serialization of event and request.\r\n* Currently uses Bond for serialization. Please note that this may be subject to change.\r\n*/\r\nvar Serializer = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Serializer class\r\n * @param perfManager - The performance manager to use for tracking performance\r\n * @param valueSanitizer - The value sanitizer to use for sanitizing field values\r\n * @param stringifyObjects - Should objects be stringified before being sent\r\n * @param enableCompoundKey - Should compound keys be enabled (defaults to false)\r\n * @param getEncodedTypeOverride - The callback to get the encoded type for a property defaults to ({@link getCommonSchemaMetaData }(...))\r\n * @param excludeCsMetaData - (!DANGER!) Should metadata be populated when encoding the event blob (defaults to false) - PII data will NOT be tagged as PII for backend processing\r\n */\r\n function Serializer(perfManager, valueSanitizer, stringifyObjects, enableCompoundKey, getEncodedTypeOverride, excludeCsMetaData) {\r\n var strData = \"data\";\r\n var strBaseData = \"baseData\";\r\n var strExt = \"ext\";\r\n var _checkForCompoundkey = !!enableCompoundKey;\r\n var _processSubKeys = true;\r\n var _theSanitizer = valueSanitizer;\r\n var _isReservedCache = {};\r\n var _excludeCsMetaData = !!excludeCsMetaData;\r\n var _getEncodedType = getEncodedTypeOverride || getCommonSchemaMetaData;\r\n dynamicProto(Serializer, this, function (_self) {\r\n _self.createPayload = function (retryCnt, isTeardown, isSync, isReducedPayload, sendReason, sendType) {\r\n return {\r\n apiKeys: [],\r\n payloadBlob: STR_EMPTY,\r\n overflow: null,\r\n sizeExceed: [],\r\n failedEvts: [],\r\n batches: [],\r\n numEvents: 0,\r\n retryCnt: retryCnt,\r\n isTeardown: isTeardown,\r\n isSync: isSync,\r\n isBeacon: isReducedPayload,\r\n sendType: sendType,\r\n sendReason: sendReason\r\n };\r\n };\r\n _self.appendPayload = function (payload, theBatch, maxEventsPerBatch) {\r\n var canAddEvents = payload && theBatch && !payload.overflow;\r\n if (canAddEvents) {\r\n doPerf(perfManager, function () { return \"Serializer:appendPayload\"; }, function () {\r\n var theEvents = theBatch.events();\r\n var payloadBlob = payload.payloadBlob;\r\n var payloadEvents = payload.numEvents;\r\n var eventsAdded = false;\r\n var sizeExceeded = [];\r\n var failedEvts = [];\r\n var isBeaconPayload = payload.isBeacon;\r\n var requestMaxSize = isBeaconPayload ? BeaconRequestSizeLimitBytes : RequestSizeLimitBytes;\r\n var recordMaxSize = isBeaconPayload ? MaxBeaconRecordSize : MaxRecordSize;\r\n var lp = 0;\r\n var joinCount = 0;\r\n while (lp < theEvents.length) {\r\n var theEvent = theEvents[lp];\r\n if (theEvent) {\r\n if (payloadEvents >= maxEventsPerBatch) {\r\n // Maximum events per payload reached, so don't add any more\r\n payload.overflow = theBatch.split(lp);\r\n break;\r\n }\r\n var eventBlob = _self.getEventBlob(theEvent);\r\n if (eventBlob && eventBlob.length <= recordMaxSize) {\r\n // This event will fit into the payload\r\n var blobLength = eventBlob.length;\r\n var currentSize = payloadBlob.length;\r\n if (currentSize + blobLength > requestMaxSize) {\r\n // Request or batch size exceeded, so don't add any more to the payload\r\n payload.overflow = theBatch.split(lp);\r\n break;\r\n }\r\n if (payloadBlob) {\r\n payloadBlob += \"\\n\";\r\n }\r\n payloadBlob += eventBlob;\r\n joinCount++;\r\n // v8 memory optimization only\r\n if (joinCount > _MAX_STRING_JOINS) {\r\n // this substr() should cause the constructed string to join\r\n strSubstr(payloadBlob, 0, 1);\r\n joinCount = 0;\r\n }\r\n eventsAdded = true;\r\n payloadEvents++;\r\n }\r\n else {\r\n if (eventBlob) {\r\n // Single event size exceeded so remove from the batch\r\n sizeExceeded.push(theEvent);\r\n }\r\n else {\r\n failedEvts.push(theEvent);\r\n }\r\n // We also need to remove this event from the existing array, otherwise a notification will be sent\r\n // indicating that it was successfully sent\r\n theEvents.splice(lp, 1);\r\n lp--;\r\n }\r\n }\r\n lp++;\r\n }\r\n if (sizeExceeded.length > 0) {\r\n payload.sizeExceed.push(EventBatch.create(theBatch.iKey(), sizeExceeded));\r\n // Remove the exceeded events from the batch\r\n }\r\n if (failedEvts.length > 0) {\r\n payload.failedEvts.push(EventBatch.create(theBatch.iKey(), failedEvts));\r\n // Remove the failed events from the batch\r\n }\r\n if (eventsAdded) {\r\n payload.batches.push(theBatch);\r\n payload.payloadBlob = payloadBlob;\r\n payload.numEvents = payloadEvents;\r\n var apiKey = theBatch.iKey();\r\n if (arrIndexOf(payload.apiKeys, apiKey) === -1) {\r\n payload.apiKeys.push(apiKey);\r\n }\r\n }\r\n }, function () { return ({ payload: payload, theBatch: { iKey: theBatch.iKey(), evts: theBatch.events() }, max: maxEventsPerBatch }); });\r\n }\r\n return canAddEvents;\r\n };\r\n _self.getEventBlob = function (eventData) {\r\n try {\r\n return doPerf(perfManager, function () { return \"Serializer.getEventBlob\"; }, function () {\r\n var serializedEvent = {};\r\n // Adding as dynamic keys for v8 performance\r\n serializedEvent.name = eventData.name;\r\n serializedEvent.time = eventData.time;\r\n serializedEvent.ver = eventData.ver;\r\n serializedEvent.iKey = \"o:\" + getTenantId(eventData.iKey);\r\n // Assigning local var so usage in part b/c don't throw if there is no ext\r\n var serializedExt = {};\r\n var _addMetadataCallback;\r\n if (!_excludeCsMetaData) {\r\n _addMetadataCallback = function (pathKeys, key, value) {\r\n _addJSONPropertyMetaData(_getEncodedType, serializedExt, pathKeys, key, value);\r\n };\r\n }\r\n // Part A\r\n var eventExt = eventData[strExt];\r\n if (eventExt) {\r\n // Only assign ext if the event had one (There are tests covering this use case)\r\n serializedEvent[strExt] = serializedExt;\r\n objForEachKey(eventExt, function (key, value) {\r\n var data = serializedExt[key] = {};\r\n // Don't include a metadata callback as we don't currently set metadata Part A fields\r\n _processPathKeys(value, data, \"ext.\" + key, true, null, null, true);\r\n });\r\n }\r\n var serializedData = serializedEvent[strData] = {};\r\n serializedData.baseType = eventData.baseType;\r\n var serializedBaseData = serializedData[strBaseData] = {};\r\n // Part B\r\n _processPathKeys(eventData.baseData, serializedBaseData, strBaseData, false, [strBaseData], _addMetadataCallback, _processSubKeys);\r\n // Part C\r\n _processPathKeys(eventData.data, serializedData, strData, false, [], _addMetadataCallback, _processSubKeys);\r\n return JSON.stringify(serializedEvent);\r\n }, function () { return ({ item: eventData }); });\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n };\r\n function _isReservedField(path, name) {\r\n var result = _isReservedCache[path];\r\n if (result === undefined) {\r\n if (path.length >= 7) {\r\n // Do not allow the changing of fields located in the ext.metadata or ext.web extension\r\n result = strStartsWith(path, \"ext.metadata\") || strStartsWith(path, \"ext.web\");\r\n }\r\n _isReservedCache[path] = result;\r\n }\r\n return result;\r\n }\r\n function _processPathKeys(srcObj, target, thePath, checkReserved, metadataPathKeys, metadataCallback, processSubKeys) {\r\n objForEachKey(srcObj, function (key, srcValue) {\r\n var prop = null;\r\n if (srcValue || isValueAssigned(srcValue)) {\r\n var path = thePath;\r\n var name_1 = key;\r\n var theMetaPathKeys = metadataPathKeys;\r\n var destObj = target;\r\n // Handle keys with embedded '.', like \"TestObject.testProperty\"\r\n if (_checkForCompoundkey && !checkReserved && rCheckDot.test(key)) {\r\n var subKeys = key.split(\".\");\r\n var keyLen = subKeys.length;\r\n if (keyLen > 1) {\r\n if (theMetaPathKeys) {\r\n // Create a copy of the meta path keys so we can add the extra ones\r\n theMetaPathKeys = theMetaPathKeys.slice();\r\n }\r\n for (var lp = 0; lp < keyLen - 1; lp++) {\r\n var subKey = subKeys[lp];\r\n // Add/reuse the sub key object\r\n destObj = destObj[subKey] = destObj[subKey] || {};\r\n path += \".\" + subKey;\r\n if (theMetaPathKeys) {\r\n theMetaPathKeys.push(subKey);\r\n }\r\n }\r\n name_1 = subKeys[keyLen - 1];\r\n }\r\n }\r\n var isReserved = checkReserved && _isReservedField(path, name_1);\r\n if (!isReserved && _theSanitizer && _theSanitizer.handleField(path, name_1)) {\r\n prop = _theSanitizer.value(path, name_1, srcValue, stringifyObjects);\r\n }\r\n else {\r\n prop = sanitizeProperty(name_1, srcValue, stringifyObjects);\r\n }\r\n if (prop) {\r\n // Set the value\r\n var newValue = prop.value;\r\n destObj[name_1] = newValue;\r\n if (metadataCallback) {\r\n metadataCallback(theMetaPathKeys, name_1, prop);\r\n }\r\n if (processSubKeys && typeof newValue === \"object\" && !isArray(newValue)) {\r\n var newPath = theMetaPathKeys;\r\n if (newPath) {\r\n newPath = newPath.slice();\r\n newPath.push(name_1);\r\n }\r\n // Make sure we process sub objects as well (for value sanitization and metadata)\r\n _processPathKeys(srcValue, newValue, path + \".\" + name_1, checkReserved, newPath, metadataCallback, processSubKeys);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.createPayload.\r\n// Removed Stub for Serializer.prototype.appendPayload.\r\n// Removed Stub for Serializer.prototype.getEventBlob.\r\n// Removed Stub for Serializer.prototype.handleField.\r\n// Removed Stub for Serializer.prototype.getSanitizer.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n/**\r\n * @ignore\r\n * @param getEncodedType - The function to get the encoded type for the property\r\n * @param json - The json object to add the metadata to\r\n * @param propKeys - The property keys to add to the metadata\r\n * @param name - The name of the property\r\n * @param propertyValue - The property value\r\n */\r\nfunction _addJSONPropertyMetaData(getEncodedType, json, propKeys, name, propertyValue) {\r\n if (propertyValue && json) {\r\n var encodedTypeValue = getEncodedType(propertyValue.value, propertyValue.kind, propertyValue.propertyType);\r\n if (encodedTypeValue > -1) {\r\n // Add the root metadata\r\n var metaData = json[metadata];\r\n if (!metaData) {\r\n // Sets the root 'f'\r\n metaData = json[metadata] = { f: {} };\r\n }\r\n var metaTarget = metaData[f];\r\n if (!metaTarget) {\r\n // This can occur if someone has manually added an ext.metadata object\r\n // Such as ext.metadata.privLevel and ext.metadata.privTags\r\n metaTarget = metaData[f] = {};\r\n }\r\n // Traverse the metadata path and build each object (contains an 'f' key) -- if required\r\n if (propKeys) {\r\n for (var lp = 0; lp < propKeys.length; lp++) {\r\n var key = propKeys[lp];\r\n if (!metaTarget[key]) {\r\n metaTarget[key] = { f: {} };\r\n }\r\n var newTarget = metaTarget[key][f];\r\n if (!newTarget) {\r\n // Not expected, but can occur if the metadata context was pre-created as part of the event\r\n newTarget = metaTarget[key][f] = {};\r\n }\r\n metaTarget = newTarget;\r\n }\r\n }\r\n metaTarget = metaTarget[name] = {};\r\n if (isArray(propertyValue.value)) {\r\n metaTarget[\"a\"] = {\r\n t: encodedTypeValue\r\n };\r\n }\r\n else {\r\n metaTarget[\"t\"] = encodedTypeValue;\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=Serializer.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nvar _a;\r\n/**\r\n* HttpManager.ts\r\n* @author Abhilash Panwar (abpanwar); Hector Hernandez (hectorh); Nev Wylie (newylie)\r\n* @copyright Microsoft 2018-2020\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { FullVersionString, SenderPostManager, _getAllResponseHeaders, _throwInternal, _warnToConsole, arrForEach, dateNow, doPerf, dumpObj, extend, getCommonSchemaMetaData, getNavigator, getResponseText, getTime, hasOwnProperty, isBeaconsSupported, isFetchSupported, isNullOrUndefined, isReactNative, isUndefined, isValueAssigned, objForEachKey, objKeys, onConfigChange, optimizeObject, prependTransports, strUndefined } from \"@microsoft/1ds-core-js\";\r\nimport { arrAppend } from \"@nevware21/ts-utils\";\r\nimport { ClockSkewManager } from \"./ClockSkewManager\";\r\nimport { EventBatch } from \"./EventBatch\";\r\nimport { DEFAULT_CACHE_CONTROL, DEFAULT_CONTENT_TYPE, STR_API_KEY, STR_AUTH_XTOKEN, STR_CACHE_CONTROL, STR_CLIENT_ID, STR_CLIENT_VERSION, STR_CONTENT_TYPE_HEADER, STR_DROPPED, STR_EMPTY, STR_KILL_DURATION_HEADER, STR_KILL_TOKENS_HEADER, STR_MSA_DEVICE_TICKET, STR_MSFPC, STR_NO_RESPONSE_BODY, STR_OTHER, STR_REQUEUE, STR_RESPONSE_FAIL, STR_SENDING, STR_TIME_DELTA_HEADER, STR_TIME_DELTA_TO_APPLY, STR_UPLOAD_TIME } from \"./InternalConstants\";\r\nimport { KillSwitch } from \"./KillSwitch\";\r\nimport { retryPolicyGetMillisToBackoffForRetry, retryPolicyShouldRetryForStatus } from \"./RetryPolicy\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { createTimeoutWrapper } from \"./TimeoutOverrideWrapper\";\r\nimport { _DYN_ADD_HEADER, _DYN_ADD_NO_RESPONSE, _DYN_ALLOW_REQUEST_SENDIN0, _DYN_ALWAYS_USE_XHR_OVERR7, _DYN_AVOID_OPTIONS, _DYN_BATCHES, _DYN_CAN_SEND_REQUEST, _DYN_CLEAR_TIMEOUT_OVERRI3, _DYN_CONCAT, _DYN_COUNT, _DYN_CREATE_ONE_DSPAYLOAD, _DYN_CREATE_PAYLOAD, _DYN_DATA, _DYN_DISABLE_EVENT_TIMING5, _DYN_DISABLE_FETCH_KEEP_A6, _DYN_DISABLE_XHR_SYNC, _DYN_ENABLE_COMPOUND_KEY, _DYN_EVENTS, _DYN_EXCLUDE_CS_META_DATA, _DYN_FIRST_REQUEST_SENT, _DYN_GET_CLOCK_SKEW_HEADE2, _DYN_GET_OFFLINE_REQUEST_9, _DYN_GET_WPARAM, _DYN_HDRS, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_IS_BEACON, _DYN_IS_COMPLETELY_IDLE, _DYN_IS_SYNC, _DYN_IS_TEARDOWN, _DYN_I_KEY, _DYN_LENGTH, _DYN_OVERRIDE_ENDPOINT_UR4, _DYN_PAYLOAD_BLOB, _DYN_PAYLOAD_PREPROCESSOR, _DYN_PUSH, _DYN_SEND_QUEUED_REQUESTS, _DYN_SEND_SYNCHRONOUS_BAT10, _DYN_SEND_TYPE, _DYN_SERIALIZE_OFFLINE_EV8, _DYN_SET_CLOCK_SKEW, _DYN_SET_KILL_SWITCH_TENA11, _DYN_SET_TIMEOUT_OVERRIDE, _DYN_SET_UNLOADING, _DYN_SHOULD_ADD_CLOCK_SKE1, _DYN_SPLICE, _DYN_SPLIT, _DYN_STRINGIFY_OBJECTS, _DYN_TIMEOUT, _DYN_TIMINGS, _DYN_TO_LOWER_CASE, _DYN_UNLOAD_TRANSPORTS, _DYN_URL_STRING, _DYN_USE_HDRS, _DYN_USE_SEND_BEACON, _DYN__BACK_OFF_TRANSMISSI12, _DYN__SEND_REASON, _DYN__THE_PAYLOAD, _DYN__TRANSPORT } from \"./__DynamicConstants\";\r\nvar strSendAttempt = \"sendAttempt\";\r\nvar _noResponseQs = \"&\" + STR_NO_RESPONSE_BODY + \"=true\";\r\nvar UrlQueryString = \"?cors=true&\" + STR_CONTENT_TYPE_HEADER[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() + \"=\" + DEFAULT_CONTENT_TYPE;\r\n/**\r\n * Identifies the default notification reason to the action names\r\n */\r\nvar _eventActionMap = (_a = {},\r\n _a[1 /* EventBatchNotificationReason.Paused */] = STR_REQUEUE,\r\n _a[100 /* EventBatchNotificationReason.RequeueEvents */] = STR_REQUEUE,\r\n _a[200 /* EventBatchNotificationReason.Complete */] = \"sent\",\r\n _a[8004 /* EventBatchNotificationReason.KillSwitch */] = STR_DROPPED,\r\n _a[8003 /* EventBatchNotificationReason.SizeLimitExceeded */] = STR_DROPPED,\r\n _a);\r\nvar _collectorQsHeaders = {};\r\nvar _collectorHeaderToQs = {};\r\nfunction _addCollectorHeaderQsMapping(qsName, headerName, allowQs) {\r\n _collectorQsHeaders[qsName] = headerName;\r\n if (allowQs !== false) {\r\n _collectorHeaderToQs[headerName] = qsName;\r\n }\r\n}\r\n_addCollectorHeaderQsMapping(STR_MSA_DEVICE_TICKET, STR_MSA_DEVICE_TICKET, false);\r\n_addCollectorHeaderQsMapping(STR_CLIENT_VERSION, STR_CLIENT_VERSION);\r\n_addCollectorHeaderQsMapping(STR_CLIENT_ID, \"Client-Id\");\r\n_addCollectorHeaderQsMapping(STR_API_KEY, STR_API_KEY);\r\n_addCollectorHeaderQsMapping(STR_TIME_DELTA_TO_APPLY, STR_TIME_DELTA_TO_APPLY);\r\n_addCollectorHeaderQsMapping(STR_UPLOAD_TIME, STR_UPLOAD_TIME);\r\n_addCollectorHeaderQsMapping(STR_AUTH_XTOKEN, STR_AUTH_XTOKEN);\r\nfunction _hasHeader(headers, header) {\r\n var hasHeader = false;\r\n if (headers && header) {\r\n var keys = objKeys(headers);\r\n if (keys && keys[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var lowerHeader = header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n for (var lp = 0; lp < keys[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var value = keys[lp];\r\n if (value && hasOwnProperty(header, value) &&\r\n value[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === lowerHeader) {\r\n hasHeader = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return hasHeader;\r\n}\r\nfunction _addRequestDetails(details, name, value, useHeaders) {\r\n if (name && value && value[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (useHeaders && _collectorQsHeaders[name]) {\r\n details[_DYN_HDRS /* @min:%2ehdrs */][_collectorQsHeaders[name]] = value;\r\n details[_DYN_USE_HDRS /* @min:%2euseHdrs */] = true;\r\n }\r\n else {\r\n details.url += \"&\" + name + \"=\" + value;\r\n }\r\n }\r\n}\r\nfunction _addQueryStringParameter(qsParams, name, value) {\r\n for (var i = 0; i < qsParams[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (qsParams[i].name === name) {\r\n qsParams[i].value = value;\r\n return;\r\n }\r\n }\r\n qsParams[_DYN_PUSH /* @min:%2epush */]({ name: name, value: value });\r\n}\r\nfunction _removeQueryStringParameter(qsParams, name) {\r\n for (var i = 0; i < qsParams[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (qsParams[i].name === name) {\r\n qsParams[_DYN_SPLICE /* @min:%2esplice */](i, 1);\r\n return;\r\n }\r\n }\r\n}\r\n/**\r\n * Class managing the sending of requests.\r\n */\r\nvar HttpManager = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * @param requestQueue - The queue that contains the requests to be sent.\r\n */\r\n function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions) {\r\n // ------------------------------------------------------------------------------------------------------------------------\r\n // Only set \"Default\" values in the _initDefaults() method, unless value are not \"reset\" during unloading\r\n // ------------------------------------------------------------------------------------------------------------------------\r\n var _urlString;\r\n var _killSwitch;\r\n var _paused;\r\n var _clockSkewManager;\r\n var _useBeacons = false;\r\n var _outstandingRequests; // Holds the number of outstanding async requests that have not returned a response yet\r\n var _postManager;\r\n var _logger;\r\n var _sendInterfaces;\r\n var _core;\r\n var _customHttpInterface;\r\n var _queryStringParameters;\r\n var _headers;\r\n var _batchQueue;\r\n var _serializer;\r\n var _enableEventTimings;\r\n var _cookieMgr;\r\n var _isUnloading;\r\n var _useHeaders;\r\n var _xhrTimeout;\r\n var _disableXhrSync;\r\n var _disableFetchKeepAlive;\r\n var _canHaveReducedPayload;\r\n var _addNoResponse;\r\n var _unloadHooks;\r\n var _sendHook;\r\n var _sendListener;\r\n var _responseHandlers;\r\n var _isInitialized;\r\n var _timeoutWrapper;\r\n var _excludeCsMetaData;\r\n var _sendPostMgr;\r\n dynamicProto(HttpManager, this, function (_self) {\r\n _initDefaults();\r\n var _sendCredentials = true;\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (theConfig, core, postChannel) {\r\n if (!_isInitialized) {\r\n _core = core;\r\n _cookieMgr = core.getCookieMgr();\r\n _postManager = postChannel;\r\n _logger = _postManager.diagLog();\r\n arrAppend(_unloadHooks, onConfigChange(theConfig, function (details) {\r\n var _a;\r\n var coreConfig = details.cfg;\r\n var channelConfig = details.cfg.extensionConfig[postChannel.identifier];\r\n _timeoutWrapper = createTimeoutWrapper(channelConfig[_DYN_SET_TIMEOUT_OVERRIDE /* @min:%2esetTimeoutOverride */], channelConfig[_DYN_CLEAR_TIMEOUT_OVERRI3 /* @min:%2eclearTimeoutOverride */]);\r\n if (isValueAssigned(coreConfig.anonCookieName)) {\r\n _addQueryStringParameter(_queryStringParameters, \"anoncknm\", coreConfig.anonCookieName);\r\n }\r\n else {\r\n _removeQueryStringParameter(_queryStringParameters, \"anoncknm\");\r\n }\r\n _sendHook = channelConfig[_DYN_PAYLOAD_PREPROCESSOR /* @min:%2epayloadPreprocessor */];\r\n _sendListener = channelConfig.payloadListener;\r\n var httpInterface = channelConfig.httpXHROverride;\r\n // Override endpointUrl if provided in Post config\r\n var endpointUrl = channelConfig[_DYN_OVERRIDE_ENDPOINT_UR4 /* @min:%2eoverrideEndpointUrl */] ? channelConfig[_DYN_OVERRIDE_ENDPOINT_UR4 /* @min:%2eoverrideEndpointUrl */] : coreConfig.endpointUrl;\r\n _urlString = endpointUrl + UrlQueryString;\r\n _useHeaders = !isUndefined(channelConfig[_DYN_AVOID_OPTIONS /* @min:%2eavoidOptions */]) ? !channelConfig[_DYN_AVOID_OPTIONS /* @min:%2eavoidOptions */] : true;\r\n _enableEventTimings = !channelConfig[_DYN_DISABLE_EVENT_TIMING5 /* @min:%2edisableEventTimings */];\r\n var valueSanitizer = channelConfig.valueSanitizer;\r\n var stringifyObjects = channelConfig[_DYN_STRINGIFY_OBJECTS /* @min:%2estringifyObjects */];\r\n var enableCompoundKey = !!coreConfig[_DYN_ENABLE_COMPOUND_KEY /* @min:%2eenableCompoundKey */];\r\n if (!isUndefined(channelConfig[_DYN_ENABLE_COMPOUND_KEY /* @min:%2eenableCompoundKey */])) {\r\n enableCompoundKey = !!channelConfig[_DYN_ENABLE_COMPOUND_KEY /* @min:%2eenableCompoundKey */];\r\n }\r\n _xhrTimeout = channelConfig.xhrTimeout;\r\n _disableXhrSync = !!channelConfig[_DYN_DISABLE_XHR_SYNC /* @min:%2edisableXhrSync */];\r\n _disableFetchKeepAlive = !!channelConfig[_DYN_DISABLE_FETCH_KEEP_A6 /* @min:%2edisableFetchKeepAlive */];\r\n _addNoResponse = channelConfig[_DYN_ADD_NO_RESPONSE /* @min:%2eaddNoResponse */] !== false;\r\n _excludeCsMetaData = !!channelConfig[_DYN_EXCLUDE_CS_META_DATA /* @min:%2eexcludeCsMetaData */];\r\n if (!!core.getPlugin(\"LocalStorage\")) {\r\n // Always disable fetch keep alive when persisten storage is available\r\n _disableFetchKeepAlive = true;\r\n }\r\n _useBeacons = !isReactNative(); // Only use beacons if not running in React Native\r\n _serializer = new Serializer(_core, valueSanitizer, stringifyObjects, enableCompoundKey, getCommonSchemaMetaData, _excludeCsMetaData);\r\n if (!isNullOrUndefined(channelConfig[_DYN_USE_SEND_BEACON /* @min:%2euseSendBeacon */])) {\r\n _useBeacons = !!channelConfig[_DYN_USE_SEND_BEACON /* @min:%2euseSendBeacon */];\r\n }\r\n var sendPostConfig = _getSendPostMgrConfig();\r\n // only init it once\r\n if (!_sendPostMgr) {\r\n _sendPostMgr = new SenderPostManager();\r\n _sendPostMgr[_DYN_INITIALIZE /* @min:%2einitialize */](sendPostConfig, _logger);\r\n }\r\n else {\r\n _sendPostMgr.SetConfig(sendPostConfig);\r\n }\r\n var syncHttpInterface = httpInterface;\r\n var beaconHttpInterface = channelConfig[_DYN_ALWAYS_USE_XHR_OVERR7 /* @min:%2ealwaysUseXhrOverride */] ? httpInterface : null;\r\n var fetchSyncHttpInterface = channelConfig[_DYN_ALWAYS_USE_XHR_OVERR7 /* @min:%2ealwaysUseXhrOverride */] ? httpInterface : null;\r\n var beaconUnloadTransports = [3 /* TransportType.Beacon */, 2 /* TransportType.Fetch */];\r\n if (!httpInterface) {\r\n _customHttpInterface = false;\r\n // this is handled in SendPostManager now\r\n // let location = getLocation();\r\n // if (location && location.protocol && location.protocol.toLowerCase() === \"file:\") {\r\n // // Special case where a local html file fails with a CORS error on Chromium browsers\r\n // _sendCredentials = false;\r\n // }\r\n var theTransports = [];\r\n if (isReactNative()) {\r\n // Use Fetch or XDR/XHR\r\n theTransports = [2 /* TransportType.Fetch */, 1 /* TransportType.Xhr */];\r\n beaconUnloadTransports = [2 /* TransportType.Fetch */, 1 /* TransportType.Xhr */, 3 /* TransportType.Beacon */];\r\n }\r\n else {\r\n // Use XDR/XHR, Fetch or beacons\r\n theTransports = [1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */, 3 /* TransportType.Beacon */];\r\n }\r\n // Prefix any user requested transport(s) values\r\n theTransports = prependTransports(theTransports, channelConfig.transports);\r\n httpInterface = _getSenderInterface(theTransports, false);\r\n if (!httpInterface) {\r\n _warnToConsole(_logger, \"No available transport to send events\");\r\n }\r\n syncHttpInterface = _getSenderInterface(theTransports, true);\r\n }\r\n if (!beaconHttpInterface) {\r\n // Allow overriding the usage of sendBeacon\r\n beaconUnloadTransports = prependTransports(beaconUnloadTransports, channelConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */]);\r\n beaconHttpInterface = _getSenderInterface(beaconUnloadTransports, true);\r\n }\r\n _canHaveReducedPayload = !_customHttpInterface && ((_useBeacons && isBeaconsSupported()) || (!_disableFetchKeepAlive && isFetchSupported(true)));\r\n _sendInterfaces = (_a = {},\r\n _a[0 /* EventSendType.Batched */] = httpInterface,\r\n _a[1 /* EventSendType.Synchronous */] = syncHttpInterface || _getSenderInterface([1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */, 3 /* TransportType.Beacon */], true),\r\n _a[2 /* EventSendType.SendBeacon */] = beaconHttpInterface || syncHttpInterface || _getSenderInterface([1 /* TransportType.Xhr */], true),\r\n _a[3 /* EventSendType.SyncFetch */] = fetchSyncHttpInterface || _getSenderInterface([2 /* TransportType.Fetch */, 3 /* TransportType.Beacon */], true) || syncHttpInterface || _getSenderInterface([1 /* TransportType.Xhr */], true),\r\n _a);\r\n }));\r\n _isInitialized = true;\r\n }\r\n };\r\n _self.addResponseHandler = function (responseHandler) {\r\n _responseHandlers[_DYN_PUSH /* @min:%2epush */](responseHandler);\r\n return {\r\n rm: function () {\r\n var index = _responseHandlers.indexOf(responseHandler);\r\n if (index >= 0) {\r\n _responseHandlers[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n }\r\n }\r\n };\r\n };\r\n _self[_DYN_SERIALIZE_OFFLINE_EV8 /* @min:%2eserializeOfflineEvt */] = function (evt) {\r\n try {\r\n if (_serializer) {\r\n return _serializer.getEventBlob(evt);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return STR_EMPTY;\r\n };\r\n _self[_DYN_GET_OFFLINE_REQUEST_9 /* @min:%2egetOfflineRequestDetails */] = function () {\r\n try {\r\n // get current url without paramter\r\n var payload = _serializer && _serializer[_DYN_CREATE_PAYLOAD /* @min:%2ecreatePayload */](0, false, false, false, 1 /* SendRequestReason.NormalSchedule */, 0 /* EventSendType.Batched */);\r\n return _buildRequestDetails(payload, _useHeaders);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_ONE_DSPAYLOAD /* @min:%2ecreateOneDSPayload */] = function (evts, optimize) {\r\n try {\r\n // TODO: optimize\r\n var theBatches_1 = [];\r\n // create a eventBatch for each event\r\n arrForEach(evts, function (evt) {\r\n if (optimize) {\r\n evt = optimizeObject(evt);\r\n }\r\n var batch = EventBatch.create(evt[_DYN_I_KEY /* @min:%2eiKey */], [evt]);\r\n theBatches_1[_DYN_PUSH /* @min:%2epush */](batch);\r\n });\r\n var thePayload = null;\r\n while (theBatches_1[_DYN_LENGTH /* @min:%2elength */] > 0 && _serializer) {\r\n var theBatch = theBatches_1.shift();\r\n if (theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n thePayload = thePayload || _serializer[_DYN_CREATE_PAYLOAD /* @min:%2ecreatePayload */](0, false, false, false, 1 /* SendRequestReason.NormalSchedule */, 0 /* EventSendType.Batched */);\r\n _serializer.appendPayload(thePayload, theBatch, maxEventsPerBatch);\r\n }\r\n }\r\n var requestDetails = _buildRequestDetails(thePayload, _useHeaders);\r\n var payloadData = {\r\n data: thePayload[_DYN_PAYLOAD_BLOB /* @min:%2epayloadBlob */],\r\n urlString: requestDetails.url,\r\n headers: requestDetails[_DYN_HDRS /* @min:%2ehdrs */],\r\n timeout: _xhrTimeout,\r\n disableXhrSync: _disableXhrSync,\r\n disableFetchKeepAlive: _disableFetchKeepAlive\r\n };\r\n // Only automatically add the following headers if already sending headers and we are not attempting to avoid an options call\r\n if (_useHeaders) {\r\n if (!_hasHeader(payloadData[_DYN_HEADERS /* @min:%2eheaders */], STR_CACHE_CONTROL)) {\r\n payloadData[_DYN_HEADERS /* @min:%2eheaders */][STR_CACHE_CONTROL] = DEFAULT_CACHE_CONTROL;\r\n }\r\n if (!_hasHeader(payloadData[_DYN_HEADERS /* @min:%2eheaders */], STR_CONTENT_TYPE_HEADER)) {\r\n payloadData[_DYN_HEADERS /* @min:%2eheaders */][STR_CONTENT_TYPE_HEADER] = DEFAULT_CONTENT_TYPE;\r\n }\r\n }\r\n return payloadData;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n };\r\n // Special internal method to allow the DebugPlugin to hook embedded objects\r\n function _getSenderInterface(transports, syncSupport) {\r\n try {\r\n return _sendPostMgr && _sendPostMgr.getSenderInst(transports, syncSupport);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_sendInterfaces[0 /* EventSendType.Batched */], _killSwitch, _serializer, _sendInterfaces];\r\n };\r\n function _getSendPostMgrConfig() {\r\n try {\r\n var onCompleteFuncs = {\r\n xdrOnComplete: _xdrOncomplete,\r\n fetchOnComplete: _fetchOnComplete,\r\n xhrOnComplete: _xhrOnComplete,\r\n beaconOnRetry: _onBeaconRetry\r\n };\r\n var config = {\r\n enableSendPromise: false,\r\n isOneDs: true,\r\n disableCredentials: !_sendCredentials,\r\n disableXhr: false,\r\n disableBeacon: !_useBeacons,\r\n disableBeaconSync: !_useBeacons,\r\n disableFetchKeepAlive: _disableFetchKeepAlive,\r\n timeWrapper: _timeoutWrapper,\r\n addNoResponse: _addNoResponse,\r\n senderOnCompleteCallBack: onCompleteFuncs\r\n };\r\n return config;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _xdrOncomplete(xdr, oncomplete, payload) {\r\n var response = getResponseText(xdr);\r\n _doOnComplete(oncomplete, 200, {}, response);\r\n _handleCollectorResponse(response);\r\n }\r\n function _initDefaults() {\r\n var undefValue;\r\n _urlString = null;\r\n _killSwitch = new KillSwitch();\r\n _paused = false;\r\n _clockSkewManager = new ClockSkewManager();\r\n _useBeacons = false;\r\n _outstandingRequests = 0; // Holds the number of outstanding async requests that have not returned a response yet\r\n _postManager = null;\r\n _logger = null;\r\n _sendInterfaces = null;\r\n _core = null;\r\n _customHttpInterface = true;\r\n _queryStringParameters = [];\r\n _headers = {};\r\n _batchQueue = [];\r\n _serializer = null;\r\n _enableEventTimings = false;\r\n _cookieMgr = null;\r\n _isUnloading = false;\r\n _useHeaders = false;\r\n _xhrTimeout = undefValue;\r\n _disableXhrSync = undefValue;\r\n _disableFetchKeepAlive = undefValue;\r\n _canHaveReducedPayload = undefValue;\r\n _addNoResponse = undefValue;\r\n _unloadHooks = [];\r\n _sendHook = undefValue;\r\n _sendListener = undefValue;\r\n _responseHandlers = [];\r\n _isInitialized = false;\r\n _timeoutWrapper = createTimeoutWrapper();\r\n _excludeCsMetaData = false;\r\n _sendPostMgr = null;\r\n }\r\n function _fetchOnComplete(response, onComplete, resValue, payload) {\r\n var handleResponse = function (status, headerMap, responseText) {\r\n _doOnComplete(onComplete, status, headerMap, responseText);\r\n _handleCollectorResponse(responseText);\r\n };\r\n var headerMap = {};\r\n var headers = response[_DYN_HEADERS /* @min:%2eheaders */];\r\n if (headers) {\r\n headers[\"forEach\"](function (value, name) {\r\n headerMap[name] = value;\r\n });\r\n }\r\n handleResponse(response.status, headerMap, resValue || STR_EMPTY);\r\n }\r\n function _xhrOnComplete(request, oncomplete, payload) {\r\n var response = getResponseText(request);\r\n _doOnComplete(oncomplete, request.status, _getAllResponseHeaders(request, true), response);\r\n _handleCollectorResponse(response);\r\n }\r\n function _doOnComplete(oncomplete, status, headers, response) {\r\n try {\r\n oncomplete(status, headers, response);\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 518 /* _eExtendedInternalMessageId.SendPostOnCompleteFailure */, dumpObj(e));\r\n }\r\n }\r\n function _onBeaconRetry(payload, onComplete, canSend) {\r\n // Custom headers not supported in sendBeacon payload.headers would be ignored\r\n var internalPayloadData = payload;\r\n var status = 200;\r\n var thePayload = internalPayloadData[_DYN__THE_PAYLOAD /* @min:%2e_thePayload */];\r\n var theUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */] + (_addNoResponse ? _noResponseQs : STR_EMPTY);\r\n try {\r\n var nav_1 = getNavigator();\r\n if (thePayload) {\r\n var persistStorage = !!_core.getPlugin(\"LocalStorage\");\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedBatches_1 = [];\r\n var sentBatches_1 = [];\r\n arrForEach(thePayload[_DYN_BATCHES /* @min:%2ebatches */], function (theBatch) {\r\n if (droppedBatches_1 && theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var theEvents = theBatch[_DYN_EVENTS /* @min:%2eevents */]();\r\n for (var lp = 0; lp < theEvents[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (!nav_1.sendBeacon(theUrl, _serializer.getEventBlob(theEvents[lp]))) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedBatches_1[_DYN_PUSH /* @min:%2epush */](theBatch[_DYN_SPLIT /* @min:%2esplit */](lp));\r\n break;\r\n }\r\n else {\r\n sentBatches_1[_DYN_PUSH /* @min:%2epush */](theBatch[lp]);\r\n }\r\n }\r\n }\r\n else {\r\n // Remove all of the events from the existing batch in the payload as the copy includes the original\r\n droppedBatches_1[_DYN_PUSH /* @min:%2epush */](theBatch[_DYN_SPLIT /* @min:%2esplit */](0));\r\n }\r\n });\r\n if (sentBatches_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Update the payload with the sent batches\r\n thePayload.sentEvts = sentBatches_1;\r\n }\r\n if (!persistStorage) {\r\n _sendBatchesNotification(droppedBatches_1, 8003 /* EventBatchNotificationReason.SizeLimitExceeded */, thePayload[_DYN_SEND_TYPE /* @min:%2esendType */], true);\r\n }\r\n }\r\n else {\r\n status = 0;\r\n }\r\n }\r\n catch (ex) {\r\n _warnToConsole(_logger, \"Failed to send telemetry using sendBeacon API. Ex:\" + dumpObj(ex));\r\n status = 0;\r\n }\r\n finally {\r\n _doOnComplete(onComplete, status, {}, STR_EMPTY);\r\n }\r\n }\r\n function _isBeaconPayload(sendType) {\r\n // Sync Fetch has the same payload limitation as sendBeacon -- 64kb limit, so treat both as a beacon send\r\n return sendType === 2 /* EventSendType.SendBeacon */ || sendType === 3 /* EventSendType.SyncFetch */;\r\n }\r\n function _adjustSendType(sendType) {\r\n if (_isUnloading && _isBeaconPayload(sendType)) {\r\n sendType = 2 /* EventSendType.SendBeacon */;\r\n }\r\n return sendType;\r\n }\r\n _self[_DYN_ADD_HEADER /* @min:%2eaddHeader */] = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.removeHeader = function (name) {\r\n delete _headers[name];\r\n };\r\n _self[_DYN_CAN_SEND_REQUEST /* @min:%2ecanSendRequest */] = function () {\r\n return _hasIdleConnection() && _clockSkewManager[_DYN_ALLOW_REQUEST_SENDIN0 /* @min:%2eallowRequestSending */]();\r\n };\r\n _self[_DYN_SEND_QUEUED_REQUESTS /* @min:%2esendQueuedRequests */] = function (sendType, sendReason) {\r\n if (isUndefined(sendType)) {\r\n sendType = 0 /* EventSendType.Batched */;\r\n }\r\n if (_isUnloading) {\r\n sendType = _adjustSendType(sendType);\r\n sendReason = 2 /* SendRequestReason.Unload */;\r\n }\r\n if (_canSendPayload(_batchQueue, sendType, 0)) {\r\n _sendBatches(_clearQueue(), 0, false, sendType, sendReason || 0 /* SendRequestReason.Undefined */);\r\n }\r\n };\r\n _self[_DYN_IS_COMPLETELY_IDLE /* @min:%2eisCompletelyIdle */] = function () {\r\n return !_paused && _outstandingRequests === 0 && _batchQueue[_DYN_LENGTH /* @min:%2elength */] === 0;\r\n };\r\n _self[_DYN_SET_UNLOADING /* @min:%2esetUnloading */] = function (value) {\r\n _isUnloading = value;\r\n };\r\n _self.addBatch = function (theBatch) {\r\n if (theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n // Try and kill the event faster\r\n if (_killSwitch.isTenantKilled(theBatch[_DYN_I_KEY /* @min:%2eiKey */]())) {\r\n return false;\r\n }\r\n _batchQueue[_DYN_PUSH /* @min:%2epush */](theBatch);\r\n }\r\n return true;\r\n };\r\n /**\r\n * Queue all the remaining requests to be sent. The requests will be\r\n * sent using HTML5 Beacons if they are available.\r\n */\r\n _self.teardown = function () {\r\n if (_batchQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _sendBatches(_clearQueue(), 0, true, 2 /* EventSendType.SendBeacon */, 2 /* SendRequestReason.Unload */);\r\n }\r\n arrForEach(_unloadHooks, function (hook) {\r\n hook && hook.rm && hook.rm();\r\n });\r\n _unloadHooks = [];\r\n };\r\n /**\r\n * Pause the sending of requests. No new requests will be sent.\r\n */\r\n _self.pause = function () {\r\n _paused = true;\r\n };\r\n /**\r\n * Resume the sending of requests.\r\n */\r\n _self.resume = function () {\r\n _paused = false;\r\n _self[_DYN_SEND_QUEUED_REQUESTS /* @min:%2esendQueuedRequests */](0 /* EventSendType.Batched */, 4 /* SendRequestReason.Resumed */);\r\n };\r\n /**\r\n * Sends a request synchronously to the Aria collector. This api is used to send\r\n * a request containing a single immediate event.\r\n *\r\n * @param batch - The request to be sent.\r\n * @param sendReason - The token used to send the request.\r\n */\r\n _self[_DYN_SEND_SYNCHRONOUS_BAT10 /* @min:%2esendSynchronousBatch */] = function (batch, sendType, sendReason) {\r\n // This will not take into account the max connections restriction. Since this is sync, we can\r\n // only send one of this request at a time and thus should not worry about multiple connections\r\n // being used to send synchronous events.\r\n // Increment active connection since we are still going to use a connection to send the request.\r\n if (batch && batch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n if (isNullOrUndefined(sendType)) {\r\n sendType = 1 /* EventSendType.Synchronous */;\r\n }\r\n if (_isUnloading) {\r\n sendType = _adjustSendType(sendType);\r\n sendReason = 2 /* SendRequestReason.Unload */;\r\n }\r\n // For sync requests we will not wait for the clock skew.\r\n _sendBatches([batch], 0, false, sendType, sendReason || 0 /* SendRequestReason.Undefined */);\r\n }\r\n };\r\n function _hasIdleConnection() {\r\n return !_paused && _outstandingRequests < maxConnections;\r\n }\r\n function _clearQueue() {\r\n var theQueue = _batchQueue;\r\n _batchQueue = [];\r\n return theQueue;\r\n }\r\n function _canSendPayload(theBatches, sendType, retryCnt) {\r\n var result = false;\r\n if (theBatches && theBatches[_DYN_LENGTH /* @min:%2elength */] > 0 && !_paused && _sendInterfaces[sendType] && _serializer) {\r\n // Always attempt to send synchronous events don't wait for idle or clockSkew\r\n // and don't block retry requests if clockSkew is not yet set\r\n result = (sendType !== 0 /* EventSendType.Batched */) || (_hasIdleConnection() && (retryCnt > 0 || _clockSkewManager[_DYN_ALLOW_REQUEST_SENDIN0 /* @min:%2eallowRequestSending */]()));\r\n }\r\n return result;\r\n }\r\n function _createDebugBatches(theBatches) {\r\n var values = {};\r\n if (theBatches) {\r\n arrForEach(theBatches, function (theBatch, idx) {\r\n values[idx] = {\r\n iKey: theBatch[_DYN_I_KEY /* @min:%2eiKey */](),\r\n evts: theBatch[_DYN_EVENTS /* @min:%2eevents */]()\r\n };\r\n });\r\n }\r\n return values;\r\n }\r\n function _sendBatches(theBatches, retryCount, isTeardown, sendType, sendReason) {\r\n if (!theBatches || theBatches[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n // Nothing to do\r\n return;\r\n }\r\n if (_paused) {\r\n _sendBatchesNotification(theBatches, 1 /* EventBatchNotificationReason.Paused */, sendType);\r\n return;\r\n }\r\n // Make sure that if we are unloading the sendType is a supported version\r\n sendType = _adjustSendType(sendType);\r\n try {\r\n var orgBatches_1 = theBatches;\r\n var isSynchronous_1 = sendType !== 0 /* EventSendType.Batched */;\r\n doPerf(_core, function () { return \"HttpManager:_sendBatches\"; }, function (perfEvt) {\r\n if (perfEvt) {\r\n // Perf Monitoring is enabled, so create a \"Quick\" copy of the original batches so we still report\r\n // the original values as part of the perfEvent. This is because theBatches uses .shift() to remove each\r\n // batch as they are processed - removing from the original array, so by the time the _createDebugBatches()\r\n // function is called the passed in value has changed and therefore the reported value for the perfEvent is incorrect\r\n theBatches = theBatches.slice(0);\r\n }\r\n var droppedBatches = [];\r\n var thePayload = null;\r\n var serializationStart = getTime();\r\n var sendInterface = _sendInterfaces[sendType] || (isSynchronous_1 ? _sendInterfaces[1 /* EventSendType.Synchronous */] : _sendInterfaces[0 /* EventSendType.Batched */]);\r\n var sendTransport = sendInterface && sendInterface[_DYN__TRANSPORT /* @min:%2e_transport */];\r\n // Sync Fetch has the same payload limitation as sendBeacon -- 64kb limit\r\n var isReducedPayload = _canHaveReducedPayload && (_isUnloading || _isBeaconPayload(sendType) || (sendTransport === 3 /* TransportType.Beacon */ || (sendInterface._isSync && sendTransport === 2 /* TransportType.Fetch */)));\r\n while (_canSendPayload(theBatches, sendType, retryCount)) {\r\n var theBatch = theBatches.shift();\r\n if (theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n if (!_killSwitch.isTenantKilled(theBatch[_DYN_I_KEY /* @min:%2eiKey */]())) {\r\n // Make sure we have a payload object\r\n thePayload = thePayload || _serializer[_DYN_CREATE_PAYLOAD /* @min:%2ecreatePayload */](retryCount, isTeardown, isSynchronous_1, isReducedPayload, sendReason, sendType);\r\n // Add the batch to the current payload\r\n if (!_serializer.appendPayload(thePayload, theBatch, maxEventsPerBatch)) {\r\n // Entire batch was not added so send the payload and retry adding this batch\r\n _doPayloadSend(thePayload, serializationStart, getTime(), sendReason);\r\n serializationStart = getTime();\r\n theBatches = [theBatch][_DYN_CONCAT /* @min:%2econcat */](theBatches);\r\n thePayload = null;\r\n }\r\n else if (thePayload.overflow !== null) {\r\n // Total Payload size was exceeded so send the payload and add the unsent as the next batch to send\r\n theBatches = [thePayload.overflow][_DYN_CONCAT /* @min:%2econcat */](theBatches);\r\n thePayload.overflow = null;\r\n _doPayloadSend(thePayload, serializationStart, getTime(), sendReason);\r\n serializationStart = getTime();\r\n thePayload = null;\r\n }\r\n }\r\n else {\r\n droppedBatches[_DYN_PUSH /* @min:%2epush */](theBatch);\r\n }\r\n }\r\n }\r\n // Make sure to flush any remaining payload\r\n if (thePayload) {\r\n _doPayloadSend(thePayload, serializationStart, getTime(), sendReason);\r\n }\r\n if (theBatches[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Add any unsent batches back to the head of the queue\r\n _batchQueue = theBatches[_DYN_CONCAT /* @min:%2econcat */](_batchQueue);\r\n }\r\n // Now send notification about any dropped events\r\n _sendBatchesNotification(droppedBatches, 8004 /* EventBatchNotificationReason.KillSwitch */, sendType);\r\n }, function () { return ({ batches: _createDebugBatches(orgBatches_1), retryCount: retryCount, isTeardown: isTeardown, isSynchronous: isSynchronous_1, sendReason: sendReason, useSendBeacon: _isBeaconPayload(sendType), sendType: sendType }); }, !isSynchronous_1);\r\n }\r\n catch (ex) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"Unexpected Exception sending batch: \" + dumpObj(ex));\r\n }\r\n }\r\n function _buildRequestDetails(thePayload, useHeaders) {\r\n var requestDetails = {\r\n url: _urlString,\r\n hdrs: {},\r\n useHdrs: false // Assume no headers\r\n };\r\n if (!useHeaders) {\r\n // Attempt to map headers to a query string if possible\r\n objForEachKey(_headers, function (name, value) {\r\n if (_collectorHeaderToQs[name]) {\r\n _addRequestDetails(requestDetails, _collectorHeaderToQs[name], value, false);\r\n }\r\n else {\r\n // No mapping, so just include in the headers anyway (may not get sent if using sendBeacon())\r\n requestDetails[_DYN_HDRS /* @min:%2ehdrs */][name] = value;\r\n requestDetails[_DYN_USE_HDRS /* @min:%2euseHdrs */] = true;\r\n }\r\n });\r\n }\r\n else {\r\n // Copy the pre-defined headers into the payload headers\r\n requestDetails[_DYN_HDRS /* @min:%2ehdrs */] = extend(requestDetails[_DYN_HDRS /* @min:%2ehdrs */], _headers);\r\n requestDetails.useHdrs = (objKeys(requestDetails.hdrs)[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n }\r\n _addRequestDetails(requestDetails, STR_CLIENT_ID, \"NO_AUTH\", useHeaders);\r\n _addRequestDetails(requestDetails, STR_CLIENT_VERSION, FullVersionString, useHeaders);\r\n var apiQsKeys = STR_EMPTY;\r\n arrForEach(thePayload.apiKeys, function (apiKey) {\r\n if (apiQsKeys[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n apiQsKeys += \",\";\r\n }\r\n apiQsKeys += apiKey;\r\n });\r\n _addRequestDetails(requestDetails, STR_API_KEY, apiQsKeys, useHeaders);\r\n _addRequestDetails(requestDetails, STR_UPLOAD_TIME, dateNow().toString(), useHeaders);\r\n var msfpc = _getMsfpc(thePayload);\r\n if (isValueAssigned(msfpc)) {\r\n requestDetails.url += \"&ext.intweb.msfpc=\" + msfpc;\r\n }\r\n if (_clockSkewManager[_DYN_SHOULD_ADD_CLOCK_SKE1 /* @min:%2eshouldAddClockSkewHeaders */]()) {\r\n _addRequestDetails(requestDetails, STR_TIME_DELTA_TO_APPLY, _clockSkewManager[_DYN_GET_CLOCK_SKEW_HEADE2 /* @min:%2egetClockSkewHeaderValue */](), useHeaders);\r\n }\r\n if (_core[_DYN_GET_WPARAM /* @min:%2egetWParam */]) {\r\n var wParam = _core[_DYN_GET_WPARAM /* @min:%2egetWParam */]();\r\n if (wParam >= 0) {\r\n requestDetails.url += \"&w=\" + wParam;\r\n }\r\n }\r\n for (var i = 0; i < _queryStringParameters[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n requestDetails.url += \"&\" + _queryStringParameters[i].name + \"=\" + _queryStringParameters[i].value;\r\n }\r\n return requestDetails;\r\n }\r\n function _setTimingValue(timings, name, value) {\r\n timings[name] = timings[name] || {};\r\n timings[name][_postManager.identifier] = value;\r\n }\r\n function _doPayloadSend(thePayload, serializationStart, serializationCompleted, sendReason) {\r\n if (thePayload && thePayload.payloadBlob && thePayload.payloadBlob[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var useSendHook_1 = !!_sendHook;\r\n var sendInterface_1 = _sendInterfaces[thePayload.sendType];\r\n // Send all data using a beacon style transport if closing mode is on or channel was teared down\r\n if (!_isBeaconPayload(thePayload[_DYN_SEND_TYPE /* @min:%2esendType */]) && thePayload[_DYN_IS_BEACON /* @min:%2eisBeacon */] && thePayload.sendReason === 2 /* SendRequestReason.Unload */) {\r\n sendInterface_1 = _sendInterfaces[2 /* EventSendType.SendBeacon */] || _sendInterfaces[3 /* EventSendType.SyncFetch */] || sendInterface_1;\r\n }\r\n var useHeaders_1 = _useHeaders;\r\n // Disable header usage if we know we are using sendBeacon as additional headers are not supported\r\n if (thePayload.isBeacon || sendInterface_1[_DYN__TRANSPORT /* @min:%2e_transport */] === 3 /* TransportType.Beacon */) {\r\n useHeaders_1 = false;\r\n }\r\n var requestDetails_1 = _buildRequestDetails(thePayload, useHeaders_1);\r\n useHeaders_1 = useHeaders_1 || requestDetails_1[_DYN_USE_HDRS /* @min:%2euseHdrs */];\r\n var sendEventStart_1 = getTime();\r\n doPerf(_core, function () { return \"HttpManager:_doPayloadSend\"; }, function () {\r\n // Increment the send attempt count and add timings after packaging (So it's not serialized in the 1st attempt)\r\n for (var batchLp = 0; batchLp < thePayload.batches[_DYN_LENGTH /* @min:%2elength */]; batchLp++) {\r\n var theBatch = thePayload[_DYN_BATCHES /* @min:%2ebatches */][batchLp];\r\n var theEvents = theBatch[_DYN_EVENTS /* @min:%2eevents */]();\r\n for (var evtLp = 0; evtLp < theEvents[_DYN_LENGTH /* @min:%2elength */]; evtLp++) {\r\n var telemetryItem = theEvents[evtLp];\r\n if (_enableEventTimings) {\r\n var timings = telemetryItem[_DYN_TIMINGS /* @min:%2etimings */] = telemetryItem[_DYN_TIMINGS /* @min:%2etimings */] || {};\r\n _setTimingValue(timings, \"sendEventStart\", sendEventStart_1);\r\n _setTimingValue(timings, \"serializationStart\", serializationStart);\r\n _setTimingValue(timings, \"serializationCompleted\", serializationCompleted);\r\n }\r\n telemetryItem[strSendAttempt] > 0 ? telemetryItem[strSendAttempt]++ : telemetryItem[strSendAttempt] = 1;\r\n }\r\n }\r\n // Note: always sending this notification in a synchronous manner.\r\n _sendBatchesNotification(thePayload[_DYN_BATCHES /* @min:%2ebatches */], (1000 /* EventBatchNotificationReason.SendingUndefined */ + (sendReason || 0 /* SendRequestReason.Undefined */)), thePayload[_DYN_SEND_TYPE /* @min:%2esendType */], true);\r\n // Disabling the use of const because of Issue:\r\n // - Task 9227844: [1DS] Some environments and packagers automatically \"freeze\" objects which are defined as const which causes any mutations to throw\r\n // eslint-disable-next-line prefer-const\r\n var orgPayloadData = {\r\n data: thePayload[_DYN_PAYLOAD_BLOB /* @min:%2epayloadBlob */],\r\n urlString: requestDetails_1.url,\r\n headers: requestDetails_1[_DYN_HDRS /* @min:%2ehdrs */],\r\n _thePayload: thePayload,\r\n _sendReason: sendReason,\r\n timeout: _xhrTimeout,\r\n disableXhrSync: _disableXhrSync,\r\n disableFetchKeepAlive: _disableFetchKeepAlive\r\n };\r\n // Only automatically add the following headers if already sending headers and we are not attempting to avoid an options call\r\n if (useHeaders_1) {\r\n if (!_hasHeader(orgPayloadData[_DYN_HEADERS /* @min:%2eheaders */], STR_CACHE_CONTROL)) {\r\n orgPayloadData[_DYN_HEADERS /* @min:%2eheaders */][STR_CACHE_CONTROL] = DEFAULT_CACHE_CONTROL;\r\n }\r\n if (!_hasHeader(orgPayloadData[_DYN_HEADERS /* @min:%2eheaders */], STR_CONTENT_TYPE_HEADER)) {\r\n orgPayloadData[_DYN_HEADERS /* @min:%2eheaders */][STR_CONTENT_TYPE_HEADER] = DEFAULT_CONTENT_TYPE;\r\n }\r\n }\r\n var sender = null;\r\n if (sendInterface_1) {\r\n // Send sync requests if the request is immediate or we are tearing down telemetry.\r\n sender = function (payload) {\r\n // Notify the clock skew manager that we are sending the first request (Potentially blocking all further requests)\r\n _clockSkewManager[_DYN_FIRST_REQUEST_SENT /* @min:%2efirstRequestSent */]();\r\n var onComplete = function (status, headers) {\r\n _retryRequestIfNeeded(status, headers, thePayload, sendReason);\r\n };\r\n var isSync = thePayload[_DYN_IS_TEARDOWN /* @min:%2eisTeardown */] || thePayload[_DYN_IS_SYNC /* @min:%2eisSync */];\r\n try {\r\n sendInterface_1.sendPOST(payload, onComplete, isSync);\r\n if (_sendListener) {\r\n // Send the original payload to the listener\r\n _sendListener(orgPayloadData, payload, isSync, thePayload[_DYN_IS_BEACON /* @min:%2eisBeacon */]);\r\n }\r\n }\r\n catch (ex) {\r\n _warnToConsole(_logger, \"Unexpected exception sending payload. Ex:\" + dumpObj(ex));\r\n _doOnComplete(onComplete, 0, {});\r\n }\r\n };\r\n }\r\n doPerf(_core, function () { return \"HttpManager:_doPayloadSend.sender\"; }, function () {\r\n if (sender) {\r\n if (thePayload[_DYN_SEND_TYPE /* @min:%2esendType */] === 0 /* EventSendType.Batched */) {\r\n _outstandingRequests++;\r\n }\r\n // Only call the hook if it's defined and we are not using sendBeacon as additional headers are not supported\r\n if (useSendHook_1 && !thePayload.isBeacon && sendInterface_1[_DYN__TRANSPORT /* @min:%2e_transport */] !== 3 /* TransportType.Beacon */) {\r\n // Create a new IPayloadData that is sent into the hook method, so that the hook method\r\n // can't change the object references to the orgPayloadData (it can still change the content -- mainly the headers)\r\n // Disabling the use of const because of Issue:\r\n // - Task 9227844: [1DS] Some environments and packagers automatically \"freeze\" objects which are defined as const which causes any mutations to throw\r\n // eslint-disable-next-line prefer-const\r\n var hookData_1 = {\r\n data: orgPayloadData[_DYN_DATA /* @min:%2edata */],\r\n urlString: orgPayloadData[_DYN_URL_STRING /* @min:%2eurlString */],\r\n headers: extend({}, orgPayloadData[_DYN_HEADERS /* @min:%2eheaders */]),\r\n timeout: orgPayloadData[_DYN_TIMEOUT /* @min:%2etimeout */],\r\n disableXhrSync: orgPayloadData[_DYN_DISABLE_XHR_SYNC /* @min:%2edisableXhrSync */],\r\n disableFetchKeepAlive: orgPayloadData[_DYN_DISABLE_FETCH_KEEP_A6 /* @min:%2edisableFetchKeepAlive */]\r\n };\r\n var senderCalled_1 = false;\r\n doPerf(_core, function () { return \"HttpManager:_doPayloadSend.sendHook\"; }, function () {\r\n try {\r\n _sendHook(hookData_1, function (payload) {\r\n senderCalled_1 = true;\r\n // Add back the internal properties\r\n if (!_customHttpInterface && !payload[_DYN__THE_PAYLOAD /* @min:%2e_thePayload */]) {\r\n payload[_DYN__THE_PAYLOAD /* @min:%2e_thePayload */] = payload[_DYN__THE_PAYLOAD /* @min:%2e_thePayload */] || orgPayloadData[_DYN__THE_PAYLOAD /* @min:%2e_thePayload */];\r\n payload[_DYN__SEND_REASON /* @min:%2e_sendReason */] = payload[_DYN__SEND_REASON /* @min:%2e_sendReason */] || orgPayloadData[_DYN__SEND_REASON /* @min:%2e_sendReason */];\r\n }\r\n sender(payload);\r\n }, thePayload.isSync || thePayload[_DYN_IS_TEARDOWN /* @min:%2eisTeardown */]);\r\n }\r\n catch (ex) {\r\n if (!senderCalled_1) {\r\n // The hook never called the sender -- assume that it never will\r\n sender(orgPayloadData);\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n sender(orgPayloadData);\r\n }\r\n }\r\n });\r\n }, function () { return ({ thePayload: thePayload, serializationStart: serializationStart, serializationCompleted: serializationCompleted, sendReason: sendReason }); }, thePayload[_DYN_IS_SYNC /* @min:%2eisSync */]);\r\n }\r\n if (thePayload.sizeExceed && thePayload.sizeExceed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Ensure that we send any discard events for oversize events even when there was no payload to send\r\n _sendBatchesNotification(thePayload.sizeExceed, 8003 /* EventBatchNotificationReason.SizeLimitExceeded */, thePayload[_DYN_SEND_TYPE /* @min:%2esendType */]);\r\n }\r\n if (thePayload.failedEvts && thePayload.failedEvts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Ensure that we send any discard events for events that could not be serialized even when there was no payload to send\r\n _sendBatchesNotification(thePayload.failedEvts, 8002 /* EventBatchNotificationReason.InvalidEvent */, thePayload[_DYN_SEND_TYPE /* @min:%2esendType */]);\r\n }\r\n }\r\n function _addEventCompletedTimings(theEvents, sendEventCompleted) {\r\n if (_enableEventTimings) {\r\n arrForEach(theEvents, function (theEvent) {\r\n var timings = theEvent[_DYN_TIMINGS /* @min:%2etimings */] = theEvent[_DYN_TIMINGS /* @min:%2etimings */] || {};\r\n _setTimingValue(timings, \"sendEventCompleted\", sendEventCompleted);\r\n });\r\n }\r\n }\r\n function _retryRequestIfNeeded(status, headers, thePayload, sendReason) {\r\n var reason = 9000 /* EventBatchNotificationReason.ResponseFailure */;\r\n var droppedBatches = null;\r\n var isRetrying = false;\r\n var backOffTrans = false;\r\n try {\r\n var shouldRetry = true;\r\n if (typeof status !== strUndefined) {\r\n if (headers) {\r\n _clockSkewManager[_DYN_SET_CLOCK_SKEW /* @min:%2esetClockSkew */](headers[STR_TIME_DELTA_HEADER]);\r\n var killDuration = headers[STR_KILL_DURATION_HEADER] || headers[\"kill-duration-seconds\"];\r\n arrForEach(_killSwitch[_DYN_SET_KILL_SWITCH_TENA11 /* @min:%2esetKillSwitchTenants */](headers[STR_KILL_TOKENS_HEADER], killDuration), function (killToken) {\r\n arrForEach(thePayload[_DYN_BATCHES /* @min:%2ebatches */], function (theBatch) {\r\n if (theBatch[_DYN_I_KEY /* @min:%2eiKey */]() === killToken) {\r\n // Make sure we have initialized the array\r\n droppedBatches = droppedBatches || [];\r\n // Create a copy of the batch with all of the events (and more importantly the action functions)\r\n var removedEvents = theBatch[_DYN_SPLIT /* @min:%2esplit */](0);\r\n // And then remove the events for the payload batch and reduce the actual number of processed\r\n thePayload.numEvents -= removedEvents[_DYN_COUNT /* @min:%2ecount */]();\r\n droppedBatches[_DYN_PUSH /* @min:%2epush */](removedEvents);\r\n }\r\n });\r\n });\r\n }\r\n // Disabling triple-equals rule to avoid httpOverrides from failing because they are returning a string value\r\n // tslint:disable-next-line:triple-equals\r\n if (status == 200 || status == 204) {\r\n // Response was successfully sent\r\n reason = 200 /* EventBatchNotificationReason.Complete */;\r\n return;\r\n }\r\n if (!retryPolicyShouldRetryForStatus(status) || thePayload.numEvents <= 0) {\r\n // Only retry for specific response codes and if there is still events after kill switch processing\r\n shouldRetry = false;\r\n }\r\n // Derive the notification response from the HttpStatus Code\r\n reason = 9000 /* EventBatchNotificationReason.ResponseFailure */ + (status % 1000);\r\n }\r\n if (shouldRetry) {\r\n // The events should be retried -- so change notification to requeue them\r\n reason = 100 /* EventBatchNotificationReason.RequeueEvents */;\r\n var retryCount_1 = thePayload.retryCnt;\r\n if (thePayload[_DYN_SEND_TYPE /* @min:%2esendType */] === 0 /* EventSendType.Batched */) {\r\n // attempt to resend the entire batch\r\n if (retryCount_1 < maxRequestRetriesBeforeBackoff) {\r\n isRetrying = true;\r\n _doAction(function () {\r\n // try to resend the same batches\r\n if (thePayload[_DYN_SEND_TYPE /* @min:%2esendType */] === 0 /* EventSendType.Batched */) {\r\n // Reduce the outstanding request count (if this was an async request) as we didn't reduce the count\r\n // previously and we are about to reschedule our retry attempt and we want an attempt to send\r\n // to occur, it's also required to ensure that a follow up handleRequestFinished() call occurs\r\n _outstandingRequests--;\r\n }\r\n _sendBatches(thePayload[_DYN_BATCHES /* @min:%2ebatches */], retryCount_1 + 1, thePayload[_DYN_IS_TEARDOWN /* @min:%2eisTeardown */], _isUnloading ? 2 /* EventSendType.SendBeacon */ : thePayload[_DYN_SEND_TYPE /* @min:%2esendType */], 5 /* SendRequestReason.Retry */);\r\n }, _isUnloading, retryPolicyGetMillisToBackoffForRetry(retryCount_1));\r\n }\r\n else {\r\n backOffTrans = true;\r\n if (_isUnloading) {\r\n // we are unloading so don't try and requeue the events otherwise let the events get requeued and resent during the backoff sending\r\n // This will also cause the events to be purged based on the priority (if necessary)\r\n reason = 8001 /* EventBatchNotificationReason.NonRetryableStatus */;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n if (!isRetrying) {\r\n // Make sure the clockSkewManager doesn't blocking further sending of requests once we have a proper response\r\n // This won't override any previously sent clock Skew value\r\n _clockSkewManager[_DYN_SET_CLOCK_SKEW /* @min:%2esetClockSkew */]();\r\n _handleRequestFinished(thePayload, reason, sendReason, backOffTrans);\r\n }\r\n _sendBatchesNotification(droppedBatches, 8004 /* EventBatchNotificationReason.KillSwitch */, thePayload[_DYN_SEND_TYPE /* @min:%2esendType */]);\r\n }\r\n }\r\n function _handleRequestFinished(thePayload, batchReason, sendReason, backOffTrans) {\r\n try {\r\n if (backOffTrans) {\r\n // Slow down the transmission requests\r\n _postManager[_DYN__BACK_OFF_TRANSMISSI12 /* @min:%2e_backOffTransmission */]();\r\n }\r\n var theBatches = thePayload[_DYN_BATCHES /* @min:%2ebatches */];\r\n if (batchReason === 200 /* EventBatchNotificationReason.Complete */) {\r\n theBatches = thePayload.sentEvts || thePayload[_DYN_BATCHES /* @min:%2ebatches */];\r\n if (!backOffTrans && !thePayload[_DYN_IS_SYNC /* @min:%2eisSync */]) {\r\n // We have a successful async response, so the lets open the floodgates\r\n // The reason for checking isSync is to avoid unblocking if beacon send occurred as it\r\n // doesn't wait for a response.\r\n _postManager._clearBackOff();\r\n }\r\n _addCompleteTimings(theBatches);\r\n }\r\n // Send the notifications synchronously\r\n _sendBatchesNotification(theBatches, batchReason, thePayload[_DYN_SEND_TYPE /* @min:%2esendType */], true);\r\n }\r\n finally {\r\n if (thePayload[_DYN_SEND_TYPE /* @min:%2esendType */] === 0 /* EventSendType.Batched */) {\r\n // we always need to decrement this value otherwise the httpmanager locks up and won't send any more events\r\n _outstandingRequests--;\r\n // Don't try to send additional queued events if this is a retry operation as the retried\r\n // response will eventually call _handleRequestFinished for the retried event\r\n if (sendReason !== 5 /* SendRequestReason.Retry */) {\r\n // Try and send any other queued batched events\r\n _self.sendQueuedRequests(thePayload[_DYN_SEND_TYPE /* @min:%2esendType */], sendReason);\r\n }\r\n }\r\n }\r\n }\r\n function _addCompleteTimings(theBatches) {\r\n if (_enableEventTimings) {\r\n var sendEventCompleted_1 = getTime();\r\n arrForEach(theBatches, function (theBatch) {\r\n if (theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n _addEventCompletedTimings(theBatch[_DYN_EVENTS /* @min:%2eevents */](), sendEventCompleted_1);\r\n }\r\n });\r\n }\r\n }\r\n function _doAction(cb, isSync, interval) {\r\n if (isSync) {\r\n cb();\r\n }\r\n else {\r\n _timeoutWrapper.set(cb, interval);\r\n }\r\n }\r\n function _getMsfpc(thePayload) {\r\n for (var lp = 0; lp < thePayload.batches[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var msfpc = thePayload[_DYN_BATCHES /* @min:%2ebatches */][lp].Msfpc();\r\n if (msfpc) {\r\n return encodeURIComponent(msfpc);\r\n }\r\n }\r\n return STR_EMPTY;\r\n }\r\n function _handleCollectorResponse(responseText) {\r\n var responseHandlers = _responseHandlers;\r\n try {\r\n for (var i = 0; i < responseHandlers[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n try {\r\n responseHandlers[i](responseText);\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 519 /* _eExtendedInternalMessageId.PostResponseHandler */, \"Response handler failed: \" + e);\r\n }\r\n }\r\n if (responseText) {\r\n var response = JSON.parse(responseText);\r\n if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[STR_MSFPC])) {\r\n // Set cookie\r\n _cookieMgr.set(\"MSFPC\", response.webResult[STR_MSFPC], 365 * 86400);\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n // Doing nothing\r\n }\r\n }\r\n function _sendBatchesNotification(theBatches, batchReason, sendType, sendSync) {\r\n if (theBatches && theBatches[_DYN_LENGTH /* @min:%2elength */] > 0 && actions) {\r\n var theAction_1 = actions[_getNotificationAction(batchReason)];\r\n if (theAction_1) {\r\n var isSyncRequest_1 = sendType !== 0 /* EventSendType.Batched */;\r\n doPerf(_core, function () { return \"HttpManager:_sendBatchesNotification\"; }, function () {\r\n _doAction(function () {\r\n try {\r\n theAction_1.call(actions, theBatches, batchReason, isSyncRequest_1, sendType);\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + e);\r\n }\r\n }, sendSync || isSyncRequest_1, 0);\r\n }, function () { return ({ batches: _createDebugBatches(theBatches), reason: batchReason, isSync: isSyncRequest_1, sendSync: sendSync, sendType: sendType }); }, !isSyncRequest_1);\r\n }\r\n }\r\n }\r\n function _getNotificationAction(reason) {\r\n var action = _eventActionMap[reason];\r\n if (!isValueAssigned(action)) {\r\n action = STR_OTHER;\r\n if (reason >= 9000 /* EventBatchNotificationReason.ResponseFailure */ && reason <= 9999 /* EventBatchNotificationReason.ResponseFailureMax */) {\r\n action = STR_RESPONSE_FAIL;\r\n }\r\n else if (reason >= 8000 /* EventBatchNotificationReason.EventsDropped */ && reason <= 8999 /* EventBatchNotificationReason.EventsDroppedMax */) {\r\n action = STR_DROPPED;\r\n }\r\n else if (reason >= 1000 /* EventBatchNotificationReason.SendingUndefined */ && reason <= 1999 /* EventBatchNotificationReason.SendingEventMax */) {\r\n action = STR_SENDING;\r\n }\r\n }\r\n return action;\r\n }\r\n });\r\n }\r\n// Removed Stub for HttpManager.prototype.initialize.\r\n// Removed Stub for HttpManager.prototype.addHeader.\r\n// Removed Stub for HttpManager.prototype.removeHeader.\r\n// Removed Stub for HttpManager.prototype.addResponseHandler.\r\n// Removed Stub for HttpManager.prototype.addBatch.\r\n// Removed Stub for HttpManager.prototype.canSendRequest.\r\n// Removed Stub for HttpManager.prototype.sendQueuedRequests.\r\n// Removed Stub for HttpManager.prototype.isCompletelyIdle.\r\n// Removed Stub for HttpManager.prototype.setUnloading.\r\n// Removed Stub for HttpManager.prototype.teardown.\r\n// Removed Stub for HttpManager.prototype.pause.\r\n// Removed Stub for HttpManager.prototype.resume.\r\n// Removed Stub for HttpManager.prototype.sendSynchronousBatch.\r\n// Removed Stub for HttpManager.prototype.serializeOfflineEvt.\r\n// Removed Stub for HttpManager.prototype.getOfflineRequestDetails.\r\n// Removed Stub for HttpManager.prototype.createOneDSPayload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n HttpManager.__ieDyn=1;\n\n return HttpManager;\r\n}());\r\nexport { HttpManager };\r\n//# sourceMappingURL=HttpManager.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* TimeoutOverrideWrapper.ts\r\n* @author Nev Wylie (newylie)\r\n* @copyright Microsoft 2022\r\n* Simple internal timeout wrapper\r\n*/\r\nimport { scheduleTimeoutWith } from \"@nevware21/ts-utils\";\r\nexport function createTimeoutWrapper(argSetTimeout, argClearTimeout) {\r\n return {\r\n set: function (callback, ms) {\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 return scheduleTimeoutWith([argSetTimeout, argClearTimeout], callback, ms, args);\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TimeoutOverrideWrapper.js.map","/*\n * 1DS JS SDK POST plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* PostManager.ts\r\n* @author Abhilash Panwar (abpanwar); Hector Hernandez (hectorh); Nev Wylie (newylie)\r\n* @copyright Microsoft 2018-2020\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, EventsDiscardedReason, _throwInternal, addPageHideEventListener, addPageShowEventListener, addPageUnloadEventListener, arrForEach, createProcessTelemetryContext, createUniqueNamespace, doPerf, getWindow, isChromium, isGreaterThanZero, isNumber, mergeEvtNamespace, objForEachKey, onConfigChange, optimizeObject, proxyFunctions, removePageHideEventListener, removePageShowEventListener, removePageUnloadEventListener, setProcessTelemetryTimings } from \"@microsoft/1ds-core-js\";\r\nimport { createPromise } from \"@nevware21/ts-async\";\r\nimport { objDeepFreeze } from \"@nevware21/ts-utils\";\r\nimport { BE_PROFILE, NRT_PROFILE, RT_PROFILE } from \"./DataModels\";\r\nimport { EventBatch } from \"./EventBatch\";\r\nimport { HttpManager } from \"./HttpManager\";\r\nimport { STR_AUTH_WEB_TOKEN, STR_MSA_DEVICE_TICKET, STR_TRACE, STR_USER } from \"./InternalConstants\";\r\nimport { retryPolicyGetMillisToBackoffForRetry } from \"./RetryPolicy\";\r\nimport { createTimeoutWrapper } from \"./TimeoutOverrideWrapper\";\r\nimport { _DYN_ADD_HEADER, _DYN_AUTO_FLUSH_EVENTS_LI14, _DYN_BASE_DATA, _DYN_BATCHES, _DYN_CAN_SEND_REQUEST, _DYN_CLEAR_TIMEOUT_OVERRI3, _DYN_CONCAT, _DYN_COUNT, _DYN_CREATE_ONE_DSPAYLOAD, _DYN_DATA, _DYN_DISABLE_AUTO_BATCH_F15, _DYN_DISABLE_OPTIMIZE_OBJ, _DYN_DISABLE_TELEMETRY, _DYN_EVENTS, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_GET_OFFLINE_REQUEST_9, _DYN_GET_WPARAM, _DYN_IDENTIFIER, _DYN_IGNORE_MC1_MS0_COOKI13, _DYN_INITIALIZE, _DYN_IS_COMPLETELY_IDLE, _DYN_I_KEY, _DYN_LATENCY, _DYN_LENGTH, _DYN_OVERRIDE_INSTRUMENTA16, _DYN_PUSH, _DYN_SEND_ATTEMPT, _DYN_SEND_QUEUED_REQUESTS, _DYN_SEND_SYNCHRONOUS_BAT10, _DYN_SERIALIZE_OFFLINE_EV8, _DYN_SET_TIMEOUT_OVERRIDE, _DYN_SET_UNLOADING, _DYN_SPLICE, _DYN_SPLIT, _DYN_SYNC, _DYN__BACK_OFF_TRANSMISSI12 } from \"./__DynamicConstants\";\r\nvar FlushCheckTimer = 0.250; // This needs to be in seconds, so this is 250ms\r\nvar MaxNumberEventPerBatch = 500;\r\nvar EventsDroppedAtOneTime = 20;\r\nvar MaxSendAttempts = 6;\r\nvar MaxSyncUnloadSendAttempts = 2; // Assuming 2 based on beforeunload and unload\r\nvar MaxBackoffCount = 4;\r\nvar MaxConnections = 2;\r\nvar MaxRequestRetriesBeforeBackoff = 1;\r\nvar MaxEventsLimitInMem = 10000;\r\nvar strEventsDiscarded = \"eventsDiscarded\";\r\nvar EMPTY_STR = \"\";\r\nvar undefValue = undefined;\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultPostChannelConfig = objDeepFreeze({\r\n eventsLimitInMem: { isVal: isGreaterThanZero, v: MaxEventsLimitInMem },\r\n immediateEventLimit: { isVal: isGreaterThanZero, v: 500 },\r\n autoFlushEventsLimit: { isVal: isGreaterThanZero, v: 0 },\r\n disableAutoBatchFlushLimit: false,\r\n httpXHROverride: { isVal: isOverrideFn, v: undefValue },\r\n overrideInstrumentationKey: undefValue,\r\n overrideEndpointUrl: undefValue,\r\n disableTelemetry: false,\r\n ignoreMc1Ms0CookieProcessing: false,\r\n setTimeoutOverride: undefValue,\r\n clearTimeoutOverride: undefValue,\r\n payloadPreprocessor: undefValue,\r\n payloadListener: undefValue,\r\n disableEventTimings: undefValue,\r\n valueSanitizer: undefValue,\r\n stringifyObjects: undefValue,\r\n enableCompoundKey: undefValue,\r\n disableOptimizeObj: false,\r\n // disableCacheHeader: undefValue, // See Task #7178858 - Collector requires a change to support this\r\n transports: undefValue,\r\n unloadTransports: undefValue,\r\n useSendBeacon: undefValue,\r\n disableFetchKeepAlive: undefValue,\r\n avoidOptions: false,\r\n xhrTimeout: undefValue,\r\n disableXhrSync: undefValue,\r\n alwaysUseXhrOverride: false,\r\n maxEventRetryAttempts: { isVal: isNumber, v: MaxSendAttempts },\r\n maxUnloadEventRetryAttempts: { isVal: isNumber, v: MaxSyncUnloadSendAttempts },\r\n addNoResponse: undefValue,\r\n excludeCsMetaData: undefValue\r\n});\r\nfunction isOverrideFn(httpXHROverride) {\r\n return httpXHROverride && httpXHROverride.sendPOST;\r\n}\r\n/**\r\n * Class that manages adding events to inbound queues and batching of events\r\n * into requests.\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar PostChannel = /** @class */ (function (_super) {\r\n __extends(PostChannel, _super);\r\n function PostChannel() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"PostChannel\";\r\n _this.priority = 1011;\r\n _this.version = '4.2.1';\r\n var _postConfig;\r\n var _isTeardownCalled = false;\r\n var _flushCallbackQueue = [];\r\n var _flushCallbackTimer;\r\n var _paused = false;\r\n var _immediateQueueSize = 0;\r\n var _immediateQueueSizeLimit;\r\n var _queueSize = 0;\r\n var _queueSizeLimit;\r\n var _profiles = {};\r\n var _currentProfile = RT_PROFILE;\r\n var _scheduledTimer;\r\n var _immediateTimer;\r\n var _currentBackoffCount;\r\n var _timerCount;\r\n var _httpManager;\r\n var _batchQueues;\r\n var _autoFlushEventsLimit;\r\n // either MaxBatchSize * (1+ Max Connections) or _queueLimit / 6 (where 3 latency Queues [normal, realtime, cost deferred] * 2 [allow half full -- allow for retry])\r\n var _autoFlushBatchLimit;\r\n var _delayedBatchSendLatency;\r\n var _delayedBatchReason;\r\n var _optimizeObject;\r\n var _isPageUnloadTriggered;\r\n var _maxEventSendAttempts;\r\n var _maxUnloadEventSendAttempts;\r\n var _evtNamespace;\r\n var _timeoutWrapper;\r\n var _ignoreMc1Ms0CookieProcessing;\r\n var _disableAutoBatchFlushLimit;\r\n var _notificationManager;\r\n var _unloadHandlersAdded;\r\n var _overrideInstrumentationKey;\r\n var _disableTelemetry;\r\n dynamicProto(PostChannel, _this, function (_self, _base) {\r\n _initDefaults();\r\n // Special internal method to allow the DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_httpManager, _postConfig];\r\n };\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (theConfig, core, extensions) {\r\n doPerf(core, function () { return \"PostChannel:initialize\"; }, function () {\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](theConfig, core, extensions);\r\n _notificationManager = core.getNotifyMgr();\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self[_DYN_IDENTIFIER /* @min:%2eidentifier */]), core.evtNamespace && core.evtNamespace());\r\n _self._addHook(onConfigChange(theConfig, function (details) {\r\n var coreConfig = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, coreConfig, core);\r\n _postConfig = ctx.getExtCfg(_self[_DYN_IDENTIFIER /* @min:%2eidentifier */], defaultPostChannelConfig);\r\n _timeoutWrapper = createTimeoutWrapper(_postConfig[_DYN_SET_TIMEOUT_OVERRIDE /* @min:%2esetTimeoutOverride */], _postConfig[_DYN_CLEAR_TIMEOUT_OVERRI3 /* @min:%2eclearTimeoutOverride */]);\r\n // Only try and use the optimizeObject() if this appears to be a chromium based browser and it has not been explicitly disabled\r\n _optimizeObject = !_postConfig[_DYN_DISABLE_OPTIMIZE_OBJ /* @min:%2edisableOptimizeObj */] && isChromium();\r\n _ignoreMc1Ms0CookieProcessing = _postConfig[_DYN_IGNORE_MC1_MS0_COOKI13 /* @min:%2eignoreMc1Ms0CookieProcessing */];\r\n _hookWParam(core); // _hookWParam uses _ignoreMc1Ms0CookieProcessing\r\n _queueSizeLimit = _postConfig[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */];\r\n _immediateQueueSizeLimit = _postConfig.immediateEventLimit;\r\n _autoFlushEventsLimit = _postConfig[_DYN_AUTO_FLUSH_EVENTS_LI14 /* @min:%2eautoFlushEventsLimit */];\r\n _maxEventSendAttempts = _postConfig.maxEventRetryAttempts;\r\n _maxUnloadEventSendAttempts = _postConfig.maxUnloadEventRetryAttempts;\r\n _disableAutoBatchFlushLimit = _postConfig[_DYN_DISABLE_AUTO_BATCH_F15 /* @min:%2edisableAutoBatchFlushLimit */];\r\n _setAutoLimits();\r\n // Override iKey if provided in Post config if provided for during initialization\r\n _overrideInstrumentationKey = _postConfig[_DYN_OVERRIDE_INSTRUMENTA16 /* @min:%2eoverrideInstrumentationKey */];\r\n // DisableTelemetry was defined in the config provided during initialization\r\n _disableTelemetry = !!_postConfig[_DYN_DISABLE_TELEMETRY /* @min:%2edisableTelemetry */];\r\n if (_unloadHandlersAdded) {\r\n _removeUnloadHandlers();\r\n }\r\n var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];\r\n // When running in Web browsers try to send all telemetry if page is unloaded\r\n _unloadHandlersAdded = addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace);\r\n _unloadHandlersAdded = addPageHideEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace) || _unloadHandlersAdded;\r\n _unloadHandlersAdded = addPageShowEventListener(_handleShowEvents, coreConfig.disablePageShowEvents, _evtNamespace) || _unloadHandlersAdded;\r\n }));\r\n // only initialize the manager once\r\n _httpManager[_DYN_INITIALIZE /* @min:%2einitialize */](theConfig, _self.core, _self);\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n }, function () { return ({ theConfig: theConfig, core: core, extensions: extensions }); });\r\n };\r\n _self.processTelemetry = function (ev, itemCtx) {\r\n setProcessTelemetryTimings(ev, _self[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n itemCtx = itemCtx || _self._getTelCtx(itemCtx);\r\n var event = ev;\r\n if (!_disableTelemetry && !_isTeardownCalled) {\r\n // Override iKey if provided in Post config if provided for during initialization\r\n if (_overrideInstrumentationKey) {\r\n event[_DYN_I_KEY /* @min:%2eiKey */] = _overrideInstrumentationKey;\r\n }\r\n _addEventToQueues(event, true);\r\n if (_isPageUnloadTriggered) {\r\n // Unload event has been received so we need to try and flush new events\r\n _releaseAllQueues(2 /* EventSendType.SendBeacon */, 2 /* SendRequestReason.Unload */);\r\n }\r\n else {\r\n _scheduleTimer();\r\n }\r\n }\r\n _self.processNext(event, itemCtx);\r\n };\r\n _self.getOfflineSupport = function () {\r\n try {\r\n var details_1 = _httpManager && _httpManager[_DYN_GET_OFFLINE_REQUEST_9 /* @min:%2egetOfflineRequestDetails */]();\r\n if (_httpManager) {\r\n return {\r\n getUrl: function () {\r\n if (details_1) {\r\n return details_1.url;\r\n }\r\n return null;\r\n },\r\n serialize: _serialize,\r\n batch: _batch,\r\n shouldProcess: function (evt) {\r\n return !_disableTelemetry;\r\n },\r\n createPayload: function (evt) {\r\n return null;\r\n },\r\n createOneDSPayload: function (evts) {\r\n if (_httpManager[_DYN_CREATE_ONE_DSPAYLOAD /* @min:%2ecreateOneDSPayload */]) {\r\n return _httpManager[_DYN_CREATE_ONE_DSPAYLOAD /* @min:%2ecreateOneDSPayload */](evts, _optimizeObject);\r\n }\r\n }\r\n };\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _releaseAllQueues(2 /* EventSendType.SendBeacon */, 2 /* SendRequestReason.Unload */);\r\n _isTeardownCalled = true;\r\n _httpManager.teardown();\r\n _removeUnloadHandlers();\r\n // Just register to remove all events associated with this namespace\r\n _initDefaults();\r\n };\r\n function _removeUnloadHandlers() {\r\n removePageUnloadEventListener(null, _evtNamespace);\r\n removePageHideEventListener(null, _evtNamespace);\r\n removePageShowEventListener(null, _evtNamespace);\r\n }\r\n function _hookWParam(core) {\r\n var existingGetWParamMethod = core[_DYN_GET_WPARAM /* @min:%2egetWParam */];\r\n core[_DYN_GET_WPARAM /* @min:%2egetWParam */] = function () {\r\n var wparam = 0;\r\n if (_ignoreMc1Ms0CookieProcessing) {\r\n wparam = wparam | 2;\r\n }\r\n return wparam | existingGetWParamMethod.call(core);\r\n };\r\n }\r\n function _batch(arr) {\r\n var rlt = EMPTY_STR;\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n arrForEach(arr, function (item) {\r\n if (rlt) {\r\n rlt += \"\\n\";\r\n }\r\n rlt += item;\r\n });\r\n }\r\n return rlt;\r\n }\r\n function _serialize(event) {\r\n var rlt = EMPTY_STR;\r\n try {\r\n _cleanEvent(event);\r\n rlt = _httpManager[_DYN_SERIALIZE_OFFLINE_EV8 /* @min:%2eserializeOfflineEvt */](event);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return rlt;\r\n }\r\n // Moving event handlers out from the initialize closure so that any local variables can be garbage collected\r\n function _handleUnloadEvents(evt) {\r\n var theEvt = evt || getWindow().event; // IE 8 does not pass the event\r\n if (theEvt.type !== \"beforeunload\") {\r\n // Only set the unload trigger if not beforeunload event as beforeunload can be cancelled while the other events can't\r\n _isPageUnloadTriggered = true;\r\n _httpManager[_DYN_SET_UNLOADING /* @min:%2esetUnloading */](_isPageUnloadTriggered);\r\n }\r\n _releaseAllQueues(2 /* EventSendType.SendBeacon */, 2 /* SendRequestReason.Unload */);\r\n }\r\n function _handleShowEvents(evt) {\r\n // Handle the page becoming visible again\r\n _isPageUnloadTriggered = false;\r\n _httpManager[_DYN_SET_UNLOADING /* @min:%2esetUnloading */](_isPageUnloadTriggered);\r\n }\r\n function _cleanEvent(event) {\r\n if (event.ext && event.ext[STR_TRACE]) {\r\n delete (event.ext[STR_TRACE]);\r\n }\r\n if (event.ext && event.ext[STR_USER] && event.ext[STR_USER][\"id\"]) {\r\n delete (event.ext[STR_USER][\"id\"]);\r\n }\r\n // v8 performance optimization for iterating over the keys\r\n if (_optimizeObject) {\r\n event.ext = optimizeObject(event.ext);\r\n if (event[_DYN_BASE_DATA /* @min:%2ebaseData */]) {\r\n event[_DYN_BASE_DATA /* @min:%2ebaseData */] = optimizeObject(event[_DYN_BASE_DATA /* @min:%2ebaseData */]);\r\n }\r\n if (event[_DYN_DATA /* @min:%2edata */]) {\r\n event[_DYN_DATA /* @min:%2edata */] = optimizeObject(event[_DYN_DATA /* @min:%2edata */]);\r\n }\r\n }\r\n }\r\n function _addEventToQueues(event, append) {\r\n // If send attempt field is undefined we should set it to 0.\r\n if (!event[_DYN_SEND_ATTEMPT /* @min:%2esendAttempt */]) {\r\n event[_DYN_SEND_ATTEMPT /* @min:%2esendAttempt */] = 0;\r\n }\r\n // Add default latency\r\n if (!event[_DYN_LATENCY /* @min:%2elatency */]) {\r\n event[_DYN_LATENCY /* @min:%2elatency */] = 1 /* EventLatencyValue.Normal */;\r\n }\r\n _cleanEvent(event);\r\n if (event[_DYN_SYNC /* @min:%2esync */]) {\r\n // If the transmission is backed off then do not send synchronous events.\r\n // We will convert these events to Real time latency instead.\r\n if (_currentBackoffCount || _paused) {\r\n event[_DYN_LATENCY /* @min:%2elatency */] = 3 /* EventLatencyValue.RealTime */;\r\n event[_DYN_SYNC /* @min:%2esync */] = false;\r\n }\r\n else {\r\n // Log the event synchronously\r\n if (_httpManager) {\r\n // v8 performance optimization for iterating over the keys\r\n if (_optimizeObject) {\r\n event = optimizeObject(event);\r\n }\r\n _httpManager[_DYN_SEND_SYNCHRONOUS_BAT10 /* @min:%2esendSynchronousBatch */](EventBatch.create(event[_DYN_I_KEY /* @min:%2eiKey */], [event]), event[_DYN_SYNC /* @min:%2esync */] === true ? 1 /* EventSendType.Synchronous */ : event[_DYN_SYNC /* @min:%2esync */], 3 /* SendRequestReason.SyncEvent */);\r\n return;\r\n }\r\n }\r\n }\r\n var evtLatency = event[_DYN_LATENCY /* @min:%2elatency */];\r\n var queueSize = _queueSize;\r\n var queueLimit = _queueSizeLimit;\r\n if (evtLatency === 4 /* EventLatencyValue.Immediate */) {\r\n queueSize = _immediateQueueSize;\r\n queueLimit = _immediateQueueSizeLimit;\r\n }\r\n var eventDropped = false;\r\n // Only add the event if the queue isn't full or it's a direct event (which don't add to the queue sizes)\r\n if (queueSize < queueLimit) {\r\n eventDropped = !_addEventToProperQueue(event, append);\r\n }\r\n else {\r\n var dropLatency = 1 /* EventLatencyValue.Normal */;\r\n var dropNumber = EventsDroppedAtOneTime;\r\n if (evtLatency === 4 /* EventLatencyValue.Immediate */) {\r\n // Only drop other immediate events as they are not technically sharing the general queue\r\n dropLatency = 4 /* EventLatencyValue.Immediate */;\r\n dropNumber = 1;\r\n }\r\n // Drop old event from lower or equal latency\r\n eventDropped = true;\r\n if (_dropEventWithLatencyOrLess(event[_DYN_I_KEY /* @min:%2eiKey */], event[_DYN_LATENCY /* @min:%2elatency */], dropLatency, dropNumber)) {\r\n eventDropped = !_addEventToProperQueue(event, append);\r\n }\r\n }\r\n if (eventDropped) {\r\n // Can't drop events from current queues because the all the slots are taken by queues that are being flushed.\r\n _notifyEvents(strEventsDiscarded, [event], EventsDiscardedReason.QueueFull);\r\n }\r\n }\r\n _self.setEventQueueLimits = function (eventLimit, autoFlushLimit) {\r\n _postConfig[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */] = _queueSizeLimit = isGreaterThanZero(eventLimit) ? eventLimit : MaxEventsLimitInMem;\r\n _postConfig[_DYN_AUTO_FLUSH_EVENTS_LI14 /* @min:%2eautoFlushEventsLimit */] = _autoFlushEventsLimit = isGreaterThanZero(autoFlushLimit) ? autoFlushLimit : 0;\r\n _setAutoLimits();\r\n // We only do this check here as during normal event addition if the queue is > then events start getting dropped\r\n var doFlush = _queueSize > eventLimit;\r\n if (!doFlush && _autoFlushBatchLimit > 0) {\r\n // Check the auto flush max batch size\r\n for (var latency = 1 /* EventLatencyValue.Normal */; !doFlush && latency <= 3 /* EventLatencyValue.RealTime */; latency++) {\r\n var batchQueue = _batchQueues[latency];\r\n if (batchQueue && batchQueue[_DYN_BATCHES /* @min:%2ebatches */]) {\r\n arrForEach(batchQueue[_DYN_BATCHES /* @min:%2ebatches */], function (theBatch) {\r\n if (theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() >= _autoFlushBatchLimit) {\r\n // If any 1 batch is > than the limit then trigger an auto flush\r\n doFlush = true;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n _performAutoFlush(true, doFlush);\r\n };\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n _httpManager.pause();\r\n };\r\n _self.resume = function () {\r\n _paused = false;\r\n _httpManager.resume();\r\n _scheduleTimer();\r\n };\r\n _self._loadTransmitProfiles = function (profiles) {\r\n _resetTransmitProfiles();\r\n objForEachKey(profiles, function (profileName, profileValue) {\r\n var profLen = profileValue[_DYN_LENGTH /* @min:%2elength */];\r\n if (profLen >= 2) {\r\n var directValue = (profLen > 2 ? profileValue[2] : 0);\r\n profileValue[_DYN_SPLICE /* @min:%2esplice */](0, profLen - 2);\r\n // Make sure if a higher latency is set to not send then don't send lower latency\r\n if (profileValue[1] < 0) {\r\n profileValue[0] = -1;\r\n }\r\n // Make sure each latency is multiple of the latency higher then it. If not a multiple\r\n // we round up so that it becomes a multiple.\r\n if (profileValue[1] > 0 && profileValue[0] > 0) {\r\n var timerMultiplier = profileValue[0] / profileValue[1];\r\n profileValue[0] = Math.ceil(timerMultiplier) * profileValue[1];\r\n }\r\n // Add back the direct profile timeout\r\n if (directValue >= 0 && profileValue[1] >= 0 && directValue > profileValue[1]) {\r\n // Make sure if it's not disabled (< 0) then make sure it's not larger than RealTime\r\n directValue = profileValue[1];\r\n }\r\n profileValue[_DYN_PUSH /* @min:%2epush */](directValue);\r\n _profiles[profileName] = profileValue;\r\n }\r\n });\r\n };\r\n _self.flush = function (async, callback, sendReason) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n if (!_paused) {\r\n sendReason = sendReason || 1 /* SendRequestReason.ManualFlush */;\r\n if (async) {\r\n if (!callback) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n callback = resolve;\r\n });\r\n }\r\n if (_flushCallbackTimer == null) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n // Move all queued events to the HttpManager so that we don't discard new events (Auto flush scenario)\r\n _queueBatches(1 /* EventLatencyValue.Normal */, 0 /* EventSendType.Batched */, sendReason);\r\n _flushCallbackTimer = _createTimer(function () {\r\n _flushCallbackTimer = null;\r\n _flushImpl(callback, sendReason);\r\n }, 0);\r\n }\r\n else {\r\n // Even if null (no callback) this will ensure after the flushImpl finishes waiting\r\n // for a completely idle connection it will attempt to re-flush any queued events on the next cycle\r\n _flushCallbackQueue[_DYN_PUSH /* @min:%2epush */](callback);\r\n }\r\n }\r\n else {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n var cleared = _clearScheduledTimer();\r\n // Now cause all queued events to be sent synchronously\r\n _sendEventsForLatencyAndAbove(1 /* EventLatencyValue.Normal */, 1 /* EventSendType.Synchronous */, sendReason);\r\n callback && callback();\r\n if (cleared) {\r\n // restart the normal event timer if it was cleared\r\n _scheduleTimer();\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n _self.setMsaAuthTicket = function (ticket) {\r\n _httpManager[_DYN_ADD_HEADER /* @min:%2eaddHeader */](STR_MSA_DEVICE_TICKET, ticket);\r\n };\r\n _self.setAuthPluginHeader = function (token) {\r\n _httpManager[_DYN_ADD_HEADER /* @min:%2eaddHeader */](STR_AUTH_WEB_TOKEN, token);\r\n };\r\n _self.removeAuthPluginHeader = function () {\r\n _httpManager.removeHeader(STR_AUTH_WEB_TOKEN);\r\n };\r\n _self.hasEvents = _hasEvents;\r\n _self._setTransmitProfile = function (profileName) {\r\n if (_currentProfile !== profileName && _profiles[profileName] !== undefined) {\r\n _clearScheduledTimer();\r\n _currentProfile = profileName;\r\n _scheduleTimer();\r\n }\r\n };\r\n proxyFunctions(_self, function () { return _httpManager; }, [\"addResponseHandler\"]);\r\n /**\r\n * Batch and send events currently in the queue for the given latency.\r\n * @param latency - Latency for which to send events.\r\n */\r\n function _sendEventsForLatencyAndAbove(latency, sendType, sendReason) {\r\n var queued = _queueBatches(latency, sendType, sendReason);\r\n // Always trigger the request as while the post channel may not have queued additional events, the httpManager may already have waiting events\r\n _httpManager[_DYN_SEND_QUEUED_REQUESTS /* @min:%2esendQueuedRequests */](sendType, sendReason);\r\n return queued;\r\n }\r\n function _hasEvents() {\r\n return _queueSize > 0;\r\n }\r\n /**\r\n * Try to schedule the timer after which events will be sent. If there are\r\n * no events to be sent, or there is already a timer scheduled, or the\r\n * http manager doesn't have any idle connections this method is no-op.\r\n */\r\n function _scheduleTimer() {\r\n // If we had previously attempted to send requests, but the http manager didn't have any idle connections then the requests where delayed\r\n // so try and requeue then again now\r\n if (_delayedBatchSendLatency >= 0 && _queueBatches(_delayedBatchSendLatency, 0 /* EventSendType.Batched */, _delayedBatchReason)) {\r\n _httpManager[_DYN_SEND_QUEUED_REQUESTS /* @min:%2esendQueuedRequests */](0 /* EventSendType.Batched */, _delayedBatchReason);\r\n }\r\n if (_immediateQueueSize > 0 && !_immediateTimer && !_paused) {\r\n // During initialization _profiles enforce that the direct [2] is less than real time [1] timer value\r\n // If the immediateTimeout is disabled the immediate events will be sent with Real Time events\r\n var immediateTimeOut = _profiles[_currentProfile][2];\r\n if (immediateTimeOut >= 0) {\r\n _immediateTimer = _createTimer(function () {\r\n _immediateTimer = null;\r\n // Only try to send direct events\r\n _sendEventsForLatencyAndAbove(4 /* EventLatencyValue.Immediate */, 0 /* EventSendType.Batched */, 1 /* SendRequestReason.NormalSchedule */);\r\n _scheduleTimer();\r\n }, immediateTimeOut);\r\n }\r\n }\r\n // During initialization the _profiles enforce that the normal [0] is a multiple of the real time [1] timer value\r\n var timeOut = _profiles[_currentProfile][1];\r\n if (!_scheduledTimer && !_flushCallbackTimer && timeOut >= 0 && !_paused) {\r\n if (_hasEvents()) {\r\n _scheduledTimer = _createTimer(function () {\r\n _scheduledTimer = null;\r\n _sendEventsForLatencyAndAbove(_timerCount === 0 ? 3 /* EventLatencyValue.RealTime */ : 1 /* EventLatencyValue.Normal */, 0 /* EventSendType.Batched */, 1 /* SendRequestReason.NormalSchedule */);\r\n // Increment the count for next cycle\r\n _timerCount++;\r\n _timerCount %= 2;\r\n _scheduleTimer();\r\n }, timeOut);\r\n }\r\n else {\r\n _timerCount = 0;\r\n }\r\n }\r\n }\r\n _self[_DYN__BACK_OFF_TRANSMISSI12 /* @min:%2e_backOffTransmission */] = function () {\r\n if (_currentBackoffCount < MaxBackoffCount) {\r\n _currentBackoffCount++;\r\n _clearScheduledTimer();\r\n _scheduleTimer();\r\n }\r\n };\r\n _self._clearBackOff = function () {\r\n if (_currentBackoffCount) {\r\n _currentBackoffCount = 0;\r\n _clearScheduledTimer();\r\n _scheduleTimer();\r\n }\r\n };\r\n function _initDefaults() {\r\n _postConfig = null;\r\n _isTeardownCalled = false;\r\n _flushCallbackQueue = [];\r\n _flushCallbackTimer = null;\r\n _paused = false;\r\n _immediateQueueSize = 0;\r\n _immediateQueueSizeLimit = 500;\r\n _queueSize = 0;\r\n _queueSizeLimit = MaxEventsLimitInMem;\r\n _profiles = {};\r\n _currentProfile = RT_PROFILE;\r\n _scheduledTimer = null;\r\n _immediateTimer = null;\r\n _currentBackoffCount = 0;\r\n _timerCount = 0;\r\n _batchQueues = {};\r\n _autoFlushEventsLimit = 0;\r\n _unloadHandlersAdded = false;\r\n // either MaxBatchSize * (1+ Max Connections) or _queueLimit / 6 (where 3 latency Queues [normal, realtime, cost deferred] * 2 [allow half full -- allow for retry])\r\n _autoFlushBatchLimit = 0;\r\n _delayedBatchSendLatency = -1;\r\n _delayedBatchReason = null;\r\n _optimizeObject = true;\r\n _isPageUnloadTriggered = false;\r\n _maxEventSendAttempts = MaxSendAttempts;\r\n _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;\r\n _evtNamespace = null;\r\n _overrideInstrumentationKey = null;\r\n _disableTelemetry = false;\r\n _timeoutWrapper = createTimeoutWrapper();\r\n _httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRequestRetriesBeforeBackoff, {\r\n requeue: _requeueEvents,\r\n send: _sendingEvent,\r\n sent: _eventsSentEvent,\r\n drop: _eventsDropped,\r\n rspFail: _eventsResponseFail,\r\n oth: _otherEvent\r\n });\r\n _initializeProfiles();\r\n _clearQueues();\r\n _setAutoLimits();\r\n }\r\n function _createTimer(theTimerFunc, timeOut) {\r\n // If the transmission is backed off make the timer at least 1 sec to allow for back off.\r\n if (timeOut === 0 && _currentBackoffCount) {\r\n timeOut = 1;\r\n }\r\n var timerMultiplier = 1000;\r\n if (_currentBackoffCount) {\r\n timerMultiplier = retryPolicyGetMillisToBackoffForRetry(_currentBackoffCount - 1);\r\n }\r\n return _timeoutWrapper.set(theTimerFunc, timeOut * timerMultiplier);\r\n }\r\n function _clearScheduledTimer() {\r\n if (_scheduledTimer !== null) {\r\n _scheduledTimer.cancel();\r\n _scheduledTimer = null;\r\n _timerCount = 0;\r\n return true;\r\n }\r\n return false;\r\n }\r\n // Try to send all queued events using beacons if available\r\n function _releaseAllQueues(sendType, sendReason) {\r\n _clearScheduledTimer();\r\n // Cancel all flush callbacks\r\n if (_flushCallbackTimer) {\r\n _flushCallbackTimer.cancel();\r\n _flushCallbackTimer = null;\r\n }\r\n if (!_paused) {\r\n // Queue all the remaining requests to be sent. The requests will be sent using HTML5 Beacons if they are available.\r\n _sendEventsForLatencyAndAbove(1 /* EventLatencyValue.Normal */, sendType, sendReason);\r\n }\r\n }\r\n /**\r\n * Add empty queues for all latencies in the inbound queues map. This is called\r\n * when Transmission Manager is being flushed. This ensures that new events added\r\n * after flush are stored separately till we flush the current events.\r\n */\r\n function _clearQueues() {\r\n _batchQueues[4 /* EventLatencyValue.Immediate */] = {\r\n batches: [],\r\n iKeyMap: {}\r\n };\r\n _batchQueues[3 /* EventLatencyValue.RealTime */] = {\r\n batches: [],\r\n iKeyMap: {}\r\n };\r\n _batchQueues[2 /* EventLatencyValue.CostDeferred */] = {\r\n batches: [],\r\n iKeyMap: {}\r\n };\r\n _batchQueues[1 /* EventLatencyValue.Normal */] = {\r\n batches: [],\r\n iKeyMap: {}\r\n };\r\n }\r\n function _getEventBatch(iKey, latency, create) {\r\n var batchQueue = _batchQueues[latency];\r\n if (!batchQueue) {\r\n latency = 1 /* EventLatencyValue.Normal */;\r\n batchQueue = _batchQueues[latency];\r\n }\r\n var eventBatch = batchQueue.iKeyMap[iKey];\r\n if (!eventBatch && create) {\r\n eventBatch = EventBatch.create(iKey);\r\n batchQueue.batches[_DYN_PUSH /* @min:%2epush */](eventBatch);\r\n batchQueue.iKeyMap[iKey] = eventBatch;\r\n }\r\n return eventBatch;\r\n }\r\n function _performAutoFlush(isAsync, doFlush) {\r\n // Only perform the auto flush check if the httpManager has an idle connection and we are not in a backoff situation\r\n if (_httpManager[_DYN_CAN_SEND_REQUEST /* @min:%2ecanSendRequest */]() && !_currentBackoffCount) {\r\n if (_autoFlushEventsLimit > 0 && _queueSize > _autoFlushEventsLimit) {\r\n // Force flushing\r\n doFlush = true;\r\n }\r\n if (doFlush && _flushCallbackTimer == null) {\r\n // Auto flush the queue, adding a callback to avoid the creation of a promise\r\n _self.flush(isAsync, function () { }, 20 /* SendRequestReason.MaxQueuedEvents */);\r\n }\r\n }\r\n }\r\n function _addEventToProperQueue(event, append) {\r\n // v8 performance optimization for iterating over the keys\r\n if (_optimizeObject) {\r\n event = optimizeObject(event);\r\n }\r\n var latency = event[_DYN_LATENCY /* @min:%2elatency */];\r\n var eventBatch = _getEventBatch(event[_DYN_I_KEY /* @min:%2eiKey */], latency, true);\r\n if (eventBatch.addEvent(event)) {\r\n if (latency !== 4 /* EventLatencyValue.Immediate */) {\r\n _queueSize++;\r\n // Check for auto flushing based on total events in the queue, but not for requeued or retry events\r\n if (append && event[_DYN_SEND_ATTEMPT /* @min:%2esendAttempt */] === 0) {\r\n // Force the flushing of the batch if the batch (specific iKey / latency combination) reaches it's auto flush limit\r\n _performAutoFlush(!event.sync, _autoFlushBatchLimit > 0 && eventBatch[_DYN_COUNT /* @min:%2ecount */]() >= _autoFlushBatchLimit);\r\n }\r\n }\r\n else {\r\n // Direct events don't need auto flushing as they are scheduled (by default) for immediate delivery\r\n _immediateQueueSize++;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _dropEventWithLatencyOrLess(iKey, latency, currentLatency, dropNumber) {\r\n while (currentLatency <= latency) {\r\n var eventBatch = _getEventBatch(iKey, latency, true);\r\n if (eventBatch && eventBatch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n // Dropped oldest events from lowest possible latency\r\n var droppedEvents = eventBatch[_DYN_SPLIT /* @min:%2esplit */](0, dropNumber);\r\n var droppedCount = droppedEvents[_DYN_COUNT /* @min:%2ecount */]();\r\n if (droppedCount > 0) {\r\n if (currentLatency === 4 /* EventLatencyValue.Immediate */) {\r\n _immediateQueueSize -= droppedCount;\r\n }\r\n else {\r\n _queueSize -= droppedCount;\r\n }\r\n _notifyBatchEvents(strEventsDiscarded, [droppedEvents], EventsDiscardedReason.QueueFull);\r\n return true;\r\n }\r\n }\r\n currentLatency++;\r\n }\r\n // Unable to drop any events -- lets just make sure the queue counts are correct to avoid exhaustion\r\n _resetQueueCounts();\r\n return false;\r\n }\r\n /**\r\n * Internal helper to reset the queue counts, used as a backstop to avoid future queue exhaustion errors\r\n * that might occur because of counting issues.\r\n */\r\n function _resetQueueCounts() {\r\n var immediateQueue = 0;\r\n var normalQueue = 0;\r\n var _loop_1 = function (latency) {\r\n var batchQueue = _batchQueues[latency];\r\n if (batchQueue && batchQueue[_DYN_BATCHES /* @min:%2ebatches */]) {\r\n arrForEach(batchQueue[_DYN_BATCHES /* @min:%2ebatches */], function (theBatch) {\r\n if (latency === 4 /* EventLatencyValue.Immediate */) {\r\n immediateQueue += theBatch[_DYN_COUNT /* @min:%2ecount */]();\r\n }\r\n else {\r\n normalQueue += theBatch[_DYN_COUNT /* @min:%2ecount */]();\r\n }\r\n });\r\n }\r\n };\r\n for (var latency = 1 /* EventLatencyValue.Normal */; latency <= 4 /* EventLatencyValue.Immediate */; latency++) {\r\n _loop_1(latency);\r\n }\r\n _queueSize = normalQueue;\r\n _immediateQueueSize = immediateQueue;\r\n }\r\n function _queueBatches(latency, sendType, sendReason) {\r\n var eventsQueued = false;\r\n var isAsync = sendType === 0 /* EventSendType.Batched */;\r\n // Only queue batches (to the HttpManager) if this is a sync request or the httpManager has an idle connection\r\n // Thus keeping the events within the PostChannel until the HttpManager has a connection available\r\n // This is so we can drop \"old\" events if the queue is getting full because we can't successfully send events\r\n if (!isAsync || _httpManager[_DYN_CAN_SEND_REQUEST /* @min:%2ecanSendRequest */]()) {\r\n doPerf(_self.core, function () { return \"PostChannel._queueBatches\"; }, function () {\r\n var droppedEvents = [];\r\n var latencyToProcess = 4 /* EventLatencyValue.Immediate */;\r\n while (latencyToProcess >= latency) {\r\n var batchQueue = _batchQueues[latencyToProcess];\r\n if (batchQueue && batchQueue.batches && batchQueue.batches[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(batchQueue[_DYN_BATCHES /* @min:%2ebatches */], function (theBatch) {\r\n // Add the batch to the http manager to send the requests\r\n if (!_httpManager.addBatch(theBatch)) {\r\n // The events from this iKey are being dropped (killed)\r\n droppedEvents = droppedEvents[_DYN_CONCAT /* @min:%2econcat */](theBatch[_DYN_EVENTS /* @min:%2eevents */]());\r\n }\r\n else {\r\n eventsQueued = eventsQueued || (theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() > 0);\r\n }\r\n if (latencyToProcess === 4 /* EventLatencyValue.Immediate */) {\r\n _immediateQueueSize -= theBatch[_DYN_COUNT /* @min:%2ecount */]();\r\n }\r\n else {\r\n _queueSize -= theBatch[_DYN_COUNT /* @min:%2ecount */]();\r\n }\r\n });\r\n // Remove all batches from this Queue\r\n batchQueue[_DYN_BATCHES /* @min:%2ebatches */] = [];\r\n batchQueue.iKeyMap = {};\r\n }\r\n latencyToProcess--;\r\n }\r\n if (droppedEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _notifyEvents(strEventsDiscarded, droppedEvents, EventsDiscardedReason.KillSwitch);\r\n }\r\n if (eventsQueued && _delayedBatchSendLatency >= latency) {\r\n // We have queued events at the same level as the delayed values so clear the setting\r\n _delayedBatchSendLatency = -1;\r\n _delayedBatchReason = 0 /* SendRequestReason.Undefined */;\r\n }\r\n }, function () { return ({ latency: latency, sendType: sendType, sendReason: sendReason }); }, !isAsync);\r\n }\r\n else {\r\n // remember the min latency so that we can re-trigger later\r\n _delayedBatchSendLatency = _delayedBatchSendLatency >= 0 ? Math.min(_delayedBatchSendLatency, latency) : latency;\r\n _delayedBatchReason = Math.max(_delayedBatchReason, sendReason);\r\n }\r\n return eventsQueued;\r\n }\r\n /**\r\n * This is the callback method is called as part of the manual flushing process.\r\n * @param callback\r\n * @param sendReason\r\n */\r\n function _flushImpl(callback, sendReason) {\r\n // Add any additional queued events and cause all queued events to be sent asynchronously\r\n _sendEventsForLatencyAndAbove(1 /* EventLatencyValue.Normal */, 0 /* EventSendType.Batched */, sendReason);\r\n // All events (should) have been queue -- lets just make sure the queue counts are correct to avoid queue exhaustion (previous bug #9685112)\r\n _resetQueueCounts();\r\n _waitForIdleManager(function () {\r\n // Only called AFTER the httpManager does not have any outstanding requests\r\n if (callback) {\r\n callback();\r\n }\r\n if (_flushCallbackQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _flushCallbackTimer = _createTimer(function () {\r\n _flushCallbackTimer = null;\r\n _flushImpl(_flushCallbackQueue.shift(), sendReason);\r\n }, 0);\r\n }\r\n else {\r\n // No more flush requests\r\n _flushCallbackTimer = null;\r\n // Restart the normal timer schedule\r\n _scheduleTimer();\r\n }\r\n });\r\n }\r\n function _waitForIdleManager(callback) {\r\n if (_httpManager[_DYN_IS_COMPLETELY_IDLE /* @min:%2eisCompletelyIdle */]()) {\r\n callback();\r\n }\r\n else {\r\n _flushCallbackTimer = _createTimer(function () {\r\n _flushCallbackTimer = null;\r\n _waitForIdleManager(callback);\r\n }, FlushCheckTimer);\r\n }\r\n }\r\n /**\r\n * Resets the transmit profiles to the default profiles of Real Time, Near Real Time\r\n * and Best Effort. This removes all the custom profiles that were loaded.\r\n */\r\n function _resetTransmitProfiles() {\r\n _clearScheduledTimer();\r\n _initializeProfiles();\r\n _currentProfile = RT_PROFILE;\r\n _scheduleTimer();\r\n }\r\n function _initializeProfiles() {\r\n _profiles = {};\r\n _profiles[RT_PROFILE] = [2, 1, 0];\r\n _profiles[NRT_PROFILE] = [6, 3, 0];\r\n _profiles[BE_PROFILE] = [18, 9, 0];\r\n }\r\n /**\r\n * The notification handler for requeue events\r\n * @ignore\r\n */\r\n function _requeueEvents(batches, reason) {\r\n var droppedEvents = [];\r\n var maxSendAttempts = _maxEventSendAttempts;\r\n if (_isPageUnloadTriggered) {\r\n // If a page unlaod has been triggered reduce the number of times we try to \"retry\"\r\n maxSendAttempts = _maxUnloadEventSendAttempts;\r\n }\r\n arrForEach(batches, function (theBatch) {\r\n if (theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n arrForEach(theBatch[_DYN_EVENTS /* @min:%2eevents */](), function (theEvent) {\r\n if (theEvent) {\r\n // Check if the request being added back is for a sync event in which case mark it no longer a sync event\r\n if (theEvent[_DYN_SYNC /* @min:%2esync */]) {\r\n theEvent[_DYN_LATENCY /* @min:%2elatency */] = 4 /* EventLatencyValue.Immediate */;\r\n theEvent[_DYN_SYNC /* @min:%2esync */] = false;\r\n }\r\n if (theEvent[_DYN_SEND_ATTEMPT /* @min:%2esendAttempt */] < maxSendAttempts) {\r\n // Reset the event timings\r\n setProcessTelemetryTimings(theEvent, _self[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n _addEventToQueues(theEvent, false);\r\n }\r\n else {\r\n droppedEvents[_DYN_PUSH /* @min:%2epush */](theEvent);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n if (droppedEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _notifyEvents(strEventsDiscarded, droppedEvents, EventsDiscardedReason.NonRetryableStatus);\r\n }\r\n if (_isPageUnloadTriggered) {\r\n // Unload event has been received so we need to try and flush new events\r\n _releaseAllQueues(2 /* EventSendType.SendBeacon */, 2 /* SendRequestReason.Unload */);\r\n }\r\n }\r\n function _callNotification(evtName, theArgs) {\r\n var manager = (_notificationManager || {});\r\n var notifyFunc = manager[evtName];\r\n if (notifyFunc) {\r\n try {\r\n notifyFunc.apply(manager, theArgs);\r\n }\r\n catch (e) {\r\n _throwInternal(_self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, evtName + \" notification failed: \" + e);\r\n }\r\n }\r\n }\r\n function _notifyEvents(evtName, theEvents) {\r\n var extraArgs = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n extraArgs[_i - 2] = arguments[_i];\r\n }\r\n if (theEvents && theEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _callNotification(evtName, [theEvents][_DYN_CONCAT /* @min:%2econcat */](extraArgs));\r\n }\r\n }\r\n function _notifyBatchEvents(evtName, batches) {\r\n var extraArgs = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n extraArgs[_i - 2] = arguments[_i];\r\n }\r\n if (batches && batches[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(batches, function (theBatch) {\r\n if (theBatch && theBatch[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n _callNotification(evtName, [theBatch.events()][_DYN_CONCAT /* @min:%2econcat */](extraArgs));\r\n }\r\n });\r\n }\r\n }\r\n /**\r\n * The notification handler for when batches are about to be sent\r\n * @ignore\r\n */\r\n function _sendingEvent(batches, reason, isSyncRequest) {\r\n if (batches && batches[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _callNotification(\"eventsSendRequest\", [(reason >= 1000 /* EventBatchNotificationReason.SendingUndefined */ && reason <= 1999 /* EventBatchNotificationReason.SendingEventMax */ ?\r\n reason - 1000 /* EventBatchNotificationReason.SendingUndefined */ :\r\n 0 /* SendRequestReason.Undefined */), isSyncRequest !== true]);\r\n }\r\n }\r\n /**\r\n * This event represents that a batch of events have been successfully sent and a response received\r\n * @param batches The notification handler for when the batches have been successfully sent\r\n * @param reason For this event the reason will always be EventBatchNotificationReason.Complete\r\n */\r\n function _eventsSentEvent(batches, reason) {\r\n _notifyBatchEvents(\"eventsSent\", batches, reason);\r\n // Try and schedule the processing timer if we have events\r\n _scheduleTimer();\r\n }\r\n function _eventsDropped(batches, reason) {\r\n _notifyBatchEvents(strEventsDiscarded, batches, (reason >= 8000 /* EventBatchNotificationReason.EventsDropped */ && reason <= 8999 /* EventBatchNotificationReason.EventsDroppedMax */ ?\r\n reason - 8000 /* EventBatchNotificationReason.EventsDropped */ :\r\n EventsDiscardedReason.Unknown));\r\n }\r\n function _eventsResponseFail(batches) {\r\n _notifyBatchEvents(strEventsDiscarded, batches, EventsDiscardedReason.NonRetryableStatus);\r\n // Try and schedule the processing timer if we have events\r\n _scheduleTimer();\r\n }\r\n function _otherEvent(batches, reason) {\r\n _notifyBatchEvents(strEventsDiscarded, batches, EventsDiscardedReason.Unknown);\r\n // Try and schedule the processing timer if we have events\r\n _scheduleTimer();\r\n }\r\n function _setAutoLimits() {\r\n if (!_disableAutoBatchFlushLimit) {\r\n _autoFlushBatchLimit = Math.max(MaxNumberEventPerBatch * (MaxConnections + 1), _queueSizeLimit / 6);\r\n }\r\n else {\r\n _autoFlushBatchLimit = 0;\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for PostChannel.prototype.initialize.\r\n// Removed Stub for PostChannel.prototype.processTelemetry.\r\n// Removed Stub for PostChannel.prototype.setEventQueueLimits.\r\n// Removed Stub for PostChannel.prototype.pause.\r\n// Removed Stub for PostChannel.prototype.resume.\r\n// Removed Stub for PostChannel.prototype.addResponseHandler.\r\n// Removed Stub for PostChannel.prototype.flush.\r\n// Removed Stub for PostChannel.prototype.setMsaAuthTicket.\r\n// Removed Stub for PostChannel.prototype.setAuthPluginHeader.\r\n// Removed Stub for PostChannel.prototype.removeAuthPluginHeader.\r\n// Removed Stub for PostChannel.prototype.hasEvents.\r\n// Removed Stub for PostChannel.prototype._loadTransmitProfiles.\r\n// Removed Stub for PostChannel.prototype._setTransmitProfile.\r\n// Removed Stub for PostChannel.prototype._backOffTransmission.\r\n// Removed Stub for PostChannel.prototype._clearBackOff.\r\n// Removed Stub for PostChannel.prototype.getOfflineSupport.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PostChannel.__ieDyn=1;\n\n return PostChannel;\r\n}(BaseTelemetryPlugin));\r\nexport { PostChannel };\r\n//# sourceMappingURL=PostChannel.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Utils.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n* File containing utility functions.\r\n*/\r\nimport { getGlobal, isFunction, _throwInternal } from \"@microsoft/1ds-core-js\";\r\nvar _canUseLocalStorage;\r\n/**\r\n * Check if the browser supports local storage.\r\n *\r\n * @returns {boolean} True if local storage is supported.\r\n */\r\nexport function canUseLocalStorage() {\r\n if (_canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(0 /* StorageType.LocalStorage */);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\n/**\r\n* Gets the localStorage object if available\r\n* @returns Returns the storage object if available else returns null\r\n*/\r\nfunction _getLocalStorageObject() {\r\n if (canUseLocalStorage()) {\r\n return _getVerifiedStorageObject(0 /* StorageType.LocalStorage */);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @returns Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n var storage = null;\r\n var fail;\r\n var uid;\r\n try {\r\n var global_1 = getGlobal();\r\n if (!global_1) {\r\n return null;\r\n }\r\n uid = new Date();\r\n storage = storageType === 0 /* StorageType.LocalStorage */ ? global_1.localStorage : global_1.sessionStorage;\r\n if (storage && isFunction(storage.setItem)) {\r\n storage.setItem(uid, uid);\r\n fail = storage.getItem(uid) !== uid;\r\n storage.removeItem(uid);\r\n if (fail) {\r\n storage = null;\r\n }\r\n }\r\n }\r\n catch (exception) {\r\n storage = null;\r\n }\r\n return storage;\r\n}\r\n/**\r\n * Set the contents of an object in the browser's local storage\r\n *\r\n * @param name - the name of the object to set in storage\r\n * @param data - the contents of the object to set in storage\r\n * @returns True if the storage object could be written.\r\n */\r\nexport function setStorage(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, 1 /* eLoggingSeverity.CRITICAL */, 504 /* _eExtendedInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + e);\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Get an object from the browser's local storage\r\n *\r\n * @param name - the name of the object to get from storage\r\n * @returns The contents of the storage object with the given name. Null if storage is not supported.\r\n */\r\nexport function getStorage(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, 1 /* eLoggingSeverity.CRITICAL */, 503 /* _eExtendedInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + e);\r\n }\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=Utils.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n\r\n// Licensed under the MIT License.\r\nimport { strShimPrototype } from \"@microsoft/applicationinsights-shims\";\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\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DEVICE = \"device\";\r\nexport var STR_LOCALE = \"locale\";\r\nexport var STR_VER = \"ver\";\r\nexport var STR_BROWSER = \"browser\";\r\nexport var STR_BROWSER_VER = \"browserVer\";\r\nexport var STR_POP_SAMPLE = \"popSample\";\r\nexport var STR_EVENT_FLAGS = \"eventFlags\";\r\nexport var STR_NAME = \"name\";\r\nexport var STR_SERVICE_NAME = \"serviceName\";\r\nexport var STR_LENGTH = \"length\";\r\nexport var STR_SESSION_EXPIRATION_MS = \"sessionExpirationMs\";\r\nexport var STR_SESSION_RENEWAL_MS = \"sessionRenewalMs\";\r\nexport var STR_USER_AGENT = \"userAgent\";\r\nexport var STR_USER_AGENT_DATA = \"userAgentData\";\r\nexport var STR_NAME_PREFIX = \"namePrefix\";\r\nexport var STR_PROTOTYPE = strShimPrototype;\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* TelemetryContext.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\n// @skip-file-minify - Skip attempting to minify this file\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_BROWSER, STR_BROWSER_VER, STR_DEVICE, STR_EVENT_FLAGS, STR_LOCALE, STR_NAME, STR_POP_SAMPLE, STR_SERVICE_NAME, STR_VER } from \"./InternalConstants\";\r\nexport var Extensions = createValueMap({\r\n UserExt: [0 /* eExtensions.UserExt */, \"user\"],\r\n DeviceExt: [1 /* eExtensions.DeviceExt */, STR_DEVICE],\r\n TraceExt: [2 /* eExtensions.TraceExt */, \"trace\"],\r\n WebExt: [3 /* eExtensions.WebExt */, \"web\"],\r\n AppExt: [4 /* eExtensions.AppExt */, \"app\"],\r\n OSExt: [5 /* eExtensions.OSExt */, \"os\"],\r\n SdkExt: [6 /* eExtensions.SdkExt */, \"sdk\"],\r\n IntWebExt: [7 /* eExtensions.IntWebExt */, \"intweb\"],\r\n UtcExt: [8 /* eExtensions.UtcExt */, \"utc\"],\r\n LocExt: [9 /* eExtensions.LocExt */, \"loc\"],\r\n CloudExt: [10 /* eExtensions.CloudExt */, \"cloud\"],\r\n DtExt: [11 /* eExtensions.DtExt */, \"dt\"]\r\n});\r\nexport var AppExtensionKeys = createValueMap({\r\n id: [0 /* eAppExtensionKeys.id */, \"id\"],\r\n ver: [1 /* eAppExtensionKeys.ver */, STR_VER],\r\n appName: [2 /* eAppExtensionKeys.appName */, STR_NAME],\r\n locale: [3 /* eAppExtensionKeys.locale */, STR_LOCALE],\r\n expId: [4 /* eAppExtensionKeys.expId */, \"expId\"],\r\n env: [5 /* eAppExtensionKeys.env */, \"env\"]\r\n});\r\nexport var WebExtensionKeys = createValueMap({\r\n domain: [0 /* eWebExtensionKeys.domain */, \"domain\"],\r\n browser: [1 /* eWebExtensionKeys.browser */, STR_BROWSER],\r\n browserVer: [2 /* eWebExtensionKeys.browserVer */, STR_BROWSER_VER],\r\n screenRes: [3 /* eWebExtensionKeys.screenRes */, \"screenRes\"],\r\n userConsent: [4 /* eWebExtensionKeys.userConsent */, \"userConsent\"],\r\n consentDetails: [5 /* eWebExtensionKeys.consentDetails */, \"consentDetails\"]\r\n});\r\nexport var UserExtensionKeys = createValueMap({\r\n locale: [0 /* eUserExtensionKeys.locale */, STR_LOCALE],\r\n localId: [1 /* eUserExtensionKeys.localId */, \"localId\"],\r\n id: [2 /* eUserExtensionKeys.id */, \"id\"]\r\n});\r\nexport var OSExtKeys = createValueMap({\r\n osName: [0 /* eOSExtKeys.osName */, STR_NAME],\r\n ver: [1 /* eOSExtKeys.ver */, STR_VER]\r\n});\r\nexport var SDKExtKeys = createValueMap({\r\n ver: [0 /* eSDKExtKeys.ver */, STR_VER],\r\n seq: [1 /* eSDKExtKeys.seq */, \"seq\"],\r\n installId: [2 /* eSDKExtKeys.installId */, \"installId\"],\r\n epoch: [3 /* eSDKExtKeys.epoch */, \"epoch\"]\r\n});\r\nexport var IntWebExtKeys = createValueMap({\r\n msfpc: [0 /* eIntWebExtKeys.msfpc */, \"msfpc\"],\r\n anid: [1 /* eIntWebExtKeys.anid */, \"anid\"],\r\n serviceName: [2 /* eIntWebExtKeys.serviceName */, STR_SERVICE_NAME]\r\n});\r\nexport var UtcExtKeys = createValueMap({\r\n popSample: [0 /* eUtcExtKeys.popSample */, STR_POP_SAMPLE],\r\n eventFlags: [1 /* eUtcExtKeys.eventFlags */, STR_EVENT_FLAGS]\r\n});\r\nexport var LocExtKeys = createValueMap({\r\n tz: [0 /* eLocExtKeys.tz */, \"tz\"]\r\n});\r\nexport var SessionExtKeys = createValueMap({\r\n sessionId: [0 /* eSessionExtKeys.sessionId */, \"sesId\"]\r\n});\r\nexport var DeviceExtKeys = createValueMap({\r\n localId: [0 /* eDeviceExtKeys.localId */, \"localId\"],\r\n deviceClass: [1 /* eDeviceExtKeys.deviceClass */, \"deviceClass\"],\r\n make: [2 /* eDeviceExtKeys.make */, \"make\"],\r\n model: [3 /* eDeviceExtKeys.model */, \"model\"]\r\n});\r\nexport var CloudExtKeys = createValueMap({\r\n role: [0 /* eCloudExtKeys.role */, \"role\"],\r\n roleInstance: [1 /* eCloudExtKeys.roleInstance */, \"roleInstance\"],\r\n roleVer: [2 /* eCloudExtKeys.roleVer */, \"roleVer\"]\r\n});\r\nexport var TraceExtKeys = createValueMap({\r\n traceId: [0 /* eTraceExtKeys.traceId */, \"traceID\"],\r\n traceName: [1 /* eTraceExtKeys.traceName */, STR_NAME],\r\n parentId: [2 /* eTraceExtKeys.parentId */, \"parentID\"]\r\n});\r\nexport var DistributedTraceExtKeys = createValueMap({\r\n traceId: [0 /* eDistributedTraceExtKeys.traceId */, \"traceId\"],\r\n spanId: [1 /* eDistributedTraceExtKeys.spanId */, \"spanId\"],\r\n traceFlags: [2 /* eDistributedTraceExtKeys.traceFlags */, \"traceFlags\"]\r\n});\r\n//# sourceMappingURL=ExtensionKeys.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Session.ts\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isString } from \"@microsoft/1ds-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nfunction _getId() {\r\n return this.getId();\r\n}\r\nfunction _setId(id) {\r\n this.setId(id);\r\n}\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n dynamicProto(Session, this, function (_self) {\r\n _self.setId = function (id) {\r\n _self.customId = id;\r\n };\r\n _self.getId = function () {\r\n if (isString(_self.customId)) {\r\n return _self.customId;\r\n }\r\n else {\r\n return _self.automaticId;\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for Session.prototype.setId.\r\n// Removed Stub for Session.prototype.getId.\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n Session._staticInit = (function () {\r\n // Dynamically create get/set property accessors\r\n objDefine(Session.prototype, \"id\", { g: _getId, s: _setId }); // change this\r\n })();\r\n return Session;\r\n}());\r\nexport { Session };\r\n//# sourceMappingURL=Session.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* SessionManager.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, createGuid, isBoolean, isFunction, isUndefined, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/1ds-core-js\";\r\nimport { canUseLocalStorage, getStorage, setStorage } from \"./Utils\";\r\nimport { Session } from \"./context/Session\";\r\nvar cookieNameConst = \"ai_session\";\r\nvar SessionManager = /** @class */ (function () {\r\n function SessionManager(core, propConfig, unloadHookContainer) {\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var cookieMgr = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n var _config;\r\n dynamicProto(SessionManager, this, function (_self) {\r\n var unloadHook = onConfigChange(propConfig, function () {\r\n _config = propConfig;\r\n _self.config = _config;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _storageNamePrefix = function () { return _self.config.namePrefix ? cookieNameConst + _self.config.namePrefix : cookieNameConst; };\r\n _self.automaticSession = new Session();\r\n _self.update = function () {\r\n if (!_self.automaticSession.getId()) {\r\n _initializeAutomaticSession();\r\n }\r\n var autoSession = _self.automaticSession;\r\n var config = _self.config;\r\n var now = new Date().getTime();\r\n var acquisitionExpired = now - autoSession.acquisitionDate > config.sessionExpirationMs;\r\n var renewalExpired = now - autoSession.renewalDate > config.sessionRenewalMs;\r\n // renew if acquisitionSpan or renewalSpan has ellapsed\r\n if (acquisitionExpired || renewalExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew();\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n var cookieUpdatedTimestamp = _cookieUpdatedTimestamp;\r\n if (!cookieUpdatedTimestamp || now - cookieUpdatedTimestamp > SessionManager.cookieUpdateInterval) {\r\n autoSession.renewalDate = now;\r\n _setCookie(autoSession.getId(), autoSession.acquisitionDate, autoSession.renewalDate);\r\n }\r\n }\r\n };\r\n _self.backup = function () {\r\n var automaticSession = _self.automaticSession;\r\n _setStorage(automaticSession.getId(), automaticSession.acquisitionDate, automaticSession.renewalDate);\r\n };\r\n /**\r\n * @ignore\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 */\r\n function _initializeAutomaticSession() {\r\n var cookie = cookieMgr.get(_storageNamePrefix());\r\n if (cookie && isFunction(cookie.split)) {\r\n _initializeAutomaticSessionWithData(cookie);\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 storage = getStorage(_logger, _storageNamePrefix());\r\n if (storage) {\r\n _initializeAutomaticSessionWithData(storage);\r\n }\r\n }\r\n if (!_self.automaticSession.getId()) {\r\n _renew();\r\n }\r\n }\r\n /**\r\n * @ignore\r\n * Extract id, aquisitionDate, 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 */\r\n function _initializeAutomaticSessionWithData(sessionData) {\r\n var automaticSession = _self.automaticSession;\r\n var params = sessionData.split(\"|\");\r\n if (params.length > 0) {\r\n automaticSession.setId(params[0]);\r\n }\r\n try {\r\n if (params.length > 1) {\r\n var acq = +params[1];\r\n automaticSession.acquisitionDate = +new Date(acq);\r\n automaticSession.acquisitionDate = automaticSession.acquisitionDate > 0 ? automaticSession.acquisitionDate : 0;\r\n }\r\n if (params.length > 2) {\r\n var renewal = +params[2];\r\n automaticSession.renewalDate = +new Date(renewal);\r\n automaticSession.renewalDate = automaticSession.renewalDate > 0 ? automaticSession.renewalDate : 0;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 510 /* _eExtendedInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session cookie, session will be reset: \" + e);\r\n }\r\n if (automaticSession.renewalDate === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 517 /* _eExtendedInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0, session will be reset.\");\r\n }\r\n }\r\n function _renew() {\r\n var automaticSession = _self.automaticSession;\r\n var now = new Date().getTime();\r\n var sessionAsGuid = _self.config.sessionAsGuid;\r\n if (!isUndefined(sessionAsGuid) && sessionAsGuid) {\r\n if (!isBoolean(sessionAsGuid)) {\r\n automaticSession.setId(createGuid(sessionAsGuid));\r\n }\r\n else {\r\n automaticSession.setId(createGuid());\r\n }\r\n }\r\n else {\r\n automaticSession.setId(newId(_config.idLength || 22));\r\n }\r\n automaticSession.acquisitionDate = now;\r\n automaticSession.renewalDate = now;\r\n _setCookie(automaticSession.getId(), automaticSession.acquisitionDate, automaticSession.renewalDate);\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 (!canUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 505 /* _eExtendedInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(guid, acq, renewal) {\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 acquisitionExpiry = acq + _self.config.sessionExpirationMs;\r\n var renewalExpiry = renewal + _self.config.sessionRenewalMs;\r\n var cookieExpiry = new Date();\r\n var cookie = [guid, acq, renewal];\r\n if (acquisitionExpiry < renewalExpiry) {\r\n cookieExpiry.setTime(acquisitionExpiry);\r\n }\r\n else {\r\n cookieExpiry.setTime(renewalExpiry);\r\n }\r\n var cookieDomain = _self.config.cookieDomain || null;\r\n cookieMgr.set(_storageNamePrefix(), cookie.join(\"|\") + \";expires=\" + cookieExpiry.toUTCString(), null, cookieDomain);\r\n _cookieUpdatedTimestamp = new Date().getTime();\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 setStorage(_logger, _storageNamePrefix(), [guid, acq, renewal].join(\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for SessionManager.prototype.update.\r\n// Removed Stub for SessionManager.prototype.backup.\r\n SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n return SessionManager;\r\n}());\r\nexport { SessionManager };\r\n//# sourceMappingURL=SessionManager.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Application.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { getCookieValue, getDocument, hasDocument, onConfigChange } from \"@microsoft/1ds-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nexport var defaultFlightIdNameSpaces = [\r\n \"AX\",\r\n \"EX\",\r\n \"SF\",\r\n \"CS\",\r\n \"CF\",\r\n \"CT\",\r\n \"CU\",\r\n \"DC\",\r\n \"DF\",\r\n \"H5\",\r\n \"HL\",\r\n \"WS\",\r\n \"WP\" // WINDOWSPHONE\r\n];\r\n/// Validate each flight id in appExpId against the app flight ID\r\n/// format and create a comma seperated appExpId with valid flight ids.Ignore invalid flight IDs< /summary>\r\n/// A list of comma seperated appExpId\r\n/// none\r\nfunction _validateAppExpId(appExpIdNew, flightIdNameSpaces) {\r\n if (flightIdNameSpaces === void 0) { flightIdNameSpaces = defaultFlightIdNameSpaces; }\r\n var appExpId = null;\r\n if (appExpIdNew) {\r\n var expIdArray = appExpIdNew.split(\",\");\r\n for (var i = 0; i < expIdArray.length; i++) {\r\n if (_isValidAppFlightId(expIdArray[i], flightIdNameSpaces)) {\r\n if (!appExpId) {\r\n appExpId = expIdArray[i];\r\n }\r\n else {\r\n appExpId += \",\" + expIdArray[i];\r\n }\r\n }\r\n else {\r\n // this._traceLogger.w('Unsupported flight id format for this app expId: ' + expIdArray[i]);\r\n }\r\n }\r\n }\r\n return appExpId;\r\n}\r\n/// Verify an expId against the CS2.1 spec\r\n/// expId to verify in string format\r\n/// true if expId is valid, false otherwise\r\nfunction _isValidAppFlightId(appFlightId, flightIdNameSpaces) {\r\n if (flightIdNameSpaces === void 0) { flightIdNameSpaces = defaultFlightIdNameSpaces; }\r\n if (!appFlightId || appFlightId.length < 4) {\r\n return false;\r\n }\r\n var isValid = false;\r\n var MAXFLIGHTIDLENGTH = 256;\r\n var curNameSpace = (appFlightId.substring(0, 3)).toString().toUpperCase();\r\n // The prefix check must include ':', else strings starting with prefixes will slip through\r\n for (var i = 0; i < flightIdNameSpaces.length; i++) {\r\n if (flightIdNameSpaces[i] + \":\" === curNameSpace && appFlightId.length <= MAXFLIGHTIDLENGTH) {\r\n isValid = true;\r\n break;\r\n }\r\n }\r\n return isValid;\r\n}\r\nfunction _getExpId() {\r\n return this.getExpId();\r\n}\r\nvar Application = /** @class */ (function () {\r\n function Application(propertiesConfig, core, unloadHookContainer) {\r\n var _appExpId = null;\r\n // Create a copy of the defaultNamespaces\r\n var flightIdNameSpaces = defaultFlightIdNameSpaces.slice(0);\r\n var expIdCookieName = \"Treatments\";\r\n var _cookieMgr;\r\n var _propertiesConfig = null;\r\n dynamicProto(Application, this, function (_self) {\r\n _populateDefaults(propertiesConfig);\r\n // Add app language\r\n if (hasDocument()) {\r\n var documentElement = getDocument().documentElement;\r\n if (documentElement) {\r\n _self.locale = documentElement.lang;\r\n }\r\n }\r\n _self.getExpId = function () {\r\n return _propertiesConfig.expId ? _readExpIdFromCoreData(_propertiesConfig.expId) : _readExpIdFromCookie();\r\n };\r\n /**\r\n * Retrieve a specified metadata tag value from the DOM.\r\n * @param prefix - Prefix to search the metatags with.\r\n * @returns Metadata collection/property bag\r\n */\r\n function _getMetaDataFromDOM(prefix) {\r\n var metaElements;\r\n var metaData = {};\r\n var doc = getDocument();\r\n if (doc) {\r\n metaElements = doc && doc.querySelectorAll(\"meta\");\r\n for (var i = 0; i < metaElements.length; i++) {\r\n var meta = metaElements[i];\r\n if (meta.name) {\r\n var mt = meta.name.toLowerCase();\r\n if (mt.indexOf(prefix) === 0) {\r\n var name = meta.name.replace(prefix, \"\");\r\n metaData[name] = meta.content;\r\n }\r\n }\r\n }\r\n }\r\n return metaData;\r\n }\r\n /// Validate each flight id in appExpId against the app flight ID\r\n /// format and create a comma seperated appExpId with valid flight ids.Ignore invalid flight IDs< /summary>\r\n /// A list of comma seperated appExpId\r\n /// none\r\n function _setAppExpId(appExpIdNew) {\r\n if (appExpIdNew === _appExpId) {\r\n return; // Nothing to do if seen before\r\n }\r\n // Reset to empty first. The new but invalid appExpId should not be logged and we cannot leave the old one hanging around\r\n // since it means old experiment id cannot represent the new experiment with an invalid appExpId.\r\n _appExpId = _validateAppExpId(appExpIdNew, flightIdNameSpaces);\r\n }\r\n function _readExpIdFromCookie() {\r\n var cookieValue = getCookieValue(_cookieMgr, expIdCookieName);\r\n _setAppExpId(cookieValue);\r\n return _appExpId;\r\n }\r\n function _readExpIdFromCoreData(expId) {\r\n _setAppExpId(expId);\r\n return _appExpId;\r\n }\r\n function _populateDefaults(config) {\r\n // This function will be re-called whenever any referenced configuration is changed\r\n var unloadHook = onConfigChange(config, function () {\r\n _cookieMgr = core && core.getCookieMgr();\r\n _propertiesConfig = config || {};\r\n // config.env default is set at properities plugin level with \"\"\r\n _self.env = _propertiesConfig.env || _getMetaDataFromDOM(\"awa-\")[\"env\"];\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n });\r\n }\r\n// Removed Stub for Application.prototype.getExpId.\r\n /// Validate each flight id in appExpId against the app flight ID\r\n /// format and create a comma seperated appExpId with valid flight ids.Ignore invalid flight IDs< /summary>\r\n /// A list of comma seperated appExpId\r\n /// none\r\n /**\r\n * Validate each flight id in appExpId against the app flight ID format and create\r\n * a comma seperated appExpId with valid flight ids.Ignore invalid flight IDs\r\n * @param appExpId - The current experiment id\r\n * @param appExpIdNew - The new experiment id to set (if valid)\r\n * @param flightIdNameSpaces - The valid set of flight id names\r\n * @returns The validated experiment id,\r\n */\r\n Application.validateAppExpId = _validateAppExpId;\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n Application._staticInit = (function () {\r\n // Dynamically create get/set property accessors\r\n objDefine(Application.prototype, \"expId\", { g: _getExpId });\r\n })();\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Cloud.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2020\r\n*/\r\nvar Cloud = /** @class */ (function () {\r\n function Cloud() {\r\n }\r\n return Cloud;\r\n}());\r\nexport { Cloud };\r\n//# sourceMappingURL=Cloud.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Device.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nvar Device = /** @class */ (function () {\r\n function Device() {\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* IntWeb.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { getCookieValue, onConfigChange } from \"@microsoft/1ds-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nfunction _getMsfpc() {\r\n return this.getMsfpc();\r\n}\r\nfunction _getAnid() {\r\n return this.getAnid();\r\n}\r\nvar IntWeb = /** @class */ (function () {\r\n function IntWeb(propertiesConfig, core, unloadHookContainer) {\r\n var _cookieMgr;\r\n dynamicProto(IntWeb, this, function (_self) {\r\n _populateDefaults(propertiesConfig);\r\n _self.getMsfpc = function () {\r\n return getCookieValue(_cookieMgr, \"MSFPC\");\r\n };\r\n _self.getAnid = function () {\r\n return getCookieValue(_cookieMgr, \"ANON\").slice(0, 34);\r\n };\r\n function _populateDefaults(config) {\r\n // This function will be re-called whenever any referenced configuration is changed\r\n var unloadHook = onConfigChange(config, function () {\r\n _cookieMgr = core && core.getCookieMgr();\r\n var _config = config || {};\r\n if (_config.serviceName) {\r\n _self.serviceName = _config.serviceName; // change serviceName only if incoming values is not null, undefined or \"\"\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n });\r\n }\r\n// Removed Stub for IntWeb.prototype.getMsfpc.\r\n// Removed Stub for IntWeb.prototype.getAnid.\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n IntWeb._staticInit = (function () {\r\n // Dynamically create get/set property accessors\r\n var proto = IntWeb.prototype;\r\n objDefine(proto, \"msfpc\", { g: _getMsfpc });\r\n objDefine(proto, \"anid\", { g: _getAnid });\r\n })();\r\n return IntWeb;\r\n}());\r\nexport { IntWeb };\r\n//# sourceMappingURL=IntWeb.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Loc.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nvar Loc = /** @class */ (function () {\r\n function Loc() {\r\n // Add time zone\r\n var timeZone = new Date().getTimezoneOffset();\r\n var minutes = timeZone % 60;\r\n var hours = (timeZone - minutes) / 60;\r\n var timeZonePrefix = \"+\";\r\n if (hours > 0) {\r\n timeZonePrefix = \"-\";\r\n }\r\n hours = Math.abs(hours);\r\n minutes = Math.abs(minutes);\r\n this.tz = timeZonePrefix + (hours < 10 ? \"0\" + hours : hours.toString()) + \":\"\r\n + (minutes < 10 ? \"0\" + minutes : minutes.toString());\r\n }\r\n return Loc;\r\n}());\r\nexport { Loc };\r\n//# sourceMappingURL=Loc.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* OperatingSystem.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport { getNavigator, isString, onConfigChange } from \"@microsoft/1ds-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nvar OSNAMEREGEX = {\r\n WIN: /(windows|win32)/i,\r\n WINRT: / arm;/i,\r\n WINPHONE: /windows\\sphone\\s\\d+\\.\\d+/i,\r\n OSX: /(macintosh|mac os x)/i,\r\n IOS: /(ipad|iphone|ipod)(?=.*like mac os x)/i,\r\n LINUX: /(linux|joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk)/i,\r\n ANDROID: /android/i,\r\n CROS: /CrOS/i\r\n};\r\nvar VERSION_MAPPINGS = {\r\n \"5.1\": \"XP\",\r\n \"6.0\": \"Vista\",\r\n \"6.1\": \"7\",\r\n \"6.2\": \"8\",\r\n \"6.3\": \"8.1\",\r\n \"10.0\": \"10\"\r\n};\r\nvar REGEX_VERSION = \"([\\\\d,.]+)\";\r\nvar REGEX_VERSION_MAC = \"([\\\\d,_,.]+)\";\r\nvar UNKNOWN = \"Unknown\";\r\nvar OSNAMES = [\r\n { r: OSNAMEREGEX.WINPHONE, os: \"Windows Phone\" },\r\n { r: OSNAMEREGEX.WINRT, os: \"Windows RT\" },\r\n { r: OSNAMEREGEX.WIN, os: \"Windows\" /* OPERATING_SYSTEMS.WINDOWS */ },\r\n { r: OSNAMEREGEX.IOS, os: \"iOS\" /* OPERATING_SYSTEMS.IOS */ },\r\n { r: OSNAMEREGEX.ANDROID, os: \"Android\" /* OPERATING_SYSTEMS.ANDROID */ },\r\n { r: OSNAMEREGEX.LINUX, os: \"Linux\" },\r\n { r: OSNAMEREGEX.CROS, os: \"Chrome OS\" },\r\n { s: \"x11\", os: \"Unix\" },\r\n { s: \"blackberry\", os: \"BlackBerry\" },\r\n { s: \"symbian\", os: \"Symbian\" },\r\n { s: \"nokia\", os: \"Nokia\" },\r\n { r: OSNAMEREGEX.OSX, os: \"Mac OS X\" /* OPERATING_SYSTEMS.MACOSX */ }\r\n];\r\nvar strSetSysName = \"setSysName\";\r\nvar strSetSysVer = \"setSysVer\";\r\nvar strGetSysName = \"getSysName\";\r\nvar strGetSysVer = \"getSysVer\";\r\nfunction _getOsName(lowerCaseUserAgent) {\r\n for (var lp = 0; lp < OSNAMES.length; lp++) {\r\n var match = OSNAMES[lp];\r\n if (match.r && lowerCaseUserAgent.match(match.r)) {\r\n return match.os;\r\n }\r\n else if (match.s && lowerCaseUserAgent.indexOf(match.s) !== -1) {\r\n return match.os;\r\n }\r\n }\r\n return UNKNOWN;\r\n}\r\nfunction _getOsVersion(userAgent, osName) {\r\n if (osName === \"Windows\" /* OPERATING_SYSTEMS.WINDOWS */) {\r\n return _getGenericOsVersion(userAgent, \"Windows NT\");\r\n }\r\n if (osName === \"Android\" /* OPERATING_SYSTEMS.ANDROID */) {\r\n return _getGenericOsVersion(userAgent, osName);\r\n }\r\n if (osName === \"Mac OS X\" /* OPERATING_SYSTEMS.MACOSX */) {\r\n return _getMacOsxVersion(userAgent);\r\n }\r\n if (osName === \"iOS\" /* OPERATING_SYSTEMS.IOS */) {\r\n return _getIosVersion(userAgent);\r\n }\r\n return UNKNOWN;\r\n}\r\nfunction _getGenericOsVersion(userAgent, osName) {\r\n var ntVersionMatches = userAgent.match(new RegExp(osName + \" \" + REGEX_VERSION));\r\n if (ntVersionMatches) {\r\n if (VERSION_MAPPINGS[ntVersionMatches[1]]) {\r\n return VERSION_MAPPINGS[ntVersionMatches[1]];\r\n }\r\n return ntVersionMatches[1];\r\n }\r\n return UNKNOWN;\r\n}\r\nfunction _getMacOsxVersion(userAgent) {\r\n var macOsxVersionInUserAgentMatches = userAgent.match(new RegExp(\"Mac OS X\" /* OPERATING_SYSTEMS.MACOSX */ + \" \" + REGEX_VERSION_MAC));\r\n if (macOsxVersionInUserAgentMatches) {\r\n var versionString = macOsxVersionInUserAgentMatches[1].replace(/_/g, \".\");\r\n if (versionString) {\r\n var delimiter = _getDelimiter(versionString);\r\n if (delimiter) {\r\n var components = versionString.split(delimiter);\r\n return components[0];\r\n }\r\n else {\r\n return versionString;\r\n }\r\n }\r\n }\r\n return UNKNOWN;\r\n}\r\nfunction _getIosVersion(userAgent) {\r\n var iosVersionInUserAgentMatches = userAgent.match(new RegExp(\"OS \" + REGEX_VERSION_MAC));\r\n if (iosVersionInUserAgentMatches) {\r\n var versionString = iosVersionInUserAgentMatches[1].replace(/_/g, \".\");\r\n if (versionString) {\r\n var delimiter = _getDelimiter(versionString);\r\n if (delimiter) {\r\n var components = versionString.split(delimiter);\r\n return components[0];\r\n }\r\n else {\r\n return versionString;\r\n }\r\n }\r\n }\r\n return UNKNOWN;\r\n}\r\nfunction _getDelimiter(versionString) {\r\n if (versionString.indexOf(\".\") > -1) {\r\n return \".\";\r\n }\r\n if (versionString.indexOf(\"_\") > -1) {\r\n return \"_\";\r\n }\r\n return null;\r\n}\r\nvar OperatingSystem = /** @class */ (function () {\r\n function OperatingSystem(propertiesConfig, unloadHookContainer) {\r\n var self = this;\r\n var _config;\r\n var _name = null;\r\n var _ver = null;\r\n var _userName = null; // save user defined name. If defined, this value will overwrite dynamic config values\r\n var _userVer = null; // save user defined ver. If defined, this value will overwrite dynamic config values\r\n var _setSysName = function (value) {\r\n _userName = value;\r\n };\r\n var _setSysVer = function (value) {\r\n _userVer = value;\r\n };\r\n var _getSysName = function () {\r\n return _userName || _name;\r\n };\r\n var _getSysVer = function () {\r\n return _userVer || _ver;\r\n };\r\n var unloadHook = onConfigChange(propertiesConfig, function () {\r\n _config = propertiesConfig || {};\r\n // if populateOperatingSystemInfo is set to false, previous name and ver will be used\r\n if (_config.populateOperatingSystemInfo) {\r\n var theNav = getNavigator() || {};\r\n var userAgent = propertiesConfig.userAgent || theNav.userAgent || \"\";\r\n var userAgentDataPlatform = (propertiesConfig.userAgentData || {}).platform || (theNav.userAgentData || {}).platform;\r\n if (userAgent) {\r\n var osName = _getOsName(userAgent.toLowerCase());\r\n _name = osName;\r\n _ver = _getOsVersion(userAgent, osName);\r\n }\r\n if ((!_name || _name === UNKNOWN) && isString(userAgentDataPlatform)) {\r\n _name = userAgentDataPlatform;\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n objDefine(self, \"name\", { s: _setSysName, g: _getSysName });\r\n objDefine(self, \"ver\", { s: _setSysVer, g: _getSysVer });\r\n }\r\n return OperatingSystem;\r\n}());\r\nexport { OperatingSystem };\r\n//# sourceMappingURL=OperatingSystem.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Sdk.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { getCookieValue, newGuid, onConfigChange, random32 } from \"@microsoft/1ds-core-js\";\r\nvar DEVICE_ID_COOKIE = \"MicrosoftApplicationsTelemetryDeviceId\";\r\nfunction _saveData(mgr, propertyStorage, name, value) {\r\n if (propertyStorage) {\r\n propertyStorage.setProperty(name, value);\r\n }\r\n else {\r\n // Expires in 365 days (365 * 24 * 60 * 60)\r\n mgr.set(name, value, 31536000);\r\n }\r\n}\r\nfunction _getData(mgr, propertyStorage, name) {\r\n if (propertyStorage) {\r\n return propertyStorage.getProperty(name) || \"\";\r\n }\r\n return getCookieValue(mgr, name);\r\n}\r\nvar Sdk = /** @class */ (function () {\r\n function Sdk(coreConfig, core, unloadHookContainer) {\r\n var _sequenceId = 0;\r\n var _cookieMgr;\r\n dynamicProto(Sdk, this, function (_self) {\r\n // Start sequence\r\n _self.seq = _sequenceId;\r\n _self.epoch = random32(false).toString();\r\n _self.getSequenceId = function () {\r\n return ++_sequenceId;\r\n };\r\n var unloadHook = onConfigChange(coreConfig, function (details) {\r\n _cookieMgr = core && core.getCookieMgr();\r\n var coreConfig = details.cfg;\r\n var propertyStorage = coreConfig.propertyStorageOverride;\r\n var cookieMgrEnabled = _cookieMgr.isEnabled();\r\n if (cookieMgrEnabled || propertyStorage) {\r\n // Only collect device id if it can be stored\r\n var deviceId = _getData(_cookieMgr, propertyStorage, DEVICE_ID_COOKIE);\r\n if (!deviceId) {\r\n deviceId = newGuid();\r\n }\r\n _saveData(_cookieMgr, propertyStorage, DEVICE_ID_COOKIE, deviceId);\r\n _self.installId = deviceId;\r\n }\r\n else {\r\n _cookieMgr.purge(DEVICE_ID_COOKIE);\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n });\r\n }\r\n // Get seq value\r\n// Removed Stub for Sdk.prototype.getSequenceId.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n Sdk.__ieDyn=1;\n\n return Sdk;\r\n}());\r\nexport { Sdk };\r\n//# sourceMappingURL=Sdk.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* AITrace.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport { generateW3CId, getLocation, onConfigChange } from \"@microsoft/1ds-core-js\";\r\nvar Trace = /** @class */ (function () {\r\n function Trace(propertiesConfig, id, parentId, name, unloadHookContainer) {\r\n var self = this;\r\n self.traceId = id || generateW3CId();\r\n var unloadHook = onConfigChange(propertiesConfig, function () {\r\n var _config = propertiesConfig;\r\n if (_config.enableDistributedTracing && !parentId) {\r\n // When dt is enabled, both the traceId and spanId are required\r\n parentId = generateW3CId().substring(0, 16);\r\n }\r\n self.parentId = self.parentId || parentId; // change parentId only if it was not set previously\r\n if (_config.enableApplicationInsightsTrace && !name) {\r\n var loc = getLocation();\r\n if (loc && loc.pathname) {\r\n name = loc.pathname;\r\n }\r\n }\r\n self.name = self.name || name; // change name only if it was not set previously\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* User.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { getCookieValue, getISOString, isUndefined, newId, onConfigChange } from \"@microsoft/1ds-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nvar strSetLocalId = \"setLocalId\";\r\nfunction _getLocalId() {\r\n return this.getLocalId();\r\n}\r\nfunction _setLocalId(value) {\r\n this[strSetLocalId](value);\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(coreConfig, propertiesConfig, core, unloadHookContainer) {\r\n var _propertiesConfig;\r\n var _customLocalId;\r\n var _cookieMgr;\r\n dynamicProto(User, this, function (_self) {\r\n _populateDefaults(propertiesConfig);\r\n // Add user language\r\n if (typeof navigator !== \"undefined\") {\r\n var nav = navigator;\r\n _self.locale = nav.userLanguage || nav.language;\r\n }\r\n _self.getLocalId = function () {\r\n if (_customLocalId) {\r\n return _customLocalId;\r\n }\r\n return _populateMuidFromCookie();\r\n };\r\n _self[strSetLocalId] = function (value) {\r\n _customLocalId = value;\r\n };\r\n function _populateMuidFromCookie() {\r\n // Only add default local ID is hash or drop config are not enabled\r\n if (!_propertiesConfig.hashIdentifiers && !_propertiesConfig.dropIdentifiers) {\r\n var muidValue = getCookieValue(_cookieMgr, \"MUID\");\r\n if (muidValue) {\r\n _customLocalId = \"t:\" + muidValue;\r\n }\r\n }\r\n return _customLocalId;\r\n }\r\n function _populateDefaults(config) {\r\n // This function will be re-called whenever any referenced configuration is changed\r\n var unloadHook = onConfigChange(config, function () {\r\n _cookieMgr = core && core.getCookieMgr();\r\n _propertiesConfig = config;\r\n // reset it since this value is dependent on cookieMgr, config.hashIdentifiers and config.dropIdentifiers\r\n _customLocalId = null;\r\n if (_cookieMgr && _cookieMgr.isEnabled()) {\r\n _populateMuidFromCookie();\r\n if (_propertiesConfig.enableApplicationInsightsUser) {\r\n // get userId or create new one if none exists\r\n var aiUser = getCookieValue(_cookieMgr, User.userCookieName);\r\n if (aiUser) {\r\n var params = aiUser.split(User.cookieSeparator);\r\n if (params.length > 0) {\r\n _self.id = params[0];\r\n }\r\n }\r\n if (!_self.id) {\r\n _self.id = newId((coreConfig && !isUndefined(coreConfig.idLength)) ? coreConfig.idLength : 22);\r\n var acqStr = getISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\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 * 1000 = 31536000\r\n var newCookie = [_self.id, acqStr];\r\n var cookieDomain = _propertiesConfig.cookieDomain ? _propertiesConfig.cookieDomain : undefined;\r\n _cookieMgr.set(User.userCookieName, newCookie.join(User.cookieSeparator), 31536000, cookieDomain);\r\n }\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n });\r\n }\r\n// Removed Stub for User.prototype.getLocalId.\r\n// Removed Stub for User.prototype.setLocalId.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n User._staticInit = (function () {\r\n // Dynamically create get/set property accessors\r\n objDefine(User.prototype, \"localId\", { g: _getLocalId, s: _setLocalId });\r\n })();\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Utc.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport { onConfigChange } from \"@microsoft/1ds-core-js\";\r\n/**\r\n * See details {@link https://www.osgwiki.com/wiki/Telemetry#De-Identification_of_Telemetry_Events | here}.\r\n * Client has hashed or dropped any PII information in the event. Vortex will hash any server-supplied PII fields such\r\n * as PUID or Global Device ID. This value is used to populate the `ext.utc.eventFlags`.\r\n * See https://1dsdocs.azurewebsites.net/schema/PartA/utc.html#eventflags and\r\n * further details https://www.osgwiki.com/wiki/Telemetry#De-Identification_of_Telemetry_Events.\r\n */\r\nexport var HASH_IDENTIFIERS_FLAG = 0x100000;\r\n/**\r\n * See details {@link https://www.osgwiki.com/wiki/Telemetry#De-Identification_of_Telemetry_Events | here}.\r\n * Client has dropped any PII information in the event. Information contained within attached MSA token will not be inserted.\r\n * This value is used to populate the `ext.utc.eventFlags`.\r\n * See https://1dsdocs.azurewebsites.net/schema/PartA/utc.html#eventflags and\r\n * further details https://www.osgwiki.com/wiki/Telemetry#De-Identification_of_Telemetry_Events.\r\n */\r\nexport var DROP_IDENTIFIERS_FLAG = 0x200000;\r\n/**\r\n * See details {@link https://www.osgwiki.com/wiki/Telemetry#De-Identification_of_Telemetry_Events | here}. Collector to scrub `ext.ingest.clientIp`\r\n * field stamped server-side. This takes precedence over both Hash Identifier and Drop Identifier flags above, so as long as this bit is set,\r\n * the client IP will be scrubbed as \"xxx.xxx.xxx.*\" for IPv4 and will not be dropped. The main use case for this flag is Interchange customers\r\n * that need to use OriginalMessage feature but wish not to have IP info in Geneva data store. For more details on this scenario, please see link\r\n * here: {@link https://eng.ms/docs/products/geneva/connectors/asimov_to_geneva/management#default-commonschema | 1DS Interchange Default CommonSchema }\r\n * See also {@link https://www.osgwiki.com/wiki/CommonSchema/flags | CommonSchema/flags}\r\n * @since 3.2.11\r\n */\r\nexport var SCRUB_IP_FLAG = 0x400000;\r\nvar Utc = /** @class */ (function () {\r\n function Utc(propertiesConfig, unloadHookContainer) {\r\n var self = this;\r\n var _config;\r\n self.popSample = 100;\r\n var unloadHook = onConfigChange(propertiesConfig, function () {\r\n _config = propertiesConfig;\r\n self.eventFlags = 0;\r\n if (propertiesConfig.hashIdentifiers) {\r\n // set value when user didn't set values\r\n self.eventFlags = self.eventFlags | HASH_IDENTIFIERS_FLAG;\r\n }\r\n if (propertiesConfig.dropIdentifiers) {\r\n // set value when user didn't set values\r\n self.eventFlags = self.eventFlags | DROP_IDENTIFIERS_FLAG;\r\n }\r\n if (propertiesConfig.scrubIpOnly) {\r\n // set value when user didn't set values\r\n self.eventFlags = self.eventFlags | SCRUB_IP_FLAG;\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Utc;\r\n}());\r\nexport { Utc };\r\n//# sourceMappingURL=Utc.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Web.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { getCookieValue, getLocation, getNavigator, getWindow, isArray, onConfigChange, safeGetCookieMgr } from \"@microsoft/1ds-core-js\";\r\nimport { isBoolean, objDefine, objDefineProps } from \"@nevware21/ts-utils\";\r\nvar USER_CONSENT_DETAILS = [\r\n \"Required\", \"Analytics\", \"SocialMedia\", \"Advertising\"\r\n];\r\nvar REGEX_VERSION = \"([\\\\d,.]+)\";\r\nvar UNKNOWN = \"Unknown\";\r\nvar EDGE_CHROMIUM = \"Edg/\";\r\nvar USER_AGENTS = [\r\n { ua: \"OPR/\", b: \"Opera\" /* BROWSERS.OPERA */ },\r\n { ua: \"PhantomJS\" /* BROWSERS.PHANTOMJS */, b: \"PhantomJS\" /* BROWSERS.PHANTOMJS */ },\r\n { ua: \"Edge\" /* BROWSERS.EDGE */, b: \"Edge\" /* BROWSERS.EDGE */ },\r\n { ua: EDGE_CHROMIUM, b: \"Edge\" /* BROWSERS.EDGE */ },\r\n { ua: \"Electron\" /* BROWSERS.ELECTRON */, b: \"Electron\" /* BROWSERS.ELECTRON */ },\r\n { ua: \"Chrome\" /* BROWSERS.CHROME */, b: \"Chrome\" /* BROWSERS.CHROME */ },\r\n { ua: \"Trident\", b: \"MSIE\" /* BROWSERS.MSIE */ },\r\n { ua: \"MSIE \", b: \"MSIE\" /* BROWSERS.MSIE */ },\r\n { ua: \"Firefox\" /* BROWSERS.FIREFOX */, b: \"Firefox\" /* BROWSERS.FIREFOX */ },\r\n { ua: \"Safari\" /* BROWSERS.SAFARI */, b: \"Safari\" /* BROWSERS.SAFARI */ },\r\n { ua: \"SkypeShell\" /* BROWSERS.SKYPE_SHELL */, b: \"SkypeShell\" /* BROWSERS.SKYPE_SHELL */ } // Check for Skype shell\r\n];\r\nvar BRANDS = [\r\n { br: \"Microsoft Edge\", b: \"Edge\" /* BROWSERS.EDGE */ },\r\n { br: \"Google Chrome\", b: \"Chrome\" /* BROWSERS.CHROME */ },\r\n { br: \"Opera\", b: \"Opera\" /* BROWSERS.OPERA */ }\r\n];\r\nfunction _userAgentContainsString(searchString, userAgent) {\r\n return userAgent.indexOf(searchString) > -1;\r\n}\r\nfunction _getBrandVersion(match, brands) {\r\n for (var lp = 0; lp < brands.length; lp++) {\r\n if (match == brands[lp].brand) {\r\n return brands[lp].version;\r\n }\r\n }\r\n return null;\r\n}\r\nfunction _getBrowserName(userAgent) {\r\n if (userAgent) {\r\n for (var lp = 0; lp < USER_AGENTS.length; lp++) {\r\n var ua = USER_AGENTS[lp].ua;\r\n if (_userAgentContainsString(ua, userAgent)) {\r\n return USER_AGENTS[lp].b;\r\n }\r\n }\r\n }\r\n return UNKNOWN;\r\n}\r\nfunction _getBrowserVersion(userAgent, browserName) {\r\n if (browserName === \"MSIE\" /* BROWSERS.MSIE */) {\r\n return _getIeVersion(userAgent);\r\n }\r\n return _getOtherVersion(browserName, userAgent);\r\n}\r\nfunction _getIeVersion(userAgent) {\r\n var classicIeVersionMatches = userAgent.match(new RegExp(\"MSIE\" /* BROWSERS.MSIE */ + \" \" + REGEX_VERSION));\r\n if (classicIeVersionMatches) {\r\n return classicIeVersionMatches[1];\r\n }\r\n var ieVersionMatches = userAgent.match(new RegExp(\"rv:\" + REGEX_VERSION));\r\n if (ieVersionMatches) {\r\n return ieVersionMatches[1];\r\n }\r\n}\r\nfunction _getOtherVersion(browserString, userAgent) {\r\n if (browserString === \"Safari\" /* BROWSERS.SAFARI */) {\r\n browserString = \"Version\";\r\n }\r\n else if (browserString === \"Edge\" /* BROWSERS.EDGE */) {\r\n if (_userAgentContainsString(EDGE_CHROMIUM, userAgent)) {\r\n browserString = \"Edg\";\r\n }\r\n }\r\n var matches = userAgent.match(new RegExp(browserString + \"/\" + REGEX_VERSION));\r\n if (matches) {\r\n return matches[1];\r\n }\r\n if (browserString === \"Opera\" /* BROWSERS.OPERA */) {\r\n matches = userAgent.match(new RegExp(\"OPR/\" + REGEX_VERSION));\r\n if (matches) {\r\n return matches[1];\r\n }\r\n }\r\n return UNKNOWN;\r\n}\r\n/**\r\n* Get Screen resolution\r\n* @returns {ScreenResolution} - Screen resolution\r\n*/\r\nfunction _getScreenResolution() {\r\n var screenRes = { h: 0, w: 0 };\r\n var win = getWindow();\r\n if (win && win.screen) {\r\n screenRes.h = screen.height;\r\n screenRes.w = screen.width;\r\n }\r\n return screenRes;\r\n}\r\nfunction _getUserConsent() {\r\n return this.getUserConsent();\r\n}\r\nvar Web = /** @class */ (function () {\r\n function Web(propertiesConfig, core, unloadHookContainer) {\r\n var _cookieMgr = safeGetCookieMgr(core);\r\n var _propertiesConfig = propertiesConfig || {};\r\n var _userAgent = null;\r\n var _userAgentBrands = null;\r\n var _userBrowser = null; // save user defined browser. If defined, this value will overwrite dynamic config values\r\n var _userBrowserVer = null; // save user defined browser ver. If defined, this value will overwrite dynamic config values\r\n var _browser = null;\r\n var _browserVer = null;\r\n var _gpcDataSharingOption = null;\r\n dynamicProto(Web, this, function (_self) {\r\n _populateDefaults(propertiesConfig);\r\n // Add the domain\r\n var windowLocation = getLocation();\r\n if (windowLocation) {\r\n var domain = windowLocation.hostname;\r\n if (domain) {\r\n _self.domain = windowLocation.protocol === \"file:\" ? \"local\" : domain;\r\n }\r\n }\r\n var screenRes = _getScreenResolution();\r\n _self.screenRes = screenRes.w + \"X\" + screenRes.h;\r\n _self.getUserConsent = function () {\r\n return _propertiesConfig.userConsented || (getCookieValue(_cookieMgr, _propertiesConfig.userConsentCookieName || \"MSCC\") ? true : false);\r\n };\r\n /**\r\n *\r\n ** Function to retrieve user consent details.\r\n * @param callback - Callback function to get user consent details\r\n * @returns IUserContentDetails stringified object\r\n */\r\n _self.getUserConsentDetails = function () {\r\n var consentDetails = null;\r\n try {\r\n var callback = _propertiesConfig.callback;\r\n if (callback && callback.userConsentDetails) {\r\n var result = callback.userConsentDetails();\r\n if (result) {\r\n if (_propertiesConfig.disableConsentDetailsSanitize) {\r\n consentDetails = result;\r\n }\r\n else {\r\n consentDetails = {};\r\n }\r\n // Apply default values if missing\r\n for (var lp = 0; lp < USER_CONSENT_DETAILS.length; lp++) {\r\n var key = USER_CONSENT_DETAILS[lp];\r\n consentDetails[key] = result[key] || false;\r\n }\r\n }\r\n }\r\n // Only set if the configuration was provided\r\n if (_gpcDataSharingOption !== null) {\r\n consentDetails = consentDetails || {};\r\n consentDetails.GPC_DataSharingOptIn = !!_gpcDataSharingOption;\r\n }\r\n return consentDetails ? JSON.stringify(consentDetails) : null;\r\n }\r\n catch (e) {\r\n // Unexpected - Just making sure we don't crash\r\n }\r\n };\r\n function _parseUserAgent(userAgent, userAgentBrands) {\r\n if (isArray(userAgentBrands)) {\r\n try {\r\n // Go through the ordered list of \"known\" brands and use the first matching value\r\n for (var lp = 0; lp < BRANDS.length; lp++) {\r\n var version = _getBrandVersion(BRANDS[lp].br, userAgentBrands);\r\n if (version) {\r\n _browser = BRANDS[lp].b;\r\n _browserVer = version;\r\n return;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Unexpected - Just making sure we don't crash\r\n }\r\n }\r\n if (userAgent) {\r\n var browserName = _getBrowserName(userAgent);\r\n _browser = browserName;\r\n _browserVer = _getBrowserVersion(userAgent, browserName);\r\n }\r\n }\r\n function _setBrowser(value) {\r\n _userBrowser = value;\r\n }\r\n function _setBrowserVer(value) {\r\n _userBrowserVer = value;\r\n }\r\n function _getBrowser() {\r\n return _userBrowser || _browser;\r\n }\r\n function _getBrowserVer() {\r\n return _userBrowserVer || _browserVer;\r\n }\r\n var _getGpcDataSharing = function () {\r\n return _gpcDataSharingOption;\r\n };\r\n var _setGpcDataSharing = function (value) {\r\n // Setting directly, rather than waiting for the onConfigChange so that the new value is available immediately\r\n _gpcDataSharingOption = isBoolean(value) ? value : null;\r\n // Also update the configuration so any listeners are also notified in the next JS cycle\r\n _propertiesConfig.gpcDataSharingOptIn = _gpcDataSharingOption;\r\n };\r\n function _populateDefaults(config) {\r\n // This function will be re-called whenever any referenced configuration is changed\r\n var unloadHook = onConfigChange(config, function () {\r\n _propertiesConfig = config;\r\n // if populateBrowserInfo is set to false, it will use previous values (so, it will not reset)\r\n if (_propertiesConfig.populateBrowserInfo) {\r\n var userAgent = _propertiesConfig.userAgent;\r\n var userAgentBrands = (_propertiesConfig.userAgentData || {}).brands;\r\n if (userAgent !== _userAgent || userAgentBrands !== _userAgentBrands) {\r\n if (!userAgent || !userAgentBrands || userAgentBrands.length === 0) {\r\n // One or more values not specified so try and derive from the navigator (if available)\r\n var theNav = getNavigator();\r\n if (theNav) {\r\n userAgent = userAgent || theNav.userAgent || \"\";\r\n userAgentBrands = userAgentBrands || (theNav.userAgentData || {}).brands;\r\n }\r\n }\r\n _parseUserAgent(userAgent, userAgentBrands);\r\n _userAgent = userAgent;\r\n _userAgentBrands = userAgentBrands;\r\n }\r\n }\r\n // Only set if the configuration was provided\r\n _gpcDataSharingOption = isBoolean(_propertiesConfig.gpcDataSharingOptIn) ? _propertiesConfig.gpcDataSharingOptIn : null;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n // Remap this get userContext for this instance\r\n objDefineProps(_self, {\r\n \"userConsent\": { g: _self.getUserConsent },\r\n \"browser\": { s: _setBrowser, g: _getBrowser },\r\n \"browserVer\": { s: _setBrowserVer, g: _getBrowserVer },\r\n \"gpcDataSharingOptIn\": { g: _getGpcDataSharing, s: _setGpcDataSharing }\r\n });\r\n });\r\n }\r\n// Removed Stub for Web.prototype.getUserConsent.\r\n// Removed Stub for Web.prototype.getUserConsentDetails.\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n Web._staticInit = (function () {\r\n // Dynamically create get/set property accessors\r\n //objDefineAccessors(Web.prototype, \"userConsent\", _getUserConsent);\r\n objDefine(Web.prototype, \"userConsent\", { g: _getUserConsent });\r\n })();\r\n return Web;\r\n}());\r\nexport { Web };\r\n//# sourceMappingURL=Web.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* TelemetryContext.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isBoolean, isNullOrUndefined, isNumber, isString, isValidSpanId, isValidTraceId, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { AppExtensionKeys, CloudExtKeys, DeviceExtKeys, DistributedTraceExtKeys, Extensions, IntWebExtKeys, LocExtKeys, OSExtKeys, SDKExtKeys, SessionExtKeys, TraceExtKeys, UserExtensionKeys, UtcExtKeys, WebExtensionKeys } from \"./ExtensionKeys\";\r\nimport { SessionManager } from \"./SessionManager\";\r\nimport { Application } from \"./context/Application\";\r\nimport { Cloud } from \"./context/Cloud\";\r\nimport { Device } from \"./context/Device\";\r\nimport { IntWeb } from \"./context/IntWeb\";\r\nimport { Loc } from \"./context/Loc\";\r\nimport { OperatingSystem } from \"./context/OperatingSystem\";\r\nimport { Sdk } from \"./context/Sdk\";\r\nimport { Session } from \"./context/Session\";\r\nimport { Trace } from \"./context/Trace\";\r\nimport { User } from \"./context/User\";\r\nimport { Utc } from \"./context/Utc\";\r\nimport { Web } from \"./context/Web\";\r\nfunction _applyExtValues(extension, event, names, map, overwriteTarget) {\r\n var target = event.ext[Extensions[extension]];\r\n if (target) {\r\n try {\r\n objForEachKey(map, function (field, value) {\r\n if (isString(value) || isNumber(value) || isBoolean(value)) {\r\n var targetValue = target[names[field]];\r\n if (!overwriteTarget && (targetValue || isString(targetValue) || isNumber(targetValue) || isBoolean(targetValue))) {\r\n value = targetValue;\r\n }\r\n target[names[field]] = value;\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // During unload some accesses may cause a TypeError due to accessing a dead object\r\n }\r\n }\r\n return target;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(coreConfig, propertiesConfig, core, unloadHookContainer) {\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.app = new Application(propertiesConfig, core, unloadHookContainer);\r\n _self.cloud = new Cloud();\r\n _self.user = new User(coreConfig, propertiesConfig, core, unloadHookContainer);\r\n _self.os = new OperatingSystem(propertiesConfig, unloadHookContainer);\r\n _self.web = new Web(propertiesConfig, core, unloadHookContainer);\r\n var _sdk = new Sdk(coreConfig, core, unloadHookContainer);\r\n var _intWeb = new IntWeb(propertiesConfig, core, unloadHookContainer);\r\n var _utc = new Utc(propertiesConfig, unloadHookContainer);\r\n _self.loc = new Loc();\r\n _self.device = new Device();\r\n var _sessionManager = new SessionManager(core, propertiesConfig, unloadHookContainer);\r\n _self.session = new Session();\r\n var undefValue = undefined;\r\n var _distributedTraceCtx = createDistributedTraceContextFromTraceCtx(new Trace(propertiesConfig, undefValue, undefValue, undefValue, unloadHookContainer), _getTraceCtx());\r\n var _overwriteEventPartA = !(propertiesConfig || {}).eventContainExtFields;\r\n function _getSessionId() {\r\n var session = _self.session;\r\n if (session && isString(session.customId)) {\r\n return session.customId;\r\n }\r\n _sessionManager.update();\r\n var autoSession = _sessionManager.automaticSession;\r\n if (autoSession) {\r\n var autoId = autoSession.getId();\r\n if (autoId && isString(autoId)) {\r\n session.automaticId = autoId;\r\n }\r\n }\r\n return session.automaticId;\r\n }\r\n _self.getTraceCtx = function () {\r\n return _distributedTraceCtx;\r\n };\r\n _self.getSessionId = _getSessionId;\r\n _self.applyApplicationContext = function (event) {\r\n var _a;\r\n var app = _self.app;\r\n _applyExtValues(4 /* eExtensions.AppExt */, event, AppExtensionKeys, (_a = {},\r\n _a[0 /* eAppExtensionKeys.id */] = app.id,\r\n _a[1 /* eAppExtensionKeys.ver */] = app.ver,\r\n _a[2 /* eAppExtensionKeys.appName */] = app.name,\r\n _a[3 /* eAppExtensionKeys.locale */] = app.locale,\r\n _a[4 /* eAppExtensionKeys.expId */] = app.getExpId(),\r\n _a[5 /* eAppExtensionKeys.env */] = app.env,\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applyUserContext = function (event) {\r\n var _a;\r\n var user = _self.user;\r\n _applyExtValues(0 /* eExtensions.UserExt */, event, UserExtensionKeys, (_a = {},\r\n _a[1 /* eUserExtensionKeys.localId */] = user.getLocalId(),\r\n _a[0 /* eUserExtensionKeys.locale */] = user.locale,\r\n _a[2 /* eUserExtensionKeys.id */] = user.id,\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applyWebContext = function (event) {\r\n var _a;\r\n var web = _self.web;\r\n _applyExtValues(3 /* eExtensions.WebExt */, event, WebExtensionKeys, (_a = {},\r\n _a[0 /* eWebExtensionKeys.domain */] = web.domain,\r\n _a[1 /* eWebExtensionKeys.browser */] = web.browser,\r\n _a[2 /* eWebExtensionKeys.browserVer */] = web.browserVer,\r\n _a[3 /* eWebExtensionKeys.screenRes */] = web.screenRes,\r\n _a[5 /* eWebExtensionKeys.consentDetails */] = web.getUserConsentDetails(),\r\n _a[4 /* eWebExtensionKeys.userConsent */] = web.getUserConsent(),\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applyOsContext = function (event) {\r\n var _a;\r\n var os = _self.os;\r\n _applyExtValues(5 /* eExtensions.OSExt */, event, OSExtKeys, (_a = {},\r\n _a[0 /* eOSExtKeys.osName */] = os.name,\r\n _a[1 /* eOSExtKeys.ver */] = os.ver,\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applySdkContext = function (event) {\r\n var _a;\r\n _applyExtValues(6 /* eExtensions.SdkExt */, event, SDKExtKeys, (_a = {},\r\n _a[2 /* eSDKExtKeys.installId */] = _sdk.installId,\r\n _a[1 /* eSDKExtKeys.seq */] = _sdk.getSequenceId(),\r\n _a[3 /* eSDKExtKeys.epoch */] = _sdk.epoch,\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applyIntWebContext = function (event) {\r\n var _a;\r\n _applyExtValues(7 /* eExtensions.IntWebExt */, event, IntWebExtKeys, (_a = {},\r\n _a[0 /* eIntWebExtKeys.msfpc */] = _intWeb.getMsfpc(),\r\n _a[1 /* eIntWebExtKeys.anid */] = _intWeb.getAnid(),\r\n _a[2 /* eIntWebExtKeys.serviceName */] = _intWeb.serviceName,\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applyUtcContext = function (event) {\r\n var _a;\r\n var utcFields = (_a = {},\r\n _a[0 /* eUtcExtKeys.popSample */] = _utc.popSample,\r\n _a);\r\n if (_utc.eventFlags > 0) {\r\n utcFields[1 /* eUtcExtKeys.eventFlags */] = _utc.eventFlags;\r\n }\r\n _applyExtValues(8 /* eExtensions.UtcExt */, event, UtcExtKeys, utcFields, _overwriteEventPartA);\r\n };\r\n _self.applyLocContext = function (event) {\r\n var _a;\r\n _applyExtValues(9 /* eExtensions.LocExt */, event, LocExtKeys, (_a = {},\r\n _a[0 /* eLocExtKeys.tz */] = _self.loc.tz,\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applySessionContext = function (event) {\r\n var _a;\r\n _applyExtValues(4 /* eExtensions.AppExt */, event, SessionExtKeys, (_a = {},\r\n _a[0 /* eSessionExtKeys.sessionId */] = _getSessionId(),\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applyDeviceContext = function (event) {\r\n var _a;\r\n var device = _self.device;\r\n _applyExtValues(1 /* eExtensions.DeviceExt */, event, DeviceExtKeys, (_a = {},\r\n _a[0 /* eDeviceExtKeys.localId */] = device.localId,\r\n _a[2 /* eDeviceExtKeys.make */] = device.make,\r\n _a[3 /* eDeviceExtKeys.model */] = device.model,\r\n _a[1 /* eDeviceExtKeys.deviceClass */] = device.deviceClass,\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applyCloudContext = function (event) {\r\n var _a;\r\n var cloud = _self.cloud;\r\n _applyExtValues(10 /* eExtensions.CloudExt */, event, CloudExtKeys, (_a = {},\r\n _a[0 /* eCloudExtKeys.role */] = cloud.role,\r\n _a[1 /* eCloudExtKeys.roleInstance */] = cloud.roleInstance,\r\n _a[2 /* eCloudExtKeys.roleVer */] = cloud.roleVer,\r\n _a), _overwriteEventPartA);\r\n };\r\n _self.applyAITraceContext = function (event) {\r\n var _a;\r\n if (propertiesConfig.enableApplicationInsightsTrace) {\r\n var distributedTrace = _getTraceCtx();\r\n if (distributedTrace) {\r\n _applyExtValues(2 /* eExtensions.TraceExt */, event, TraceExtKeys, (_a = {},\r\n _a[0 /* eTraceExtKeys.traceId */] = distributedTrace.getTraceId(),\r\n _a[1 /* eTraceExtKeys.traceName */] = distributedTrace.getName(),\r\n _a[2 /* eTraceExtKeys.parentId */] = distributedTrace.getSpanId(),\r\n _a), false); // Always allow the event to define these values\r\n }\r\n }\r\n };\r\n _self.applyDistributedTraceContext = function (event) {\r\n var _a;\r\n var distributedTrace = _getTraceCtx();\r\n if (distributedTrace) {\r\n var traceFields = (_a = {},\r\n _a[0 /* eDistributedTraceExtKeys.traceId */] = distributedTrace.getTraceId(),\r\n _a[1 /* eDistributedTraceExtKeys.spanId */] = distributedTrace.getSpanId(),\r\n _a);\r\n var traceFlags = distributedTrace.getTraceFlags();\r\n if (!isNullOrUndefined(traceFlags)) {\r\n traceFields[2 /* eDistributedTraceExtKeys.traceFlags */] = traceFlags;\r\n }\r\n // Always allow the event to define these values\r\n _applyExtValues(11 /* eExtensions.DtExt */, event, DistributedTraceExtKeys, traceFields, false);\r\n }\r\n };\r\n function _getTraceCtx() {\r\n var traceCtx = _distributedTraceCtx;\r\n if (core && core.getTraceCtx) {\r\n traceCtx = core.getTraceCtx(false) || _distributedTraceCtx;\r\n }\r\n return traceCtx;\r\n }\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.getTraceCtx.\r\n// Removed Stub for TelemetryContext.prototype.getSessionId.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOsContext.\r\n// Removed Stub for TelemetryContext.prototype.applySdkContext.\r\n// Removed Stub for TelemetryContext.prototype.applyIntWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUtcContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocContext.\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyCloudContext.\r\n// Removed Stub for TelemetryContext.prototype.applyAITraceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDistributedTraceContext.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param traceContext - The ITraceContext 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 traceContext or temporary object\r\n */\r\nfunction createDistributedTraceContextFromTraceCtx(traceContext, parentCtx) {\r\n var trace = traceContext || {};\r\n return {\r\n getName: function () {\r\n return trace.name;\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace.name = 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=TelemetryContext.js.map","/*\n * 1DS JS SDK Properties plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* PropertiesPlugin.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, arrForEach, createProcessTelemetryContext, objForEachKey, objKeys, onConfigChange, setProcessTelemetryTimings } from \"@microsoft/1ds-core-js\";\r\nimport { cfgDfMerge, cfgDfString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze } from \"@nevware21/ts-utils\";\r\nimport { Extensions } from \"./ExtensionKeys\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nvar undefValue;\r\nvar extensions = [\r\n Extensions[4 /* eExtensions.AppExt */],\r\n Extensions[0 /* eExtensions.UserExt */],\r\n Extensions[3 /* eExtensions.WebExt */],\r\n Extensions[5 /* eExtensions.OSExt */],\r\n Extensions[6 /* eExtensions.SdkExt */],\r\n Extensions[7 /* eExtensions.IntWebExt */],\r\n Extensions[8 /* eExtensions.UtcExt */],\r\n Extensions[9 /* eExtensions.LocExt */],\r\n Extensions[1 /* eExtensions.DeviceExt */],\r\n Extensions[2 /* eExtensions.TraceExt */],\r\n Extensions[11 /* eExtensions.DtExt */],\r\n Extensions[10 /* eExtensions.CloudExt */]\r\n];\r\nvar defaultPropertyConfig = objDeepFreeze({\r\n populateBrowserInfo: false,\r\n populateOperatingSystemInfo: false,\r\n userAgent: cfgDfString(),\r\n userAgentData: cfgDfMerge({\r\n brands: undefValue,\r\n mobile: undefValue,\r\n platform: undefValue\r\n }),\r\n userConsentCookieName: cfgDfString(),\r\n userConsented: false,\r\n serviceName: cfgDfString(),\r\n env: cfgDfString(),\r\n expId: cfgDfString(),\r\n sessionRenewalMs: 1800000,\r\n sessionExpirationMs: 86400000,\r\n sessionAsGuid: null,\r\n cookieDomain: cfgDfString(),\r\n namePrefix: cfgDfString(),\r\n enableApplicationInsightsTrace: false,\r\n enableApplicationInsightsUser: false,\r\n hashIdentifiers: false,\r\n dropIdentifiers: false,\r\n scrubIpOnly: false,\r\n callback: cfgDfMerge({\r\n userConsentDetails: null\r\n }),\r\n gpcDataSharingOptIn: undefValue,\r\n idLength: 22,\r\n enableDistributedTracing: false,\r\n eventContainExtFields: false // Added in v3.2.5\r\n});\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.identifier = \"SystemPropertiesCollector\";\r\n _this.priority = 3;\r\n _this.version = '4.2.1';\r\n // Do not set default values here, set them in the _initDefaults() which is also called during teardown()\r\n var _context;\r\n var _properties;\r\n var _config;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (coreConfig, core, extensions) {\r\n _base.initialize(coreConfig, core, extensions);\r\n _populateDefaults(coreConfig);\r\n };\r\n /**\r\n * Process the event and add part A fields to it.\r\n * @param event - The event that needs to be stored.\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances\r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n setProcessTelemetryTimings(event, _self.identifier);\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var evtExt = event.ext = event.ext ? event.ext : {};\r\n event.data = event.data ? event.data : {};\r\n arrForEach(extensions, function (value) {\r\n evtExt[value] = evtExt[value] || {};\r\n });\r\n if (_context) {\r\n // Always apply the utc properties first as this sets the `ext.utc.eventFlags` which is required to tell\r\n // the collector to mask some fields\r\n _context.applyUtcContext(event);\r\n _context.applyApplicationContext(event);\r\n _context.applyUserContext(event);\r\n _context.applyWebContext(event);\r\n _context.applyOsContext(event);\r\n _context.applySdkContext(event);\r\n _context.applyIntWebContext(event);\r\n _context.applyLocContext(event);\r\n _context.applySessionContext(event);\r\n _context.applyDeviceContext(event);\r\n if (_config.enableApplicationInsightsTrace) {\r\n _context.applyAITraceContext(event);\r\n }\r\n if (_config.enableDistributedTracing) {\r\n _context.applyDistributedTraceContext(event);\r\n }\r\n _context.applyCloudContext(event);\r\n }\r\n // Delete empty ext fields\r\n arrForEach(objKeys(evtExt), function (key) {\r\n if (objKeys(evtExt[key]).length === 0) {\r\n delete evtExt[key];\r\n }\r\n });\r\n // Add custom properties\r\n _addPropertiesIfAbsent(_properties, event.data);\r\n _self.processNext(event, itemCtx);\r\n };\r\n /**\r\n * Get properties context to override or specify specific part A properties\r\n * @returns the Context\r\n */\r\n _self.getPropertiesContext = function () {\r\n return _context;\r\n };\r\n /**\r\n * Sets a custom property to be sent with every event. IEventProperty can be used to tag the property as\r\n * pii or customer content.\r\n * @param name - The name of the property.\r\n * @param value - The context property's value.\r\n */\r\n _self.setProperty = function (name, value) {\r\n _properties[name] = value;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core.getTraceCtx && _context) {\r\n var traceCtx = core.getTraceCtx(false);\r\n if (traceCtx && traceCtx === _context.getTraceCtx()) {\r\n core.setTraceCtx(null);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_config];\r\n };\r\n function _initDefaults() {\r\n _context = null;\r\n _properties = {};\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 // Apply and re-apply defaults\r\n _config = ctx.getExtCfg(identifier, defaultPropertyConfig);\r\n }));\r\n // _context should be outside onConfigChange to avoid creating new instance every time\r\n _context = new TelemetryContext(config, _config, core, _self._unloadHooks);\r\n if (core && core.setTraceCtx) {\r\n core.setTraceCtx(_context.getTraceCtx());\r\n }\r\n }\r\n function _addPropertiesIfAbsent(inputMap, outputMap) {\r\n if (inputMap) {\r\n objForEachKey(inputMap, function (name, inputValue) {\r\n if (!outputMap[name]) {\r\n outputMap[name] = inputValue;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n// Removed Stub for PropertiesPlugin.prototype.getPropertiesContext.\r\n// Removed Stub for PropertiesPlugin.prototype.setProperty.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PropertiesPlugin.__ieDyn=1;\n\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { PropertiesPlugin };\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Enums.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nexport var ActionType = {\r\n CLICKLEFT: \"CL\",\r\n CLICKRIGHT: \"CR\",\r\n CLICKMIDDLE: \"CM\",\r\n SCROLL: \"S\",\r\n ZOOM: \"Z\",\r\n RESIZE: \"R\",\r\n KEYBOARDENTER: \"KE\",\r\n KEYBOARDSPACE: \"KS\",\r\n OTHER: \"O\"\r\n};\r\nexport var EventType;\r\n(function (EventType) {\r\n EventType[EventType[\"PAGE_ACTION\"] = 0] = \"PAGE_ACTION\";\r\n EventType[EventType[\"CONTENT_UPDATE\"] = 1] = \"CONTENT_UPDATE\";\r\n})(EventType || (EventType = {}));\r\n//# sourceMappingURL=Enums.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Enums.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* Copyright (c) Microsoft and contributors. All rights reserved.\r\n*/\r\n// Behavior enum values\r\nexport var Behavior;\r\n(function (Behavior) {\r\n Behavior[Behavior[\"UNDEFINED\"] = 0] = \"UNDEFINED\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Page Experience [1-19]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"NAVIGATIONBACK\"] = 1] = \"NAVIGATIONBACK\";\r\n Behavior[Behavior[\"NAVIGATION\"] = 2] = \"NAVIGATION\";\r\n Behavior[Behavior[\"NAVIGATIONFORWARD\"] = 3] = \"NAVIGATIONFORWARD\";\r\n Behavior[Behavior[\"APPLY\"] = 4] = \"APPLY\";\r\n Behavior[Behavior[\"REMOVE\"] = 5] = \"REMOVE\";\r\n Behavior[Behavior[\"SORT\"] = 6] = \"SORT\";\r\n Behavior[Behavior[\"EXPAND\"] = 7] = \"EXPAND\";\r\n Behavior[Behavior[\"REDUCE\"] = 8] = \"REDUCE\";\r\n Behavior[Behavior[\"CONTEXTMENU\"] = 9] = \"CONTEXTMENU\";\r\n Behavior[Behavior[\"TAB\"] = 10] = \"TAB\";\r\n Behavior[Behavior[\"COPY\"] = 11] = \"COPY\";\r\n Behavior[Behavior[\"EXPERIMENTATION\"] = 12] = \"EXPERIMENTATION\";\r\n Behavior[Behavior[\"PRINT\"] = 13] = \"PRINT\";\r\n Behavior[Behavior[\"SHOW\"] = 14] = \"SHOW\";\r\n Behavior[Behavior[\"HIDE\"] = 15] = \"HIDE\";\r\n Behavior[Behavior[\"MAXIMIZE\"] = 16] = \"MAXIMIZE\";\r\n Behavior[Behavior[\"MINIMIZE\"] = 17] = \"MINIMIZE\";\r\n Behavior[Behavior[\"BACKBUTTON\"] = 18] = \"BACKBUTTON\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Scenario Process [20-39]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"STARTPROCESS\"] = 20] = \"STARTPROCESS\";\r\n Behavior[Behavior[\"PROCESSCHECKPOINT\"] = 21] = \"PROCESSCHECKPOINT\";\r\n Behavior[Behavior[\"COMPLETEPROCESS\"] = 22] = \"COMPLETEPROCESS\";\r\n Behavior[Behavior[\"SCENARIOCANCEL\"] = 23] = \"SCENARIOCANCEL\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Download [40-59]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"DOWNLOADCOMMIT\"] = 40] = \"DOWNLOADCOMMIT\";\r\n Behavior[Behavior[\"DOWNLOAD\"] = 41] = \"DOWNLOAD\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Search [60-79]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"SEARCHAUTOCOMPLETE\"] = 60] = \"SEARCHAUTOCOMPLETE\";\r\n Behavior[Behavior[\"SEARCH\"] = 61] = \"SEARCH\";\r\n Behavior[Behavior[\"SEARCHINITIATE\"] = 62] = \"SEARCHINITIATE\";\r\n Behavior[Behavior[\"TEXTBOXINPUT\"] = 63] = \"TEXTBOXINPUT\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Commerce [80-99]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"PURCHASE\"] = 80] = \"PURCHASE\";\r\n Behavior[Behavior[\"ADDTOCART\"] = 81] = \"ADDTOCART\";\r\n Behavior[Behavior[\"VIEWCART\"] = 82] = \"VIEWCART\";\r\n Behavior[Behavior[\"ADDWISHLIST\"] = 83] = \"ADDWISHLIST\";\r\n Behavior[Behavior[\"FINDSTORE\"] = 84] = \"FINDSTORE\";\r\n Behavior[Behavior[\"CHECKOUT\"] = 85] = \"CHECKOUT\";\r\n Behavior[Behavior[\"REMOVEFROMCART\"] = 86] = \"REMOVEFROMCART\";\r\n Behavior[Behavior[\"PURCHASECOMPLETE\"] = 87] = \"PURCHASECOMPLETE\";\r\n Behavior[Behavior[\"VIEWCHECKOUTPAGE\"] = 88] = \"VIEWCHECKOUTPAGE\";\r\n Behavior[Behavior[\"VIEWCARTPAGE\"] = 89] = \"VIEWCARTPAGE\";\r\n Behavior[Behavior[\"VIEWPDP\"] = 90] = \"VIEWPDP\";\r\n Behavior[Behavior[\"UPDATEITEMQUANTITY\"] = 91] = \"UPDATEITEMQUANTITY\";\r\n Behavior[Behavior[\"INTENTTOBUY\"] = 92] = \"INTENTTOBUY\";\r\n Behavior[Behavior[\"PUSHTOINSTALL\"] = 93] = \"PUSHTOINSTALL\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Authentication [100-119]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"SIGNIN\"] = 100] = \"SIGNIN\";\r\n Behavior[Behavior[\"SIGNOUT\"] = 101] = \"SIGNOUT\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Social [120-139]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"SOCIALSHARE\"] = 120] = \"SOCIALSHARE\";\r\n Behavior[Behavior[\"SOCIALLIKE\"] = 121] = \"SOCIALLIKE\";\r\n Behavior[Behavior[\"SOCIALREPLY\"] = 122] = \"SOCIALREPLY\";\r\n Behavior[Behavior[\"CALL\"] = 123] = \"CALL\";\r\n Behavior[Behavior[\"EMAIL\"] = 124] = \"EMAIL\";\r\n Behavior[Behavior[\"COMMUNITY\"] = 125] = \"COMMUNITY\";\r\n Behavior[Behavior[\"SOCIALFOLLOW\"] = 126] = \"SOCIALFOLLOW\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Feedback [140-159]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"VOTE\"] = 140] = \"VOTE\";\r\n Behavior[Behavior[\"SURVEYINITIATE\"] = 141] = \"SURVEYINITIATE\";\r\n Behavior[Behavior[\"SURVEYCOMPLETE\"] = 142] = \"SURVEYCOMPLETE\";\r\n Behavior[Behavior[\"REPORTAPPLICATION\"] = 143] = \"REPORTAPPLICATION\";\r\n Behavior[Behavior[\"REPORTREVIEW\"] = 144] = \"REPORTREVIEW\";\r\n Behavior[Behavior[\"SURVEYCHECKPOINT\"] = 145] = \"SURVEYCHECKPOINT\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Registration, Contact [160-179]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"CONTACT\"] = 160] = \"CONTACT\";\r\n Behavior[Behavior[\"REGISTRATIONINITIATE\"] = 161] = \"REGISTRATIONINITIATE\";\r\n Behavior[Behavior[\"REGISTRATIONCOMPLETE\"] = 162] = \"REGISTRATIONCOMPLETE\";\r\n Behavior[Behavior[\"CANCELSUBSCRIPTION\"] = 163] = \"CANCELSUBSCRIPTION\";\r\n Behavior[Behavior[\"RENEWSUBSCRIPTION\"] = 164] = \"RENEWSUBSCRIPTION\";\r\n Behavior[Behavior[\"CHANGESUBSCRIPTION\"] = 165] = \"CHANGESUBSCRIPTION\";\r\n Behavior[Behavior[\"REGISTRATIONCHECKPOINT\"] = 166] = \"REGISTRATIONCHECKPOINT\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Chat [180-199]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"CHATINITIATE\"] = 180] = \"CHATINITIATE\";\r\n Behavior[Behavior[\"CHATEND\"] = 181] = \"CHATEND\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Trial [200-209]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"TRIALSIGNUP\"] = 200] = \"TRIALSIGNUP\";\r\n Behavior[Behavior[\"TRIALINITIATE\"] = 201] = \"TRIALINITIATE\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Signup [210-219]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"SIGNUP\"] = 210] = \"SIGNUP\";\r\n Behavior[Behavior[\"FREESIGNUP\"] = 211] = \"FREESIGNUP\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Referals [220-229]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"PARTNERREFERRAL\"] = 220] = \"PARTNERREFERRAL\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Intents [230-239]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"LEARNLOWFUNNEL\"] = 230] = \"LEARNLOWFUNNEL\";\r\n Behavior[Behavior[\"LEARNHIGHFUNNEL\"] = 231] = \"LEARNHIGHFUNNEL\";\r\n Behavior[Behavior[\"SHOPPINGINTENT\"] = 232] = \"SHOPPINGINTENT\";\r\n Behavior[Behavior[\"TRIALINTENT\"] = 234] = \"TRIALINTENT\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Video [240-259]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"VIDEOSTART\"] = 240] = \"VIDEOSTART\";\r\n Behavior[Behavior[\"VIDEOPAUSE\"] = 241] = \"VIDEOPAUSE\";\r\n Behavior[Behavior[\"VIDEOCONTINUE\"] = 242] = \"VIDEOCONTINUE\";\r\n Behavior[Behavior[\"VIDEOCHECKPOINT\"] = 243] = \"VIDEOCHECKPOINT\";\r\n Behavior[Behavior[\"VIDEOJUMP\"] = 244] = \"VIDEOJUMP\";\r\n Behavior[Behavior[\"VIDEOCOMPLETE\"] = 245] = \"VIDEOCOMPLETE\";\r\n Behavior[Behavior[\"VIDEOBUFFERING\"] = 246] = \"VIDEOBUFFERING\";\r\n Behavior[Behavior[\"VIDEOERROR\"] = 247] = \"VIDEOERROR\";\r\n Behavior[Behavior[\"VIDEOMUTE\"] = 248] = \"VIDEOMUTE\";\r\n Behavior[Behavior[\"VIDEOUNMUTE\"] = 249] = \"VIDEOUNMUTE\";\r\n Behavior[Behavior[\"VIDEOFULLSCREEN\"] = 250] = \"VIDEOFULLSCREEN\";\r\n Behavior[Behavior[\"VIDEOUNFULLSCREEN\"] = 251] = \"VIDEOUNFULLSCREEN\";\r\n Behavior[Behavior[\"VIDEOREPLAY\"] = 252] = \"VIDEOREPLAY\";\r\n Behavior[Behavior[\"VIDEOPLAYERLOAD\"] = 253] = \"VIDEOPLAYERLOAD\";\r\n Behavior[Behavior[\"VIDEOPLAYERCLICK\"] = 254] = \"VIDEOPLAYERCLICK\";\r\n Behavior[Behavior[\"VIDEOVOLUMECONTROL\"] = 255] = \"VIDEOVOLUMECONTROL\";\r\n Behavior[Behavior[\"VIDEOAUDIOTRACKCONTROL\"] = 256] = \"VIDEOAUDIOTRACKCONTROL\";\r\n Behavior[Behavior[\"VIDEOCLOSEDCAPTIONCONTROL\"] = 257] = \"VIDEOCLOSEDCAPTIONCONTROL\";\r\n Behavior[Behavior[\"VIDEOCLOSEDCAPTIONSTYLE\"] = 258] = \"VIDEOCLOSEDCAPTIONSTYLE\";\r\n Behavior[Behavior[\"VIDEORESOLUTIONCONTROL\"] = 259] = \"VIDEORESOLUTIONCONTROL\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // Virtual Event [260-279]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"VIRTUALEVENTJOIN\"] = 260] = \"VIRTUALEVENTJOIN\";\r\n Behavior[Behavior[\"VIRTUALEVENTEND\"] = 261] = \"VIRTUALEVENTEND\";\r\n Behavior[Behavior[\"JOINTEAMSMEETINGEVENT\"] = 262] = \"JOINTEAMSMEETINGEVENT\";\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n // \tAdvertisement Engagement [280-299]\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n Behavior[Behavior[\"IMPRESSION\"] = 280] = \"IMPRESSION\";\r\n Behavior[Behavior[\"CLICK\"] = 281] = \"CLICK\";\r\n Behavior[Behavior[\"RICHMEDIACOMPLETE\"] = 282] = \"RICHMEDIACOMPLETE\";\r\n Behavior[Behavior[\"ADBUFFERING\"] = 283] = \"ADBUFFERING\";\r\n Behavior[Behavior[\"ADERROR\"] = 284] = \"ADERROR\";\r\n Behavior[Behavior[\"ADSTART\"] = 285] = \"ADSTART\";\r\n Behavior[Behavior[\"ADCOMPLETE\"] = 286] = \"ADCOMPLETE\";\r\n Behavior[Behavior[\"ADSKIP\"] = 287] = \"ADSKIP\";\r\n Behavior[Behavior[\"ADTIMEOUT\"] = 288] = \"ADTIMEOUT\";\r\n Behavior[Behavior[\"OTHER\"] = 300] = \"OTHER\"; // Other\r\n})(Behavior || (Behavior = {}));\r\n//# sourceMappingURL=Behaviors.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = createEnumStyle({\r\n /**\r\n * Normal persistence.\r\n */\r\n Normal: 1 /* EventPersistenceValue.Normal */,\r\n /**\r\n * Critical persistence.\r\n */\r\n Critical: 2 /* EventPersistenceValue.Critical */\r\n});\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting 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: 6\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_PUSH = \"push\"; // Count: 5\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_FILE_NAME = \"fileName\"; // Count: 8\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_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","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_PUSH, _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\nvar _storagePrefix = \"\";\r\n/**\r\n * Gets the localStorage object if available\r\n * @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 var name_1 = _storagePrefix + uid;\r\n storage.setItem(name_1, uid);\r\n var fail = storage.getItem(name_1) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name_1);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @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\nexport function utlSetStoragePrefix(storagePrefix) {\r\n _storagePrefix = storagePrefix || \"\";\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys[_DYN_PUSH /* @min:%2epush */](key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes, EventPersistence } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage, utlSetStoragePrefix } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport { createOfflineListener } from \"./Offline\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(asString(name));\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(asString(value));\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = strSubstring(value, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(asString(input));\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = strSubstring(input, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\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","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getWindow, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_PUSH, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack[_DYN_PUSH /* @min:%2epush */](entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (getWindow() && getWindow()[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack[_DYN_PUSH /* @min:%2epush */](parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (id) {\r\n properties.id = id;\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n exception[_DYN_PROPERTIES /* @min:%2eproperties */].id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) {\r\n frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]);\r\n frame[_DYN_FILE_NAME /* @min:%2efileName */] = dataSanitizeString(logger, frame[_DYN_FILE_NAME /* @min:%2efileName */]);\r\n });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== _correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getInst, objHasOwnProperty } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { _getObjProto } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n var owner = null;\r\n if (target) {\r\n if (objHasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB0 = \"isStorageUseDisabled\"; // Count: 3\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 6\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 3\r\nexport var _DYN_DURATION = \"duration\"; // Count: 12\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO3 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P4 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER5 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI6 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA7 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D8 = \"overridePageViewDuration\"; // Count: 2\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI9 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC10 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR11 = \"enableAutoRouteTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_UNHANDLED_PRO12 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 2\r\nexport var _DYN_AUTO_UNHANDLED_PROMI13 = \"autoUnhandledPromiseInstrumented\"; // Count: 3\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 5\r\nexport var _DYN_IS_PERFORMANCE_TIMIN14 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI15 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT16 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN17 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM18 = \"pageVisitStartTime\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPerformance, isUndefined, isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var queueTimer = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var firstPageViewSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync, function () {\r\n // Event flushed, callback added to prevent promise creation\r\n });\r\n }\r\n }\r\n function _startTimer() {\r\n if (!queueTimer) {\r\n queueTimer = scheduleTimeout((function () {\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _startTimer();\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n _startTimer();\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (!firstPageViewSent) {\r\n var perf = getPerformance();\r\n // Access the performance timing object\r\n var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */] && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\"));\r\n // Edge Case the navigation Entries may return an empty array and the timeOrigin is not supported on IE\r\n if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {\r\n // Get the value of loadEventStart\r\n var loadEventStart = navigationEntries[0].loadEventStart;\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(perf.timeOrigin + loadEventStart);\r\n }\r\n else {\r\n // calculate the start time manually\r\n var duration_1 = ((customProperties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration_1);\r\n }\r\n firstPageViewSent = true;\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n if (!isWebWorker()) {\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n }\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (queueTimer) {\r\n queueTimer.cancel();\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || strIndexOf(userAgent.toLowerCase(), botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming[_DYN_START_TIME /* @min:%2estartTime */] === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME /* @min:%2estartTime */], navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, utlDisableStorage, utlEnableStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, cfgDfBoolean, cfgDfSet, cfgDfString, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, onConfigChange, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isError, objDeepFreeze, objDefine, scheduleTimeout, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA7, _DYN_AUTO_TRACK_PAGE_VISI9, _DYN_AUTO_UNHANDLED_PROMI13, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DURATION, _DYN_ENABLE_AUTO_ROUTE_TR11, _DYN_ENABLE_UNHANDLED_PRO12, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC10, _DYN_IS_STORAGE_USE_DISAB0, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_OVERRIDE_PAGE_VIEW_D8, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_EXCEPTION_INTER5, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_START_TIME, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_1, _DYN__ADD_HOOK, _DYN__CREATE_AUTO_EXCEPTI6, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nvar defaultValues = objDeepFreeze((_a = {\r\n sessionRenewalMs: cfgDfSet(_chkConfigMilliseconds, 30 * 60 * 1000),\r\n sessionExpirationMs: cfgDfSet(_chkConfigMilliseconds, 24 * 60 * 60 * 1000),\r\n disableExceptionTracking: cfgDfBoolean()\r\n },\r\n _a[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:autoTrackPageVisitTime */] = cfgDfBoolean(),\r\n _a[_DYN_OVERRIDE_PAGE_VIEW_D8 /* @min:overridePageViewDuration */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:enableUnhandledPromiseRejectionTracking */] = cfgDfBoolean(),\r\n _a[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:autoUnhandledPromiseInstrumented */] = false,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_IS_STORAGE_USE_DISAB0 /* @min:isStorageUseDisabled */] = cfgDfBoolean(),\r\n _a[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:isBrowserLinkTrackingEnabled */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:enableAutoRouteTracking */] = cfgDfBoolean(),\r\n _a.namePrefix = cfgDfString(),\r\n _a.enableDebug = cfgDfBoolean(),\r\n _a.disableFlushOnBeforeUnload = cfgDfBoolean(),\r\n _a.disableFlushOnUnload = cfgDfBoolean(false, \"disableFlushOnBeforeUnload\"),\r\n _a));\r\nfunction _chkConfigMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return +value;\r\n}\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n var _extConfig;\r\n var _autoTrackPageVisitTime;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param metric - input object argument. Only name and average are mandatory.\r\n * @param } customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry - The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView - Page view item to be sent\r\n * @param properties - Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties - System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n if (isNullOrUndefined(pageView[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n // calculate the start time manually\r\n var duration = ((properties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration);\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name - A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n // Adding additional edge cases to handle\r\n // - Not passing anything (null / undefined)\r\n var theError = (exception && (exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n isError(exception) && exception ||\r\n // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n // is preserved and does not list ApplicationInsights code as the source\r\n { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n exception = exception || {};\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception[_DYN_PROPERTIES /* @min:%2eproperties */] || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param exception - Object which contains exception to be sent\r\n * @param } customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n _populateDefaults(config);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking();\r\n _updateLocationChange();\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self[_DYN_CORE /* @min:%2ecore */];\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extConfig = ctx.getExtCfg(identifier, defaultValues);\r\n _autoTrackPageVisitTime = _extConfig[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:%2eautoTrackPageVisitTime */];\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _updateStorageUsage(_extConfig);\r\n // _updateBrowserLinkTracking\r\n _isBrowserLinkTrackingEnabled = _extConfig[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }));\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milliseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && strIndexOf(remoteData.target, browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](_self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests));\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking() {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _disableExceptionTracking = _extConfig.disableExceptionTracking;\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n }));\r\n _addUnhandledPromiseRejectionTracking(_window, locn);\r\n }\r\n function _updateLocationChange() {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableAutoRouteTracking = _extConfig[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(win, _history, locn);\r\n }\r\n }\r\n }));\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(win, history, locn) {\r\n if (_historyListenerAdded) {\r\n return;\r\n }\r\n // Name Prefix is only referenced during the initial initialization and cannot be changed afterwards\r\n var namePrefix = _extConfig.namePrefix || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n scheduleTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n function _addUnhandledPromiseRejectionTracking(_window, _location) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableUnhandledPromiseRejectionTracking = _extConfig[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */];\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */] = _autoUnhandledPromiseInstrumented = true;\r\n }\r\n }));\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {eLoggingSeverity} - The severity of the log message\r\n * @param msgId - {_eInternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n _autoTrackPageVisitTime = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n _extConfig = null;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _extConfig; }\r\n });\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_pageViewManager\", { g: function () { return _pageViewManager; } });\r\n objDefine(_self, \"_pageViewPerformanceManager\", { g: function () { return _pageViewPerformanceManager; } });\r\n objDefine(_self, \"_pageVisitTimeManager\", { g: function () { return _pageVisitTimeManager; } });\r\n objDefine(_self, \"_evtNamespace\", { g: function () { return \".\" + _evtNamespace; } });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '3.2.1'; // Not currently used anywhere\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_PAGE_VISIT_START_TIM18, _DYN_TRACK_PREVIOUS_PAGE_1 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler - Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName - Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_logger\", { g: function () { return logger; } });\r\n objDefine(_self, \"pageVisitTimeTrackingHandler\", { g: function () { return pageVisitTimeTrackingHandler; } });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Utils.ts\r\n* @author Ram Thiru (ramthi) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n* File containing utility functions.\r\n*/\r\nimport { arrForEach, getDocument, getPerformance, getWindow, isObject, isValueAssigned, isWindowObjectAvailable, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { APPID_PREFIX } from \"./Constants\";\r\nvar doNotTrackFieldName = \"data-bi-dnt\";\r\nvar manualTrackOnlyFieldName = \"data-bi-mto\";\r\n/**\r\n* Check if appId has a colon as the third character. If it does\r\n* do nothing otherwise prefix it with 'JS:'.A colon is valid in an appId\r\n* @param appId - appId\r\n* @returns An appId with js:prefix\r\n*/\r\nexport function _getAppIdWithPrefix(appId) {\r\n var result;\r\n if (appId) {\r\n var appIdArray = appId.split(\":\");\r\n result = appIdArray.length > 1 && appIdArray[0].toLowerCase() === \"js\" ? appId : APPID_PREFIX + appId;\r\n }\r\n return result;\r\n}\r\n/**\r\n* Finds attributes in overrideConfig which are invalid or should be objects\r\n* and deletes them. useful in override config\r\n* @param overrideConfig - override config object\r\n* @param attributeNamesExpectedObjects - attributes that should be objects in override config object\r\n*/\r\nexport function _removeNonObjectsAndInvalidElements(overrideConfig, attributeNamesExpectedObjects) {\r\n _removeInvalidElements(overrideConfig);\r\n arrForEach(attributeNamesExpectedObjects, function (objectName, i) {\r\n if (isObject(overrideConfig[objectName])) {\r\n _removeInvalidElements(overrideConfig[objectName]);\r\n }\r\n else {\r\n delete overrideConfig[objectName];\r\n }\r\n });\r\n}\r\n/**\r\n* Finds attributes in object which are invalid\r\n* and deletes them. useful in override config\r\n* @param object Input object\r\n*/\r\nexport function _removeInvalidElements(object) {\r\n /// Because the config object 'callback' contains only functions,\r\n /// when it is stringified it returns the empty object. This explains\r\n /// the workaround regarding 'callback'\r\n objForEachKey(object, function (property, value) {\r\n if (!isValueAssigned(value) ||\r\n (JSON.stringify(value) === \"{}\" && (property !== \"callback\"))) {\r\n delete object[property];\r\n }\r\n });\r\n}\r\n/**\r\n* Gets intersection area of two rectangles\r\n* and deletes them. useful in override config\r\n* @param rect1 - object containing top, left, right, and bottom numbers\r\n* @param rect2 - object containing top, left, right, and bottom numbers\r\n* @returns Intersection area in px^2\r\n*/\r\nexport function _getIntersectionArea(rect1, rect2) {\r\n var x11 = rect1.left;\r\n var y11 = rect1.top;\r\n var x12 = rect1.right;\r\n var y12 = rect1.bottom;\r\n var x21 = rect2.left;\r\n var y21 = rect2.top;\r\n var x22 = rect2.right;\r\n var y22 = rect2.bottom;\r\n var xOverlap = Math.max(0, Math.min(x12, x22) - Math.max(x11, x21));\r\n var yOverlap = Math.max(0, Math.min(y12, y22) - Math.max(y11, y21));\r\n return xOverlap * yOverlap;\r\n}\r\n/**\r\n* Walks up DOM tree to find anchor element\r\n* @param element - DOM element\r\n* @returns Dom element which is an anchor\r\n*/\r\nexport function _findClosestAnchor(element) {\r\n /// Walks up DOM tree to find anchor element \r\n /// DOM element \r\n /// Dom element which is an anchor\r\n return _walkUpDomChainWithElementValidation(element, _isElementAnAnchor);\r\n}\r\n/**\r\n* Stringify object\r\n* @param fieldName - Field name\r\n* @param value - Value\r\n* @returns Stringified value\r\n*/\r\nexport function _stringifyField(fieldName, value) {\r\n if (value) {\r\n try {\r\n var stringified = JSON.stringify(value);\r\n if (stringified === \"{}\") {\r\n if (fieldName === \"timing\") {\r\n return _stringifyWindowPerformanceTiming();\r\n }\r\n }\r\n return stringified;\r\n }\r\n catch (e) {\r\n // JSON.Strigify has issues with circular references.\r\n // http://stackoverflow.com/questions/4816099/chrome-sendrequest-error-typeerror-converting-circular-structure-to-json\r\n var message = \"{'error': 'ERROR: could not stringify {0} {1}'}\";\r\n var token = (typeof value === \"string\") ? value : \"\";\r\n return message.replace(\"{0}\", fieldName).replace(\"{1}\", token);\r\n }\r\n }\r\n return \"\";\r\n}\r\n/**\r\n* Stringify window timing object\r\n* Safari does not serialize window.performance.timing, therefore this shim is necessary.\r\n* @returns stringified window.performance.timing\r\n*/\r\nfunction _stringifyWindowPerformanceTiming() {\r\n var performanceString = \"{\";\r\n if (isWindowObjectAvailable) {\r\n var WPTfields = [\"navigationStart\",\r\n \"unloadEventStart\",\r\n \"unloadEventEnd\",\r\n \"redirectStart\",\r\n \"redirectEnd\",\r\n \"fetchStart\",\r\n \"domainLookupStart\",\r\n \"domainLookupEnd\",\r\n \"connectStart\",\r\n \"connectEnd\",\r\n \"secureConnectionStart\",\r\n \"requestStart\",\r\n \"responseStart\",\r\n \"responseEnd\",\r\n \"domLoading\",\r\n \"domInteractive\",\r\n \"domContentLoadedEventStart\",\r\n \"domContentLoadedEventEnd\",\r\n \"domComplete\",\r\n \"loadEventStart\",\r\n \"loadEventEnd\"];\r\n var perf = getPerformance();\r\n var windowPerformanceTiming = perf ? perf.timing : {};\r\n for (var i = 0; i < WPTfields.length; i++) {\r\n var WindowPerformanceTimingTempValue = windowPerformanceTiming[WPTfields[i]];\r\n if (isValueAssigned(WindowPerformanceTimingTempValue)) {\r\n performanceString += \"'\" + WPTfields[i] + \"':\" + WindowPerformanceTimingTempValue;\r\n if (i < WPTfields.length - 1) {\r\n performanceString += \",\";\r\n }\r\n }\r\n }\r\n }\r\n performanceString += \"}\";\r\n return performanceString;\r\n}\r\n/**\r\n* Walks up DOM tree to find element which matches validationMethod\r\n* @param el - DOM element\r\n* @param validationMethod - DOM element validation method\r\n* @param validationMethodParam - DOM element validation method parameters\r\n* @returns Dom element which is an anchor\r\n*/\r\nexport function _walkUpDomChainWithElementValidation(el, validationMethod, validationMethodParam) {\r\n var element = el;\r\n if (element) {\r\n element = _returnDomObjectIfjQuery(element);\r\n while (!validationMethod(element, validationMethodParam)) {\r\n element = element.parentNode;\r\n element = _returnDomObjectIfjQuery(element);\r\n if (!element || !(element.getAttribute)) {\r\n return null;\r\n }\r\n }\r\n return element;\r\n }\r\n}\r\n/**\r\n* Determine if DOM element is an anchor\r\n* @param element - DOM element\r\n* @returns Is element an anchor\r\n*/\r\nexport function _isElementAnAnchor(element) {\r\n return element.nodeName === \"A\";\r\n}\r\n/**\r\n* Some elements might be jQuery, do not have method getAttribute\r\n* @param element - DOM or jQuery element\r\n* @returns DOM element\r\n*/\r\nexport function _returnDomObjectIfjQuery(element) {\r\n // TODO: Fix Jquery reference.\r\n // if (typeof jQuery === 'function' && element instanceof jQuery) {\r\n // return element[0];\r\n // }\r\n return element;\r\n}\r\n/**\r\n* Determines if an element is currently visible to the user\r\n* @param element - element to check for visibility\r\n* @param viewportBoundingRect - Viewport bounding rectangle\r\n* @returns true if element is truly visible\r\n*/\r\nexport function _isElementTrulyVisible(element, viewportBoundingRect) {\r\n element = _returnDomObjectIfjQuery(element);\r\n var rect = element.getBoundingClientRect();\r\n var intersectionArea = _getIntersectionArea(rect, viewportBoundingRect);\r\n if (intersectionArea > 0) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n/**\r\n* Returns the specified field and also removes the property from the object if exists.\r\n* @param obj - Input object\r\n* @param fieldName - >Name of the field/property to be extracted\r\n* @returns Value of the specified tag\r\n*/\r\nexport function _extractFieldFromObject(obj, fieldName) {\r\n var fieldValue;\r\n if (obj && obj[fieldName]) {\r\n fieldValue = obj[fieldName];\r\n delete obj[fieldName];\r\n }\r\n return fieldValue;\r\n}\r\n/**\r\n* Determines whether an event is a right click or not\r\n* @param evt - Mouse event\r\n* @returns true if the event is a right click\r\n*/\r\nexport function _isRightClick(evt) {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 3);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 2);\r\n }\r\n}\r\n/**\r\n* Determines whether an event is a left click or not\r\n* @param evt - Mouse event\r\n* @returns true if the event is a left click\r\n*/\r\nexport function _isLeftClick(evt) {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 1);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 1);\r\n }\r\n}\r\n/**\r\n* Determines whether an event is a middle click or not\r\n* @param evt - Mouse event\r\n* @returns true if the event is a middle click\r\n*/\r\nexport function _isMiddleClick(evt) {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 2);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 4);\r\n }\r\n}\r\n/**\r\n* Determines whether an event is a keyboard enter or not\r\n* @param evt - Keyboard event\r\n* @returns true if the event is a keyboard enter\r\n*/\r\nexport function _isKeyboardEnter(evt) {\r\n if (\"keyCode\" in evt) { // Chrome, FF, ...\r\n return (evt.keyCode === 13);\r\n }\r\n}\r\n/**\r\n* Determines whether an event is a keyboard space or not\r\n* @param evt - Keyboard event\r\n* @returns true if the event is a space enter\r\n*/\r\nexport function _isKeyboardSpace(evt) {\r\n if (\"keyCode\" in evt) { // Chrome, FF, ...\r\n return (evt.keyCode === 32);\r\n }\r\n}\r\n/**\r\n* Determines whether the element have a DNT(Do Not Track) tag\r\n* @param element - DOM element\r\n* @param doNotTrackFieldName - Deprecated\r\n* @returns true if the element must not be tracked\r\n*/\r\nexport function _isElementDnt(element, deprecated) {\r\n var dntElement = _findClosestByAttribute(element, doNotTrackFieldName);\r\n if (!isValueAssigned(dntElement)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n* Determines whether the element can generate pageAction telemetry using data-bi attributes mto and dnt\r\n* @param element - DOM element\r\n* @param overrides - Override to determine if auto or manual call\r\n* @returns true if the element is can be tracked\r\n*/\r\nexport function _isClickTelemetryAllowed(element, overrideValues) {\r\n // MTO do not send auto telemetry for this element\r\n if (overrideValues &&\r\n overrideValues.isAuto &&\r\n isValueAssigned(_findClosestByAttribute(element, manualTrackOnlyFieldName))) {\r\n return false;\r\n }\r\n // Do not track element\r\n if (_isElementDnt(element)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n* Walks up DOM tree to find element with attribute\r\n* @param el - DOM element\r\n* @param attribute - Attribute name\r\n* @returns Dom element which contains attribute\r\n*/\r\nexport function _findClosestByAttribute(el, attribute) {\r\n return _walkUpDomChainWithElementValidation(el, _isAttributeInElement, attribute);\r\n}\r\n/**\r\n* checks if attribute is in element.\r\n* method checks for empty string, in case the attribute is set but no value is assigned to it\r\n* @param element - DOM element\r\n* @param attributeToLookFor - Attribute name\r\n* @returns true if attribute is in element, even if empty string\r\n*/\r\nexport function _isAttributeInElement(element, attributeToLookFor) {\r\n var value = element.getAttribute(attributeToLookFor);\r\n return isValueAssigned(value) || value === \"\";\r\n}\r\n/**\r\n* Adds surrounding square brackets to the passed in text\r\n* @param str - Input string\r\n* @returns String with surrounding brackets\r\n*/\r\nexport function _bracketIt(str) {\r\n /// \r\n /// Adds surrounding square brackets to the passed in text\r\n /// \r\n return \"[\" + str + \"]\";\r\n}\r\n/**\r\n * When constantly called, debounce returns two functions, where:\r\n * - function 1 will trigger at first call,\r\n * - function 2 will be called at last call, after it stops being called for\r\n * 'wait' milliseconds\r\n * @param firstCallFunction - The function that will trigger at first call\r\n * @param secondCallFunction - The function that will trigger at last call after 'wait' milliseconds\r\n * @params wait - The debounce time interval\r\n */\r\nexport function _debounce(firstCallFunction, secondCallFunction, wait, context) {\r\n var timeout;\r\n return function () {\r\n var args = arguments;\r\n var later = function () {\r\n timeout = 0;\r\n if (secondCallFunction) {\r\n secondCallFunction.apply(context, args);\r\n }\r\n };\r\n var callNow = !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) {\r\n if (firstCallFunction) {\r\n firstCallFunction.apply(context, args);\r\n }\r\n }\r\n };\r\n}\r\n/**\r\n * Get scroll offset\r\n * @returns Returns the scroll offset\r\n */\r\nexport function _getScrollOffset() {\r\n var scrollOffset = { h: 0, v: 0 };\r\n var win = getWindow();\r\n var doc = getDocument();\r\n if (doc && win) {\r\n scrollOffset = {\r\n h: parseInt(doc.body.scrollLeft || doc.documentElement.scrollLeft || win.pageXOffset, 10),\r\n v: parseInt(doc.body.scrollTop || doc.documentElement.scrollTop || win.pageYOffset, 10)\r\n };\r\n }\r\n return scrollOffset;\r\n}\r\n/**\r\n* Use window dimensions if available before reaching into DOM.\r\n* Accessing DOM frequently causes layout to reflow and impacts perf.\r\n* @returns Returns a Viewport object that contains dimensions of the current viewport\r\n* @description When this is executed from within an iFrame, the dimensions would be that of the iFrame and not the browser window.\r\n*/\r\nexport function _getViewportDimensions() {\r\n var viewport = { h: 0, w: 0 };\r\n var win = getWindow();\r\n var doc = getDocument();\r\n if (win && doc && win.screen) {\r\n var body = doc.body || {};\r\n var docElem = doc.documentElement || {};\r\n viewport.h = win.innerHeight || body.clientHeight || docElem.clientHeight;\r\n viewport.w = win.innerWidth || body.clientWidth || docElem.clientWidth;\r\n }\r\n return viewport;\r\n}\r\n/**\r\n * Get viewport bounding dimensions\r\n * @param viewportDimensions Dimensions of the viewport\r\n * @returns Returns viewport bounding rect\r\n */\r\nexport function _getViewportBoundingRect(viewportDimensions) {\r\n var viewportBoundingRect = {\r\n top: 0,\r\n bottom: viewportDimensions.h,\r\n left: 0,\r\n right: viewportDimensions.w\r\n };\r\n return viewportBoundingRect;\r\n}\r\n//# sourceMappingURL=Utils.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* DataCollector.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { _throwInternal, arrForEach, createUniqueNamespace, eventOff, eventOn, getDocument, getLocation, getWindow, isDocumentObjectAvailable, isValueAssigned, isWindowObjectAvailable, mergeEvtNamespace } from \"@microsoft/1ds-core-js\";\r\nimport { _findClosestAnchor } from \"./common/Utils\";\r\nvar clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };\r\n/**\r\n* Get Image href of a given HTMLImageElement\r\n* @param element - An html image element\r\n* @returns Href value.\r\n*/\r\nexport function _getImageHref(element) {\r\n var temp = element;\r\n if (temp) {\r\n var parent = _findClosestAnchor(temp);\r\n if (parent && parent.length === 1) {\r\n if (parent[0].href) {\r\n return parent[0].href;\r\n }\r\n else if (parent[0].src) {\r\n return (parent[0].src);\r\n }\r\n }\r\n }\r\n return \"\";\r\n}\r\n/**\r\n* Check if a given element has an element has data-dc attribute defined with a value 'pii'\r\n* @param element - An html element\r\n* @returns Flag indicating if an element is market PII.\r\n*/\r\nexport function _isPii(element) {\r\n if (!element || !element.attributes) {\r\n return false;\r\n }\r\n try {\r\n var pii = element.getAttribute(\"data-dc\");\r\n if (isValueAssigned(pii)) {\r\n if (pii.toLowerCase() === \"pii\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n* Get URI, sanitize the value if configured on\r\n* @param config - Configuration\r\n* @param location - window.location or document.location\r\n* @returns Flag indicating if an element is market PII.\r\n*/\r\nexport function _getUri(config, location) {\r\n if (config.coreData && config.coreData.requestUri && config.coreData.requestUri !== \"\") {\r\n return config.coreData.requestUri;\r\n }\r\n return _sanitizeUrl(config, location);\r\n}\r\n/**\r\n* Sanitize URL values\r\n* @param config - Configuration\r\n* @param location - window.location or document.location\r\n* @returns Flag indicating if an element is market PII.\r\n*/\r\nexport function _sanitizeUrl(config, location) {\r\n if (!location) {\r\n return null;\r\n }\r\n var url = location.protocol + \"//\" + (location.hostname || location.host) + // location.hostname is not supported on Opera and Opera for Android\r\n (isValueAssigned(location.port) ? \":\" + location.port : \"\") +\r\n location.pathname;\r\n if (config.urlCollectQuery) { // false by default\r\n var query = location.search;\r\n if (!query) {\r\n // in older browsers the query parameters can be contained in the hash\r\n var hash = location.hash || \"\";\r\n var queryIndex = hash.indexOf(\"?\");\r\n if (queryIndex !== -1) {\r\n query = hash.slice(queryIndex);\r\n }\r\n }\r\n url += query;\r\n }\r\n if (config.urlCollectHash) { // false by default\r\n url += (location.hash || \"\");\r\n }\r\n return url;\r\n}\r\n/**\r\n* Gets the pageName from the DOM or by calling a override if set.\r\n* @param config - configuration object\r\n* @returns Page name.\r\n*/\r\nexport function _getPageName(config, overrideValues) {\r\n /// \r\n /// Gets the pageName from the DOM or by calling a override if set.\r\n /// \r\n if (overrideValues && overrideValues.pageName) {\r\n return overrideValues.pageName;\r\n }\r\n else if (config.callback && typeof (config.callback.pageName) === \"function\") {\r\n return config.callback.pageName();\r\n }\r\n else if (config.coreData && config.coreData.pageName) {\r\n return config.coreData.pageName;\r\n }\r\n else {\r\n var loc = getLocation() || {};\r\n var pagename = loc.pathname || \"\";\r\n var fragments = pagename.replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\r\n if (fragments && fragments[fragments.length - 1]) {\r\n pagename = fragments[fragments.length - 1];\r\n }\r\n else {\r\n pagename = \"Home\";\r\n }\r\n return pagename;\r\n }\r\n}\r\n/**\r\n* Gets the document's title. Title returned is trimmed to 150 characters\r\n* @returns Document title.\r\n*/\r\nexport function _getTitle() {\r\n return isDocumentObjectAvailable ? document.title.substring(0, 150) : \"\";\r\n}\r\nexport function _getSignedInStatus(config) {\r\n var isLoggedIn = config.callback && typeof (config.callback.signedinStatus) === \"function\" ?\r\n config.callback.signedinStatus() : config.isLoggedIn;\r\n return isLoggedIn;\r\n}\r\nexport function _getCookies(config, _cookieMgr, traceLogger) {\r\n var cookies = \"\";\r\n var uniqueCookies = {};\r\n var mergedCookies = [];\r\n var cookiesConfig = config.cookiesToCollect;\r\n if (config.shareAuthStatus === false) {\r\n // collect ANON if it is in cookiesConfig\r\n mergedCookies = cookiesConfig;\r\n }\r\n else {\r\n // do not collect ANON even if it is in cookiesConfig\r\n arrForEach(cookiesConfig, function (value) {\r\n if (value !== \"ANON\") {\r\n mergedCookies.push(value);\r\n }\r\n });\r\n }\r\n try {\r\n // adding a try catch block to ensure any mis-handling\r\n // of the varCustomerCookies variable by adopters is not impacting the rest.\r\n if (isWindowObjectAvailable && window.varCustomerCookies && window.varCustomerCookies.length > 0) {\r\n mergedCookies = mergedCookies.concat(window.varCustomerCookies);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(traceLogger, 1 /* eLoggingSeverity.CRITICAL */, 512 /* _eExtendedInternalMessageId.FailedToGetCookies */, \"Failed to get cookies \");\r\n }\r\n var cookieValue;\r\n arrForEach(mergedCookies, function (value) {\r\n // de-dupe the list, no value is necessary hence ''\r\n if (!uniqueCookies.hasOwnProperty(value)) {\r\n uniqueCookies[value] = \"\";\r\n cookieValue = decodeURIComponent(_cookieMgr.get(value));\r\n if (cookieValue !== \"\") {\r\n cookies += value + \"=\" + cookieValue + \";\";\r\n }\r\n }\r\n });\r\n return cookies;\r\n}\r\n/**\r\n *\r\n* Get click target\r\n* @returns Click target URI\r\n*/\r\nexport function _getClickTarget(element) {\r\n var clickTarget = \"\";\r\n switch (element.tagName) {\r\n case \"A\":\r\n case \"AREA\":\r\n clickTarget = element.href || \"\";\r\n break;\r\n case \"IMG\":\r\n clickTarget = _getImageHref(element);\r\n break;\r\n case \"INPUT\":\r\n var type = element.type;\r\n if (type && (clickCaptureInputTypes[type.toUpperCase()])) {\r\n var loc = getLocation() || {};\r\n if (element.form) {\r\n clickTarget = element.form.action || (loc.pathname || \"\");\r\n }\r\n else {\r\n clickTarget = loc.pathname || \"\";\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return clickTarget;\r\n}\r\n/**\r\n *\r\n * Execute callback when DOM finish loading\r\n */\r\nexport function onDomLoaded(callback, parentEvtNamespace) {\r\n var evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"onDomLoaded\"), parentEvtNamespace);\r\n onDomReadyDo(function () {\r\n if (isDocumentObjectAvailable && document.readyState === \"complete\") {\r\n callback();\r\n }\r\n else {\r\n var win_1 = getWindow();\r\n if (win_1) {\r\n eventOn(win_1, \"load\", function () {\r\n callback && callback();\r\n callback = null;\r\n // Auto remove the event handler\r\n eventOff(win_1, null, null, evtNamespace);\r\n }, evtNamespace);\r\n }\r\n }\r\n });\r\n}\r\n// use smallest domready ever for IE8. When IE8 is deprecated, use addEventListener('DomContentLoaded')\r\nfunction onDomReadyDo(f) {\r\n /// fires function f on domRead \r\n /// function to call on domRead\r\n var doc = getDocument() || {};\r\n /in/.test(doc.readyState) ? setTimeout(function () { onDomReadyDo(f); }, 100) : f.call();\r\n}\r\n//# sourceMappingURL=DataCollector.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* id.ts\r\n* @author Ram Thiru (ramthi)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createGuid, generateW3CId, getCookieValue, getDocument, getLocation, safeGetCookieMgr } from \"@microsoft/1ds-core-js\";\r\n// Limit support to i, w, and c; make logging accidental PII data more difficult.\r\nvar userIdPrefixes = [\r\n \"c:\",\r\n \"i:\",\r\n \"w:\" // domain user id as hash\r\n];\r\nvar supportedMuidHosts = {\r\n \"microsoft.com\": \"c1.microsoft.com\",\r\n \"xbox.com\": \"c.xbox.com\",\r\n \"live.com\": \"c.live.com\",\r\n \"microsoftstore.com\": \"c.microsoftstore.com\",\r\n \"msn.com\": \"c.msn.com\",\r\n \"windows.com\": \"c.windows.com\",\r\n \"office.com\": \"c.office.com\"\r\n};\r\nvar Id = /** @class */ (function () {\r\n function Id(core) {\r\n this.core = core;\r\n var lastPageViewId = createGuid();\r\n var internalTraceId = generateW3CId();\r\n var appUserId = null;\r\n var firstPageView = false;\r\n var deviceClass;\r\n var _cookieMgr = safeGetCookieMgr(core);\r\n dynamicProto(Id, this, function (_self) {\r\n _self.getTraceId = function () {\r\n if (core && core.getTraceCtx) {\r\n return core.getTraceCtx().getTraceId() || internalTraceId;\r\n }\r\n return internalTraceId;\r\n };\r\n _self.getLastPageViewId = function () {\r\n return lastPageViewId;\r\n };\r\n _self.initializeIds = function () {\r\n if (!firstPageView) {\r\n firstPageView = true;\r\n }\r\n else {\r\n // this.traceId = this.createTraceId();\r\n lastPageViewId = createGuid();\r\n }\r\n };\r\n _self.getMuidUserId = function () {\r\n var muidValue = getCookieValue(_cookieMgr, \"MUID\");\r\n return muidValue && muidValue.length ? \"t:\" + muidValue : muidValue;\r\n };\r\n /// Set app user id.\r\n _self.setAppUserId = function (uid) {\r\n appUserId = null; // Make sure to reset the last user id.\r\n if (!uid) {\r\n return; // No need to log null or empty user ids which can be used to reset app user ids.\r\n }\r\n for (var i = 0; i < userIdPrefixes.length; i++) {\r\n if (userIdPrefixes[i] === uid.substring(0, 2)) {\r\n appUserId = uid;\r\n break;\r\n }\r\n }\r\n if (!appUserId) {\r\n // this._traceLogger.w('Unsupported app user id: ' + uid + '. Supported app user ids are: c:, i:, and w:');\r\n }\r\n };\r\n _self.setDeviceClass = function (newDeviceClass) {\r\n if (newDeviceClass) {\r\n deviceClass = newDeviceClass;\r\n }\r\n };\r\n _self.getDeviceClass = function () {\r\n return deviceClass;\r\n };\r\n _self.getAppUserId = function () {\r\n return appUserId;\r\n };\r\n _self.syncMuid = function (muidHost) {\r\n var location = getLocation();\r\n if (location && muidHost) {\r\n var muidsrc = (location.protocol || \"http:\") + \"//\" + muidHost + \"/c.gif?DI=4050&did=1&t=\";\r\n var document_1 = getDocument();\r\n if (document_1) {\r\n var img = document_1.createElement(\"IMG\");\r\n img.style.display = \"none\";\r\n img.src = muidsrc;\r\n img.hidden = \"\";\r\n img[\"aria-hidden\"] = \"true\";\r\n img.role = \"presentation\";\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n _self.getMuidHost = function (rootDomain) {\r\n return supportedMuidHosts[rootDomain];\r\n };\r\n });\r\n }\r\n Id.visitorId = function () {\r\n var userId = getCookieValue(safeGetCookieMgr(null), \"MUID\");\r\n return userId;\r\n };\r\n// Removed Stub for Id.prototype.getTraceId.\r\n// Removed Stub for Id.prototype.getLastPageViewId.\r\n// Removed Stub for Id.prototype.initializeIds.\r\n// Removed Stub for Id.prototype.getMuidUserId.\r\n /// Set app user id.\r\n// Removed Stub for Id.prototype.setAppUserId.\r\n// Removed Stub for Id.prototype.setDeviceClass.\r\n// Removed Stub for Id.prototype.getDeviceClass.\r\n// Removed Stub for Id.prototype.getAppUserId.\r\n// Removed Stub for Id.prototype.syncMuid.\r\n// Removed Stub for Id.prototype.getMuidHost.\r\n return Id;\r\n}());\r\nexport { Id };\r\n//# sourceMappingURL=Id.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* timespan.ts\r\n* @author Ram Thiru (ramthi)\r\n* @copyright Microsoft 2018\r\n*/\r\nvar Timespan = /** @class */ (function () {\r\n function Timespan() {\r\n this._timers = [];\r\n }\r\n /**\r\n * Records the current time on a timer object identified by the counterName passed in\r\n * Returns a number > 0 that denotes the milliseconds elapsed between start and current time, if isComplete param is set to true.\r\n * @param counterName - Unique name for the counter instance that needs to be operated on.\r\n * @param isComplete - Indicates if the call is to complete a timer or start a new one.\r\n */\r\n Timespan.prototype._recordTimeSpan = function (counterName, isComplete) {\r\n var timestamp = new Date().getTime();\r\n if (!isComplete) {\r\n this._timers[counterName] = timestamp;\r\n }\r\n else {\r\n return timestamp - this._timers[counterName];\r\n }\r\n };\r\n return Timespan;\r\n}());\r\nexport { Timespan };\r\n//# sourceMappingURL=Timespan.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* webEvents.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport * as DataCollector from \"../DataCollector\";\r\nimport { cookieAvailable, extend, getLocation, isArray, isValueAssigned, isWindowObjectAvailable, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { Behavior } from \"../Behaviors\";\r\nimport { MSCONTENT_PARTB_VERSION } from \"../common/Constants\";\r\nimport { _bracketIt } from \"../common/Utils\";\r\n/**\r\n* Get the specified metadata value from the collection\r\n* If overrideValue is specified in the config that takes precedence.\r\n* @param metaTags - Meta data.\r\n* @param awaTags - Coredata values from configuration.\r\n* @param metaTagName - Name of the metaTag to get.\r\n* @returns Meta data value\r\n*/\r\nfunction _getMetaData(metaTags, coreData, metaTagName) {\r\n var value = \"\";\r\n if (coreData && coreData[metaTagName]) {\r\n value = coreData[metaTagName];\r\n }\r\n else if (metaTags) {\r\n value = metaTags[metaTagName];\r\n }\r\n return value;\r\n}\r\nvar WebEvent = /** @class */ (function () {\r\n /**\r\n * @param webAnalyticsPlugin - Web Analytics plugin instance\r\n * @param config - WebAnalytics configuration object\r\n * @param contentHandler - Content handler\r\n * @param id - Id object\r\n * @param pageTagsCallback - callback methods to get pageTags value\r\n * @param metaTags - Meta tags\r\n * @param traceLogger - Trace logger to log to console.\r\n */\r\n function WebEvent(_webAnalyticsPlugin, _config, _contentHandler, _id, _pageTagsCallback, metaTags, _traceLogger) {\r\n this._webAnalyticsPlugin = _webAnalyticsPlugin;\r\n this._config = _config;\r\n this._contentHandler = _contentHandler;\r\n this._id = _id;\r\n this._pageTagsCallback = _pageTagsCallback;\r\n this.metaTags = metaTags;\r\n this._traceLogger = _traceLogger;\r\n this._pageTags = {};\r\n }\r\n WebEvent.prototype._setBasicProperties = function (event, overrideValues) {\r\n // Fill common PartB fields\r\n event.ver = MSCONTENT_PARTB_VERSION;\r\n event.id = this._id.getLastPageViewId();\r\n if (!isValueAssigned(event.name)) {\r\n event.name = DataCollector._getPageName(this._config, overrideValues);\r\n }\r\n if (!isValueAssigned(event.uri) && isWindowObjectAvailable) {\r\n event.uri = DataCollector._getUri(this._config, getLocation());\r\n }\r\n };\r\n /**\r\n * Sets common properties for events that are based on the WebEvent schema.\r\n * @param event - The event\r\n */\r\n WebEvent.prototype._setCommonProperties = function (event, eventProperties, overrideValues) {\r\n var _self = this;\r\n _self._setBasicProperties(event, overrideValues);\r\n _self._setPageTags(event, overrideValues);\r\n // extract specific meta tags out of the pageTags.metaTags collection. These will go into assigned first class fields in the event.\r\n // the rest will go into pageTags.metaTags collection as is.\r\n _self._pageTypeMetaTag = _getMetaData(_self.metaTags, _self._config.coreData, \"pageType\");\r\n _self._marketMetaTag = _getMetaData(_self.metaTags, _self._config.coreData, \"market\");\r\n _self._behaviorMetaTag = _getMetaData(_self.metaTags, _self._config.coreData, \"behavior\");\r\n if (isValueAssigned(overrideValues.pageType)) {\r\n event.pageType = overrideValues.pageType;\r\n }\r\n // Only assign if not overriden and meta data is available\r\n if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event.pageType)) {\r\n event.pageType = _self._pageTypeMetaTag;\r\n }\r\n if (isValueAssigned(_self._marketMetaTag)) {\r\n event.market = _self._marketMetaTag;\r\n }\r\n event.isLoggedIn = DataCollector._getSignedInStatus(_self._config);\r\n // Fill common PartC fields\r\n eventProperties.cookieEnabled = cookieAvailable();\r\n };\r\n /**\r\n * Sets pageTags.\r\n * @param event - The event\r\n */\r\n WebEvent.prototype._setPageTags = function (event, overrideValues) {\r\n var _self = this;\r\n _self._pageTags = {};\r\n // Use DOM meta data first and then apply overrides\r\n if (_self.metaTags) {\r\n _self._pageTags.metaTags = _self._pageTags.metaTags || {};\r\n // Remove not supported meta data in pageTags.metaTags\r\n objForEachKey(_self.metaTags, function (metaTag, value) {\r\n if (metaTag !== \"behavior\" && metaTag !== \"market\" && metaTag !== \"pageType\") {\r\n _self._pageTags.metaTags[metaTag] = value;\r\n }\r\n });\r\n }\r\n // Prepare the pageTags object that is mostly the same for all events. Event specific pageTags will be added inside event constructors.\r\n if (_self._config.coreData && _self._config.coreData.pageTags) {\r\n _self._pageTags = extend(true, _self._pageTags, _self._config.coreData.pageTags);\r\n }\r\n if (_self._pageTagsCallback) {\r\n _self._pageTags = extend(true, _self._pageTags, _self._pageTagsCallback());\r\n }\r\n if (isValueAssigned(overrideValues.pageTags)) {\r\n _self._pageTags = extend(true, _self._pageTags, overrideValues.pageTags);\r\n }\r\n // All metadata tags that must be saved as properties have been extracted at this point. Assign pageTags as is.\r\n event.properties = event.properties || {};\r\n event.properties[\"pageTags\"] = _self._pageTags;\r\n };\r\n WebEvent.prototype._getBehavior = function (overrideValues) {\r\n var behavior;\r\n // If override specified\r\n if (overrideValues && isValueAssigned(overrideValues.behavior)) {\r\n behavior = overrideValues.behavior;\r\n }\r\n else if (isValueAssigned(this._behaviorMetaTag)) {\r\n behavior = this._behaviorMetaTag;\r\n }\r\n return this._getValidBehavior(behavior);\r\n };\r\n WebEvent.prototype._getValidBehavior = function (behavior) {\r\n if (isValueAssigned(behavior)) {\r\n var result = void 0;\r\n var value = parseInt(behavior);\r\n if (!isNaN(value)) {\r\n result = value;\r\n }\r\n else {\r\n result = Behavior[behavior];\r\n }\r\n if (result in Behavior) {\r\n return result;\r\n }\r\n }\r\n return 0; /*UNDEFINED*/\r\n };\r\n WebEvent.prototype._getContentFormatted = function (content) {\r\n if (isValueAssigned(content)) {\r\n if (isArray(content)) {\r\n return JSON.stringify(content);\r\n }\r\n else {\r\n return _bracketIt(JSON.stringify(content));\r\n }\r\n }\r\n return undefined;\r\n };\r\n return WebEvent;\r\n}());\r\nexport { WebEvent };\r\n//# sourceMappingURL=WebEvent.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Constants.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez(hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nexport var COMMON_SCHEMA_VER = \"2.1\";\r\nexport var MSCONTENT_PARTB_VERSION = \"1.0\";\r\nexport var CONTENT_VERSION = \"2.0\";\r\nexport var MAX_CONTENTNAME_LENGTH = 200;\r\nexport var IS_SENSITIVE_FLAG = 0x080000;\r\nexport var APPID_PREFIX = \"JS:\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* ContentUpdate.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, isDocumentObjectAvailable, isValueAssigned, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { CONTENT_VERSION } from \"../common/Constants\";\r\nimport { _getScrollOffset, _getViewportDimensions } from \"../common/Utils\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nvar ContentUpdate = /** @class */ (function (_super) {\r\n __extends(ContentUpdate, _super);\r\n function ContentUpdate() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * API to send ContentUpdate event\r\n * @param contentUpdateEvent - ContentUpdate event\r\n * @param properties - ContentUpdate properties(Part C)\r\n */\r\n ContentUpdate.prototype.trackContentUpdate = function (contentUpdateEvent, properties) {\r\n // Get part A properties\r\n var ext = {};\r\n ext[\"web\"] = {};\r\n ext[\"web\"][\"isManual\"] = contentUpdateEvent.isManual;\r\n var event = {\r\n name: \"Ms.Web.ContentUpdate\",\r\n baseType: \"ContentUpdateData\",\r\n ext: ext,\r\n data: {},\r\n baseData: {},\r\n latency: 3 /* EventLatencyValue.RealTime */\r\n };\r\n arrForEach([\r\n \"name\",\r\n \"uri\",\r\n \"market\",\r\n \"pageType\",\r\n \"isLoggedIn\",\r\n \"id\",\r\n \"properties\",\r\n \"ver\",\r\n \"actionType\",\r\n \"behavior\",\r\n \"pageHeight\",\r\n \"content\",\r\n \"contentVer\",\r\n \"vpHeight\",\r\n \"vpWidth\",\r\n \"vScrollOffset\",\r\n \"hScrollOffset\"\r\n ], function (key) {\r\n event.baseData[key] = contentUpdateEvent[key];\r\n });\r\n objForEachKey(properties, function (property, value) {\r\n if (!event.data[property]) {\r\n event.data[property] = value;\r\n }\r\n });\r\n this._webAnalyticsPlugin.core.track(event);\r\n };\r\n /**\r\n * API to create and send a populated ContentUpdate event\r\n * @param overrideValues - ContentUpdate overrides\r\n * @param customProperties - Custom properties(Part C)\r\n */\r\n ContentUpdate.prototype.captureContentUpdate = function (overrideValues, customProperties) {\r\n overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n var event = {};\r\n var properties = isValueAssigned(customProperties) ? customProperties : {};\r\n this._setCommonProperties(event, properties, overrideValues);\r\n event.behavior = this._getBehavior(overrideValues);\r\n if (isValueAssigned(overrideValues.actionType)) {\r\n event.actionType = overrideValues.actionType;\r\n }\r\n var viewportDim = _getViewportDimensions();\r\n var scrollOffset = _getScrollOffset();\r\n event.pageHeight = isDocumentObjectAvailable ? document.body.scrollHeight : null;\r\n event.vpHeight = viewportDim.h;\r\n event.vpWidth = viewportDim.w;\r\n event.vScrollOffset = scrollOffset.v;\r\n event.hScrollOffset = scrollOffset.h;\r\n event.contentVer = CONTENT_VERSION;\r\n event.isManual = !overrideValues.isAuto;\r\n var content = this._getContentFormatted(overrideValues.content) || JSON.stringify(this._contentHandler.getVisibleContent());\r\n if (content) {\r\n event.content = content;\r\n }\r\n // Set PartC values\r\n if (isValueAssigned(overrideValues.isDomComplete)) {\r\n properties.isDomComplete = overrideValues.isDomComplete;\r\n }\r\n else {\r\n properties.isDomComplete = false;\r\n }\r\n this.trackContentUpdate(event, properties);\r\n };\r\n return ContentUpdate;\r\n}(WebEvent));\r\nexport { ContentUpdate };\r\n//# sourceMappingURL=ContentUpdate.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* pageAction.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { extend, getPerformance, isArray, isUndefined, isValueAssigned, objForEachKey, safeGetCookieMgr, strStartsWith } from \"@microsoft/1ds-core-js\";\r\nimport { ActionType, EventType } from \"../Enums\";\r\nimport { CONTENT_VERSION } from \"../common/Constants\";\r\nimport { _extractFieldFromObject, _returnDomObjectIfjQuery } from \"../common/Utils\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nimport { _getClickTarget, _getCookies, _isPii } from \"../DataCollector\";\r\nvar PageAction = /** @class */ (function (_super) {\r\n __extends(PageAction, _super);\r\n function PageAction() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * API to send pageAction event\r\n * @param pageActionEvent - PageAction event\r\n * @param properties - PageAction properties(Part C)\r\n */\r\n PageAction.prototype.trackPageAction = function (pageActionEvent, properties) {\r\n // Get part A properties\r\n var ext = {};\r\n ext[\"web\"] = {};\r\n ext[\"web\"][\"isManual\"] = pageActionEvent.isManual;\r\n var event = {\r\n name: \"Ms.Web.PageAction\",\r\n baseType: \"PageActionData\",\r\n ext: ext,\r\n data: {},\r\n baseData: {},\r\n latency: 1 /* EventLatencyValue.Normal */\r\n };\r\n if (!isUndefined(pageActionEvent.sync)) {\r\n event.sync = pageActionEvent.sync;\r\n }\r\n event.baseData[\"name\"] = pageActionEvent.name;\r\n event.baseData[\"uri\"] = pageActionEvent.uri;\r\n event.baseData[\"market\"] = pageActionEvent.market;\r\n event.baseData[\"pageType\"] = pageActionEvent.pageType;\r\n event.baseData[\"isLoggedIn\"] = pageActionEvent.isLoggedIn;\r\n event.baseData[\"id\"] = pageActionEvent.id;\r\n event.baseData[\"properties\"] = pageActionEvent.properties;\r\n event.baseData[\"ver\"] = pageActionEvent.ver;\r\n event.baseData[\"actionType\"] = pageActionEvent.actionType;\r\n event.baseData[\"behavior\"] = pageActionEvent.behavior;\r\n event.baseData[\"clickCoordinates\"] = pageActionEvent.clickCoordinates;\r\n event.baseData[\"content\"] = pageActionEvent.content;\r\n event.baseData[\"contentVer\"] = pageActionEvent.contentVer;\r\n event.baseData[\"targetUri\"] = pageActionEvent.targetUri;\r\n objForEachKey(properties, function (property, value) {\r\n if (!event.data[property]) {\r\n event.data[property] = value;\r\n }\r\n });\r\n this._webAnalyticsPlugin.core.track(event);\r\n };\r\n /**\r\n * API to create and send a populated PageAction event\r\n * @param element - DOM element\r\n * @param overrideValues - PageAction overrides\r\n * @param customProperties - Custom properties(Part C)\r\n * @param isRightClick - Flag for mouse right clicks\r\n */\r\n PageAction.prototype.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {\r\n overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n var pageActionEvent = {};\r\n var pageActionProperties = isValueAssigned(customProperties) ? customProperties : {};\r\n this._setCommonProperties(pageActionEvent, pageActionProperties, overrideValues);\r\n pageActionEvent.isManual = !overrideValues.isAuto;\r\n pageActionEvent.behavior = this._getBehavior(overrideValues);\r\n // element in scope is needed for below properties. We cannot pass element into the plugin call chain.\r\n // process them here.\r\n var elementContent = {};\r\n element = _returnDomObjectIfjQuery(element);\r\n if (isRightClick) {\r\n // Default behavior for righ click\r\n pageActionEvent.behavior = 9 /*CONTEXTMENU*/;\r\n }\r\n else {\r\n var config = this._config || {};\r\n if (element && config.syncPageActionNavClick) {\r\n if (overrideValues.actionType === ActionType.CLICKLEFT || overrideValues.actionType === ActionType.KEYBOARDENTER) {\r\n if (element.tagName.toLowerCase() === \"a\") {\r\n var href = (element.getAttribute(\"href\") || \"\").toLowerCase();\r\n // Simple check for a URI that would typically cause a navigation\r\n if (href && (strStartsWith(href, \"https:\") || strStartsWith(href, \"http:\") || strStartsWith(href, \".\") || strStartsWith(href, \"/\"))) {\r\n // Special case that looks like this page action is going to cause a page navigation which will result\r\n // in a race condition with the sending of the batched event and XHR cancellation\r\n pageActionEvent.sync = 3 /* EventSendType.SyncFetch */; // Attempt to send the event immediately without blocking the JS execution\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Fill PartB\r\n if (element) {\r\n pageActionEvent.targetUri = _getClickTarget(element);\r\n elementContent = this._contentHandler.getElementContent(element, EventType.PAGE_ACTION); // collect data-bi tags\r\n elementContent = extend(elementContent, this._getCustomTags(element)); // collect ms.* tags\r\n // if the element has a data-bi-bhvr attrib defined, use it.\r\n if (elementContent && elementContent.bhvr && !isValueAssigned(overrideValues.behavior)) {\r\n var currentBehavior = _extractFieldFromObject(elementContent, \"bhvr\");\r\n pageActionEvent.behavior = this._getValidBehavior(currentBehavior);\r\n }\r\n }\r\n if (isValueAssigned(overrideValues.actionType)) {\r\n pageActionEvent.actionType = overrideValues.actionType;\r\n }\r\n if (isValueAssigned(overrideValues.clickCoordinateX) && isValueAssigned(overrideValues.clickCoordinateY)) {\r\n pageActionEvent.clickCoordinates = overrideValues.clickCoordinateX + \"X\" + overrideValues.clickCoordinateY;\r\n }\r\n if (isValueAssigned(overrideValues.targetUri)) {\r\n pageActionEvent.targetUri = overrideValues.targetUri;\r\n }\r\n pageActionEvent.contentVer = CONTENT_VERSION;\r\n var currentContent = overrideValues.content || elementContent;\r\n // Array cannot be merged with kvp objects\r\n if (!isArray(currentContent)) {\r\n var pageActionContentTags = this._config.callback.pageActionContentTags;\r\n currentContent = extend(currentContent, typeof pageActionContentTags === \"function\" ? pageActionContentTags(element) : {}, overrideValues && overrideValues.contentTags ? overrideValues.contentTags : {});\r\n }\r\n pageActionEvent.content = this._getContentFormatted(currentContent);\r\n // set PartC values\r\n pageActionProperties.timeToAction = this._getTimeToClick();\r\n pageActionProperties.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : this._config.coreData.referrerUri;\r\n var cookieMgr = this._webAnalyticsPlugin.core && safeGetCookieMgr(this._webAnalyticsPlugin.core);\r\n var cookiesValue = _getCookies(this._config, cookieMgr, this._traceLogger);\r\n if (cookiesValue) {\r\n pageActionProperties.cookies = cookiesValue;\r\n }\r\n this.trackPageAction(pageActionEvent, pageActionProperties);\r\n };\r\n PageAction.prototype._getCustomTags = function (obj) {\r\n /// Collect data from attributes that have a ms. prefix.\r\n /// This functionality is there to provide compatibility with WEDCS.\r\n /// TODO: When all adopters have moved to the new tagging taxanomy we can remove this functionality.\r\n /// \r\n /// The element from which attributes need to be collected.\r\n /// Tags collection/property bag\r\n var customParameters = {};\r\n while (obj) {\r\n if (!_isPii(obj)) {\r\n for (var attr in obj.attributes) {\r\n if (attr) {\r\n if (obj.attributes[attr]) {\r\n var nn = obj.attributes[attr].name;\r\n if (nn) {\r\n if (nn.toLowerCase().indexOf(\"ms.\") === 0) {\r\n customParameters[nn] = obj.attributes[attr].value;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n obj = (obj.parentElement || obj.parentNode);\r\n }\r\n return customParameters;\r\n };\r\n PageAction.prototype._getTimeToClick = function () {\r\n // capture performance data into PageTags\r\n var perf = getPerformance();\r\n if (perf && perf.timing) {\r\n var isNavigationStart = perf.timing.navigationStart;\r\n if (isNavigationStart && isNavigationStart !== 0) {\r\n return new Date().getTime() - isNavigationStart;\r\n }\r\n }\r\n return -1;\r\n };\r\n return PageAction;\r\n}(WebEvent));\r\nexport { PageAction };\r\n//# sourceMappingURL=PageAction.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* PageUnload.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { getPerformance, isDocumentObjectAvailable, isUndefined, isValueAssigned, isWindowObjectAvailable, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { _getViewportDimensions } from \"../common/Utils\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nvar PageUnload = /** @class */ (function (_super) {\r\n __extends(PageUnload, _super);\r\n /**\r\n * @param _webAnalyticsPlugin - Web Analytics plugin instance\r\n * @param _config - WebAnalytics configuration object\r\n * @param _id - Id\r\n * @param _traceLogger - Trace logger to log to console.\r\n * @param timestamp - Timespan instance.\r\n * @param maxScroll - max scroll value\r\n */\r\n function PageUnload(_webAnalyticsPlugin, _config, _id, _traceLogger, timestamp, maxScroll) {\r\n var _this = _super.call(this, _webAnalyticsPlugin, _config, null, _id, {}, {}, _traceLogger) || this;\r\n _this._webAnalyticsPlugin = _webAnalyticsPlugin;\r\n _this._config = _config;\r\n _this._id = _id;\r\n _this._traceLogger = _traceLogger;\r\n _this._timestamp = timestamp;\r\n _this._maxScroll = maxScroll;\r\n return _this;\r\n }\r\n /**\r\n * API to send PageUnload event\r\n * @param pageUnloadEvent - PageUnload event\r\n * @param properties - PageUnload properties(Part C)\r\n */\r\n PageUnload.prototype.trackPageUnload = function (pageUnloadEvent, properties) {\r\n // Get part A properties\r\n var ext = {};\r\n ext[\"web\"] = {};\r\n ext[\"web\"][\"isManual\"] = pageUnloadEvent.isManual;\r\n var event = {\r\n name: \"Ms.Web.PageUnload\",\r\n baseType: \"PageUnloadData\",\r\n ext: ext,\r\n data: {},\r\n baseData: {},\r\n latency: 3 /* EventLatencyValue.RealTime */\r\n };\r\n var config = this._config || {};\r\n if (isUndefined(config.syncUnloadAction) || config.syncUnloadAction) {\r\n // Attempt to send the event immediately without blocking the JS execution\r\n event.sync = 3 /* EventSendType.SyncFetch */;\r\n }\r\n event.baseData[\"name\"] = pageUnloadEvent.name;\r\n event.baseData[\"uri\"] = pageUnloadEvent.uri;\r\n event.baseData[\"id\"] = pageUnloadEvent.id;\r\n event.baseData[\"properties\"] = pageUnloadEvent.properties;\r\n event.baseData[\"ver\"] = pageUnloadEvent.ver;\r\n event.baseData[\"market\"] = pageUnloadEvent.market;\r\n event.baseData[\"pageType\"] = pageUnloadEvent.pageType;\r\n event.baseData[\"isLoggedIn\"] = pageUnloadEvent.isLoggedIn;\r\n objForEachKey(properties, function (property, value) {\r\n if (!event.data[property]) {\r\n event.data[property] = value;\r\n }\r\n });\r\n this._webAnalyticsPlugin.core.track(event);\r\n };\r\n /**\r\n * API to create and send a populated PageUnload event\r\n * @param overrideValues - PageUnload overrides\r\n * @param customProperties - Custom properties(Part C)\r\n */\r\n PageUnload.prototype.capturePageUnload = function (overrideValues, customProperties) {\r\n overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n var event = {};\r\n var properties = isValueAssigned(customProperties) ? customProperties : {};\r\n var scrollHeight = isDocumentObjectAvailable ? document.body.scrollHeight : 0;\r\n this._setBasicProperties(event, overrideValues);\r\n event.isManual = !overrideValues.isAuto;\r\n // Set PartC values\r\n properties.dwellTime = this._timestamp._recordTimeSpan(\"dwellTime\", true);\r\n properties.scrollDepth = overrideValues.scrollDepth || this._maxScroll.v.toString() + \"/\" + scrollHeight.toString();\r\n properties.vpHeight = _getViewportDimensions().h;\r\n properties.vScrollOffset = overrideValues.vScrollOffset || this._maxScroll.v;\r\n if (isWindowObjectAvailable) {\r\n var perf = getPerformance();\r\n var windowPerformanceTiming = perf ? perf.timing : null;\r\n if (windowPerformanceTiming && windowPerformanceTiming.loadEventStart && windowPerformanceTiming.navigationStart) {\r\n if (windowPerformanceTiming.loadEventStart > 0) {\r\n properties.pageLoadTime = windowPerformanceTiming.loadEventStart - windowPerformanceTiming.navigationStart;\r\n }\r\n }\r\n }\r\n this.trackPageUnload(event, properties);\r\n };\r\n return PageUnload;\r\n}(WebEvent));\r\nexport { PageUnload };\r\n//# sourceMappingURL=PageUnload.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* pageView.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { isValueAssigned, safeGetCookieMgr } from \"@microsoft/1ds-core-js\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nimport { _getCookies } from \"../DataCollector\";\r\nvar PageView = /** @class */ (function (_super) {\r\n __extends(PageView, _super);\r\n function PageView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * API to populate and send a PageView event\r\n * @param overrideValues - PageView overrides\r\n * @param customProperties - Custom properties(Part C)\r\n */\r\n PageView.prototype.capturePageView = function (overrideValues, customProperties) {\r\n overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n var pageViewEvent = {};\r\n var properties = isValueAssigned(customProperties) ? customProperties : {};\r\n this._setCommonProperties(pageViewEvent, properties, overrideValues);\r\n // Add pageView fields\r\n pageViewEvent.refUri = isValueAssigned(overrideValues.referrerUri) ? overrideValues.referrerUri : this._config.coreData.referrerUri;\r\n pageViewEvent.isManual = !overrideValues.isAuto;\r\n var cookieMgr = this._webAnalyticsPlugin.core && safeGetCookieMgr(this._webAnalyticsPlugin.core);\r\n var cookiesValue = _getCookies(this._config, cookieMgr, this._traceLogger);\r\n if (cookiesValue) {\r\n properties.cookies = cookiesValue;\r\n }\r\n properties.behavior = this._getBehavior(overrideValues);\r\n this._webAnalyticsPlugin.trackPageView(pageViewEvent, properties);\r\n };\r\n return PageView;\r\n}(WebEvent));\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* PageViewPerformance.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport { isValueAssigned } from \"@microsoft/1ds-core-js\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nvar PageViewPerformance = /** @class */ (function (_super) {\r\n __extends(PageViewPerformance, _super);\r\n function PageViewPerformance() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * API to populate and send a PageViewPerformance event\r\n * @param overrideValues - PageView overrides\r\n * @param customProperties - Custom properties(Part C)\r\n */\r\n PageViewPerformance.prototype.capturePageViewPerformance = function (overrideValues, customProperties) {\r\n overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n var event = {};\r\n var properties = isValueAssigned(customProperties) ? customProperties : {};\r\n this._setBasicProperties(event, overrideValues);\r\n this._setPageTags(event, overrideValues);\r\n event.isManual = !overrideValues.isAuto;\r\n properties.behavior = this._getBehavior(overrideValues);\r\n properties.vpHeight = overrideValues.vpHeight;\r\n properties.vpWidth = overrideValues.vpWidth;\r\n properties.framework = overrideValues.framework;\r\n properties.systemTiming = overrideValues.systemTiming;\r\n properties.customTiming = overrideValues.customTiming;\r\n this._webAnalyticsPlugin._populatePageViewPerformance(event);\r\n this._webAnalyticsPlugin.trackPageViewPerformance(event, properties);\r\n };\r\n return PageViewPerformance;\r\n}(WebEvent));\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* AutoCaptureHandler.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { addPageHideEventListener, addPageUnloadEventListener, createUniqueNamespace, eventOff, eventOn, getDocument, getWindow, mergeEvtNamespace, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/1ds-core-js\";\r\nimport { onDomLoaded } from \"../DataCollector\";\r\nimport { ActionType } from \"../Enums\";\r\nimport { _debounce, _getScrollOffset, _isKeyboardEnter, _isKeyboardSpace, _isLeftClick, _isMiddleClick, _isRightClick } from \"../common/Utils\";\r\nvar clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };\r\nvar AutoCaptureHandler = /** @class */ (function () {\r\n /**\r\n * @param _plugin - WebAnalytics plugin\r\n * @param _logger - Trace logger to log to console.\r\n */\r\n function AutoCaptureHandler(webAnalytics, diagLog) {\r\n var _this = this;\r\n var _plugin;\r\n var _logger;\r\n var _evtNamespace;\r\n var _clickAdded;\r\n var _scrollAdded;\r\n var _maxScrollAdded;\r\n var _resizeAdded;\r\n var _unloadAdded;\r\n var _domLoadedAdded;\r\n dynamicProto(AutoCaptureHandler, this, function (_self) {\r\n // Clears out all local values this is also used during teardown\r\n _initDefaults();\r\n // Assign the values that we want to use\r\n _plugin = webAnalytics;\r\n _logger = diagLog;\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"AutoCaptureHandler\"), _plugin._evtNamespace);\r\n // Re-Exposing as protected properties\r\n _self._analyticsPlugin = _plugin;\r\n _self._traceLogger = _logger;\r\n _self.pageView = function () {\r\n _plugin && _plugin.capturePageView({ isAuto: true });\r\n };\r\n _self.onLoad = function () {\r\n if (_plugin && !_domLoadedAdded) {\r\n onDomLoaded(function () {\r\n _plugin && _plugin.capturePageViewPerformance({ isAuto: true });\r\n _plugin && _plugin.captureContentUpdate({ isAuto: true, isDomComplete: true });\r\n }, _evtNamespace);\r\n _domLoadedAdded = true;\r\n }\r\n };\r\n // handle automatic event firing on user click\r\n _self.click = function () {\r\n if (!_clickAdded) {\r\n var win = getWindow();\r\n var doc = getDocument();\r\n if (win && win.addEventListener) {\r\n // IE9 onwards addEventListener is available, 'click' event captures mouse click. mousedown works on other browsers\r\n var event = (navigator.appVersion.indexOf(\"MSIE\") !== -1) ? \"click\" : \"mousedown\";\r\n eventOn(win, event, _processClick, _evtNamespace);\r\n eventOn(win, \"keyup\", _processClick, _evtNamespace);\r\n }\r\n else if (doc && doc.attachEvent) {\r\n // IE8 and below doesn't have addEventListener so it will use attachEvent\r\n // attaching to window does not work in IE8\r\n eventOn(doc, \"click\", _processClick, _evtNamespace);\r\n eventOn(doc, \"keyup\", _processClick, _evtNamespace);\r\n }\r\n _clickAdded = true;\r\n }\r\n };\r\n // handle automatic event firing on user scroll\r\n _self.scroll = function (debounceConfig) {\r\n if (!_scrollAdded) {\r\n var processScroll = _debounce(\r\n // on first call do nothing\r\n null, \r\n // after debounce, send contentView with viewportOffset\r\n function () {\r\n _plugin && _plugin.captureContentUpdate({ isAuto: true, actionType: ActionType.SCROLL });\r\n }, debounceConfig.scroll, _this);\r\n eventOn(getWindow(), \"scroll\", processScroll, _evtNamespace);\r\n _scrollAdded = true;\r\n }\r\n };\r\n // handle automatic event firing on user scroll\r\n _self.maxScroll = function (maxScroll) {\r\n if (!_maxScrollAdded) {\r\n var getMaxScrollDepth = function () {\r\n var currentScroll = _getScrollOffset();\r\n maxScroll.v = maxScroll.v > currentScroll.v ? maxScroll.v : currentScroll.v;\r\n };\r\n eventOn(getWindow(), \"scroll\", getMaxScrollDepth, _evtNamespace);\r\n _maxScrollAdded = true;\r\n }\r\n };\r\n // handle automatic event firing on user resize\r\n _self.resize = function (debounceConfig) {\r\n /// I wasn't able to repro the bug\r\n /// (https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/7958464)\r\n /// until new content was loaded on the page and the resize\r\n /// rendering became slow. When resize happens, the page rendering\r\n /// time is longer than the resize debounce, and resize render\r\n /// happens in time > debounce, and so resize is acting like\r\n /// it's being done twice: once at the beginning of user resize,\r\n /// one at the end of browser render resize.\r\n if (!_resizeAdded) {\r\n var processResize = _debounce(\r\n // on first call, send resize contentUpdate\r\n function () {\r\n _plugin && _plugin.captureContentUpdate({ isAuto: true, actionType: ActionType.RESIZE });\r\n }, \r\n // after debounce, do nothing\r\n null, debounceConfig.resize, _this);\r\n eventOn(getWindow(), \"resize\", processResize, _evtNamespace);\r\n _resizeAdded = true;\r\n }\r\n };\r\n _self.onUnload = function () {\r\n function _doUnload() {\r\n _plugin && _plugin.capturePageUnload({ isAuto: true });\r\n }\r\n if (!_unloadAdded) {\r\n var coreConfig = ((_plugin || {}).core || {}).config;\r\n var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents;\r\n addPageUnloadEventListener(_doUnload, excludePageUnloadEvents, _evtNamespace);\r\n addPageHideEventListener(_doUnload, excludePageUnloadEvents, _evtNamespace);\r\n _unloadAdded = true;\r\n }\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n eventOff(getWindow(), null, null, _evtNamespace);\r\n eventOff(getDocument(), null, null, _evtNamespace);\r\n removePageUnloadEventListener(null, _evtNamespace);\r\n removePageHideEventListener(null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n _self._processClick = _processClick;\r\n function _processClick(clickEvent) {\r\n var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };\r\n var win = getWindow();\r\n clickEvent = clickEvent || win.event; // IE 8 does not pass the event\r\n var element = clickEvent.srcElement || clickEvent.target;\r\n // populate overrideValues\r\n var overrideValues = {\r\n isAuto: true,\r\n clickCoordinateX: clickEvent.pageX,\r\n clickCoordinateY: clickEvent.pageY\r\n };\r\n var isRightClick = _isRightClick(clickEvent);\r\n if (isRightClick) {\r\n overrideValues.actionType = ActionType.CLICKRIGHT;\r\n }\r\n else if (_isLeftClick(clickEvent)) {\r\n overrideValues.actionType = ActionType.CLICKLEFT;\r\n }\r\n else if (_isKeyboardEnter(clickEvent)) {\r\n overrideValues.actionType = ActionType.KEYBOARDENTER;\r\n }\r\n else if (_isKeyboardSpace(clickEvent)) {\r\n overrideValues.actionType = ActionType.KEYBOARDSPACE;\r\n }\r\n else if (_isMiddleClick(clickEvent)) {\r\n overrideValues.actionType = ActionType.CLICKMIDDLE;\r\n }\r\n else {\r\n return;\r\n }\r\n while (element && element.tagName) {\r\n // control property will be available for