{"version":3,"sources":["webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/SeverityLevel.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/ContextTagKeys.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/W3cTraceParent.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js"],"names":["_FIELDS_SEPARATOR","_FIELD_KEY_VALUE_SEPARATOR","parseConnectionString","connectionString","kvPairs","split","result","fields","kv","kvParts","length","key","toLowerCase","value","endpointsuffix","locationPrefix","location","ingestionendpoint","ConnectionStringParser","parse","DataPoint","this","aiDataContract","name","kind","count","min","max","stdDev","Metric","logger","properties","measurements","ver","metrics","_self","dataPoint","undefined","isNaN","envelopeType","dataType","BaseSendBuffer","config","_buffer","_bufferFullMessageSent","_get","_set","buffer","enqueue","payload","eventsLimitInMem","push","size","lp","emitLineDelimitedJson","clear","getItems","slice","batchPayloads","batch","join","_super","ArraySendBuffer","_this","call","_base","markAsSent","clearSent","SessionStorageSendBuffer","bufferItems","_getBuffer","BUFFER_KEY","notDeliveredItems","SENT_BUFFER_KEY","concat","_removePayloadsFromBuffer","payloads","remaining","prefixedKey","namePrefix","bufferJson","buffer_1","e","exception","_setBuffer","JSON","stringify","MAX_BUFFER_SIZE","sentElements","Array","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","target","field","_extractPartAExtensions","item","env","envTags","tags","itmExt","ext","itmTags","extUser","user","userAuthUserId","authId","userId","id","localId","extApp","app","sessionId","sesId","extDevice","device","deviceId","deviceType","deviceClass","deviceIp","ip","deviceModel","model","web","deviceLanguage","browserLang","deviceBrowserVersion","browserVer","deviceBrowser","browser","envData","data","envBaseData","envProps","domain","isManual","screenRes","userConsent","extOs","os","deviceOS","extTrace","trace","operationParentId","parentID","operationName","operationId","traceID","tgs","i","tg","splice","theTags","internalSdkVersion","EnvelopeCreator","Version","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","telemetryItem","envelope","Envelope","startTime","time","iKey","iKeyNoDashes","replace","EnvelopeCreatorInit","DependencyEnvelopeCreator","customMeasurements","customProperties","bd","method","remoteDepData","RemoteDependencyData","duration","success","responseCode","type","correlationContext","Data","EventEnvelopeCreator","Event","eventName","eventData","ExceptionEnvelopeCreator","exData","Exception","CreateFromInterface","MetricEnvelopeCreator","baseData","props","baseMetricData","average","sampleCount","PageViewEnvelopeCreator","strDuration","currentContextId","url","uri","refUri","pageType","isLoggedIn","toString","pageTags","pageViewData","PageView","PageViewPerformanceEnvelopeCreator","PageViewPerformance","TraceEnvelopeCreator","message","severityLevel","Trace","Serializer","_serializeObject","source","circularReferenceCheck","output","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isArray","isPresent","isObj","sources","map","expectedType","num","parseFloat","serialize","input","_disableEvents","evtNamespace","createOfflineListener","parentEvtNamespace","_document","_navigator","_isListening","_onlineStatus","_evtNamespace","_enableEvents","body","ononline","onLine","enabled","_setOnline","_setOffline","_isOnline","_unload","win","isOnline","isListening","unload","MIN_INPUT_LENGTH","HashCodeScoreGenerator","prototype","getHashCodeScore","score","getHashCode","INT_MAX_VALUE","hash","charCodeAt","Math","abs","SamplingScoreGenerator","hashCodeGenerator","keys","ContextTagKeys","getSamplingScore","telemetryTrace","random","Sample","sampleRate","_logger","throwInternal","samplingRate","samplingScoreGenerator","isSampledIn","samplingPercentage","baseType","FetchSyncRequestSizeLimitBytes","_getResponseText","xhr","responseText","_getDefaultAppInsightsChannelConfig","endpointUrl","maxBatchInterval","maxBatchSizeInBytes","disableTelemetry","enableSessionStorageBuffer","isRetryDisabled","isBeaconApiDisabled","disableXhr","onunloadDisableFetch","onunloadDisableBeacon","instrumentationKey","customHeaders","convertUndefined","EnvelopeTypeCreator","Sender","_consecutiveErrors","_retryAt","_paused","_timeoutHandle","_serializer","_stamp_specific_redirects","_headers","priority","identifier","_senderConfig","_fallbackSender","_syncUnloadSender","_offlineListener","_syncFetchPayload","_isSampledIn","_sample","_checkResponsStatus","status","responseUrl","countOfItemsInPayload","errorMessage","res","response","_appId","_parseResponse","appId","_checkAndUpdateEndPointUrl","_onError","_isRetriable","_resendPayload","diagLog","offlineBackOffMultiplier","_onPartialSuccess","_onSuccess","_doUnloadSend","isAsync","_beaconSender","_doBeaconSend","nav","plainTextBatch","Blob","queued","sendBeacon","droppedPayload","thePayload","_xhrSender","XMLHttpRequest","endPointUrl","open","setRequestHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","headerName","onreadystatechange","_xhrReadyStateChange","onerror","event","_formatErrorMessageXhr","send","_fetchKeepAliveSender","payloadSize","_doFetchSender","_fetchSender","_a","requestHeaders","Headers","batchLength","ignoreResponse","responseHandled","append","init","headers","keepalive","request","Request","fetch","then","ok","text","statusText","error","itemsReceived","itemsAccepted","errors","linearFactor","_i","payload_1","_setRetryTime","_setupTimer","delayInSeconds","SlotDelayInSeconds","backOffSlot","pow","backOffDelay","floor","retryAfterTimeSpan","retryInterval","timerValue","setTimeout","triggerSend","_clearScheduledTimer","clearTimeout","statusCode","_xdrSender","_window","xdr","XDomainRequest","onload","_xdrOnLoad","_formatErrorMessageXdr","hostingProtocol","protocol","lastIndexOf","_getNotifyMgr","func","core","_notifySendRequest","sendRequest","manager","eventsSendRequest","_validateInstrumentationKey","disableIKeyValidationFlag","disableInstrumentationKeyValidation","UUID_Regex","regexp","RegExp","test","_initDefaults","_sender","pause","resume","flush","callBack","sendReason","onunloadFlush","addHeader","initialize","extensions","pluginChain","isInitialized","ctx","_getTelCtx","defaultConfig","getConfig","customHeader","header","senderConfig","sendPostFunc","processTelemetry","itemCtx","SampleRate","defaultEnvelopeIkey","aiEnvelope_1","constructEnvelope","doNotSendItem_1","bufferSize","processNext","readyState","responseURL","async","forcedSender","Date","ieVer","_doTeardown","unloadCtx","unloadState","results","failed","retry","reverse","errors_1","extracted","index","orig","creator","BaseTelemetryPlugin","SeverityLevel","Verbose","Information","Warning","Error","Critical","ConfigurationManager","defaultValue","configValue","extensionConfig","dataSanitizeKeyAndAddUniqueness","origLength","dataSanitizeKey","uniqueField","substring","dsPadNumber","nameTrunc","dataSanitizeString","maxLength","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exceptionTrunc","dataSanitizeProperties","tempProps_1","prop","dataSanitizeMeasurements","tempMeasurements_1","measure","dataSanitizeId","_msgId","inputTrunc","s","substr","DataSanitizer","MAX_NAME_LENGTH","MAX_ID_LENGTH","MAX_PROPERTY_LENGTH","MAX_STRING_LENGTH","MAX_URL_LENGTH","MAX_MESSAGE_LENGTH","MAX_EXCEPTION_LENGTH","sanitizeKeyAndAddUniqueness","sanitizeKey","sanitizeString","sanitizeUrl","sanitizeMessage","sanitizeException","sanitizeProperties","sanitizeMeasurements","sanitizeId","sanitizeInput","padNumber","trim","_internalEndpoints","isInternalApplicationInsightsEndpoint","Util","NotSpecified","createDomEvent","disableStorage","canUseLocalStorage","getStorage","setStorage","removeStorage","canUseSessionStorage","getSessionStorageKeys","getSessionStorage","setSessionStorage","removeSessionStorage","disableCookies","canUseCookies","disallowsSameSiteNone","setCookie","stringToBoolOrDefault","getCookie","deleteCookie","newId","random32","generateW3CId","isError","isDate","toISOStringForIE8","getIEVersion","msToTimeSpan","isCrossOriginError","dump","getExceptionName","addEventHandler","IsBeaconApiSupported","getExtension","UrlHelper","parseUrl","getAbsoluteUrl","getPathName","getCompleteUrl","parseHost","parseFullHost","CorrelationIdHelper","correlationIdPrefix","canIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","host","indexOf","enableCorsCorrelation","matchExists_1","includedDomains","correlationHeaderDomains","regex","excludedDomains","correlationHeaderExcludedDomains","getCorrelationContext","responseHeader","correlationId","getCorrelationContextValue","keyValues","keyValue","AjaxHelperParseDependencyPath","absoluteUrl","commandName","parsedUrl","pathname","pathName","charAt","dateTimeUtilsNow","perf","now","timing","navigationStart","dateTimeUtilsDuration","start","end","DateTimeUtils","Now","GetDuration","StorageType","LocalStorage","SessionStorage","DistributedTracingModes","AI","AI_AND_W3C","W3C","NoMethod","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","theEvent","errorType","evtMessage","_isExceptionDetailsInternal","_isExceptionInternal","_isStackDetails","details","src","obj","_convertStackObj","errorStack","items","_getOperaStack","stack","lines","entry","_getStackFromErrorObj","errorObj","window","_formatStackTrace","stackDetails","_parseStack","parsedStack","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","parsedFrame","sizeInBytes","exceptionParsedStackThreshold","left","right","acceptedLeft","acceptedRight","lSize","rSize","howMany","_getErrorType","typeName","funcNameRegex","exec","constructor","_formatErrorCode","exceptions","problemGroup","_ExceptionDetails","CreateAutoException","lineNumber","columnNumber","evt","errorSrc","ex","exceptionData","toInterface","exceptionDetailsInterface","CreateSimpleException","assembly","fileName","line","hasFullStack","formatError","outerId","exceptionDetails","sourceFrame","level","matches","match","parseInt","baseSize","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","createElement","urlParseHost","href","urlGetAbsoluteUrl","a","urlGetPathName","urlGetCompleteUrl","toUpperCase","inclPort","fullHost","urlParseFullHost","port","DisabledPropertyName","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","strNotSpecified","strIkey","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","doc","createEvent","initEvent","Extensions","UserExt","DeviceExt","TraceExt","WebExt","AppExt","OSExt","SessionExt","SDKExt","CtxTagKeys","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceLocale","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceMachineName","deviceVMName","locationIp","locationCountry","locationProvince","locationCity","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userAgent","userStoreRegion","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalAgentVersion","internalSnippet","internalSdkSrc","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","uid","storage","setItem","fail","getItem","removeItem","_getSessionStorageObject","utlCanUseSessionStorage","utlDisableStorage","utlEnableStorage","reset","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorageKeys","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","createTelemetryItem","envelopeName","systemProperties","TelemetryItemCreator","create","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","len","invalidValue","_formatValue","defValue","_formatFlags","createTraceParent","traceId","spanId","flags","version","isValidTraceId","isValidSpanId","traceFlags","formatTraceParent","strEmpty","str","totalms","round","ms","sec","hour","days","getExtensionByName","extension","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","resultCode","requestAPI","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","durationMs","RequestHeaders","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","requestContextHeaderLowerCase"],"mappings":"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","file":"js/chunk-vendors~b4721254.7b0ee2e5.js","sourcesContent":["/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString.split(_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv.split(_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts.length === 2) { // only save fields with valid formats\r\n var key = kvParts[0].toLowerCase();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result).length > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result.ingestionendpoint = result.ingestionendpoint || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\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 /* Required */,\r\n kind: 0 /* Default */,\r\n value: 1 /* Required */,\r\n count: 0 /* Default */,\r\n min: 0 /* Default */,\r\n max: 0 /* Default */,\r\n stdDev: 0 /* Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { strNotSpecified } from \"../Constants\";\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 /* Required */,\r\n metrics: 1 /* Required */,\r\n properties: 0 /* Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint.count = 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.name = 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.properties = dataSanitizeProperties(logger, properties);\r\n _self.measurements = 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 - Channel, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { getJSON, arrForEach, isFunction, arrIndexOf, isString, dumpObj, isArray, getExceptionName, _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n this._get = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self.enqueue = function (payload) {\r\n if (_self.count() >= config.eventsLimitInMem()) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* WARNING */, 105 /* InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self.count(), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer.push(payload);\r\n };\r\n _self.count = function () {\r\n return _buffer.length;\r\n };\r\n _self.size = function () {\r\n var size = _buffer.length;\r\n for (var lp = 0; lp < _buffer.length; lp++) {\r\n size += _buffer[lp].length;\r\n }\r\n if (!config.emitLineDelimitedJson()) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self.clear = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payload) {\r\n if (payload && payload.length > 0) {\r\n var batch = config.emitLineDelimitedJson() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self.markAsSent = function (payload) {\r\n _base.clear();\r\n };\r\n _self.clearSent = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n var buffer = _self._set(bufferItems.concat(notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, buffer);\r\n _self.enqueue = function (payload) {\r\n if (_self.count() >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* WARNING */, 67 /* SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self.count(), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _base.enqueue(payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\r\n };\r\n _self.clear = function () {\r\n _base.clear();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.markAsSent = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._set(_removePayloadsFromBuffer(payload, _self._get())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* CRITICAL */, 67 /* SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements.length, true);\r\n sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n }\r\n };\r\n _self.clearSent = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n remaining.push(value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = utlGetSessionStorage(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* CRITICAL */, 42 /* FailedToRestoreStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON.stringify(buffer);\r\n utlSetSessionStorage(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n utlSetSessionStorage(logger, prefixedKey, JSON.stringify([]));\r\n _throwInternal(logger, 2 /* WARNING */, 41 /* FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { Data, Envelope, RemoteDependencyData, Event, Exception, Metric, PageView, Trace, PageViewPerformance, CtxTagKeys, HttpMethod, SampleRate, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { hasJSON, getJSON, objForEachKey, isNullOrUndefined, isNumber, isString, toISOString, setValue, isTruthy, optimizeObject, _throwInternal, _warnToConsole } from \"@microsoft/applicationinsights-core-js\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env.tags = env.tags || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item.tags = item.tags || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env.data = env.data || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace.name));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags.length - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = \"javascript:\".concat(EnvelopeCreator.Version);\r\n }\r\n env.tags = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON().stringify(value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem.tags = telemetryItem.tags || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* CRITICAL */, 46 /* TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: \"2.8.3\"\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData.dataType, remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event.dataType) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event.dataType) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData].name;\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event.dataType, eventData);\r\n return _createEnvelope(logger, Event.envelopeType, telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception.dataType, exData);\r\n return _createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData.measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric.dataType, baseMetricData);\r\n return _createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var strDuration = \"duration\";\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][strDuration])) { // from part B properties\r\n duration = baseData[strProperties][strDuration];\r\n delete baseData[strProperties][strDuration];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem.data) &&\r\n !isNullOrUndefined(telemetryItem.data[strDuration])) { // from custom properties\r\n duration = telemetryItem.data[strDuration];\r\n delete telemetryItem.data[strDuration];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {}).traceID) {\r\n currentContextId = telemetryItem.ext.trace.traceID;\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd.name;\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn.toString();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView.dataType, pageViewData);\r\n return _createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd.name;\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance.dataType, baseData);\r\n return _createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData].measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace.dataType, baseData);\r\n return _createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { getJSON, objForEachKey, isFunction, isObject, isArray, _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON().stringify(output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* CRITICAL */, 48 /* CannotSerializeObject */, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* CRITICAL */, 48 /* CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* WARNING */, 50 /* CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* WARNING */, 49 /* CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON().stringify(source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* CRITICAL */, 48 /* CannotSerializeObject */, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* Required */) : (contract & 1 /* Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* Hidden */) : (contract & 4 /* Hidden */);\r\n var isArray = contract & 2 /* Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* CRITICAL */, 24 /* MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* CRITICAL */, 54 /* ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources.length; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output.push(item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value.toString) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value.toString();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { getWindow, getDocument, getNavigator, isUndefined, isNullOrUndefined, createUniqueNamespace, mergeEvtNamespace, eventOn, eventOff } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var _onlineStatus = true;\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n if (_isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator.onLine;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n function _isOnline() {\r\n var result = true;\r\n if (_isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n result = _navigator.onLine;\r\n }\r\n return result;\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n return {\r\n isOnline: _isOnline,\r\n isListening: function () { return _isListening; },\r\n unload: _unload\r\n };\r\n}\r\n//# sourceMappingURL=Offline.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input.length < MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input.length; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { SessionStorageSendBuffer, ArraySendBuffer } from \"./SendBuffer\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { Serializer } from \"./Serializer\"; // todo move to channel\r\nimport { DisabledPropertyName, RequestHeaders, PageView, Event, Trace, Exception, Metric, PageViewPerformance, RemoteDependencyData, ProcessLegacy, BreezeChannelIdentifier, SampleRate, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { getWindow, getNavigator, getJSON, BaseTelemetryPlugin, objForEachKey, isNullOrUndefined, arrForEach, dateNow, dumpObj, getExceptionName, getIEVersion, objKeys, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported, isArray, createUniqueNamespace, mergeEvtNamespace, _throwInternal, _warnToConsole } from \"@microsoft/applicationinsights-core-js\";\r\nimport { createOfflineListener } from \"./Offline\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction _getDefaultAppInsightsChannelConfig() {\r\n // set default values\r\n return {\r\n endpointUrl: function () { return \"https://dc.services.visualstudio.com/v2/track\"; },\r\n emitLineDelimitedJson: function () { return false; },\r\n maxBatchInterval: function () { return 15000; },\r\n maxBatchSizeInBytes: function () { return 102400; },\r\n disableTelemetry: function () { return false; },\r\n enableSessionStorageBuffer: function () { return true; },\r\n isRetryDisabled: function () { return false; },\r\n isBeaconApiDisabled: function () { return true; },\r\n disableXhr: function () { return false; },\r\n onunloadDisableFetch: function () { return false; },\r\n onunloadDisableBeacon: function () { return false; },\r\n instrumentationKey: function () { return undefined; },\r\n namePrefix: function () { return undefined; },\r\n samplingPercentage: function () { return 100; },\r\n customHeaders: function () { return undefined; },\r\n convertUndefined: function () { return undefined; },\r\n eventsLimitInMem: function () { return 10000; }\r\n };\r\n}\r\nvar EnvelopeTypeCreator = (_a = {},\r\n _a[Event.dataType] = EventEnvelopeCreator,\r\n _a[Trace.dataType] = TraceEnvelopeCreator,\r\n _a[PageView.dataType] = PageViewEnvelopeCreator,\r\n _a[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _a[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _a[Metric.dataType] = MetricEnvelopeCreator,\r\n _a[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _a);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n /**\r\n * The configuration for this sender instance\r\n */\r\n _this._senderConfig = _getDefaultAppInsightsChannelConfig();\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _fallbackSender; // The sender to use if the payload size is too large\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n if (_self._buffer.size() > _self._senderConfig.maxBatchSizeInBytes()) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n _self.triggerSend(isAsync, null, sendReason || 1 /* ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self.diagLog(), 1 /* CRITICAL */, 22 /* FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && isBeaconsSupported()) {\r\n try {\r\n _self.triggerSend(true, _doUnloadSend, 2 /* Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self.diagLog(), 1 /* CRITICAL */, 20 /* FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush();\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self.diagLog(), 1 /* CRITICAL */, 28 /* SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self._sender = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self.diagLog();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n var defaultConfig = _getDefaultAppInsightsChannelConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _self._buffer = (_self._senderConfig.enableSessionStorageBuffer() && utlCanUseSessionStorage())\r\n ? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);\r\n _self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);\r\n if (!_validateInstrumentationKey(config)) {\r\n _throwInternal(diagLog, 1 /* CRITICAL */, 100 /* InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + config.instrumentationKey);\r\n }\r\n if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {\r\n arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n var senderConfig = _self._senderConfig;\r\n var sendPostFunc = null;\r\n if (!senderConfig.disableXhr() && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig.disableXhr() && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig.isBeaconApiDisabled() && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self._sender = sendPostFunc || _xhrSender;\r\n if (!senderConfig.onunloadDisableFetch() && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig.disableXhr() && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig.disableXhr() && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_self._senderConfig.disableTelemetry()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n _throwInternal(itemCtx.diagLog(), 1 /* CRITICAL */, 7 /* CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem.baseType) {\r\n _throwInternal(itemCtx.diagLog(), 1 /* CRITICAL */, 70 /* InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem.baseType) {\r\n // Default\r\n telemetryItem.baseType = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self._sender) {\r\n _throwInternal(itemCtx.diagLog(), 1 /* CRITICAL */, 28 /* SenderNotInitialized */, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n _throwInternal(itemCtx.diagLog(), 2 /* WARNING */, 33 /* TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample.sampleRate });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample.sampleRate;\r\n }\r\n var convertUndefined = _self._senderConfig.convertUndefined() || undefined;\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);\r\n if (!aiEnvelope_1) {\r\n _throwInternal(itemCtx.diagLog(), 1 /* CRITICAL */, 47 /* CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem.tags && telemetryItem.tags[ProcessLegacy]) {\r\n arrForEach(telemetryItem.tags[ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n _warnToConsole(itemCtx.diagLog(), \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(itemCtx.diagLog(), 1 /* CRITICAL */, 64 /* TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem.tags[ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self._buffer;\r\n var bufferSize = buffer.size();\r\n if ((bufferSize + payload.length) > _self._senderConfig.maxBatchSizeInBytes()) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n // enqueue the payload\r\n buffer.enqueue(payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(itemCtx.diagLog(), 2 /* WARNING */, 12 /* FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n if (!_paused) {\r\n try {\r\n var buffer = _self._buffer;\r\n // Send data only if disableTelemetry is false\r\n if (!_self._senderConfig.disableTelemetry()) {\r\n if (buffer.count() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(_this, payload, async);\r\n }\r\n else {\r\n _self._sender(payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer.clear();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self.diagLog(), 1 /* CRITICAL */, 40 /* TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n _offlineListener.unload();\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self._onError = function (payload, message, event) {\r\n _throwInternal(_self.diagLog(), 2 /* WARNING */, 26 /* OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self._onPartialSuccess = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry.push(extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed.push(extracted);\r\n }\r\n }\r\n if (payload.length > 0) {\r\n _self._onSuccess(payload, results.itemsAccepted);\r\n }\r\n if (failed.length > 0) {\r\n _self._onError(failed, _formatErrorMessageXhr(null, [\"partial success\", results.itemsAccepted, \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry.length > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self.diagLog(), 2 /* WARNING */, 40 /* TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload.length + \", Failed: \" + failed.length +\r\n \". Will retry to send \" + retry.length + \" our of \" + results.itemsReceived + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self._onSuccess = function (payload, countOfItemsInPayload) {\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, results);\r\n }\r\n else {\r\n _self._onError(payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self._onError(payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self.diagLog(), 2 /* WARNING */, 40 /* TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload.length + \" items.\");\r\n }\r\n else {\r\n _self._onError(payload, errorMessage);\r\n }\r\n }\r\n else if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_self._senderConfig.isRetryDisabled()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self.diagLog(), 2 /* WARNING */, 40 /* TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = _parseResponse(res);\r\n }\r\n if (response && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, response);\r\n }\r\n else {\r\n _self._onError(payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _self._senderConfig.endpointUrl()) {\r\n _self._senderConfig.endpointUrl = function () { return responseUrl; };\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self._buffer;\r\n var url = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n buffer.markAsSent(payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload.length);\r\n }\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, isAsync) {\r\n if (isArray(payload) && payload.length > 0) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload)) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < payload.length; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload.push(thePayload);\r\n }\r\n }\r\n if (droppedPayload.length > 0) {\r\n _fallbackSender && _fallbackSender(droppedPayload, true);\r\n _throwInternal(_self.diagLog(), 2 /* WARNING */, 40 /* TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr.setRequestHeader(headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload.length); };\r\n xhr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXhr(xhr), event); };\r\n // compose an array of payloads\r\n var batch = _self._buffer.batchPayloads(payload);\r\n xhr.send(batch);\r\n _self._buffer.markAsSent(payload);\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n if (isArray(payload)) {\r\n var payloadSize = payload.length;\r\n for (var lp = 0; lp < payload.length; lp++) {\r\n payloadSize += payload[lp].length;\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, true);\r\n _throwInternal(_self.diagLog(), 2 /* WARNING */, 40 /* TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n */\r\n function _fetchSender(payload, isAsync) {\r\n _doFetchSender(payload, true);\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n var plainTextBatch = new Blob([batch], { type: \"application/json\" });\r\n var requestHeaders = new Headers();\r\n var batchLength = batch.length;\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n if (!isAsync) {\r\n init.keepalive = true;\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n _syncFetchPayload += batchLength;\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n _self._buffer.markAsSent(payload);\r\n try {\r\n fetch(request).then(function (response) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!response.ok) {\r\n _self._onError(payload, response.statusText);\r\n }\r\n else {\r\n response.text().then(function (text) {\r\n _checkResponsStatus(response.status, payload, response.url, payload.length, response.statusText, text);\r\n });\r\n }\r\n }\r\n })[\"catch\"](function (error) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n _self._onError(payload, error.message);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _self._onError(payload, dumpObj(e));\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _self._onSuccess(payload, payload.length);\r\n }\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors.length) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_self.diagLog(), 1 /* CRITICAL */, 43 /* InvalidBackendResponse */, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload.length === 0) {\r\n return;\r\n }\r\n var buffer = _self._buffer;\r\n buffer.clearSent(payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n buffer.enqueue(item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_self._senderConfig.maxBatchInterval(), retryInterval);\r\n _timeoutHandle = setTimeout(function () {\r\n _timeoutHandle = null;\r\n _self.triggerSend(true, null, 1 /* NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n clearTimeout(_timeoutHandle);\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 503; // Service unavailable.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, isAsync) {\r\n var buffer = _self._buffer;\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _throwInternal(_self.diagLog(), 2 /* WARNING */, 40 /* TransmissionFailed */, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer.clear();\r\n return;\r\n }\r\n var endpointUrl = _self._senderConfig.endpointUrl().replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer.batchPayloads(payload);\r\n xdr.send(batch);\r\n buffer.markAsSent(payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager.eventsSendRequest) {\r\n try {\r\n manager.eventsSendRequest(sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self.diagLog(), 1 /* CRITICAL */, 74 /* NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(config) {\r\n var disableIKeyValidationFlag = isNullOrUndefined(config.disableInstrumentationKeyValidation) ? false : config.disableInstrumentationKeyValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(config.instrumentationKey);\r\n }\r\n function _initDefaults() {\r\n _self._sender = null;\r\n _self._buffer = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _fallbackSender = null;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self.getSamplingScore = function (item) {\r\n var score = 0;\r\n if (item.tags && item.tags[keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.user.id);\r\n }\r\n else if (item.tags && item.tags[keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace.traceID);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* WARNING */, 58 /* SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this.sampleRate = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this.sampleRate; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric.dataType) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel = createEnumStyle({\r\n Verbose: 0 /* Verbose */,\r\n Information: 1 /* Information */,\r\n Warning: 2 /* Warning */,\r\n Error: 3 /* Error */,\r\n Critical: 4 /* Critical */\r\n});\r\n//# sourceMappingURL=SeverityLevel.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nvar ConfigurationManager = /** @class */ (function () {\r\n function ConfigurationManager() {\r\n }\r\n ConfigurationManager.getConfig = function (config, field, identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var configValue;\r\n if (identifier && config.extensionConfig && config.extensionConfig[identifier] && !isNullOrUndefined(config.extensionConfig[identifier][field])) {\r\n configValue = config.extensionConfig[identifier][field];\r\n }\r\n else {\r\n configValue = config[field];\r\n }\r\n return !isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n };\r\n return ConfigurationManager;\r\n}());\r\nexport { ConfigurationManager };\r\n//# sourceMappingURL=IConfig.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { hasJSON, getJSON, objForEachKey, isObject, strTrim, _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key.length;\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field.length !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field.substring(0, 150 /* 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(name.toString());\r\n // truncate the string to 150 chars\r\n if (name.length > 150 /* MAX_NAME_LENGTH */) {\r\n nameTrunc = name.substring(0, 150 /* MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* WARNING */, 57 /* NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* 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 /* MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(value);\r\n if (value.toString().length > maxLength) {\r\n valueTrunc = value.toString().substring(0, maxLength);\r\n _throwInternal(logger, 2 /* WARNING */, 61 /* 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 /* MAX_URL_LENGTH */, 66 /* UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message.length > 32768 /* MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = message.substring(0, 32768 /* MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* WARNING */, 56 /* MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* 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.length > 32768 /* MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = value.substring(0, 32768 /* MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* WARNING */, 52 /* ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* 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().stringify(value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* WARNING */, 49 /* CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* 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 /* MAX_ID_LENGTH */, 69 /* IdTooLong */).toString() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(input);\r\n if (input.length > maxLength) {\r\n inputTrunc = input.substring(0, maxLength);\r\n _throwInternal(logger, 2 /* 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 s.substr(s.length - 3);\r\n}\r\n/**\r\n * Provides the DataSanitizer functions within the previous namespace.\r\n */\r\nexport var DataSanitizer = {\r\n MAX_NAME_LENGTH: 150 /* MAX_NAME_LENGTH */,\r\n MAX_ID_LENGTH: 128 /* MAX_ID_LENGTH */,\r\n MAX_PROPERTY_LENGTH: 8192 /* MAX_PROPERTY_LENGTH */,\r\n MAX_STRING_LENGTH: 1024 /* MAX_STRING_LENGTH */,\r\n MAX_URL_LENGTH: 2048 /* MAX_URL_LENGTH */,\r\n MAX_MESSAGE_LENGTH: 32768 /* MAX_MESSAGE_LENGTH */,\r\n MAX_EXCEPTION_LENGTH: 32768 /* MAX_EXCEPTION_LENGTH */,\r\n sanitizeKeyAndAddUniqueness: dataSanitizeKeyAndAddUniqueness,\r\n sanitizeKey: dataSanitizeKey,\r\n sanitizeString: dataSanitizeString,\r\n sanitizeUrl: dataSanitizeUrl,\r\n sanitizeMessage: dataSanitizeMessage,\r\n sanitizeException: dataSanitizeException,\r\n sanitizeProperties: dataSanitizeProperties,\r\n sanitizeMeasurements: dataSanitizeMeasurements,\r\n sanitizeId: dataSanitizeId,\r\n sanitizeInput: dataSanitizeInput,\r\n padNumber: dsPadNumber,\r\n trim: strTrim\r\n};\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeMessage, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\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 /* Required */,\r\n message: 1 /* Required */,\r\n severityLevel: 0 /* Default */,\r\n properties: 0 /* Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self.message = dataSanitizeMessage(logger, message);\r\n _self.properties = dataSanitizeProperties(logger, properties);\r\n _self.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self.severityLevel = 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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getPerformance, getExceptionName as coreGetExceptionName, dumpObj, isNullOrUndefined, strTrim, random32, isArray, isError, isDate, newId, generateW3CId, toISOString, arrForEach, getIEVersion, attachEvent, dateNow, uaDisallowsSameSiteNone, disableCookies as coreDisableCookies, canUseCookies as coreCanUseCookies, getCookie as coreGetCookie, setCookie as coreSetCookie, deleteCookie as coreDeleteCookie, isBeaconsSupported, arrIndexOf } from \"@microsoft/applicationinsights-core-js\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { createDomEvent } from \"./DomHelperFuncs\";\r\nimport { stringToBoolOrDefault, msToTimeSpan, isCrossOriginError, getExtensionByName } from \"./HelperFuncs\";\r\nimport { strNotSpecified } from \"./Constants\";\r\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlGetLocalStorage, utlRemoveSessionStorage, utlRemoveStorage, utlSetSessionStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n \"https://dc.services.visualstudio.com/v2/track\",\r\n \"https://breeze.aimon.applicationinsights.io/v2/track\",\r\n \"https://dc-int.services.visualstudio.com/v2/track\"\r\n];\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl.toLowerCase()) !== -1;\r\n}\r\nexport var Util = {\r\n NotSpecified: strNotSpecified,\r\n createDomEvent: createDomEvent,\r\n disableStorage: utlDisableStorage,\r\n isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\r\n canUseLocalStorage: utlCanUseLocalStorage,\r\n getStorage: utlGetLocalStorage,\r\n setStorage: utlSetLocalStorage,\r\n removeStorage: utlRemoveStorage,\r\n canUseSessionStorage: utlCanUseSessionStorage,\r\n getSessionStorageKeys: utlGetSessionStorageKeys,\r\n getSessionStorage: utlGetSessionStorage,\r\n setSessionStorage: utlSetSessionStorage,\r\n removeSessionStorage: utlRemoveSessionStorage,\r\n disableCookies: coreDisableCookies,\r\n canUseCookies: coreCanUseCookies,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: coreSetCookie,\r\n stringToBoolOrDefault: stringToBoolOrDefault,\r\n getCookie: coreGetCookie,\r\n deleteCookie: coreDeleteCookie,\r\n trim: strTrim,\r\n newId: newId,\r\n random32: function () {\r\n return random32(true);\r\n },\r\n generateW3CId: generateW3CId,\r\n isArray: isArray,\r\n isError: isError,\r\n isDate: isDate,\r\n toISOStringForIE8: toISOString,\r\n getIEVersion: getIEVersion,\r\n msToTimeSpan: msToTimeSpan,\r\n isCrossOriginError: isCrossOriginError,\r\n dump: dumpObj,\r\n getExceptionName: coreGetExceptionName,\r\n addEventHandler: attachEvent,\r\n IsBeaconApiSupported: isBeaconsSupported,\r\n getExtension: getExtensionByName\r\n};\r\nexport var UrlHelper = {\r\n parseUrl: urlParseUrl,\r\n getAbsoluteUrl: urlGetAbsoluteUrl,\r\n getPathName: urlGetPathName,\r\n getCompleteUrl: urlGetCompleteUrl,\r\n parseHost: urlParseHost,\r\n parseFullHost: urlParseFullHost\r\n};\r\nexport var CorrelationIdHelper = {\r\n correlationIdPrefix: \"cid-v1:\",\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\n canIncludeCorrelationHeader: function (config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config.correlationHeaderExcludePatterns) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns.length; i++) {\r\n if (config.correlationHeaderExcludePatterns[i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host.toLowerCase();\r\n if (requestHost && (requestHost.indexOf(\":443\") !== -1 || requestHost.indexOf(\":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) || \"\").toLowerCase();\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.length === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains.length; 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.length > 0;\r\n },\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n getCorrelationContext: function (responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders[1 /* requestContextTargetKey */]);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n },\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n getCorrelationContextValue: function (responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader.split(\",\");\r\n for (var i = 0; i < keyValues.length; ++i) {\r\n var keyValue = keyValues[i].split(\"=\");\r\n if (keyValue.length === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\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.length > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl.pathname != null) {\r\n var pathName = (parsedUrl.pathname.length === 0) ? \"/\" : parsedUrl.pathname;\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl.pathname;\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 * A utility class that helps getting time related parameters\r\n */\r\nexport var DateTimeUtils = {\r\n Now: dateTimeUtilsNow,\r\n GetDuration: dateTimeUtilsDuration\r\n};\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\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 /* LocalStorage */,\r\n SessionStorage: 1 /* SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* AI */,\r\n AI_AND_W3C: 1 /* AI_AND_W3C */,\r\n W3C: 2 /* W3C */\r\n});\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nimport { isNullOrUndefined, arrMap, isString, strTrim, isArray, isError, arrForEach, isObject, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../Constants\";\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.stringify) {\r\n result = JSON.stringify(value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value.toString)) {\r\n result = value.toString();\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\" && (evtMessage || \"\").indexOf(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.split(\"\\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.split(\"\\n\");\r\n for (var lp = 0; lp < lines.length; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj.message);\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.length > 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.toString();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame.sizeInBytes;\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack.length - 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].sizeInBytes;\r\n var rSize = parsedStack[right].sizeInBytes;\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.name || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor.toString());\r\n typeName = (results && results.length > 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 (result.indexOf(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 /* Required */,\r\n exceptions: 1 /* Required */,\r\n severityLevel: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _self.exceptions = [new _ExceptionDetails(logger, exception, properties)];\r\n _self.properties = dataSanitizeProperties(logger, properties);\r\n _self.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self.severityLevel = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self.exceptions = exception.exceptions || [];\r\n _self.properties = exception.properties;\r\n _self.measurements = exception.measurements;\r\n if (exception.severityLevel) {\r\n _self.severityLevel = exception.severityLevel;\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n }\r\n if (exception.problemGroup) {\r\n _self.problemGroup = exception.problemGroup;\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception.isManual)) {\r\n _self.isManual = exception.isManual;\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var errorType = _getErrorType(error || evt || message);\r\n return {\r\n message: _formatMessage(message, errorType),\r\n url: url,\r\n lineNumber: lineNumber,\r\n columnNumber: columnNumber,\r\n error: _formatErrorCode(error || evt || message),\r\n evt: _formatErrorCode(evt || message),\r\n typeName: errorType,\r\n stackDetails: _getStackFromErrorObj(stack || error || evt),\r\n errorSrc: errorSrc\r\n };\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception.exceptions\r\n && arrMap(exception.exceptions, function (ex) { return _ExceptionDetails.CreateFromInterface(logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a = this, exceptions = _a.exceptions, properties = _a.properties, measurements = _a.measurements, severityLevel = _a.severityLevel, problemGroup = _a.problemGroup, id = _a.id, isManual = _a.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return {\r\n ver: \"4.0\",\r\n exceptions: exceptionDetailsInterface,\r\n severityLevel: severityLevel,\r\n properties: properties,\r\n measurements: measurements,\r\n problemGroup: problemGroup,\r\n id: id,\r\n isManual: isManual\r\n };\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n return {\r\n exceptions: [\r\n {\r\n hasFullStack: true,\r\n message: message,\r\n stack: details,\r\n typeName: typeName\r\n }\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 /* Default */,\r\n outerId: 0 /* Default */,\r\n typeName: 1 /* Required */,\r\n message: 1 /* Required */,\r\n hasFullStack: 0 /* Default */,\r\n stack: 0 /* Default */,\r\n parsedStack: 2 /* 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.typeName = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self.message = dataSanitizeMessage(logger, _formatMessage(exception || error, _self.typeName)) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self.parsedStack = _parseStack(stack);\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack.length > 0;\r\n if (properties) {\r\n properties.typeName = properties.typeName || _self.typeName;\r\n }\r\n }\r\n else {\r\n _self.typeName = exception.typeName;\r\n _self.message = exception.message;\r\n _self[strStack] = exception[strStack];\r\n _self.parsedStack = exception.parsedStack || [];\r\n _self.hasFullStack = exception.hasFullStack;\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _self = this;\r\n var parsedStack = _self.parsedStack instanceof Array\r\n && arrMap(_self.parsedStack, function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self.typeName,\r\n message: _self.message,\r\n hasFullStack: _self.hasFullStack,\r\n stack: _self[strStack],\r\n parsedStack: parsedStack || undefined\r\n };\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception.parsedStack instanceof Array\r\n && arrMap(exception.parsedStack, function (frame) { return _StackFrame.CreateFromInterface(frame); }))\r\n || exception.parsedStack;\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 /* Required */,\r\n method: 1 /* Required */,\r\n assembly: 0 /* Default */,\r\n fileName: 0 /* Default */,\r\n line: 0 /* Default */\r\n };\r\n var _self = this;\r\n _self.sizeInBytes = 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.level = level;\r\n _self.method = NoMethod;\r\n _self.assembly = strTrim(frame);\r\n _self.fileName = \"\";\r\n _self.line = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches.length >= 5) {\r\n _self.method = strTrim(matches[2]) || _self.method;\r\n _self.fileName = strTrim(matches[4]);\r\n _self.line = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self.level = sourceFrame.level;\r\n _self.method = sourceFrame.method;\r\n _self.assembly = sourceFrame.assembly;\r\n _self.fileName = sourceFrame.fileName;\r\n _self.line = sourceFrame.line;\r\n _self.sizeInBytes = 0;\r\n }\r\n _self.sizeInBytes += _self.method.length;\r\n _self.sizeInBytes += _self.fileName.length;\r\n _self.sizeInBytes += _self.assembly.length;\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self.sizeInBytes += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString().length;\r\n _self.sizeInBytes += _self.line.toString().length;\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.level,\r\n method: _self.method,\r\n assembly: _self.assembly,\r\n fileName: _self.fileName,\r\n line: _self.line\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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\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.length) {\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.pathname;\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[0-9]?\\.)?(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 3 && isString(match[2]) && match[2].length > 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*):\\/\\/(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 2 && isString(match[2]) && match[2].length > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match.length > 2) {\r\n var protocol = (match[1] || \"\").toLowerCase();\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, 2.8.3\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 strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\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 /* Required */,\r\n name: 0 /* Default */,\r\n url: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n perfTotal: 0 /* Default */,\r\n networkConnect: 0 /* Default */,\r\n sentRequest: 0 /* Default */,\r\n receivedResponse: 0 /* Default */,\r\n domProcessing: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.properties = dataSanitizeProperties(logger, properties);\r\n _self.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self.duration = cs4BaseData.duration;\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self.receivedResponse = cs4BaseData.receivedResponse;\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isFunction, getDocument } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey, _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date).toString();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n storage.setItem(uid, uid);\r\n var fail = storage.getItem(uid) !== uid;\r\n storage.removeItem(uid);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* WARNING */, 1 /* 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 /* WARNING */, 3 /* 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.removeItem(name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* WARNING */, 5 /* BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* WARNING */, 2 /* 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 /* WARNING */, 4 /* 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.removeItem(name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* WARNING */, 6 /* 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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* Required */,\r\n iKey: 1 /* Required */,\r\n name: 1 /* Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* Hidden */ : 1 /* Required */;\r\n },\r\n tags: 1 /* Required */,\r\n data: 1 /* Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* Required */,\r\n baseData: 1 /* Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { objForEachKey, isNullOrUndefined, toISOString, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified, strIkey } from \"./Constants\";\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 envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = {\r\n name: envelopeName,\r\n time: toISOString(new Date()),\r\n iKey: iKey,\r\n ext: systemProperties ? systemProperties : {},\r\n tags: [],\r\n data: {},\r\n baseType: baseType,\r\n baseData: item // Part B\r\n };\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. 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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { generateW3CId, getDocument, getPerformance, isArray, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\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]*)?$/;\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.length === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/);\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.length < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\nfunction _getTraceParentValue(values) {\r\n if (values) {\r\n for (var i = 0; i < values.length; i++) {\r\n var value = values[i];\r\n if (value.name) {\r\n if (value.name === \"traceparent\") {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n return {\r\n version: _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n traceId: isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n spanId: isValidSpanId(spanId) ? spanId : generateW3CId().substr(0, 16),\r\n traceFlags: flags >= 0 && flags <= 0xFF ? flags : 1\r\n };\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value\r\n * @returns\r\n */\r\nexport function parseTraceParent(value) {\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.length > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return {\r\n version: match[1],\r\n traceId: match[2],\r\n spanId: match[3],\r\n traceFlags: parseInt(match[4], 16)\r\n };\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value.version, 2, INVALID_VERSION) ||\r\n !_isValid(value.traceId, 32, INVALID_TRACE_ID) ||\r\n !_isValid(value.spanId, 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value.traceFlags), 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.traceFlags & 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.traceFlags);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value.version || 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, \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID), \"-\").concat(flags);\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @returns\r\n */\r\nexport function findW3cTraceParent() {\r\n var traceParent;\r\n var doc = getDocument();\r\n if (doc) {\r\n // Look for a meta-tag called \"traceparent\"\r\n traceParent = parseTraceParent(_getTraceParentValue(doc.querySelectorAll(\"meta\")).content);\r\n }\r\n if (!traceParent) {\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 traceParent = parseTraceParent(_getTraceParentValue((navPerf.length > 0 ? navPerf[0] : {}).serverTiming).description);\r\n }\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\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().toLowerCase() === \"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.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\r\n sec = sec.length < 2 ? \"0\" + sec : sec;\r\n min = min.length < 2 ? \"0\" + min : min;\r\n hour = hour.length < 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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint } from \"./Util\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, 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 { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport { createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"./W3cTraceParent\";\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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\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 /* Required */,\r\n name: 1 /* Required */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.properties = dataSanitizeProperties(logger, properties);\r\n _self.measurements = 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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\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 /* Required */,\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n resultCode: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n success: 0 /* Default */,\r\n data: 0 /* Default */,\r\n target: 0 /* Default */,\r\n type: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */,\r\n kind: 0 /* Default */,\r\n value: 0 /* Default */,\r\n count: 0 /* Default */,\r\n min: 0 /* Default */,\r\n max: 0 /* Default */,\r\n stdDev: 0 /* Default */,\r\n dependencyKind: 0 /* Default */,\r\n dependencySource: 0 /* Default */,\r\n commandName: 0 /* Default */,\r\n dependencyTypeName: 0 /* Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self.duration = 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.name = dataSanitizeString(logger, dependencyFields.name);\r\n _self.properties = dataSanitizeProperties(logger, properties);\r\n _self.measurements = 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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { strNotSpecified } from \"../Constants\";\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 /* Required */,\r\n name: 0 /* Default */,\r\n url: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */,\r\n id: 0 /* 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.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self.duration = msToTimeSpan(durationMs);\r\n }\r\n _self.properties = dataSanitizeProperties(logger, properties);\r\n _self.measurements = 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, 2.8.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map"],"sourceRoot":""}