{"version":3,"sources":["webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.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/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/TraceParent.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","webpack:///./node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/ApplicationInsights.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Domain.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ContextTagKeys.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Data.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Base.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/EventData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/RemoteDependencyData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/SeverityLevel.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPointType.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MetricData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPoint.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-common/dist-esm/Interfaces/Contracts/Generated/StackFrame.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionDetails.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MessageData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewPerfData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Envelope.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js"],"names":["DataSanitizer","sanitizeKeyAndAddUniqueness","logger","key","map","origLength","length","field","sanitizeKey","i","uniqueField","undefined","substring","MAX_NAME_LENGTH","padNumber","name","nameTrunc","trim","toString","throwInternal","WARNING","NameTooLong","sanitizeString","value","maxLength","valueTrunc","MAX_STRING_LENGTH","StringValueTooLong","sanitizeUrl","url","sanitizeInput","MAX_URL_LENGTH","UrlTooLong","sanitizeMessage","message","messageTrunc","MAX_MESSAGE_LENGTH","MessageTruncated","sanitizeException","exception","exceptionTrunc","MAX_EXCEPTION_LENGTH","ExceptionTruncated","sanitizeProperties","properties","tempProps","prop","JSON","stringify","e","CannotSerializeObjectNonSerializable","MAX_PROPERTY_LENGTH","sanitizeMeasurements","measurements","tempMeasurements","measure","sanitizeId","id","MAX_ID_LENGTH","IdTooLong","input","_msgId","inputTrunc","data","num","s","substr","str","replace","EventsDiscardedReason","NotificationManager","this","listeners","prototype","addNotificationListener","listener","push","removeNotificationListener","index","indexOf","splice","eventsSent","events","_this","_loop_1","this_1","setTimeout","eventsDiscarded","reason","_loop_2","this_2","_InternalLogMessage","msgId","msg","isUserAct","messageId","AiUserActionablePrefix","AiNonUserActionablePrefix","diagnosticText","sanitizeDiagnosticText","text","dataType","DiagnosticLogger","config","AIInternalMessagePrefix","enableDebugExceptions","consoleLoggingLevel","telemetryLoggingLevel","maxInternalMessageLimit","queue","_messageCount","_messageLogged","CoreUtils","isNullOrUndefined","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","severity","messageKey","warnToConsole","logInternalMessage","console","warn","log","resetInternalMessageCount","_areInternalMessagesThrottled","logMessage","throttleLimitMessage","throttleMessage","MessageLimitPerPVExceeded","ChannelControllerPriority","ChannelController","identifier","priority","processTelemetry","item","channelQueue","forEach","queues","Object","defineProperty","get","enumerable","configurable","initialize","core","extensions","isCookieUseDisabled","disableCookies","Array","channels","invalidChannelIdentifier_1","sort","a","b","setNextPlugin","queueItem","Error","arr","plugin","AppInsightsCore","_isInitialized","_extensions","_channelController","instrumentationKey","_notificationManager","extensionConfig","_a","apply","concat","extension","isValid","extA","extB","typeExtA","typeExtB","ext","t","c","idx","curr","getTransmissionControls","ChannelControls","track","telemetryItem","_notifyInvalidEvent","iKey","time","Date","toISOString","ver","_validateTelmetryItem","pollInternalLogs","interval","diagnosticLogInterval","setInterval","baseType","baseData","ArraySendBuffer","_config","_buffer","enqueue","payload","count","clear","getItems","slice","batchPayloads","emitLineDelimitedJson","join","markAsSent","clearSent","SessionStorageSendBuffer","_bufferFullMessageSent","_logger","bufferItems","getBuffer","BUFFER_KEY","notDeliveredItems","SENT_BUFFER_KEY","MAX_BUFFER_SIZE","setBuffer","SessionStorageBufferFull","removePayloadsFromBuffer","sentElements","CRITICAL","payloads","buffer","remaining","contains","j","prefixedKey","namePrefix","bufferJson","Util","getSessionStorage","parse","FailedToRestoreStorageBuffer","getExceptionName","dump","setSessionStorage","FailedToSetStorageBuffer","EnvelopeCreator","extractProperties","customProperties","hasOwnProperty","extractPropsAndMeasurements","createEnvelope","envelopeType","envelope","Envelope","iKeyNoDashes","extractPartAExtensions","tags","env","user","authId","userAuthUserId","userId","localId","app","sesId","sessionId","device","deviceId","deviceClass","deviceType","ip","deviceIp","web","browserLang","deviceLanguage","browserVer","deviceBrowserVersion","browser","deviceBrowser","domain","isManual","screenRes","userConsent","model","deviceModel","os","deviceOS","trace","parentID","operationParentId","operationName","traceID","operationId","tgs","tg","keys","internalSdkVersion","Version","_super","DependencyEnvelopeCreator","arguments","Create","TelemetryEnvelopeInvalid","customMeasurements","bd","absoluteUrl","target","command","duration","success","resultCode","responseCode","requestAPI","type","method","RemoteDependencyData","Data","EventEnvelopeCreator","Event","eventName","ExceptionEnvelopeCreator","Exception","CreateFromInterface","MetricEnvelopeCreator","props","average","sampleCount","min","max","Metric","PageViewEnvelopeCreator","currentContextId","uri","refUri","pageType","isLoggedIn","pageTags","PageView","PageViewPerformanceEnvelopeCreator","PageViewPerformance","TraceEnvelopeCreator","severityLevel","Trace","Serializer","serialize","output","_serializeObject","source","CannotSerializeObject","CircularReferenceDetected","aiDataContract","_serializeStringMap","isArray","_serializeArray","contract","isRequired","Required","isHidden","Hidden","isPresent","isObject","MissingRequiredFieldSpecification","sources","ItemNotInArray","expectedType","parseFloat","isNaN","Offline","OfflineListener","_onlineStatus","window","isListening","addEventListener","_setOnline","bind","_setOffline","document","body","ononline","onoffline","isOnline","navigator","onLine","isOffline","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","MIN_INPUT_LENGTH","hash","charCodeAt","Math","abs","SamplingScoreGenerator","hashCodeGeneragor","ContextTagKeys","getSamplingScore","telemetryTrace","random","Sample","sampleRate","SampleRateOutOfRange","samplingRate","samplingScoreGenerator","isSampledIn","samplingPercentage","Sender","_XMLHttpRequestSupported","pause","resume","flush","triggerSend","FlushFailed","teardown","_serializer","_consecutiveErrors","_retryAt","_lastSend","_sender","defaultConfig","_getDefaultAppInsightsChannelConfig","_getEmptyAppInsightsChannelConfig","getConfig","enableSessionStorageBuffer","canUseSessionStorage","_sample","isBeaconApiDisabled","IsBeaconApiSupported","_beaconSender","XMLHttpRequest","_xhrSender","XDomainRequest","_xdrSender","disableTelemetry","CannotSendEmptyTelemetry","InvalidEvent","SenderNotInitialized","_isSampledIn","TelemetrySampledAndNotSent","SampleRate","aiEnvelope_1","constructEnvelope","CreateEnvelopeError","doNotSendItem_1","callBack","TelemetryInitializerFailed","bufferPayload","batch","maxBatchSizeInBytes","_setupTimer","FailedAddingTelemetryToBuffer","_nextPlugin","next","_xhrReadyStateChange","xhr","countOfItemsInPayload","readyState","response","_appId","_parseResponse","responseText","appId","status","isRetryDisabled","_isRetriable","_resendPayload","TransmissionFailed","_onError","_formatErrorMessageXhr","_onPartialSuccess","_onSuccess","async","clearTimeout","_timeoutHandle","getIEVersion","event","OnError","results","failed","retry","_i","errors_1","errors","reverse","error","extracted","statusCode","itemsAccepted","itemsReceived","_xdrOnLoad","xdr","_formatErrorMessageXdr","orig","endpointUrl","maxBatchInterval","isAsync","plainTextBatch","Blob","sendBeacon","open","setRequestHeader","isInternalApplicationInsightsEndpoint","sdkContextHeader","sdkContextHeaderAppIdRequest","onreadystatechange","onerror","send","result","InvalidBackendResponse","linearFactor","payload_1","_setRetryTime","delayInSeconds","backOffSlot","pow","backOffDelay","floor","retryAfterTimeSpan","now","retryInterval","timerValue","onload","hostingProtocol","location","protocol","lastIndexOf","Session","_SessionManager","sessionExpirationMs","acquisitionSpan","sessionRenewalMs","renewalSpan","_storageNamePrefix","cookieNameConst","automaticSession","update","initializeAutomaticSession","Now","acquisitionExpired","acquisitionDate","renewalExpired","renewalDate","renew","cookieUpdatedTimestamp","cookieUpdateInterval","setCookie","backup","setStorage","cookie","getCookie","split","initializeAutomaticSessionWithData","storage","getStorage","sessionData","params","acq","renewal","ErrorParsingAISessionCookie","SessionRenewalDateIsZero","newId","canUseLocalStorage","BrowserDoesNotSupportLocalStorage","guid","acquisitionExpiry","renewalExpiry","cookieExpiry","setTime","cookieDomnain","cookieDomain","toUTCString","Application","Device","Internal","sdkVersion","sdkExtension","User","userCookieName","cookieSeparator","date","acqStr","toISOStringForIE8","accountAcquisitionDate","getTime","newCookie","name_1","removeStorage","accountId","authCookie","authUserCookieName","authCookieString","decodeURI","authenticatedId","setAuthenticatedUserContext","authenticatedUserId","storeInCookie","validateUserInput","SetAuthContextFailedAccountName","encodeURI","clearAuthenticatedUserContext","deleteCookie","match","Location","parentId","generateW3CId","pathname","TelemetryContext","sessionManager","application","internal","session","applySessionContext","sessionContext","applyOperatingSystemContxt","applyApplicationContext","applicationVersion","build","applicationBuild","applyDeviceContext","applyInternalContext","agentVersion","internalAgentVersion","applyLocationContext","locationIp","applyOperationContext","applyWebContext","applyUserContext","userAccountId","cleanUp","DeviceExt","UserExt","WebExt","OSExt","AppExt","TraceExt","PropertiesPlugin","getDefaultConfig","isBrowserLinkTrackingEnabled","_extensionConfig","context","_breezeChannel","getExtension","_processTelemetryInternal","nextPlugin","XHRMonitoringState","openDone","setRequestHeaderDone","sendDone","abortDone","onreadystatechangeCallbackAttached","ajaxRecord","spanID","completed","requestHeadersSize","requestHeaders","ttfb","responseReceivingDuration","callbackDuration","ajaxTotalDuration","aborted","pageUrl","requestUrl","requestSize","requestSentTime","responseStartedTime","responseFinishedTime","callbackFinishedTime","endTime","originalOnreadystatechage","xhrMonitoringState","clientFailure","CalculateMetrics","round","GetDuration","getAbsoluteUrl","getPathName","getCompleteUrl","stringUtils","GetLength","strObject","res","stringified","ex","EventHelper","AttachEvent","obj","eventNameWithoutOn","handlerRef","attachEvent","DetachEvent","detachEvent","removeEventListener","Traceparent","traceId","spanId","traceFlag","DEFAULT_TRACE_FLAG","version","DEFAULT_VERSION","isValidTraceId","isValidSpanId","AjaxMonitor","_trackAjaxAttempts","currentWindowHost","host","toLowerCase","initialized","_fetchInitialized","isMonitoredInstance","excludeAjaxDataValidation","request","init","disabledProperty","ajaxValidation","ajaxData","supportsAjaxMonitoring","abort","instrumentOpen","originalOpen","ajaxMonitorInstance","openHandler","_core","FailedMonitorAjaxOpen","ajaxDiagnosticsMessage","getFailedAjaxDiagnosticsMessage","_context","attachToOnReadyStateChange","instrumentSend","originalSend","content","sendHandler","FailedMonitorAjaxSend","includeCorrelationHeaders","instrumentAbort","originalAbort","FailedMonitorAjaxAbort","instrumentSetRequestHeader","enableRequestHeaderTracking","originalSetRequestHeader","header","FailedMonitorAjaxSetRequestHeader","onAjaxComplete","exceptionText","FailedMonitorAjaxRSC","FailedMonitorAjaxDur","dependency","correlationContext","getAjaxCorrelationContext","enableResponseHeaderTracking","headers","getAllResponseHeaders","responseHeaderMap_1","line","parts","shift","responseHeaders","trackDependencyDataInternal","responseHeadersString","requestContextHeaderLowerCase","responseHeader","getResponseHeader","requestContextHeader","getCorrelationContext","FailedMonitorAjaxGetCorrelationHeader","systemProperties","maxAjaxCallsPerView","TelemetryItemCreator","create","MaxAjaxPerPVExceeded","trackDependencyData","instrumentFetch","supportsFetch","originalFetch","fetch","fetchMonitorInstance","fetchData","isFetchInstrumented","createFetchRecord","getFailedFetchDiagnosticsMessage","then","onFetchComplete","catch","onFetchFailed","Request","canIncludeCorrelationHeader","Headers","_isUsingAIHeaders","set","requestIdHeader","appId_1","requestContextAppIdFormat","_isUsingW3CHeaders","traceparent","traceParentHeader","fetchDiagnosticsMessage","HttpMethod","getFetchCorrelationContext","responseHeaderMap_2","instrumentXhr","disableAjaxTracking","disableFetchTracking","disableCorrelationHeaders","distributedTracingMode","AI","correlationHeaderExcludedDomains","correlationHeaderDomains","enableCorsCorrelation","getEmptyConfig","AI_AND_W3C","W3C","propExt","extIx","Initialization","snippet","ApplicationInsights","appInsights","dependencies","getSKUDefaults","trackEvent","trackPageView","pageView","inPv","trackPageViewPerformance","pageViewPerformance","inPvp","trackException","_onerror","trackTrace","trackMetric","metric","startTrackPage","stopTrackPage","startTrackEvent","stopTrackEvent","addTelemetryInitializer","telemetryInitializer","channel","loadAppInsights","legacyMode","appInsightsChannel","emptyQueue","addHousekeepingBeforeUnload","updateSnippetDefinitions","call","appInsightsInstance","disableFlushOnBeforeUnload","addEventHandler","_sessionManager","FailedToAddHandlerForOnBeforeUnload","PageViewManager","overridePageViewDuration","pageViewPerformanceManager","pageViewPerformanceSent","_pageViewPerformanceManager","_channel","title","href","isPerformanceTimingSupported","sendPageViewInternal","q","NavigationTimingNotSupported","pageViewSent","customDuration","start","getPerformanceTiming","navigationStart","shouldCollectDuration","handle","isPerformanceTimingDataReady","clearInterval","populatePageViewPerformanceEvent","durationMs","sendPageViewPerformanceInternal","TrackPVFailedCalc","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","trackPreviousPageVisit","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageVisitTime","prevPageVisitData","stopPageVisitTimer","startPageVisitTimer","currPageVisitData","PageVisitData","currPageVisitDataStr","pageVisitEndTime","pageVisitDataJsonStr","pageVisitStartTime","removeSessionStorage","PageViewPerformanceManager","MAX_DURATION_ALLOWED","timing","total","loadEventEnd","network","connectEnd","requestStart","responseStart","responseEnd","dom","ErrorPVCalc","ClientPerformanceMathError","perfTotal","msToTimeSpan","networkConnect","sentRequest","receivedResponse","domProcessing","InvalidDurationValue","performance","domainLookupStart","domLoading","durations","botAgentNames","userAgent","isGoogleBot","i_1","autoRoutePVDelay","_urlArr","_prevUri","_initialize","disableExceptionTracking","stringToBoolOrDefault","autoTrackPageVisitTime","isStorageUseDisabled","enableAutoRouteTracking","doNotSendItem","telemetryInitializersCount","_telemetryInitializers","TrackTraceFailed","_eventTracking","StartTrackEventFailed","stop","StopTrackEventFailed","TrackMetricFailed","_pageViewManager","_pageVisitTimeManager","TrackPVFailed","referrer","_pageTracking","StartTrackFailed","measurement","StopTrackFailed","sendExceptionInternal","exceptionPartB","NotSpecified","toInterface","TrackExceptionFailed","properties_1","URL","lineNumber","columnNumber","isCrossOriginError","_sendCORSException","isError","stack","SeverityLevel","errorString","ExceptionWhileLoggingError","_globalconfig","defaults","disableStorage","configGetters","trackPageVisitTime","_addDefaultTelemetryInitializers","action","pageViewItem","f","instance","autoExceptionInstrumented","originalOnError_1","handled","history","pushState","replaceState","_self_1","_properties","ret","dispatchEvent","createDomEvent","_currUri","PageName","PageUrl","browserLinkPaths_1","_addTelemetryInitializer","remoteData","Timing","_name","_events","StartCalledMoreThanOnce","StopCalledWithoutStart","end","createEvent","initEvent","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","_getVerifiedStorageObject","LocalStorage","storageType","fail","uid","localStorage","sessionStorage","setItem","getItem","removeItem","_internalEndpoints","BrowserCannotReadLocalStorage","BrowserCannotWriteLocalStorage","BrowserFailedRemovalFromLocalStorage","_getSessionStorageObject","SessionStorage","getSessionStorageKeys","BrowserCannotReadSessionStorage","BrowserCannotWriteSessionStorage","BrowserFailedRemovalFromSessionStorage","canUseCookies","_canUseCookies","CannotAccessCookie","domainAttrib","secureAttrib","defaultValue","cookieName","cookies","charAt","random32","tmp","hexValues","oct","clockSequenceHi","isDate","pad","r","String","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","userAgentStr","myNav","parseInt","totalms","ms","sec","hour","days","object","objectTypeDump","propertyValueDump","callback","verbEventName","UrlHelper","parseUrl","htmlAnchorElement","createElement","parseHost","toUpperCase","CorrelationIdHelper","currentHost","requestHost","matchExists_1","includedDomains","regex","RegExp","test","excludedDomains","correlationId","getCorrelationContextValue","requestContextTargetKey","correlationIdPrefix","keyValues","keyValue","AjaxHelper","ParseDependencyPath","commandName","parsedUrl","pathName","DateTimeUtils","newGuid","GuidRegex","LoggingSeverity","_InternalMessageId","FailedToSendQueuedTelemetry","FailedToReportDataLoss","TrackEventFailed","FailedToFixDepricatedValues","ClearAuthContextFailed","IllegalCharsInName","SetAuthContextFailed","TrackArgumentsNotSpecified","PropertiesPluginIdentifier","BreezeChannelIdentifier","Domain","PageViewData","DisabledPropertyName","ProcessLegacy","RequestHeaders","applicationTypeId","applicationId","applicationLayer","deviceLocale","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceMachineName","deviceVMName","locationCountry","locationProvince","locationCity","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userStoreRegion","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","Base","EventData","Extensions","SessionExt","SDKExt","CtxTagKeys","Default","kind","stdDev","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","envelopeName","ConfigurationManager","configValue","DataPointType","MetricData","metrics","DataPoint","Measurement","dataPoint","StackFrame","ExceptionData","exceptions","ExceptionDetails","hasFullStack","parsedStack","problemGroup","CreateSimpleException","typeName","assembly","fileName","details","_ExceptionDetails","outerId","parseStack","frame","frames","level","totalSizeInBytes","parsedFrame","sizeInBytes","left","right","size","acceptedLeft","acceptedRight","howMany","_StackFrame","sourceFrame","matches","baseSize","MessageData","PageViewPerfData","unused","cs4BaseData","StorageType","FieldType","DistributedTracingModes"],"mappings":"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","file":"npm.microsoft.97e5e6b8584e1e44c5ac.js","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';\r\nvar DataSanitizer = /** @class */ (function () {\r\n function DataSanitizer() {\r\n }\r\n DataSanitizer.sanitizeKeyAndAddUniqueness = function (logger, key, map) {\r\n var origLength = key.length;\r\n var field = DataSanitizer.sanitizeKey(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, DataSanitizer.MAX_NAME_LENGTH - 3) + DataSanitizer.padNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n };\r\n DataSanitizer.sanitizeKey = function (logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitepace\r\n name = DataSanitizer.trim(name.toString());\r\n // truncate the string to 150 chars\r\n if (name.length > DataSanitizer.MAX_NAME_LENGTH) {\r\n nameTrunc = name.substring(0, DataSanitizer.MAX_NAME_LENGTH);\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NameTooLong, \"name is too long. It has been truncated to \" + DataSanitizer.MAX_NAME_LENGTH + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n };\r\n DataSanitizer.sanitizeString = function (logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = DataSanitizer.MAX_STRING_LENGTH; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : DataSanitizer.MAX_STRING_LENGTH; // in case default parameters dont work\r\n value = DataSanitizer.trim(value);\r\n if (value.toString().length > maxLength) {\r\n valueTrunc = value.toString().substring(0, maxLength);\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.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\n DataSanitizer.sanitizeUrl = function (logger, url) {\r\n return DataSanitizer.sanitizeInput(logger, url, DataSanitizer.MAX_URL_LENGTH, _InternalMessageId.UrlTooLong);\r\n };\r\n DataSanitizer.sanitizeMessage = function (logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message.length > DataSanitizer.MAX_MESSAGE_LENGTH) {\r\n messageTrunc = message.substring(0, DataSanitizer.MAX_MESSAGE_LENGTH);\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.MessageTruncated, \"message is too long, it has been truncated to \" + DataSanitizer.MAX_MESSAGE_LENGTH + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n };\r\n DataSanitizer.sanitizeException = function (logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n if (exception.length > DataSanitizer.MAX_EXCEPTION_LENGTH) {\r\n exceptionTrunc = exception.substring(0, DataSanitizer.MAX_EXCEPTION_LENGTH);\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ExceptionTruncated, \"exception is too long, it has been truncated to \" + DataSanitizer.MAX_EXCEPTION_LENGTH + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n };\r\n DataSanitizer.sanitizeProperties = function (logger, properties) {\r\n if (properties) {\r\n var tempProps = {};\r\n for (var prop in properties) {\r\n var value = properties[prop];\r\n if (typeof value === \"object\" && typeof JSON !== \"undefined\") {\r\n // Stringify any part C properties\r\n try {\r\n value = JSON.stringify(value);\r\n }\r\n catch (e) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = DataSanitizer.sanitizeString(logger, value, DataSanitizer.MAX_PROPERTY_LENGTH);\r\n prop = DataSanitizer.sanitizeKeyAndAddUniqueness(logger, prop, tempProps);\r\n tempProps[prop] = value;\r\n }\r\n properties = tempProps;\r\n }\r\n return properties;\r\n };\r\n DataSanitizer.sanitizeMeasurements = function (logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements = {};\r\n for (var measure in measurements) {\r\n var value = measurements[measure];\r\n measure = DataSanitizer.sanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements);\r\n tempMeasurements[measure] = value;\r\n }\r\n measurements = tempMeasurements;\r\n }\r\n return measurements;\r\n };\r\n DataSanitizer.sanitizeId = function (logger, id) {\r\n return id ? DataSanitizer.sanitizeInput(logger, id, DataSanitizer.MAX_ID_LENGTH, _InternalMessageId.IdTooLong).toString() : id;\r\n };\r\n DataSanitizer.sanitizeInput = function (logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = DataSanitizer.trim(input);\r\n if (input.length > maxLength) {\r\n inputTrunc = input.substring(0, maxLength);\r\n logger.throwInternal(LoggingSeverity.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\n DataSanitizer.padNumber = function (num) {\r\n var s = \"00\" + num;\r\n return s.substr(s.length - 3);\r\n };\r\n /**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\n DataSanitizer.trim = function (str) {\r\n if (typeof str !== \"string\")\r\n return str;\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n };\r\n /**\r\n * Max length allowed for custom names.\r\n */\r\n DataSanitizer.MAX_NAME_LENGTH = 150;\r\n /**\r\n * Max length allowed for Id field in page views.\r\n */\r\n DataSanitizer.MAX_ID_LENGTH = 128;\r\n /**\r\n * Max length allowed for custom values.\r\n */\r\n DataSanitizer.MAX_PROPERTY_LENGTH = 8192;\r\n /**\r\n * Max length allowed for names\r\n */\r\n DataSanitizer.MAX_STRING_LENGTH = 1024;\r\n /**\r\n * Max length allowed for url.\r\n */\r\n DataSanitizer.MAX_URL_LENGTH = 2048;\r\n /**\r\n * Max length allowed for messages.\r\n */\r\n DataSanitizer.MAX_MESSAGE_LENGTH = 32768;\r\n /**\r\n * Max length allowed for exceptions.\r\n */\r\n DataSanitizer.MAX_EXCEPTION_LENGTH = 32768;\r\n return DataSanitizer;\r\n}());\r\nexport { DataSanitizer };\r\n//# sourceMappingURL=DataSanitizer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\r\nexport var EventsDiscardedReason = {\r\n /**\r\n * Unknown.\r\n */\r\n Unknown: 0,\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n NonRetryableStatus: 1,\r\n /**\r\n * The event is invalid.\r\n */\r\n InvalidEvent: 2,\r\n /**\r\n * The size of the event is too large.\r\n */\r\n SizeLimitExceeded: 3,\r\n /**\r\n * The server is not accepting events from this instrumentation key.\r\n */\r\n KillSwitch: 4,\r\n /**\r\n * The event queue is full.\r\n */\r\n QueueFull: 5,\r\n};\r\n//# sourceMappingURL=EventsDiscardedReason.js.map","/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager() {\r\n this.listeners = [];\r\n }\r\n /**\r\n * Adds a notification listener.\r\n * @param {INotificationListener} listener - The notification listener to be added.\r\n */\r\n NotificationManager.prototype.addNotificationListener = function (listener) {\r\n this.listeners.push(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n NotificationManager.prototype.removeNotificationListener = function (listener) {\r\n var index = this.listeners.indexOf(listener);\r\n while (index > -1) {\r\n this.listeners.splice(index, 1);\r\n index = this.listeners.indexOf(listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n NotificationManager.prototype.eventsSent = function (events) {\r\n var _this = this;\r\n var _loop_1 = function (i) {\r\n if (this_1.listeners[i].eventsSent) {\r\n setTimeout(function () { return _this.listeners[i].eventsSent(events); }, 0);\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_1(i);\r\n }\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n NotificationManager.prototype.eventsDiscarded = function (events, reason) {\r\n var _this = this;\r\n var _loop_2 = function (i) {\r\n if (this_2.listeners[i].eventsDiscarded) {\r\n setTimeout(function () { return _this.listeners[i].eventsDiscarded(events, reason); }, 0);\r\n }\r\n };\r\n var this_2 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_2(i);\r\n }\r\n };\r\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n this.messageId = msgId;\r\n this.message =\r\n (isUserAct ? _InternalLogMessage.AiUserActionablePrefix : _InternalLogMessage.AiNonUserActionablePrefix) +\r\n msgId;\r\n var diagnosticText = (msg ? \" message:\" + _InternalLogMessage.sanitizeDiagnosticText(msg) : \"\") +\r\n (properties ? \" props:\" + _InternalLogMessage.sanitizeDiagnosticText(JSON.stringify(properties)) : \"\");\r\n this.message += diagnosticText;\r\n }\r\n _InternalLogMessage.sanitizeDiagnosticText = function (text) {\r\n return \"\\\"\" + text.replace(/\\\"/g, \"\") + \"\\\"\";\r\n };\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n /**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\n _InternalLogMessage.AiNonUserActionablePrefix = \"AI (Internal): \";\r\n /**\r\n * Prefix of the traces in portal.\r\n */\r\n _InternalLogMessage.AiUserActionablePrefix = \"AI: \";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n /**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\n this.AIInternalMessagePrefix = \"AITR_\";\r\n /**\r\n * When this is true the SDK will throw exceptions to aid in debugging.\r\n */\r\n this.enableDebugExceptions = function () { return false; };\r\n /**\r\n * 0: OFF\r\n * 1: CRITICAL (default)\r\n * 2: >= WARNING\r\n */\r\n this.consoleLoggingLevel = function () { return 1; };\r\n /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n this.telemetryLoggingLevel = function () { return 0; };\r\n /**\r\n * The maximum number of internal messages allowed to be sent per page view\r\n */\r\n this.maxInternalMessageLimit = function () { return 25; };\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n this._messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n this._messageLogged = {};\r\n if (CoreUtils.isNullOrUndefined(config)) {\r\n // TODO: Use default config\r\n // config = AppInsightsCore.defaultConfig;\r\n // For now, use defaults specified in DiagnosticLogger members;\r\n return;\r\n }\r\n if (!CoreUtils.isNullOrUndefined(config.loggingLevelConsole)) {\r\n this.consoleLoggingLevel = function () { return config.loggingLevelConsole; };\r\n }\r\n if (!CoreUtils.isNullOrUndefined(config.loggingLevelTelemetry)) {\r\n this.telemetryLoggingLevel = function () { return config.loggingLevelTelemetry; };\r\n }\r\n if (!CoreUtils.isNullOrUndefined(config.maxMessageLimit)) {\r\n this.maxInternalMessageLimit = function () { return config.maxMessageLimit; };\r\n }\r\n if (!CoreUtils.isNullOrUndefined(config.enableDebugExceptions)) {\r\n this.enableDebugExceptions = function () { return config.enableDebugExceptions; };\r\n }\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n DiagnosticLogger.prototype.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (this.enableDebugExceptions()) {\r\n throw message;\r\n }\r\n else {\r\n if (typeof (message) !== \"undefined\" && !!message) {\r\n if (typeof (message.message) !== \"undefined\") {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message.messageId;\r\n if (!this._messageLogged[messageKey] || this.consoleLoggingLevel() >= LoggingSeverity.WARNING) {\r\n this.warnToConsole(message.message);\r\n this._messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // don't log internal AI traces in the console, unless the verbose logging is enabled\r\n if (this.consoleLoggingLevel() >= LoggingSeverity.WARNING) {\r\n this.warnToConsole(message.message);\r\n }\r\n }\r\n this.logInternalMessage(severity, message);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.warnToConsole = function (message) {\r\n if (typeof console !== \"undefined\" && !!console) {\r\n if (typeof console.warn === \"function\") {\r\n console.warn(message);\r\n }\r\n else if (typeof console.log === \"function\") {\r\n console.log(message);\r\n }\r\n }\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n DiagnosticLogger.prototype.resetInternalMessageCount = function () {\r\n this._messageCount = 0;\r\n this._messageLogged = {};\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n DiagnosticLogger.prototype.logInternalMessage = function (severity, message) {\r\n if (this._areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = this.AIInternalMessagePrefix + message.messageId;\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (this._messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n this._messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= this.telemetryLoggingLevel()) {\r\n this.queue.push(message);\r\n this._messageCount++;\r\n }\r\n // When throttle limit reached, send a special event\r\n if (this._messageCount == this.maxInternalMessageLimit()) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);\r\n this.queue.push(throttleMessage);\r\n this.warnToConsole(throttleLimitMessage);\r\n }\r\n }\r\n };\r\n /**\r\n * Indicates whether the internal events are throttled\r\n */\r\n DiagnosticLogger.prototype._areInternalMessagesThrottled = function () {\r\n return this._messageCount >= this.maxInternalMessageLimit();\r\n };\r\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\n//# sourceMappingURL=DiagnosticLogger.js.map","import { CoreUtils } from \"./CoreUtils\";\r\n\"use strict\";\r\nvar ChannelControllerPriority = 500;\r\nvar ChannelValidationMessage = \"Channel has invalid priority\";\r\nvar ChannelController = /** @class */ (function () {\r\n function ChannelController() {\r\n this.identifier = \"ChannelControllerPlugin\";\r\n this.priority = ChannelControllerPriority; // in reserved range 100 to 200\r\n }\r\n ChannelController.prototype.processTelemetry = function (item) {\r\n this.channelQueue.forEach(function (queues) {\r\n // pass on to first item in queue\r\n if (queues.length > 0) {\r\n queues[0].processTelemetry(item);\r\n }\r\n });\r\n };\r\n Object.defineProperty(ChannelController.prototype, \"ChannelControls\", {\r\n get: function () {\r\n return this.channelQueue;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ChannelController.prototype.initialize = function (config, core, extensions) {\r\n var _this = this;\r\n if (config.isCookieUseDisabled) {\r\n CoreUtils.disableCookies();\r\n }\r\n this.channelQueue = new Array();\r\n if (config.channels) {\r\n var invalidChannelIdentifier_1 = undefined;\r\n config.channels.forEach(function (queue) {\r\n if (queue && queue.length > 0) {\r\n queue = queue.sort(function (a, b) {\r\n return a.priority - b.priority;\r\n });\r\n for (var i = 1; i < queue.length; i++) {\r\n queue[i - 1].setNextPlugin(queue[i]); // setup processing chain\r\n }\r\n // Initialize each plugin\r\n queue.forEach(function (queueItem) {\r\n if (queueItem.priority < ChannelControllerPriority) {\r\n invalidChannelIdentifier_1 = queueItem.identifier;\r\n }\r\n queueItem.initialize(config, core, extensions);\r\n });\r\n if (invalidChannelIdentifier_1) {\r\n throw Error(ChannelValidationMessage + invalidChannelIdentifier_1);\r\n }\r\n _this.channelQueue.push(queue);\r\n }\r\n });\r\n }\r\n var arr = new Array();\r\n for (var i = 0; i < extensions.length; i++) {\r\n var plugin = extensions[i];\r\n if (plugin.priority > ChannelControllerPriority) {\r\n arr.push(plugin);\r\n }\r\n }\r\n if (arr.length > 0) {\r\n // sort if not sorted\r\n arr = arr.sort(function (a, b) {\r\n return a.priority - b.priority;\r\n });\r\n // Initialize each plugin\r\n arr.forEach(function (queueItem) { return queueItem.initialize(config, core, extensions); });\r\n // setup next plugin\r\n for (var i = 1; i < arr.length; i++) {\r\n arr[i - 1].setNextPlugin(arr[i]);\r\n }\r\n this.channelQueue.push(arr);\r\n }\r\n };\r\n return ChannelController;\r\n}());\r\nexport { ChannelController };\r\n//# sourceMappingURL=ChannelController.js.map","import { EventsDiscardedReason } from \"../JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { _InternalLogMessage, DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport { ChannelController } from './ChannelController';\r\n\"use strict\";\r\nvar validationError = \"Extensions must provide callback to initialize\";\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n this._isInitialized = false;\r\n this._extensions = new Array();\r\n this._channelController = new ChannelController();\r\n }\r\n AppInsightsCore.prototype.initialize = function (config, extensions) {\r\n var _this = this;\r\n // Make sure core is only initialized once\r\n if (this._isInitialized) {\r\n throw Error(\"Core should not be initialized more than once\");\r\n }\r\n if (!config || CoreUtils.isNullOrUndefined(config.instrumentationKey)) {\r\n throw Error(\"Please provide instrumentation key\");\r\n }\r\n this.config = config;\r\n this._notificationManager = new NotificationManager();\r\n this.config.extensions = CoreUtils.isNullOrUndefined(this.config.extensions) ? [] : this.config.extensions;\r\n // add notification to the extensions in the config so other plugins can access it\r\n this.config.extensionConfig = CoreUtils.isNullOrUndefined(this.config.extensionConfig) ? {} : this.config.extensionConfig;\r\n this.config.extensionConfig.NotificationManager = this._notificationManager;\r\n this.logger = new DiagnosticLogger(config);\r\n // Concat all available extensions \r\n (_a = this._extensions).push.apply(_a, extensions.concat(this.config.extensions));\r\n // Initial validation \r\n this._extensions.forEach(function (extension) {\r\n var isValid = true;\r\n if (CoreUtils.isNullOrUndefined(extension) || CoreUtils.isNullOrUndefined(extension.initialize)) {\r\n isValid = false;\r\n }\r\n if (!isValid) {\r\n throw Error(validationError);\r\n }\r\n });\r\n // Initial validation complete\r\n this._extensions.push(this._channelController);\r\n // Sort by priority\r\n this._extensions = this._extensions.sort(function (a, b) {\r\n var extA = a;\r\n var extB = b;\r\n var typeExtA = typeof extA.processTelemetry;\r\n var typeExtB = typeof extB.processTelemetry;\r\n if (typeExtA === 'function' && typeExtB === 'function') {\r\n return extA.priority - extB.priority;\r\n }\r\n if (typeExtA === 'function' && typeExtB !== 'function') {\r\n // keep non telemetryplugin specific extensions at start\r\n return 1;\r\n }\r\n if (typeExtA !== 'function' && typeExtB === 'function') {\r\n return -1;\r\n }\r\n });\r\n // sort complete\r\n // Check if any two extensions have the same priority, then warn to console\r\n var priority = {};\r\n this._extensions.forEach(function (ext) {\r\n var t = ext;\r\n if (t && t.priority) {\r\n if (!CoreUtils.isNullOrUndefined(priority[t.priority])) {\r\n _this.logger.warnToConsole(\"Two extensions have same priority\" + priority[t.priority] + \", \" + t.identifier);\r\n }\r\n else {\r\n priority[t.priority] = t.identifier; // set a value\r\n }\r\n }\r\n });\r\n var c = -1;\r\n // Set next plugin for all until channel controller\r\n for (var idx = 0; idx < this._extensions.length - 1; idx++) {\r\n var curr = (this._extensions[idx]);\r\n if (curr && typeof curr.processTelemetry !== 'function') {\r\n // these are initialized only, allowing an entry point for extensions to be initialized when SDK initializes\r\n continue;\r\n }\r\n if (curr.priority === this._channelController.priority) {\r\n c = idx + 1;\r\n break; // channel controller will set remaining pipeline\r\n }\r\n this._extensions[idx].setNextPlugin(this._extensions[idx + 1]); // set next plugin\r\n }\r\n // initialize channel controller first, this will initialize all channel plugins\r\n this._channelController.initialize(this.config, this, this._extensions);\r\n // initialize remaining regular plugins\r\n this._extensions.forEach(function (ext) {\r\n var e = ext;\r\n if (e && e.priority < _this._channelController.priority) {\r\n ext.initialize(_this.config, _this, _this._extensions); // initialize\r\n }\r\n });\r\n // Remove sender channels from main list\r\n if (c < this._extensions.length) {\r\n this._extensions.splice(c);\r\n }\r\n if (this.getTransmissionControls().length === 0) {\r\n throw new Error(\"No channels available\");\r\n }\r\n this._isInitialized = true;\r\n var _a;\r\n };\r\n AppInsightsCore.prototype.getTransmissionControls = function () {\r\n return this._channelController.ChannelControls;\r\n };\r\n AppInsightsCore.prototype.track = function (telemetryItem) {\r\n if (telemetryItem === null) {\r\n this._notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throw Error(\"Invalid telemetry item\");\r\n }\r\n if (!telemetryItem.iKey) {\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = this.config.instrumentationKey;\r\n }\r\n if (!telemetryItem.time) {\r\n // add default timestamp if not passed in\r\n telemetryItem.time = new Date().toISOString();\r\n }\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.ver)) {\r\n // CommonSchema 4.0\r\n telemetryItem.ver = \"4.0\";\r\n }\r\n // do basic validation before sending it through the pipeline\r\n this._validateTelmetryItem(telemetryItem);\r\n // invoke any common telemetry processors before sending through pipeline\r\n if (this._extensions.length == 0) {\r\n this._channelController.processTelemetry(telemetryItem); // Pass to Channel controller so data is sent to correct channel queues\r\n }\r\n var i = 0;\r\n while (i < this._extensions.length) {\r\n if (this._extensions[i].processTelemetry) {\r\n this._extensions[i].processTelemetry(telemetryItem); // pass on to first extension that can support processing\r\n break;\r\n }\r\n i++;\r\n }\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n AppInsightsCore.prototype.addNotificationListener = function (listener) {\r\n this._notificationManager.addNotificationListener(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n AppInsightsCore.prototype.removeNotificationListener = function (listener) {\r\n this._notificationManager.removeNotificationListener(listener);\r\n };\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n AppInsightsCore.prototype.pollInternalLogs = function () {\r\n var _this = this;\r\n var interval = this.config.diagnosticLogInterval;\r\n if (!(interval > 0)) {\r\n interval = 10000;\r\n }\r\n return setInterval(function () {\r\n var queue = _this.logger.queue;\r\n queue.forEach(function (logMessage) {\r\n var item = {\r\n name: \"InternalMessageId: \" + logMessage.messageId,\r\n iKey: _this.config.instrumentationKey,\r\n time: new Date().toISOString(),\r\n baseType: _InternalLogMessage.dataType,\r\n baseData: { message: logMessage.message }\r\n };\r\n _this.track(item);\r\n });\r\n queue.length = 0;\r\n }, interval);\r\n };\r\n AppInsightsCore.prototype._validateTelmetryItem = function (telemetryItem) {\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.name)) {\r\n this._notifyInvalidEvent(telemetryItem);\r\n throw Error(\"telemetry name required\");\r\n }\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.time)) {\r\n this._notifyInvalidEvent(telemetryItem);\r\n throw Error(\"telemetry timestamp required\");\r\n }\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.iKey)) {\r\n this._notifyInvalidEvent(telemetryItem);\r\n throw Error(\"telemetry instrumentationKey required\");\r\n }\r\n };\r\n AppInsightsCore.prototype._notifyInvalidEvent = function (telemetryItem) {\r\n this._notificationManager.eventsDiscarded([telemetryItem], EventsDiscardedReason.InvalidEvent);\r\n };\r\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","import { Util } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function () {\r\n function ArraySendBuffer(config) {\r\n this._config = config;\r\n this._buffer = [];\r\n }\r\n ArraySendBuffer.prototype.enqueue = function (payload) {\r\n this._buffer.push(payload);\r\n };\r\n ArraySendBuffer.prototype.count = function () {\r\n return this._buffer.length;\r\n };\r\n ArraySendBuffer.prototype.clear = function () {\r\n this._buffer.length = 0;\r\n };\r\n ArraySendBuffer.prototype.getItems = function () {\r\n return this._buffer.slice(0);\r\n };\r\n ArraySendBuffer.prototype.batchPayloads = function (payload) {\r\n if (payload && payload.length > 0) {\r\n var batch = this._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 ArraySendBuffer.prototype.markAsSent = function (payload) {\r\n this.clear();\r\n };\r\n ArraySendBuffer.prototype.clearSent = function (payload) {\r\n // not supported\r\n };\r\n return ArraySendBuffer;\r\n}());\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storege buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function () {\r\n function SessionStorageSendBuffer(logger, config) {\r\n this._bufferFullMessageSent = false;\r\n this._logger = logger;\r\n this._config = config;\r\n var bufferItems = this.getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\r\n var notDeliveredItems = this.getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n this._buffer = bufferItems.concat(notDeliveredItems);\r\n // If the buffer has too many items, drop items from the end.\r\n if (this._buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n this._buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n // update DataLossAnalyzer with the number of recovered items\r\n // Uncomment if you want to use DataLossanalyzer\r\n // DataLossAnalyzer.itemsRestoredFromSessionBuffer = this._buffer.length;\r\n this.setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n this.setBuffer(SessionStorageSendBuffer.BUFFER_KEY, this._buffer);\r\n }\r\n SessionStorageSendBuffer.prototype.enqueue = function (payload) {\r\n if (this._buffer.length >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // sent internal log only once per page view\r\n if (!this._bufferFullMessageSent) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, \"Maximum buffer size reached: \" + this._buffer.length, true);\r\n this._bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n this._buffer.push(payload);\r\n this.setBuffer(SessionStorageSendBuffer.BUFFER_KEY, this._buffer);\r\n };\r\n SessionStorageSendBuffer.prototype.count = function () {\r\n return this._buffer.length;\r\n };\r\n SessionStorageSendBuffer.prototype.clear = function () {\r\n this._buffer.length = 0;\r\n this.setBuffer(SessionStorageSendBuffer.BUFFER_KEY, []);\r\n this.setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n this._bufferFullMessageSent = false;\r\n };\r\n SessionStorageSendBuffer.prototype.getItems = function () {\r\n return this._buffer.slice(0);\r\n };\r\n SessionStorageSendBuffer.prototype.batchPayloads = function (payload) {\r\n if (payload && payload.length > 0) {\r\n var batch = this._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 SessionStorageSendBuffer.prototype.markAsSent = function (payload) {\r\n this._buffer = this.removePayloadsFromBuffer(payload, this._buffer);\r\n this.setBuffer(SessionStorageSendBuffer.BUFFER_KEY, this._buffer);\r\n var sentElements = this.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 this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SessionStorageBufferFull, \"Sent buffer reached its maximum size: \" + sentElements.length, true);\r\n sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n this.setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n }\r\n };\r\n SessionStorageSendBuffer.prototype.clearSent = function (payload) {\r\n var sentElements = this.getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n sentElements = this.removePayloadsFromBuffer(payload, sentElements);\r\n this.setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n };\r\n SessionStorageSendBuffer.prototype.removePayloadsFromBuffer = function (payloads, buffer) {\r\n var remaining = [];\r\n for (var i in buffer) {\r\n var contains = false;\r\n for (var j in payloads) {\r\n if (payloads[j] === buffer[i]) {\r\n contains = true;\r\n break;\r\n }\r\n }\r\n if (!contains) {\r\n remaining.push(buffer[i]);\r\n }\r\n }\r\n ;\r\n return remaining;\r\n };\r\n SessionStorageSendBuffer.prototype.getBuffer = function (key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = this._config.namePrefix && this._config.namePrefix() ? this._config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = Util.getSessionStorage(this._logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer = JSON.parse(bufferJson);\r\n if (buffer) {\r\n return buffer;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToRestoreStorageBuffer, \" storage key: \" + prefixedKey + \", \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n return [];\r\n };\r\n SessionStorageSendBuffer.prototype.setBuffer = function (key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = this._config.namePrefix && this._config.namePrefix() ? this._config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON.stringify(buffer);\r\n Util.setSessionStorage(this._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 Util.setSessionStorage(this._logger, prefixedKey, JSON.stringify([]));\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedToSetStorageBuffer, \" storage key: \" + prefixedKey + \", \" + Util.getExceptionName(e) + \". Buffer cleared\", { exception: Util.dump(e) });\r\n }\r\n };\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}());\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Data, Envelope, RemoteDependencyData, Event, Exception, Metric, PageView, Trace, PageViewPerformance, CtxTagKeys, HttpMethod } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId } 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 baseType = \"baseType\";\r\nvar baseData = \"baseData\";\r\nvar EnvelopeCreator = /** @class */ (function () {\r\n function EnvelopeCreator() {\r\n }\r\n EnvelopeCreator.extractProperties = function (data) {\r\n var customProperties = null;\r\n for (var key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n var value = data[key];\r\n if (typeof value !== \"number\") {\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[key] = value;\r\n }\r\n }\r\n }\r\n return customProperties;\r\n };\r\n EnvelopeCreator.extractPropsAndMeasurements = function (data, properties, measurements) {\r\n if (!CoreUtils.isNullOrUndefined(data)) {\r\n for (var key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n var value = data[key];\r\n if (typeof value === \"number\") {\r\n measurements[key] = value;\r\n }\r\n else if (typeof value === \"string\") {\r\n properties[key] = value;\r\n }\r\n else {\r\n properties[key] = JSON.stringify(value);\r\n }\r\n }\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\n EnvelopeCreator.createEnvelope = function (logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\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 EnvelopeCreator.extractPartAExtensions(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 if (!telemetryItem.tags) {\r\n telemetryItem.tags = [];\r\n }\r\n return envelope;\r\n };\r\n /*\r\n * Maps Part A data from CS 4.0\r\n */\r\n EnvelopeCreator.extractPartAExtensions = function (item, env) {\r\n // todo: switch to keys from common in this method\r\n if (!env.tags) {\r\n env.tags = {};\r\n }\r\n if (!item.ext) {\r\n item.ext = {};\r\n }\r\n if (!item.tags) {\r\n item.tags = [];\r\n }\r\n if (item.ext.user) {\r\n if (item.ext.user.authId) {\r\n env.tags[CtxTagKeys.userAuthUserId] = item.ext.user.authId;\r\n }\r\n var userId = item.ext.user.id || item.ext.user.localId;\r\n if (userId) {\r\n env.tags[CtxTagKeys.userId] = userId;\r\n }\r\n }\r\n if (item.ext.app) {\r\n if (item.ext.app.sesId) {\r\n env.tags[CtxTagKeys.sessionId] = item.ext.app.sesId;\r\n }\r\n }\r\n if (item.ext.device) {\r\n if (item.ext.device.id || item.ext.device.localId) {\r\n env.tags[CtxTagKeys.deviceId] = item.ext.device.id || item.ext.device.localId;\r\n }\r\n if (item.ext.device.deviceClass) {\r\n env.tags[CtxTagKeys.deviceType] = item.ext.device.deviceClass;\r\n }\r\n if (item.ext.device.ip) {\r\n env.tags[CtxTagKeys.deviceIp] = item.ext.device.ip;\r\n }\r\n }\r\n if (item.ext.web) {\r\n var web = item.ext.web;\r\n if (web.browserLang) {\r\n env.tags[CtxTagKeys.deviceLanguage] = web.browserLang;\r\n }\r\n if (web.browserVer) {\r\n env.tags[CtxTagKeys.deviceBrowserVersion] = web.browserVer;\r\n }\r\n if (web.browser) {\r\n env.tags[CtxTagKeys.deviceBrowser] = web.browser;\r\n }\r\n env.data = env.data || {};\r\n env.data.baseData = env.data.baseData || {};\r\n env.data.baseData.properties = env.data.baseData.properties || {};\r\n if (web.domain) {\r\n env.data.baseData.properties['domain'] = web.domain;\r\n }\r\n if (web.isManual) {\r\n env.data.baseData.properties['isManual'] = web.isManual.toString();\r\n }\r\n if (web.screenRes) {\r\n env.data.baseData.properties['screenRes'] = web.screenRes;\r\n }\r\n if (web.userConsent) {\r\n env.data.baseData.properties['userConsent'] = web.userConsent.toString();\r\n }\r\n }\r\n if (item.ext.device) {\r\n if (item.ext.device.model) {\r\n env.tags[CtxTagKeys.deviceModel] = item.ext.device.model;\r\n }\r\n }\r\n if (item.ext.os && item.ext.os.name) {\r\n env.tags[CtxTagKeys.deviceOS] = item.ext.os.name;\r\n }\r\n if (item.ext.device) {\r\n if (item.ext.device.deviceType) {\r\n env.tags[CtxTagKeys.deviceType] = item.ext.device.deviceType;\r\n }\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n if (item.ext.trace) {\r\n if (item.ext.trace.parentID) {\r\n env.tags[CtxTagKeys.operationParentId] = item.ext.trace.parentID;\r\n }\r\n if (item.ext.trace.name) {\r\n env.tags[CtxTagKeys.operationName] = item.ext.trace.name;\r\n }\r\n if (item.ext.trace.traceID) {\r\n env.tags[CtxTagKeys.operationId] = item.ext.trace.traceID;\r\n }\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 var _loop_1 = function (i) {\r\n var tg = item.tags[i];\r\n // Object.keys returns an array of keys\r\n Object.keys(tg).forEach(function (key) {\r\n tgs[key] = tg[key];\r\n });\r\n item.tags.splice(i, 1);\r\n };\r\n // deals with tags.push({object})\r\n for (var i = item.tags.length - 1; i >= 0; i--) {\r\n _loop_1(i);\r\n }\r\n // deals with tags[key]=value\r\n for (var tg in item.tags) {\r\n tgs[tg] = item.tags[tg];\r\n }\r\n env.tags = tslib_1.__assign({}, env.tags, tgs);\r\n if (!env.tags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n env.tags[CtxTagKeys.internalSdkVersion] = \"javascript:\" + EnvelopeCreator.Version;\r\n }\r\n };\r\n EnvelopeCreator.Version = \"2.2.0\";\r\n return EnvelopeCreator;\r\n}());\r\nexport { EnvelopeCreator };\r\nvar DependencyEnvelopeCreator = /** @class */ (function (_super) {\r\n tslib_1.__extends(DependencyEnvelopeCreator, _super);\r\n function DependencyEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DependencyEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n var customMeasurements = telemetryItem.baseData.measurements || {};\r\n var customProperties = telemetryItem.baseData.properties || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n var bd = telemetryItem.baseData;\r\n if (CoreUtils.isNullOrUndefined(bd)) {\r\n logger.warnToConsole(\"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var id = bd.id;\r\n var absoluteUrl = bd.target;\r\n var command = bd.name;\r\n var duration = bd.duration;\r\n var success = bd.success;\r\n var resultCode = bd.responseCode;\r\n var requestAPI = bd.type;\r\n var method = bd.properties && bd.properties[HttpMethod] ? bd.properties[HttpMethod] : \"GET\";\r\n var baseData = new RemoteDependencyData(logger, id, absoluteUrl, command, duration, success, resultCode, method, requestAPI, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\r\n };\r\n DependencyEnvelopeCreator.DependencyEnvelopeCreator = new DependencyEnvelopeCreator();\r\n return DependencyEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { DependencyEnvelopeCreator };\r\nvar EventEnvelopeCreator = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventEnvelopeCreator, _super);\r\n function EventEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n EventEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem.baseType !== Event.dataType) {\r\n customProperties['baseTypeSource'] = telemetryItem.baseType; // save the passed in base type as a property\r\n }\r\n if (telemetryItem.baseType === Event.dataType) {\r\n customProperties = telemetryItem.baseData.properties || {};\r\n customMeasurements = telemetryItem.baseData.measurements || {};\r\n }\r\n else {\r\n if (telemetryItem.baseData) {\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.baseData, customProperties, customMeasurements);\r\n }\r\n }\r\n // Exract root level properties from part C telemetryItem.data\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n var eventName = telemetryItem.baseData.name;\r\n var baseData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Event.envelopeType, telemetryItem, data);\r\n };\r\n EventEnvelopeCreator.EventEnvelopeCreator = new EventEnvelopeCreator();\r\n return EventEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { EventEnvelopeCreator };\r\nvar ExceptionEnvelopeCreator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ExceptionEnvelopeCreator, _super);\r\n function ExceptionEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExceptionEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n var bd = telemetryItem.baseData;\r\n var baseData = Exception.CreateFromInterface(logger, bd);\r\n var data = new Data(Exception.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\r\n };\r\n ExceptionEnvelopeCreator.ExceptionEnvelopeCreator = new ExceptionEnvelopeCreator();\r\n return ExceptionEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { ExceptionEnvelopeCreator };\r\nvar MetricEnvelopeCreator = /** @class */ (function (_super) {\r\n tslib_1.__extends(MetricEnvelopeCreator, _super);\r\n function MetricEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MetricEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n var props = telemetryItem.baseData.properties || {};\r\n var customProperties = EnvelopeCreator.extractProperties(telemetryItem.data);\r\n customProperties = tslib_1.__assign({}, props, customProperties);\r\n var name = telemetryItem.baseData.name;\r\n var average = telemetryItem.baseData.average;\r\n var sampleCount = telemetryItem.baseData.sampleCount;\r\n var min = telemetryItem.baseData.min;\r\n var max = telemetryItem.baseData.max;\r\n var baseData = new Metric(logger, name, average, sampleCount, min, max, customProperties);\r\n var data = new Data(Metric.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\r\n };\r\n MetricEnvelopeCreator.MetricEnvelopeCreator = new MetricEnvelopeCreator();\r\n return MetricEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { MetricEnvelopeCreator };\r\nvar PageViewEnvelopeCreator = /** @class */ (function (_super) {\r\n tslib_1.__extends(PageViewEnvelopeCreator, _super);\r\n function PageViewEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PageViewEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration = undefined;\r\n if (!CoreUtils.isNullOrUndefined(telemetryItem.baseData) &&\r\n !CoreUtils.isNullOrUndefined(telemetryItem.baseData.properties) &&\r\n !CoreUtils.isNullOrUndefined(telemetryItem.baseData.properties.duration)) {\r\n duration = telemetryItem.baseData.properties.duration;\r\n delete telemetryItem.baseData.properties.duration;\r\n }\r\n else if (!CoreUtils.isNullOrUndefined(telemetryItem.data) &&\r\n !CoreUtils.isNullOrUndefined(telemetryItem.data[\"duration\"])) {\r\n duration = telemetryItem.data[\"duration\"];\r\n delete telemetryItem.data[\"duration\"];\r\n }\r\n var bd = telemetryItem.baseData;\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 && telemetryItem.ext.trace && 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.properties || {};\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 (!CoreUtils.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 (!CoreUtils.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 (!CoreUtils.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 (!CoreUtils.isNullOrUndefined(bd.properties)) {\r\n var pageTags = bd.properties;\r\n for (var key in pageTags) {\r\n if (pageTags.hasOwnProperty(key)) {\r\n properties[key] = pageTags[key];\r\n }\r\n }\r\n }\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n var baseData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\r\n };\r\n PageViewEnvelopeCreator.PageViewEnvelopeCreator = new PageViewEnvelopeCreator();\r\n return PageViewEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { PageViewEnvelopeCreator };\r\nvar PageViewPerformanceEnvelopeCreator = /** @class */ (function (_super) {\r\n tslib_1.__extends(PageViewPerformanceEnvelopeCreator, _super);\r\n function PageViewPerformanceEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PageViewPerformanceEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n var bd = telemetryItem.baseData;\r\n var name = bd.name;\r\n var url = bd.uri || bd.url;\r\n var properties = bd.properties || {};\r\n var measurements = bd.measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\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 EnvelopeCreator.createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\r\n };\r\n PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator = new PageViewPerformanceEnvelopeCreator();\r\n return PageViewPerformanceEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { PageViewPerformanceEnvelopeCreator };\r\nvar TraceEnvelopeCreator = /** @class */ (function (_super) {\r\n tslib_1.__extends(TraceEnvelopeCreator, _super);\r\n function TraceEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TraceEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n var message = telemetryItem.baseData.message;\r\n var severityLevel = telemetryItem.baseData.severityLevel;\r\n var customProperties = EnvelopeCreator.extractProperties(telemetryItem.data);\r\n var props = tslib_1.__assign({}, customProperties, telemetryItem.baseData.properties);\r\n var baseData = new Trace(logger, message, severityLevel, props);\r\n var data = new Data(Trace.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\r\n };\r\n TraceEnvelopeCreator.TraceEnvelopeCreator = new TraceEnvelopeCreator();\r\n return TraceEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { TraceEnvelopeCreator };\r\n//# sourceMappingURL=EnvelopeCreator.js.map","import { Util, FieldType } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n this._logger = logger;\r\n }\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n Serializer.prototype.serialize = function (input) {\r\n var output = this._serializeObject(input, \"root\");\r\n return JSON.stringify(output);\r\n };\r\n Serializer.prototype._serializeObject = function (source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.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 this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.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 = this._serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = this._serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = this._serializeStringMap(source, \"string\", name);\r\n }\r\n else if (Util.isArray(source)) {\r\n output = this._serializeArray(source, name);\r\n }\r\n else {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.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 JSON.stringify(source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && typeof e.toString === 'function') ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n for (var field in source.aiDataContract) {\r\n var contract = source.aiDataContract[field];\r\n var isRequired = (typeof contract === \"function\") ? (contract() & FieldType.Required) : (contract & FieldType.Required);\r\n var isHidden = (typeof contract === \"function\") ? (contract() & FieldType.Hidden) : (contract & FieldType.Hidden);\r\n var isArray = contract & FieldType.Array;\r\n var isPresent = source[field] !== undefined;\r\n var isObject = typeof source[field] === \"object\" && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.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 continue;\r\n }\r\n if (isHidden) {\r\n // Don't serialize hidden fields\r\n continue;\r\n }\r\n var value;\r\n if (isObject) {\r\n if (isArray) {\r\n // special case; resurse on each object in the source array\r\n value = this._serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = this._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 delete source[circularReferenceCheck];\r\n return output;\r\n };\r\n Serializer.prototype._serializeArray = function (sources, name) {\r\n var output = undefined;\r\n if (!!sources) {\r\n if (!Util.isArray(sources)) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.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 = this._serializeObject(source, name + \"[\" + i + \"]\");\r\n output.push(item);\r\n }\r\n }\r\n }\r\n return output;\r\n };\r\n Serializer.prototype._serializeStringMap = function (map, expectedType, name) {\r\n var output = undefined;\r\n if (map) {\r\n output = {};\r\n for (var field in map) {\r\n var value = map[field];\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 this._logger.throwInternal(LoggingSeverity.CRITICAL, output[field], null, true);\r\n }\r\n }\r\n }\r\n return output;\r\n };\r\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","import { CoreUtils } from '@microsoft/applicationinsights-core-js';\r\n/**\r\n * @description Monitors browser for offline events\r\n * @export default - Offline: Static instance of OfflineListener\r\n * @class OfflineListener\r\n */\r\nvar OfflineListener = /** @class */ (function () {\r\n function OfflineListener() {\r\n this._onlineStatus = true;\r\n try {\r\n if (typeof window === 'undefined') {\r\n this.isListening = false;\r\n }\r\n else if (window && window.addEventListener) {\r\n window.addEventListener('online', this._setOnline.bind(this), false);\r\n window.addEventListener('offline', this._setOffline.bind(this), false);\r\n this.isListening = true;\r\n }\r\n else if (document && document.body) {\r\n document.body.ononline = this._setOnline.bind(this);\r\n document.body.onoffline = this._setOffline.bind(this);\r\n this.isListening = true;\r\n }\r\n else if (document) {\r\n document.ononline = this._setOnline.bind(this);\r\n document.onoffline = this._setOffline.bind(this);\r\n this.isListening = true;\r\n }\r\n else {\r\n // Could not find a place to add event listener\r\n this.isListening = false;\r\n }\r\n }\r\n catch (e) {\r\n //this makes react-native less angry\r\n this.isListening = false;\r\n }\r\n }\r\n OfflineListener.prototype._setOnline = function () {\r\n this._onlineStatus = true;\r\n };\r\n OfflineListener.prototype._setOffline = function () {\r\n this._onlineStatus = false;\r\n };\r\n OfflineListener.prototype.isOnline = function () {\r\n if (this.isListening) {\r\n return this._onlineStatus;\r\n }\r\n else if (navigator && !CoreUtils.isNullOrUndefined(navigator.onLine)) {\r\n return navigator.onLine;\r\n }\r\n else {\r\n // Cannot determine online status - report as online\r\n return true;\r\n }\r\n };\r\n OfflineListener.prototype.isOffline = function () {\r\n return !this.isOnline();\r\n };\r\n OfflineListener.Offline = new OfflineListener;\r\n return OfflineListener;\r\n}());\r\nexport { OfflineListener };\r\nexport var Offline = OfflineListener.Offline;\r\n//# sourceMappingURL=Offline.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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 < HashCodeScoreGenerator.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 // (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\n HashCodeScoreGenerator.MIN_INPUT_LENGTH = 8;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { HashCodeScoreGenerator } from './HashCodeScoreGenerator';\r\nimport { ContextTagKeys } from '@microsoft/applicationinsights-common';\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n this.hashCodeGeneragor = new HashCodeScoreGenerator();\r\n this.keys = new ContextTagKeys();\r\n }\r\n SamplingScoreGenerator.prototype.getSamplingScore = function (item) {\r\n var score = 0;\r\n if (item.tags && item.tags[this.keys.userId]) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.ext.user.id);\r\n }\r\n else if (item.tags && item.tags[this.keys.operationId]) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\r\n score = this.hashCodeGeneragor.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 return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { SamplingScoreGenerator } from './SamplingScoreGenerators/SamplingScoreGenerator';\r\nimport { Metric } from '@microsoft/applicationinsights-common';\r\nimport { _InternalMessageId, LoggingSeverity, DiagnosticLogger, CoreUtils } from '@microsoft/applicationinsights-core-js';\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 if (CoreUtils.isNullOrUndefined(logger)) {\r\n this._logger = new DiagnosticLogger();\r\n }\r\n else {\r\n this._logger = logger;\r\n }\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.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 this.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","import * as tslib_1 from \"tslib\";\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, Util, PageView, Event, Trace, Exception, Metric, PageViewPerformance, RemoteDependencyData, ConfigurationManager, ProcessLegacy, BreezeChannelIdentifier, SampleRate } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, _InternalMessageId, LoggingSeverity, } from '@microsoft/applicationinsights-core-js';\r\nimport { Offline } from './Offline';\r\nimport { Sample } from './TelemetryProcessors/Sample';\r\nvar Sender = /** @class */ (function () {\r\n function Sender() {\r\n this.priority = 1001;\r\n this.identifier = BreezeChannelIdentifier;\r\n /**\r\n * Whether XMLHttpRequest object is supported. Older version of IE (8,9) do not support it.\r\n */\r\n this._XMLHttpRequestSupported = false;\r\n }\r\n Sender.prototype.pause = function () {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n Sender.prototype.resume = function () {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n Sender.prototype.flush = function () {\r\n try {\r\n this.triggerSend();\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, \"flush failed, telemetry will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n Sender.prototype.teardown = function () {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n Sender.prototype.initialize = function (config, core, extensions) {\r\n var _this = this;\r\n this._logger = core.logger;\r\n this._serializer = new Serializer(core.logger);\r\n this._consecutiveErrors = 0;\r\n this._retryAt = null;\r\n this._lastSend = 0;\r\n this._sender = null;\r\n var defaultConfig = Sender._getDefaultAppInsightsChannelConfig();\r\n this._config = Sender._getEmptyAppInsightsChannelConfig();\r\n var _loop_1 = function (field) {\r\n this_1._config[field] = function () { return ConfigurationManager.getConfig(config, field, _this.identifier, defaultConfig[field]()); };\r\n };\r\n var this_1 = this;\r\n for (var field in defaultConfig) {\r\n _loop_1(field);\r\n }\r\n this._buffer = (this._config.enableSessionStorageBuffer && Util.canUseSessionStorage())\r\n ? new SessionStorageSendBuffer(this._logger, this._config) : new ArraySendBuffer(this._config);\r\n this._sample = new Sample(this._config.samplingPercentage(), this._logger);\r\n if (!this._config.isBeaconApiDisabled() && Util.IsBeaconApiSupported()) {\r\n this._sender = this._beaconSender;\r\n }\r\n else {\r\n if (typeof XMLHttpRequest != \"undefined\") {\r\n var testXhr = new XMLHttpRequest();\r\n if (\"withCredentials\" in testXhr) {\r\n this._sender = this._xhrSender;\r\n this._XMLHttpRequestSupported = true;\r\n }\r\n else if (typeof XDomainRequest !== \"undefined\") {\r\n this._sender = this._xdrSender; //IE 8 and 9\r\n }\r\n }\r\n }\r\n };\r\n Sender.prototype.processTelemetry = function (telemetryItem) {\r\n var _this = this;\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (this._config.disableTelemetry()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem.baseType) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.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 (!this._sender) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.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 (!this._isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, \"Telemetry item was sampled out and not sent\", { SampleRate: this._sample.sampleRate });\r\n return;\r\n }\r\n else {\r\n telemetryItem.tags = telemetryItem.tags || {};\r\n telemetryItem.tags[SampleRate] = this._sample.sampleRate;\r\n }\r\n // construct an envelope that Application Insights endpoint can understand\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, this._config.instrumentationKey(), this._logger);\r\n if (!aiEnvelope_1) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.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 telemetryItem.tags[ProcessLegacy].forEach(function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n _this._logger.warnToConsole(\"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 _this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + Util.getExceptionName(e), { exception: Util.dump(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 = this._serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var bufferPayload = this._buffer.getItems();\r\n var batch = this._buffer.batchPayloads(bufferPayload);\r\n if (batch && (batch.length + payload.length > this._config.maxBatchSizeInBytes())) {\r\n this.triggerSend();\r\n }\r\n // enqueue the payload\r\n this._buffer.enqueue(payload);\r\n // ensure an invocation timeout is set\r\n this._setupTimer();\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n if (!CoreUtils.isNullOrUndefined(this._nextPlugin)) {\r\n this._nextPlugin.processTelemetry(telemetryItem);\r\n }\r\n };\r\n Sender.prototype.setNextPlugin = function (next) {\r\n this._nextPlugin = next;\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n Sender.prototype._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n var response = null;\r\n if (!this._appId) {\r\n response = this._parseResponse(xhr.responseText || xhr.response);\r\n if (response && response.appId) {\r\n this._appId = response.appId;\r\n }\r\n }\r\n if ((xhr.status < 200 || xhr.status >= 300) && xhr.status !== 0) {\r\n if (!this._config.isRetryDisabled() && this._isRetriable(xhr.status)) {\r\n this._resendPayload(payload);\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Response code \" + xhr.status + \". Will retry to send \" + payload.length + \" items.\");\r\n }\r\n else {\r\n this._onError(payload, this._formatErrorMessageXhr(xhr));\r\n }\r\n }\r\n else if (Offline.isOffline()) {\r\n // Note: Don't check for staus == 0, since adblock gives this code\r\n if (!this._config.isRetryDisabled()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n this._resendPayload(payload, offlineBackOffMultiplier);\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". Offline - Response Code: \" + xhr.status + \". Offline status: \" + Offline.isOffline() + \". Will retry to send \" + payload.length + \" items.\");\r\n }\r\n }\r\n else {\r\n if (xhr.status === 206) {\r\n if (!response) {\r\n response = this._parseResponse(xhr.responseText || xhr.response);\r\n }\r\n if (response && !this._config.isRetryDisabled()) {\r\n this._onPartialSuccess(payload, response);\r\n }\r\n else {\r\n this._onError(payload, this._formatErrorMessageXhr(xhr));\r\n }\r\n }\r\n else {\r\n this._consecutiveErrors = 0;\r\n this._onSuccess(payload, countOfItemsInPayload);\r\n }\r\n }\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 */\r\n Sender.prototype.triggerSend = function (async) {\r\n if (async === void 0) { async = true; }\r\n try {\r\n // Send data only if disableTelemetry is false\r\n if (!this._config.disableTelemetry()) {\r\n if (this._buffer.count() > 0) {\r\n var payload = this._buffer.getItems();\r\n // invoke send\r\n this._sender(payload, async);\r\n }\r\n // update lastSend time to enable throttling\r\n this._lastSend = +new Date;\r\n }\r\n else {\r\n this._buffer.clear();\r\n }\r\n clearTimeout(this._timeoutHandle);\r\n this._timeoutHandle = null;\r\n this._retryAt = null;\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n if (!Util.getIEVersion() || Util.getIEVersion() > 9) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, \"Telemetry transmission failed, some telemetry will be lost: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n };\r\n /**\r\n * error handler\r\n */\r\n Sender.prototype._onError = function (payload, message, event) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.OnError, \"Failed to send telemetry.\", { message: message });\r\n this._buffer.clearSent(payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n Sender.prototype._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 (this._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 this._onSuccess(payload, results.itemsAccepted);\r\n }\r\n if (failed.length > 0) {\r\n this._onError(failed, this._formatErrorMessageXhr(null, ['partial success', results.itemsAccepted, 'of', results.itemsReceived].join(' ')));\r\n }\r\n if (retry.length > 0) {\r\n this._resendPayload(retry);\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.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 Sender.prototype._onSuccess = function (payload, countOfItemsInPayload) {\r\n this._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n Sender.prototype._xdrOnLoad = function (xdr, payload) {\r\n if (xdr && (xdr.responseText + \"\" === \"200\" || xdr.responseText === \"\")) {\r\n this._consecutiveErrors = 0;\r\n this._onSuccess(payload, 0);\r\n }\r\n else {\r\n var results = this._parseResponse(xdr.responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n && !this._config.isRetryDisabled()) {\r\n this._onPartialSuccess(payload, results);\r\n }\r\n else {\r\n this._onError(payload, this._formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n Sender.constructEnvelope = function (orig, iKey, logger) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !CoreUtils.isNullOrUndefined(iKey)) {\r\n envelope = tslib_1.__assign({}, orig, { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n switch (envelope.baseType) {\r\n case Event.dataType:\r\n return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope);\r\n case Trace.dataType:\r\n return TraceEnvelopeCreator.TraceEnvelopeCreator.Create(logger, envelope);\r\n case PageView.dataType:\r\n return PageViewEnvelopeCreator.PageViewEnvelopeCreator.Create(logger, envelope);\r\n case PageViewPerformance.dataType:\r\n return PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator.Create(logger, envelope);\r\n case Exception.dataType:\r\n return ExceptionEnvelopeCreator.ExceptionEnvelopeCreator.Create(logger, envelope);\r\n case Metric.dataType:\r\n return MetricEnvelopeCreator.MetricEnvelopeCreator.Create(logger, envelope);\r\n case RemoteDependencyData.dataType:\r\n return DependencyEnvelopeCreator.DependencyEnvelopeCreator.Create(logger, envelope);\r\n default:\r\n return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope);\r\n }\r\n };\r\n Sender._getDefaultAppInsightsChannelConfig = function () {\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 instrumentationKey: function () { return undefined; },\r\n namePrefix: function () { return undefined; },\r\n samplingPercentage: function () { return 100; }\r\n };\r\n };\r\n Sender._getEmptyAppInsightsChannelConfig = function () {\r\n return {\r\n endpointUrl: undefined,\r\n emitLineDelimitedJson: undefined,\r\n maxBatchInterval: undefined,\r\n maxBatchSizeInBytes: undefined,\r\n disableTelemetry: undefined,\r\n enableSessionStorageBuffer: undefined,\r\n isRetryDisabled: undefined,\r\n isBeaconApiDisabled: undefined,\r\n instrumentationKey: undefined,\r\n namePrefix: undefined,\r\n samplingPercentage: undefined\r\n };\r\n };\r\n Sender.prototype._isSampledIn = function (envelope) {\r\n return this._sample.isSampledIn(envelope);\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 Sender.prototype._beaconSender = function (payload, isAsync) {\r\n var url = this._config.endpointUrl();\r\n var batch = this._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 = navigator.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n this._buffer.markAsSent(payload);\r\n // no response from beaconSender, clear buffer\r\n this._onSuccess(payload, payload.length);\r\n }\r\n else {\r\n this._xhrSender(payload, true);\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\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 Sender.prototype._xhrSender = function (payload, isAsync) {\r\n var _this = this;\r\n var xhr = new XMLHttpRequest();\r\n xhr[DisabledPropertyName] = true;\r\n xhr.open(\"POST\", this._config.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 (Util.isInternalApplicationInsightsEndpoint(this._config.endpointUrl())) {\r\n xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n xhr.onreadystatechange = function () { return _this._xhrReadyStateChange(xhr, payload, payload.length); };\r\n xhr.onerror = function (event) { return _this._onError(payload, _this._formatErrorMessageXhr(xhr), event); };\r\n // compose an array of payloads\r\n var batch = this._buffer.batchPayloads(payload);\r\n xhr.send(batch);\r\n this._buffer.markAsSent(payload);\r\n };\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n Sender.prototype._parseResponse = function (response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = JSON.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 this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, \"Cannot parse the response. \" + Util.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 Sender.prototype._resendPayload = function (payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload.length === 0) {\r\n return;\r\n }\r\n this._buffer.clearSent(payload);\r\n this._consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n this._buffer.enqueue(item);\r\n }\r\n // setup timer\r\n this._setRetryTime(linearFactor);\r\n this._setupTimer();\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 Sender.prototype._setRetryTime = function (linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (this._consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, this._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 = Date.now() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n this._retryAt = retryAfterTimeSpan;\r\n };\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n Sender.prototype._setupTimer = function () {\r\n var _this = this;\r\n if (!this._timeoutHandle) {\r\n var retryInterval = this._retryAt ? Math.max(0, this._retryAt - Date.now()) : 0;\r\n var timerValue = Math.max(this._config.maxBatchInterval(), retryInterval);\r\n this._timeoutHandle = setTimeout(function () {\r\n _this.triggerSend();\r\n }, timerValue);\r\n }\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 Sender.prototype._isRetriable = function (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 Sender.prototype._formatErrorMessageXhr = function (xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + xhr.responseText || 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 Sender.prototype._xdrSender = function (payload, isAsync) {\r\n var _this = this;\r\n var xdr = new XDomainRequest();\r\n xdr.onload = function () { return _this._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _this._onError(payload, _this._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.location && window.location.protocol;\r\n if (this._config.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n this._buffer.clear();\r\n return;\r\n }\r\n var endpointUrl = this._config.endpointUrl().replace(/^(https?:)/, \"\");\r\n xdr.open('POST', endpointUrl);\r\n // compose an array of payloads\r\n var batch = this._buffer.batchPayloads(payload);\r\n xdr.send(batch);\r\n this._buffer.markAsSent(payload);\r\n };\r\n Sender.prototype._formatErrorMessageXdr = function (xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + xdr.responseText || \"\";\r\n }\r\n return message;\r\n };\r\n return Sender;\r\n}());\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Util, DateTimeUtils } from '@microsoft/applicationinsights-common';\r\nimport { _InternalMessageId, LoggingSeverity, CoreUtils, DiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, logger) {\r\n var _this = this;\r\n if (CoreUtils.isNullOrUndefined(logger)) {\r\n this._logger = new DiagnosticLogger();\r\n }\r\n else {\r\n this._logger = logger;\r\n }\r\n if (!config) {\r\n config = {};\r\n }\r\n if (!(typeof config.sessionExpirationMs === \"function\")) {\r\n config.sessionExpirationMs = function () { return _SessionManager.acquisitionSpan; };\r\n }\r\n if (!(typeof config.sessionRenewalMs === \"function\")) {\r\n config.sessionRenewalMs = function () { return _SessionManager.renewalSpan; };\r\n }\r\n this.config = config;\r\n this._storageNamePrefix = function () { return _this.config.namePrefix && _this.config.namePrefix() ? _SessionManager.cookieNameConst + _this.config.namePrefix() : _SessionManager.cookieNameConst; };\r\n this.automaticSession = new Session();\r\n }\r\n _SessionManager.prototype.update = function () {\r\n if (!this.automaticSession.id) {\r\n this.initializeAutomaticSession();\r\n }\r\n var now = DateTimeUtils.Now();\r\n var acquisitionExpired = now - this.automaticSession.acquisitionDate > this.config.sessionExpirationMs();\r\n var renewalExpired = now - this.automaticSession.renewalDate > this.config.sessionRenewalMs();\r\n // renew if acquisitionSpan or renewalSpan has ellapsed\r\n if (acquisitionExpired || renewalExpired) {\r\n // update automaticSession so session state has correct id\r\n this.renew();\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!this.cookieUpdatedTimestamp || now - this.cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n this.automaticSession.renewalDate = now;\r\n this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _SessionManager.prototype.backup = function () {\r\n this.setStorage(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n */\r\n _SessionManager.prototype.initializeAutomaticSession = function () {\r\n var cookie = Util.getCookie(this._logger, this._storageNamePrefix());\r\n if (cookie && typeof cookie.split === \"function\") {\r\n this.initializeAutomaticSessionWithData(cookie);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storage = Util.getStorage(this._logger, this._storageNamePrefix());\r\n if (storage) {\r\n this.initializeAutomaticSessionWithData(storage);\r\n }\r\n }\r\n if (!this.automaticSession.id) {\r\n this.renew();\r\n }\r\n };\r\n /**\r\n * Extract id, aquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n */\r\n _SessionManager.prototype.initializeAutomaticSessionWithData = function (sessionData) {\r\n var params = sessionData.split(\"|\");\r\n if (params.length > 0) {\r\n this.automaticSession.id = params[0];\r\n }\r\n try {\r\n if (params.length > 1) {\r\n var acq = +params[1];\r\n this.automaticSession.acquisitionDate = +new Date(acq);\r\n this.automaticSession.acquisitionDate = this.automaticSession.acquisitionDate > 0 ? this.automaticSession.acquisitionDate : 0;\r\n }\r\n if (params.length > 2) {\r\n var renewal = +params[2];\r\n this.automaticSession.renewalDate = +new Date(renewal);\r\n this.automaticSession.renewalDate = this.automaticSession.renewalDate > 0 ? this.automaticSession.renewalDate : 0;\r\n }\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ErrorParsingAISessionCookie, \"Error parsing ai_session cookie, session will be reset: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n if (this.automaticSession.renewalDate == 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session renewal date is 0, session will be reset.\");\r\n }\r\n };\r\n _SessionManager.prototype.renew = function () {\r\n var now = DateTimeUtils.Now();\r\n this.automaticSession.id = Util.newId();\r\n this.automaticSession.acquisitionDate = now;\r\n this.automaticSession.renewalDate = now;\r\n this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!Util.canUseLocalStorage()) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserDoesNotSupportLocalStorage, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n };\r\n _SessionManager.prototype.setCookie = function (guid, acq, renewal) {\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acquisitionExpiry = acq + this.config.sessionExpirationMs();\r\n var renewalExpiry = renewal + this.config.sessionRenewalMs();\r\n var cookieExpiry = new Date();\r\n var cookie = [guid, acq, renewal];\r\n if (acquisitionExpiry < renewalExpiry) {\r\n cookieExpiry.setTime(acquisitionExpiry);\r\n }\r\n else {\r\n cookieExpiry.setTime(renewalExpiry);\r\n }\r\n var cookieDomnain = this.config.cookieDomain ? this.config.cookieDomain() : null;\r\n Util.setCookie(this._logger, this._storageNamePrefix(), cookie.join('|') + ';expires=' + cookieExpiry.toUTCString(), cookieDomnain);\r\n this.cookieUpdatedTimestamp = DateTimeUtils.Now();\r\n };\r\n _SessionManager.prototype.setStorage = function (guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n Util.setStorage(this._logger, this._storageNamePrefix(), [guid, acq, renewal].join('|'));\r\n };\r\n _SessionManager.acquisitionSpan = 86400000; // 24 hours in ms\r\n _SessionManager.renewalSpan = 1800000; // 30 minutes in ms\r\n _SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n _SessionManager.cookieNameConst = 'ai_session';\r\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Version = \"2.2.0\";\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config) {\r\n this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + \"_\" : \"\") + \"javascript:\" + Version;\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Util } from '@microsoft/applicationinsights-common';\r\nimport { _InternalMessageId, LoggingSeverity } from '@microsoft/applicationinsights-core-js';\r\nvar User = /** @class */ (function () {\r\n function User(config, logger) {\r\n this._logger = logger;\r\n //get userId or create new one if none exists\r\n var cookie = Util.getCookie(this._logger, User.userCookieName);\r\n if (cookie) {\r\n var params = cookie.split(User.cookieSeparator);\r\n if (params.length > 0) {\r\n this.id = params[0];\r\n }\r\n }\r\n this.config = config;\r\n if (!this.id) {\r\n this.id = Util.newId();\r\n var date = new Date();\r\n var acqStr = Util.toISOStringForIE8(date);\r\n this.accountAcquisitionDate = acqStr;\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 * 1000 = 31536000000 \r\n date.setTime(date.getTime() + 31536000000);\r\n var newCookie = [this.id, acqStr];\r\n var cookieDomain = this.config.cookieDomain ? this.config.cookieDomain() : undefined;\r\n Util.setCookie(this._logger, User.userCookieName, newCookie.join(User.cookieSeparator) + ';expires=' + date.toUTCString(), cookieDomain);\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = config.namePrefix && config.namePrefix() ? config.namePrefix() + 'ai_session' : 'ai_session';\r\n Util.removeStorage(this._logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility. \r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n this.accountId = config.accountId ? config.accountId() : undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = Util.getCookie(this._logger, User.authUserCookieName);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User.cookieSeparator);\r\n if (authCookieString[0]) {\r\n this.authenticatedId = authCookieString[0];\r\n }\r\n if (authCookieString.length > 1 && authCookieString[1]) {\r\n this.accountId = authCookieString[1];\r\n }\r\n }\r\n }\r\n /**\r\n * Sets the authenticated user id and the account id in this session.\r\n *\r\n * @param authenticatedUserId {string} - The authenticated user id. A unique and persistent string that represents each authenticated user in the service.\r\n * @param accountId {string} - An optional string to represent the account associated with the authenticated user.\r\n */\r\n User.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !this.validateUserInput(authenticatedUserId) || (accountId && !this.validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SetAuthContextFailedAccountName, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n this.authenticatedId = authenticatedUserId;\r\n var authCookie = this.authenticatedId;\r\n if (accountId) {\r\n this.accountId = accountId;\r\n authCookie = [this.authenticatedId, this.accountId].join(User.cookieSeparator);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n Util.setCookie(this._logger, User.authUserCookieName, encodeURI(authCookie), this.config.cookieDomain());\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n User.prototype.clearAuthenticatedUserContext = function () {\r\n this.authenticatedId = null;\r\n this.accountId = null;\r\n Util.deleteCookie(this._logger, User.authUserCookieName);\r\n };\r\n User.prototype.validateUserInput = function (id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== 'string' ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n User.cookieSeparator = '|';\r\n User.userCookieName = 'ai_user';\r\n User.authUserCookieName = 'ai_authUser';\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Util } from '@microsoft/applicationinsights-common';\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name) {\r\n this.traceID = id || Util.generateW3CId();\r\n this.parentID = parentId;\r\n this.name = name;\r\n if (window && window.location && window.location.pathname) {\r\n this.name = window.location.pathname;\r\n }\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { Session, _SessionManager } from './Context/Session';\r\nimport { Extensions, CtxTagKeys } from '@microsoft/applicationinsights-common';\r\nimport { Application } from './Context/Application';\r\nimport { Device } from './Context/Device';\r\nimport { Internal } from './Context/Internal';\r\nimport { User } from './Context/User';\r\nimport { Location } from './Context/Location';\r\nimport { TelemetryTrace } from './Context/TelemetryTrace';\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(logger, defaultConfig) {\r\n if (typeof window !== 'undefined') {\r\n this.sessionManager = new _SessionManager(defaultConfig, logger);\r\n this.application = new Application();\r\n this.device = new Device();\r\n this.internal = new Internal(defaultConfig);\r\n this.location = new Location();\r\n this.user = new User(defaultConfig, logger);\r\n this.telemetryTrace = new TelemetryTrace();\r\n this.session = new Session();\r\n }\r\n this.appId = function () { return null; };\r\n }\r\n TelemetryContext.prototype.applySessionContext = function (event) {\r\n var sessionContext = this.session || this.sessionManager.automaticSession;\r\n if (sessionContext) {\r\n if (typeof sessionContext.id === \"string\") {\r\n event.ext.app.sesId = sessionContext.id;\r\n }\r\n }\r\n if (this.session) {\r\n // If customer set session info, apply his context; otherwise apply context automatically generated\r\n if (typeof this.session.id === \"string\") {\r\n event.ext.app.sesId = this.session.id;\r\n }\r\n else {\r\n event.ext.app.sesId = this.sessionManager.automaticSession.id;\r\n }\r\n }\r\n };\r\n TelemetryContext.prototype.applyOperatingSystemContxt = function (event) {\r\n if (this.os && this.os.name) {\r\n event.ext.os = this.os;\r\n }\r\n };\r\n TelemetryContext.prototype.applyApplicationContext = function (event) {\r\n if (this.application) {\r\n if (typeof this.application.ver === \"string\") {\r\n event.tags[CtxTagKeys.applicationVersion] = this.application.ver;\r\n }\r\n if (typeof this.application.build === \"string\") {\r\n event.tags[CtxTagKeys.applicationBuild] = this.application.build;\r\n }\r\n }\r\n };\r\n TelemetryContext.prototype.applyDeviceContext = function (event) {\r\n if (this.device) {\r\n if (typeof this.device.id === \"string\") {\r\n event.ext.device.localId = this.device.id;\r\n }\r\n if (typeof this.device.ip === \"string\") {\r\n event.ext.device.ip = this.device.ip;\r\n }\r\n if (typeof this.device.model === \"string\") {\r\n event.ext.device.model = this.device.model;\r\n }\r\n if (typeof this.device.deviceClass === \"string\") {\r\n event.ext.device.deviceClass = this.device.deviceClass;\r\n }\r\n }\r\n };\r\n TelemetryContext.prototype.applyInternalContext = function (event) {\r\n if (this.internal) {\r\n if (typeof this.internal.agentVersion === \"string\") {\r\n event.tags[CtxTagKeys.internalAgentVersion] = this.internal.agentVersion; // not mapped in CS 4.0\r\n }\r\n if (typeof this.internal.sdkVersion === \"string\") {\r\n event.tags[CtxTagKeys.internalSdkVersion] = this.internal.sdkVersion;\r\n }\r\n }\r\n };\r\n TelemetryContext.prototype.applyLocationContext = function (event) {\r\n if (this.location) {\r\n if (typeof this.location.ip === \"string\") {\r\n event.tags[CtxTagKeys.locationIp] = this.location.ip;\r\n }\r\n }\r\n };\r\n TelemetryContext.prototype.applyOperationContext = function (event) {\r\n if (this.telemetryTrace) {\r\n var trace = event.ext.trace || { traceID: undefined, parentID: undefined };\r\n if (typeof this.telemetryTrace.traceID === \"string\") {\r\n trace.traceID = this.telemetryTrace.traceID;\r\n }\r\n if (typeof this.telemetryTrace.name === \"string\") {\r\n trace.name = this.telemetryTrace.name;\r\n }\r\n if (typeof this.telemetryTrace.parentID === \"string\") {\r\n trace.parentID = this.telemetryTrace.parentID;\r\n }\r\n event.ext.trace = trace;\r\n }\r\n };\r\n TelemetryContext.prototype.applyWebContext = function (event) {\r\n if (this.web) {\r\n event.ext.web = event.ext.web || {};\r\n event.ext.web = this.web;\r\n }\r\n };\r\n TelemetryContext.prototype.applyUserContext = function (event) {\r\n if (this.user) {\r\n if (!event.tags) {\r\n event.tags = [];\r\n }\r\n // stays in tags\r\n if (typeof this.user.accountId === \"string\") {\r\n var item = {};\r\n event.tags[CtxTagKeys.userAccountId] = this.user.accountId;\r\n }\r\n // CS 4.0\r\n if (typeof this.user.id === \"string\") {\r\n event.ext.user.id = this.user.id;\r\n }\r\n if (typeof this.user.authenticatedId === \"string\") {\r\n event.ext.user.authId = this.user.authenticatedId;\r\n }\r\n }\r\n };\r\n TelemetryContext.prototype.cleanUp = function (event) {\r\n if (event.ext[Extensions.DeviceExt] && Object.keys(event.ext[Extensions.DeviceExt]).length === 0) {\r\n delete event.ext[Extensions.DeviceExt];\r\n }\r\n if (event.ext[Extensions.UserExt] && Object.keys(event.ext[Extensions.UserExt]).length === 0) {\r\n delete event.ext[Extensions.UserExt];\r\n }\r\n if (event.ext[Extensions.WebExt] && Object.keys(event.ext[Extensions.WebExt]).length === 0) {\r\n delete event.ext[Extensions.WebExt];\r\n }\r\n if (event.ext[Extensions.OSExt] && Object.keys(event.ext[Extensions.OSExt]).length === 0) {\r\n delete event.ext[Extensions.OSExt];\r\n }\r\n if (event.ext[Extensions.AppExt] && Object.keys(event.ext[Extensions.AppExt]).length === 0) {\r\n delete event.ext[Extensions.AppExt];\r\n }\r\n if (event.ext[Extensions.TraceExt] && Object.keys(event.ext[Extensions.TraceExt]).length === 0) {\r\n delete event.ext[Extensions.TraceExt];\r\n }\r\n };\r\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nimport { TelemetryContext } from './TelemetryContext';\r\nimport { PageView, ConfigurationManager, BreezeChannelIdentifier, PropertiesPluginIdentifier, Extensions, Util } from '@microsoft/applicationinsights-common';\r\nvar PropertiesPlugin = /** @class */ (function () {\r\n function PropertiesPlugin() {\r\n this.priority = 110;\r\n this.identifier = PropertiesPluginIdentifier;\r\n }\r\n PropertiesPlugin.getDefaultConfig = function () {\r\n var defaultConfig = {\r\n instrumentationKey: function () { return undefined; },\r\n accountId: function () { return null; },\r\n sessionRenewalMs: function () { return 30 * 60 * 1000; },\r\n samplingPercentage: function () { return 100; },\r\n sessionExpirationMs: function () { return 24 * 60 * 60 * 1000; },\r\n cookieDomain: function () { return null; },\r\n sdkExtension: function () { return null; },\r\n isBrowserLinkTrackingEnabled: function () { return false; },\r\n appId: function () { return null; },\r\n namePrefix: function () { return undefined; }\r\n };\r\n return defaultConfig;\r\n };\r\n PropertiesPlugin.prototype.initialize = function (config, core, extensions) {\r\n var _this = this;\r\n var defaultConfig = PropertiesPlugin.getDefaultConfig();\r\n this._extensionConfig = this._extensionConfig || PropertiesPlugin.getDefaultConfig();\r\n var _loop_1 = function (field) {\r\n this_1._extensionConfig[field] = function () { return ConfigurationManager.getConfig(config, field, _this.identifier, defaultConfig[field]()); };\r\n };\r\n var this_1 = this;\r\n for (var field in defaultConfig) {\r\n _loop_1(field);\r\n }\r\n this._logger = core.logger;\r\n this.context = new TelemetryContext(core.logger, this._extensionConfig);\r\n this._breezeChannel = Util.getExtension(extensions, BreezeChannelIdentifier);\r\n this.context.appId = function () { return _this._breezeChannel ? _this._breezeChannel[\"_appId\"] : null; };\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n PropertiesPlugin.prototype.processTelemetry = function (event) {\r\n if (CoreUtils.isNullOrUndefined(event)) {\r\n // TODO(barustum): throw an internal event once we have support for internal logging\r\n }\r\n else {\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n this._logger.resetInternalMessageCount();\r\n }\r\n if (this.context.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof this.context.session.id !== \"string\") {\r\n this.context.sessionManager.update();\r\n }\r\n }\r\n this._processTelemetryInternal(event);\r\n if (!CoreUtils.isNullOrUndefined(this._nextPlugin)) {\r\n this._nextPlugin.processTelemetry(event);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets the next plugin that comes after this plugin\r\n * @param nextPlugin The next plugin\r\n */\r\n PropertiesPlugin.prototype.setNextPlugin = function (nextPlugin) {\r\n this._nextPlugin = nextPlugin;\r\n };\r\n PropertiesPlugin.prototype._processTelemetryInternal = function (event) {\r\n // set part A fields\r\n if (!event.tags) {\r\n event.tags = [];\r\n }\r\n if (!event.ext) {\r\n event.ext = {};\r\n }\r\n event.ext[Extensions.DeviceExt] = event.ext[Extensions.DeviceExt] || {};\r\n event.ext[Extensions.WebExt] = event.ext[Extensions.WebExt] || {};\r\n event.ext[Extensions.UserExt] = event.ext[Extensions.UserExt] || {};\r\n event.ext[Extensions.OSExt] = event.ext[Extensions.OSExt] || {};\r\n event.ext[Extensions.AppExt] = event.ext[Extensions.AppExt] || {};\r\n event.ext[Extensions.TraceExt] = event.ext[Extensions.TraceExt] || {};\r\n this.context.applySessionContext(event);\r\n this.context.applyApplicationContext(event);\r\n this.context.applyDeviceContext(event);\r\n this.context.applyOperationContext(event);\r\n this.context.applyUserContext(event);\r\n this.context.applyOperatingSystemContxt(event);\r\n this.context.applyWebContext(event);\r\n this.context.applyLocationContext(event); // legacy tags\r\n this.context.applyInternalContext(event); // legacy tags\r\n this.context.cleanUp(event);\r\n };\r\n return PropertiesPlugin;\r\n}());\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DataSanitizer, UrlHelper, DateTimeUtils } from '@microsoft/applicationinsights-common';\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n this.openDone = false;\r\n this.setRequestHeaderDone = false;\r\n this.sendDone = false;\r\n this.abortDone = false;\r\n //True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n this.onreadystatechangeCallbackAttached = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceID, spanID, logger) {\r\n this.completed = false;\r\n this.requestHeadersSize = null;\r\n this.requestHeaders = null;\r\n this.ttfb = null;\r\n this.responseReceivingDuration = null;\r\n this.callbackDuration = null;\r\n this.ajaxTotalDuration = null;\r\n this.aborted = null;\r\n this.pageUrl = null;\r\n this.requestUrl = null;\r\n this.requestSize = 0;\r\n this.method = null;\r\n ///Returns the HTTP status code.\r\n this.status = null;\r\n //The timestamp when open method was invoked\r\n this.requestSentTime = null;\r\n //The timestamps when first byte was received\r\n this.responseStartedTime = null;\r\n //The timestamp when last byte was received\r\n this.responseFinishedTime = null;\r\n //The timestamp when onreadystatechange callback in readyState 4 finished\r\n this.callbackFinishedTime = null;\r\n //The timestamp at which ajax was ended\r\n this.endTime = null;\r\n //The original xhr onreadystatechange event\r\n this.originalOnreadystatechage = null;\r\n this.xhrMonitoringState = new XHRMonitoringState();\r\n //Determines whether or not JavaScript exception occured in xhr.onreadystatechange code. 1 if occured, otherwise 0.\r\n this.clientFailure = 0;\r\n this.CalculateMetrics = function () {\r\n var self = this;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(DateTimeUtils.GetDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n };\r\n this.traceID = traceID;\r\n this.spanID = spanID;\r\n this._logger = logger;\r\n }\r\n ajaxRecord.prototype.getAbsoluteUrl = function () {\r\n return this.requestUrl ? UrlHelper.getAbsoluteUrl(this.requestUrl) : null;\r\n };\r\n ajaxRecord.prototype.getPathName = function () {\r\n return this.requestUrl ? DataSanitizer.sanitizeUrl(this._logger, UrlHelper.getCompleteUrl(this.method, this.requestUrl)) : null;\r\n };\r\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n;\r\n//# sourceMappingURL=ajaxRecord.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nvar stringUtils = /** @class */ (function () {\r\n function stringUtils() {\r\n }\r\n stringUtils.GetLength = function (strObject) {\r\n var res = 0;\r\n if (!CoreUtils.isNullOrUndefined(strObject)) {\r\n var stringified = \"\";\r\n try {\r\n stringified = strObject.toString();\r\n }\r\n catch (ex) {\r\n // some troubles with complex object\r\n }\r\n res = stringified.length;\r\n res = isNaN(res) ? 0 : res;\r\n }\r\n return res;\r\n };\r\n return stringUtils;\r\n}());\r\nexport { stringUtils };\r\nvar EventHelper = /** @class */ (function () {\r\n function EventHelper() {\r\n }\r\n ///Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n ///Object to which \r\n ///String that specifies any of the standard DHTML Events without \"on\" prefix\r\n ///Pointer that specifies the function to call when event fires\r\n ///True if the function was bound successfully to the event, otherwise false\r\n EventHelper.AttachEvent = function (obj, eventNameWithoutOn, handlerRef) {\r\n var result = false;\r\n if (!CoreUtils.isNullOrUndefined(obj)) {\r\n if (!CoreUtils.isNullOrUndefined(obj.attachEvent)) {\r\n // IE before version 9 \r\n obj.attachEvent(\"on\" + eventNameWithoutOn, handlerRef);\r\n result = true;\r\n }\r\n else {\r\n if (!CoreUtils.isNullOrUndefined(obj.addEventListener)) {\r\n // all browsers except IE before version 9\r\n obj.addEventListener(eventNameWithoutOn, handlerRef, false);\r\n result = true;\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n EventHelper.DetachEvent = function (obj, eventNameWithoutOn, handlerRef) {\r\n if (!CoreUtils.isNullOrUndefined(obj)) {\r\n if (!CoreUtils.isNullOrUndefined(obj.detachEvent)) {\r\n obj.detachEvent(\"on\" + eventNameWithoutOn, handlerRef);\r\n }\r\n else {\r\n if (!CoreUtils.isNullOrUndefined(obj.removeEventListener)) {\r\n obj.removeEventListener(eventNameWithoutOn, handlerRef, false);\r\n }\r\n }\r\n }\r\n };\r\n return EventHelper;\r\n}());\r\nexport { EventHelper };\r\n//# sourceMappingURL=ajaxUtils.js.map","import { Util } from '@microsoft/applicationinsights-common';\r\nvar Traceparent = /** @class */ (function () {\r\n function Traceparent(traceId, spanId) {\r\n this.traceFlag = Traceparent.DEFAULT_TRACE_FLAG;\r\n this.version = Traceparent.DEFAULT_VERSION;\r\n if (traceId && Traceparent.isValidTraceId(traceId)) {\r\n this.traceId = traceId;\r\n }\r\n else {\r\n this.traceId = Util.generateW3CId();\r\n }\r\n if (spanId && Traceparent.isValidSpanId(spanId)) {\r\n this.spanId = spanId;\r\n }\r\n else {\r\n this.spanId = Util.generateW3CId().substr(0, 16);\r\n }\r\n }\r\n Traceparent.isValidTraceId = function (id) {\r\n return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\r\n };\r\n Traceparent.isValidSpanId = function (id) {\r\n return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\r\n };\r\n Traceparent.prototype.toString = function () {\r\n return this.version + \"-\" + this.traceId + \"-\" + this.spanId + \"-\" + this.traceFlag;\r\n };\r\n Traceparent.DEFAULT_TRACE_FLAG = \"00\";\r\n Traceparent.DEFAULT_VERSION = \"00\";\r\n return Traceparent;\r\n}());\r\nexport { Traceparent };\r\n//# sourceMappingURL=TraceParent.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { RequestHeaders, Util, CorrelationIdHelper, TelemetryItemCreator, RemoteDependencyData, DateTimeUtils, DisabledPropertyName, ConfigurationManager, PropertiesPluginIdentifier, DistributedTracingModes } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';\r\nimport { ajaxRecord } from './ajaxRecord';\r\nimport { EventHelper } from './ajaxUtils';\r\nimport { Traceparent } from './TraceParent';\r\nvar AjaxMonitor = /** @class */ (function () {\r\n function AjaxMonitor() {\r\n this._trackAjaxAttempts = 0;\r\n this.identifier = AjaxMonitor.identifier;\r\n this.priority = 120;\r\n this.currentWindowHost = window && window.location && window.location.host && window.location.host.toLowerCase();\r\n this.initialized = false;\r\n this._fetchInitialized = false;\r\n }\r\n ///Verifies that particalar instance of XMLHttpRequest needs to be monitored\r\n ///Optional parameter. True if ajaxData must be excluded from verification\r\n ///True if instance needs to be monitored, otherwise false\r\n AjaxMonitor.prototype.isMonitoredInstance = function (xhr, excludeAjaxDataValidation, request, init) {\r\n var disabledProperty = false;\r\n var ajaxValidation = true;\r\n var initialized = false;\r\n if (typeof request !== 'undefined') {\r\n initialized = this._fetchInitialized;\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n disabledProperty = (typeof request === 'object' ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n else if (typeof xhr !== 'undefined') {\r\n initialized = this.initialized;\r\n disabledProperty = xhr[DisabledPropertyName] === true;\r\n ajaxValidation = excludeAjaxDataValidation === true || !CoreUtils.isNullOrUndefined(xhr.ajaxData);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n && !disabledProperty;\r\n };\r\n ///Determines whether ajax monitoring can be enabled on this document\r\n ///True if Ajax monitoring is supported on this page, otherwise false\r\n AjaxMonitor.prototype.supportsAjaxMonitoring = function () {\r\n var result = true;\r\n if (CoreUtils.isNullOrUndefined(XMLHttpRequest) ||\r\n CoreUtils.isNullOrUndefined(XMLHttpRequest.prototype) ||\r\n CoreUtils.isNullOrUndefined(XMLHttpRequest.prototype.open) ||\r\n CoreUtils.isNullOrUndefined(XMLHttpRequest.prototype.send) ||\r\n CoreUtils.isNullOrUndefined(XMLHttpRequest.prototype.abort)) {\r\n result = false;\r\n }\r\n // disable in IE8 or older (https://www.w3schools.com/jsref/jsref_trim_string.asp)\r\n try {\r\n \" a \".trim();\r\n }\r\n catch (ex) {\r\n result = false;\r\n }\r\n return result;\r\n };\r\n AjaxMonitor.prototype.instrumentOpen = function () {\r\n var originalOpen = XMLHttpRequest.prototype.open;\r\n var ajaxMonitorInstance = this;\r\n XMLHttpRequest.prototype.open = function (method, url, async) {\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(this, true) &&\r\n (!this.ajaxData ||\r\n !this.ajaxData.xhrMonitoringState.openDone)) {\r\n ajaxMonitorInstance.openHandler(this, method, url, async);\r\n }\r\n }\r\n catch (e) {\r\n ajaxMonitorInstance._core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n return originalOpen.apply(this, arguments);\r\n };\r\n };\r\n AjaxMonitor.prototype.openHandler = function (xhr, method, url, async) {\r\n var traceID = (this._context && this._context.telemetryTrace && this._context.telemetryTrace.traceID) || Util.generateW3CId();\r\n var spanID = Util.generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, this._core.logger);\r\n ajaxData.method = method;\r\n ajaxData.requestUrl = url;\r\n ajaxData.xhrMonitoringState.openDone = true;\r\n ajaxData.requestHeaders = {};\r\n xhr.ajaxData = ajaxData;\r\n this.attachToOnReadyStateChange(xhr);\r\n };\r\n AjaxMonitor.getFailedAjaxDiagnosticsMessage = function (xhr) {\r\n var result = \"\";\r\n try {\r\n if (!CoreUtils.isNullOrUndefined(xhr) &&\r\n !CoreUtils.isNullOrUndefined(xhr.ajaxData) &&\r\n !CoreUtils.isNullOrUndefined(xhr.ajaxData.requestUrl)) {\r\n result += \"(url: '\" + xhr.ajaxData.requestUrl + \"')\";\r\n }\r\n }\r\n catch (e) { }\r\n return result;\r\n };\r\n AjaxMonitor.prototype.instrumentSend = function () {\r\n var originalSend = XMLHttpRequest.prototype.send;\r\n var ajaxMonitorInstance = this;\r\n XMLHttpRequest.prototype.send = function (content) {\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(this) && !this.ajaxData.xhrMonitoringState.sendDone) {\r\n ajaxMonitorInstance.sendHandler(this, content);\r\n }\r\n }\r\n catch (e) {\r\n ajaxMonitorInstance._core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedMonitorAjaxSend, \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n return originalSend.apply(this, arguments);\r\n };\r\n };\r\n AjaxMonitor.prototype.sendHandler = function (xhr, content) {\r\n xhr.ajaxData.requestSentTime = DateTimeUtils.Now();\r\n xhr = this.includeCorrelationHeaders(xhr.ajaxData, undefined, undefined, xhr);\r\n xhr.ajaxData.xhrMonitoringState.sendDone = true;\r\n };\r\n AjaxMonitor.prototype.instrumentAbort = function () {\r\n var originalAbort = XMLHttpRequest.prototype.abort;\r\n var ajaxMonitorInstance = this;\r\n XMLHttpRequest.prototype.abort = function () {\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(this) && !this.ajaxData.xhrMonitoringState.abortDone) {\r\n this.ajaxData.aborted = 1;\r\n this.ajaxData.xhrMonitoringState.abortDone = true;\r\n }\r\n }\r\n catch (e) {\r\n ajaxMonitorInstance._core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedMonitorAjaxAbort, \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n return originalAbort.apply(this, arguments);\r\n };\r\n };\r\n AjaxMonitor.prototype.instrumentSetRequestHeader = function () {\r\n if (!this._config.enableRequestHeaderTracking) {\r\n return;\r\n }\r\n var originalSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;\r\n var ajaxMonitorInstance = this;\r\n XMLHttpRequest.prototype.setRequestHeader = function (header, value) {\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(this)) {\r\n this.ajaxData.requestHeaders[header] = value;\r\n }\r\n }\r\n catch (e) {\r\n ajaxMonitorInstance._core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedMonitorAjaxSetRequestHeader, \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n return originalSetRequestHeader.apply(this, arguments);\r\n };\r\n };\r\n AjaxMonitor.prototype.attachToOnReadyStateChange = function (xhr) {\r\n var ajaxMonitorInstance = this;\r\n xhr.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached = EventHelper.AttachEvent(xhr, \"readystatechange\", function () {\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(xhr)) {\r\n if (xhr.readyState === 4) {\r\n ajaxMonitorInstance.onAjaxComplete(xhr);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = Util.dump(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || exceptionText.toLowerCase().indexOf(\"c00c023f\") == -1) {\r\n ajaxMonitorInstance._core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedMonitorAjaxRSC, \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n });\r\n };\r\n AjaxMonitor.prototype.onAjaxComplete = function (xhr) {\r\n xhr.ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n xhr.ajaxData.status = xhr.status;\r\n xhr.ajaxData.CalculateMetrics();\r\n if (xhr.ajaxData.ajaxTotalDuration < 0) {\r\n this._core.logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\", {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),\r\n requestSentTime: xhr.ajaxData.requestSentTime,\r\n responseFinishedTime: xhr.ajaxData.responseFinishedTime\r\n });\r\n }\r\n else {\r\n var dependency = {\r\n id: \"|\" + xhr.ajaxData.traceID + \".\" + xhr.ajaxData.spanID,\r\n target: xhr.ajaxData.getAbsoluteUrl(),\r\n name: xhr.ajaxData.getPathName(),\r\n type: \"Ajax\",\r\n duration: xhr.ajaxData.ajaxTotalDuration,\r\n success: (+(xhr.ajaxData.status)) >= 200 && (+(xhr.ajaxData.status)) < 400,\r\n responseCode: +xhr.ajaxData.status,\r\n method: xhr.ajaxData.method\r\n };\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = this.getAjaxCorrelationContext(xhr);\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (this._config.enableRequestHeaderTracking) {\r\n if (Object.keys(xhr.ajaxData.requestHeaders).length > 0) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.requestHeaders = {};\r\n dependency.properties.requestHeaders = xhr.ajaxData.requestHeaders;\r\n }\r\n }\r\n if (this._config.enableResponseHeaderTracking) {\r\n var headers = xhr.getAllResponseHeaders();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = headers.trim().split(/[\\r\\n]+/);\r\n var responseHeaderMap_1 = {};\r\n arr.forEach(function (line) {\r\n var parts = line.split(': ');\r\n var header = parts.shift();\r\n var value = parts.join(': ');\r\n responseHeaderMap_1[header] = value;\r\n });\r\n if (Object.keys(responseHeaderMap_1).length > 0) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.responseHeaders = {};\r\n dependency.properties.responseHeaders = responseHeaderMap_1;\r\n }\r\n }\r\n }\r\n this.trackDependencyDataInternal(dependency);\r\n xhr.ajaxData = null;\r\n }\r\n };\r\n AjaxMonitor.prototype.getAjaxCorrelationContext = function (xhr) {\r\n try {\r\n var responseHeadersString = xhr.getAllResponseHeaders();\r\n if (responseHeadersString !== null) {\r\n var index = responseHeadersString.toLowerCase().indexOf(RequestHeaders.requestContextHeaderLowerCase);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this._core.logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n };\r\n /**\r\n * Logs dependency call\r\n * @param dependencyData dependency data object\r\n */\r\n AjaxMonitor.prototype.trackDependencyDataInternal = function (dependency, properties, systemProperties) {\r\n if (this._config.maxAjaxCallsPerView === -1 || this._trackAjaxAttempts < this._config.maxAjaxCallsPerView) {\r\n var item = TelemetryItemCreator.create(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, this._core.logger, properties, systemProperties);\r\n this._core.track(item);\r\n }\r\n else if (this._trackAjaxAttempts === this._config.maxAjaxCallsPerView) {\r\n this._core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.MaxAjaxPerPVExceeded, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++this._trackAjaxAttempts;\r\n };\r\n AjaxMonitor.prototype.trackDependencyData = function (dependency, properties) {\r\n this.trackDependencyDataInternal(dependency, properties);\r\n };\r\n AjaxMonitor.prototype.processTelemetry = function (item) {\r\n if (this._nextPlugin && this._nextPlugin.processTelemetry) {\r\n this._nextPlugin.processTelemetry(item);\r\n }\r\n };\r\n AjaxMonitor.prototype.setNextPlugin = function (next) {\r\n if (next) {\r\n this._nextPlugin = next;\r\n }\r\n };\r\n // Fetch Stuff\r\n AjaxMonitor.prototype.instrumentFetch = function () {\r\n if (!this.supportsFetch() || this._fetchInitialized) {\r\n return;\r\n }\r\n var originalFetch = window.fetch;\r\n var fetchMonitorInstance = this;\r\n window.fetch = function fetch(input, init) {\r\n var fetchData;\r\n if (fetchMonitorInstance.isFetchInstrumented(input) && fetchMonitorInstance.isMonitoredInstance(undefined, undefined, input, init)) {\r\n try {\r\n fetchData = fetchMonitorInstance.createFetchRecord(input, init);\r\n init = fetchMonitorInstance.includeCorrelationHeaders(fetchData, input, init);\r\n }\r\n catch (e) {\r\n fetchMonitorInstance._core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: this.getFailedFetchDiagnosticsMessage(input),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n return originalFetch(input, init)\r\n .then(function (response) {\r\n fetchMonitorInstance.onFetchComplete(response, fetchData);\r\n return response;\r\n })\r\n .catch(function (reason) {\r\n fetchMonitorInstance.onFetchFailed(input, fetchData, reason);\r\n throw reason;\r\n });\r\n };\r\n this._fetchInitialized = true;\r\n };\r\n AjaxMonitor.prototype.isFetchInstrumented = function (input) {\r\n return this._fetchInitialized && input[DisabledPropertyName] !== true;\r\n };\r\n AjaxMonitor.prototype.supportsFetch = function () {\r\n var result = true;\r\n if (!window || CoreUtils.isNullOrUndefined(window.Request) ||\r\n CoreUtils.isNullOrUndefined(window.Request.prototype) ||\r\n CoreUtils.isNullOrUndefined(window.fetch)) {\r\n result = false;\r\n }\r\n return result;\r\n };\r\n AjaxMonitor.prototype.createFetchRecord = function (input, init) {\r\n var traceID = (this._context && this._context.telemetryTrace && this._context.telemetryTrace.traceID) || Util.generateW3CId();\r\n var spanID = Util.generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, this._core.logger);\r\n ajaxData.requestSentTime = DateTimeUtils.Now();\r\n if (input instanceof Request) {\r\n ajaxData.requestUrl = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData.requestUrl = input;\r\n }\r\n if (init && init.method) {\r\n ajaxData.method = init.method;\r\n }\r\n else if (input && input instanceof Request) {\r\n ajaxData.method = input.method;\r\n }\r\n else {\r\n ajaxData.method = \"GET\";\r\n }\r\n if (init && init.headers && this._config.enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders = init.headers;\r\n }\r\n else {\r\n ajaxData.requestHeaders = {};\r\n }\r\n return ajaxData;\r\n };\r\n AjaxMonitor.prototype.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n if (input) {\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(this._config, ajaxData.getAbsoluteUrl(), this.currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n init.headers = new Headers(init.headers || (input instanceof Request ? (input.headers || {}) : {}));\r\n if (this._isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n init.headers.set(RequestHeaders.requestIdHeader, id);\r\n if (this._config.enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId_1 = this._config.appId || this._context.appId();\r\n if (appId_1) {\r\n init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId_1);\r\n if (this._config.enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId_1;\r\n }\r\n }\r\n if (this._isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (this._config.enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n return init;\r\n }\r\n return init;\r\n }\r\n else if (xhr) {\r\n if (this.currentWindowHost && CorrelationIdHelper.canIncludeCorrelationHeader(this._config, xhr.ajaxData.getAbsoluteUrl(), this.currentWindowHost)) {\r\n if (this._isUsingAIHeaders) {\r\n var id = \"|\" + xhr.ajaxData.traceID + \".\" + xhr.ajaxData.spanID;\r\n xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\r\n if (this._config.enableRequestHeaderTracking) {\r\n xhr.ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = this._config.appId || this._context.appId();\r\n if (appId) {\r\n xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (this._config.enableRequestHeaderTracking) {\r\n xhr.ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (this._isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(xhr.ajaxData.traceID, xhr.ajaxData.spanID);\r\n xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (this._config.enableRequestHeaderTracking) {\r\n xhr.ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n AjaxMonitor.prototype.getFailedFetchDiagnosticsMessage = function (input) {\r\n var result = \"\";\r\n try {\r\n if (!CoreUtils.isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\" + input + \"')\";\r\n }\r\n else {\r\n result += \"(url: '\" + input.url + \"')\";\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this._core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to grab failed fetch diagnostics message\", { exception: Util.dump(e) });\r\n }\r\n return result;\r\n };\r\n AjaxMonitor.prototype.onFetchComplete = function (response, ajaxData) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n try {\r\n ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n ajaxData.CalculateMetrics();\r\n if (ajaxData.ajaxTotalDuration < 0) {\r\n this._core.logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", {\r\n fetchDiagnosticsMessage: this.getFailedFetchDiagnosticsMessage(response),\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n else {\r\n var dependency = {\r\n id: \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID,\r\n target: ajaxData.getAbsoluteUrl(),\r\n name: ajaxData.getPathName(),\r\n type: \"Fetch\",\r\n duration: ajaxData.ajaxTotalDuration,\r\n success: response.status >= 200 && response.status < 400,\r\n responseCode: response.status,\r\n properties: { HttpMethod: ajaxData.method }\r\n };\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = this.getFetchCorrelationContext(response);\r\n if (correlationContext) {\r\n dependency.correlationContext = correlationContext;\r\n }\r\n if (this._config.enableRequestHeaderTracking) {\r\n if (Object.keys(ajaxData.requestHeaders).length > 0) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.requestHeaders = ajaxData.requestHeaders;\r\n }\r\n }\r\n if (this._config.enableResponseHeaderTracking) {\r\n var responseHeaderMap_2 = {};\r\n response.headers.forEach(function (value, name) {\r\n responseHeaderMap_2[name] = value;\r\n });\r\n if (Object.keys(responseHeaderMap_2).length > 0) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.responseHeaders = responseHeaderMap_2;\r\n }\r\n }\r\n this.trackDependencyDataInternal(dependency);\r\n }\r\n }\r\n catch (e) {\r\n this._core.logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", {\r\n fetchDiagnosticsMessage: this.getFailedFetchDiagnosticsMessage(response),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n };\r\n AjaxMonitor.prototype.onFetchFailed = function (input, ajaxData, reason) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n try {\r\n ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n ajaxData.CalculateMetrics();\r\n if (ajaxData.ajaxTotalDuration < 0) {\r\n this._core.logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the failed fetch call, monitoring data for this fetch call won't be sent.\", {\r\n fetchDiagnosticsMessage: this.getFailedFetchDiagnosticsMessage(input),\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n else {\r\n var dependency = {\r\n id: \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID,\r\n target: ajaxData.getAbsoluteUrl(),\r\n name: ajaxData.getPathName(),\r\n type: \"Fetch\",\r\n duration: ajaxData.ajaxTotalDuration,\r\n success: false,\r\n responseCode: 0,\r\n properties: { HttpMethod: ajaxData.method }\r\n };\r\n this.trackDependencyDataInternal(dependency, { error: reason.message });\r\n }\r\n }\r\n catch (e) {\r\n this._core.logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to calculate the duration of the failed fetch call, monitoring data for this fetch call won't be sent.\", {\r\n fetchDiagnosticsMessage: this.getFailedFetchDiagnosticsMessage(input),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n };\r\n AjaxMonitor.prototype.getFetchCorrelationContext = function (response) {\r\n try {\r\n var responseHeader = response.headers.get(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n this._core.logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n fetchDiagnosticsMessage: this.getFailedFetchDiagnosticsMessage(response),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n };\r\n AjaxMonitor.prototype.instrumentXhr = function () {\r\n if (this.supportsAjaxMonitoring() && !this.initialized) {\r\n this.instrumentOpen();\r\n this.instrumentSend();\r\n this.instrumentAbort();\r\n this.instrumentSetRequestHeader();\r\n this.initialized = true;\r\n }\r\n };\r\n AjaxMonitor.getDefaultConfig = function () {\r\n var config = {\r\n maxAjaxCallsPerView: 500,\r\n disableAjaxTracking: false,\r\n disableFetchTracking: true,\r\n disableCorrelationHeaders: false,\r\n distributedTracingMode: DistributedTracingModes.AI,\r\n correlationHeaderExcludedDomains: [\r\n \"*.blob.core.windows.net\",\r\n \"*.blob.core.chinacloudapi.cn\",\r\n \"*.blob.core.cloudapi.de\",\r\n \"*.blob.core.usgovcloudapi.net\"\r\n ],\r\n correlationHeaderDomains: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: false,\r\n enableRequestHeaderTracking: false,\r\n enableResponseHeaderTracking: false\r\n };\r\n return config;\r\n };\r\n AjaxMonitor.getEmptyConfig = function () {\r\n return {\r\n maxAjaxCallsPerView: undefined,\r\n disableAjaxTracking: undefined,\r\n disableFetchTracking: undefined,\r\n disableCorrelationHeaders: undefined,\r\n distributedTracingMode: undefined,\r\n correlationHeaderExcludedDomains: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: undefined,\r\n correlationHeaderDomains: undefined,\r\n enableRequestHeaderTracking: undefined,\r\n enableResponseHeaderTracking: undefined\r\n };\r\n };\r\n AjaxMonitor.prototype.initialize = function (config, core, extensions) {\r\n if (!this.initialized && !this._fetchInitialized) {\r\n this._core = core;\r\n var defaultConfig = AjaxMonitor.getDefaultConfig();\r\n this._config = AjaxMonitor.getEmptyConfig();\r\n for (var field in defaultConfig) {\r\n this._config[field] = ConfigurationManager.getConfig(config, field, AjaxMonitor.identifier, defaultConfig[field]);\r\n }\r\n this._isUsingAIHeaders = this._config.distributedTracingMode === DistributedTracingModes.AI || this._config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\r\n this._isUsingW3CHeaders = this._config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C || this._config.distributedTracingMode === DistributedTracingModes.W3C;\r\n if (this._config.disableAjaxTracking === false) {\r\n this.instrumentXhr();\r\n }\r\n if (this._config.disableFetchTracking === false) {\r\n this.instrumentFetch();\r\n }\r\n if (extensions.length > 0 && extensions) {\r\n var propExt = void 0, extIx = 0;\r\n while (!propExt && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\r\n propExt = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n if (propExt) {\r\n this._context = propExt.context; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n }\r\n };\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}());\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { AppInsightsCore, LoggingSeverity, _InternalMessageId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Util, PropertiesPluginIdentifier } from \"@microsoft/applicationinsights-common\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from '@microsoft/applicationinsights-dependencies-js';\r\n\"use strict\";\r\n;\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n function Initialization(snippet) {\r\n // initialize the queue and config in case they are undefined\r\n snippet.queue = snippet.queue || [];\r\n snippet.version = snippet.version || 2.0; // Default to new version\r\n var config = snippet.config || {};\r\n // ensure instrumentationKey is specified\r\n if (config && !config.instrumentationKey) {\r\n config = snippet;\r\n ApplicationInsights.Version = \"2.2.0\"; // Not currently used anywhere\r\n }\r\n this.appInsights = new ApplicationInsights();\r\n this.properties = new PropertiesPlugin();\r\n this.dependencies = new DependenciesPlugin();\r\n this.core = new AppInsightsCore();\r\n this.snippet = snippet;\r\n this.config = config;\r\n this.getSKUDefaults();\r\n }\r\n // Analytics Plugin\r\n /**\r\n * Log a user action or other occurrence.\r\n * @param {IEventTelemetry} event\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackEvent = function (event, customProperties) {\r\n this.appInsights.trackEvent(event, customProperties);\r\n };\r\n /**\r\n * Logs that a page, or similar container was displayed to the user.\r\n * @param {IPageViewTelemetry} pageView\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageView = function (pageView) {\r\n var inPv = pageView || {};\r\n this.appInsights.trackPageView(inPv);\r\n };\r\n /**\r\n * Log a bag of performance information via the customProperties field.\r\n * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageViewPerformance = function (pageViewPerformance) {\r\n var inPvp = pageViewPerformance || {};\r\n this.appInsights.trackPageViewPerformance(inPvp);\r\n };\r\n /**\r\n * Log an exception that you have caught.\r\n * @param {IExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackException = function (exception) {\r\n if (!exception.exception && exception.error) {\r\n exception.exception = exception.error;\r\n }\r\n this.appInsights.trackException(exception);\r\n };\r\n /**\r\n * Manually send uncaught exception telemetry. This method is automatically triggered\r\n * on a window.onerror event.\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype._onerror = function (exception) {\r\n this.appInsights._onerror(exception);\r\n };\r\n /**\r\n * Log a diagnostic scenario such entering or leaving a function.\r\n * @param {ITraceTelemetry} trace\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackTrace = function (trace, customProperties) {\r\n this.appInsights.trackTrace(trace, customProperties);\r\n };\r\n /**\r\n * Log a numeric value that is not associated with a specific event. Typically used\r\n * to send regular reports of performance indicators.\r\n *\r\n * To send a single measurement, just use the `name` and `average` fields\r\n * of {@link IMetricTelemetry}.\r\n *\r\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n * aggregating multiple measurements and sending the resulting average and modifying\r\n * the `sampleCount` field of {@link IMetricTelemetry}.\r\n * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackMetric = function (metric, customProperties) {\r\n this.appInsights.trackMetric(metric, customProperties);\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n Initialization.prototype.startTrackPage = function (name) {\r\n this.appInsights.startTrackPage(name);\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackPage = function (name, url, customProperties, measurements) {\r\n this.appInsights.stopTrackPage(name, url, customProperties, measurements);\r\n };\r\n Initialization.prototype.startTrackEvent = function (name) {\r\n this.appInsights.startTrackEvent(name);\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n this.appInsights.stopTrackEvent(name, properties, measurements); // Todo: Fix to pass measurements once type is updated\r\n };\r\n Initialization.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n return this.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n };\r\n // Properties Plugin\r\n /**\r\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n *\r\n * The method will only set the `authenicatedUserId` and `accountId` in the curent page view. To set them for the whole sesion, you should set `storeInCookie = true`\r\n * @param {string} authenticatedUserId\r\n * @param {string} [accountId]\r\n * @param {boolean} [storeInCookie=false]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n this.properties.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\r\n };\r\n /**\r\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.clearAuthenticatedUserContext = function () {\r\n this.properties.context.user.clearAuthenticatedUserContext();\r\n };\r\n // Dependencies Plugin\r\n /**\r\n * Log a dependency call (e.g. ajax)\r\n * @param {IDependencyTelemetry} dependency\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackDependencyData = function (dependency) {\r\n this.dependencies.trackDependencyData(dependency);\r\n };\r\n // Misc\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.flush = function (async) {\r\n if (async === void 0) { async = true; }\r\n this.core.getTransmissionControls().forEach(function (channels) {\r\n channels.forEach(function (channel) {\r\n channel.flush(async);\r\n });\r\n });\r\n };\r\n /**\r\n * Initialize this instance of ApplicationInsights\r\n * @returns {IApplicationInsights}\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.loadAppInsights = function (legacyMode) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && this.config.extensions && this.config.extensions.length > 0) {\r\n throw new Error(\"Extensions not allowed in legacy mode\");\r\n }\r\n var extensions = [];\r\n var appInsightsChannel = new Sender();\r\n extensions.push(appInsightsChannel);\r\n extensions.push(this.properties);\r\n extensions.push(this.dependencies);\r\n extensions.push(this.appInsights);\r\n // initialize core\r\n this.core.initialize(this.config, extensions);\r\n // Empty queue of all api calls logged prior to sdk download\r\n this.emptyQueue();\r\n this.pollInternalLogs();\r\n this.addHousekeepingBeforeUnload(this);\r\n this.context = this.properties.context;\r\n return this;\r\n };\r\n /**\r\n * Overwrite the lazy loaded fields of global window snippet to contain the\r\n * actual initialized API methods\r\n * @param {Snippet} snippet\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.updateSnippetDefinitions = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n for (var field in this) {\r\n if (typeof field === 'string') {\r\n snippet[field] = this[field];\r\n }\r\n }\r\n };\r\n /**\r\n * Call any functions that were queued before the main script was loaded\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (Util.isArray(this.snippet.queue)) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length = this.snippet.queue.length;\r\n for (var i = 0; i < length; i++) {\r\n var call = this.snippet.queue[i];\r\n call();\r\n }\r\n this.snippet.queue = undefined;\r\n delete this.snippet.queue;\r\n }\r\n }\r\n catch (exception) {\r\n var properties = {};\r\n if (exception && typeof exception.toString === \"function\") {\r\n properties.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // LoggingSeverity.WARNING,\r\n // _InternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n Initialization.prototype.pollInternalLogs = function () {\r\n this.core.pollInternalLogs();\r\n };\r\n Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (!appInsightsInstance.appInsights.config.disableFlushOnBeforeUnload && ('onbeforeunload' in window)) {\r\n var performHousekeeping = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push an async request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n //appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance.flush(false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n var ext = appInsightsInstance.appInsights.core['_extensions'][PropertiesPluginIdentifier];\r\n if (ext && ext.context && ext.context._sessionManager) {\r\n ext.context._sessionManager.backup();\r\n }\r\n };\r\n if (!Util.addEventHandler('beforeunload', performHousekeeping)) {\r\n appInsightsInstance.appInsights.core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToAddHandlerForOnBeforeUnload, 'Could not add handler for beforeunload');\r\n }\r\n }\r\n };\r\n Initialization.prototype.getSKUDefaults = function () {\r\n this.config.diagnosticLogInterval =\r\n this.config.diagnosticLogInterval && this.config.diagnosticLogInterval > 0 ? this.config.diagnosticLogInterval : 10000;\r\n };\r\n return Initialization;\r\n}());\r\nexport { Initialization };\r\n//# sourceMappingURL=Initialization.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DateTimeUtils, Util } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';\r\n/**\r\n* Class encapsulates sending page views and page view performance telemetry.\r\n*/\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n this.pageViewPerformanceSent = false;\r\n this.overridePageViewDuration = false;\r\n this.overridePageViewDuration = overridePageViewDuration;\r\n this.appInsights = appInsights;\r\n this._pageViewPerformanceManager = pageViewPerformanceManager;\r\n if (core) {\r\n this._channel = function () { return (core.getTransmissionControls()); };\r\n this._logger = core.logger;\r\n }\r\n }\r\n /**\r\n * Currently supported cases:\r\n * 1) (default case) track page view called with default parameters, overridePageViewDuration = false. Page view is sent with page view performance when navigation timing data is available.\r\n * a. If navigation timing is not supported then page view is sent right away with undefined duration. Page view performance is not sent.\r\n * 2) overridePageViewDuration = true, custom duration provided. Custom duration is used, page view sends right away.\r\n * 3) overridePageViewDuration = true, custom duration NOT provided. Page view is sent right away, duration is time spent from page load till now (or undefined if navigation timing is not supported).\r\n * 4) overridePageViewDuration = false, custom duration is provided. Page view is sent right away with custom duration.\r\n *\r\n * In all cases page view performance is sent once (only for the 1st call of trackPageView), or not sent if navigation timing is not supported.\r\n */\r\n PageViewManager.prototype.trackPageView = function (pageView, customProperties) {\r\n var _this = this;\r\n var name = pageView.name;\r\n if (CoreUtils.isNullOrUndefined(name) || typeof name !== \"string\") {\r\n pageView.name = window.document && window.document.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (CoreUtils.isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n pageView.uri = window.location && window.location.href || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!this._pageViewPerformanceManager.isPerformanceTimingSupported()) {\r\n this.appInsights.sendPageViewInternal(pageView, customProperties);\r\n this._channel().forEach(function (queues) { queues.forEach(function (q) { return q.flush(true); }); });\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NavigationTimingNotSupported, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration = undefined;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = this._pageViewPerformanceManager.getPerformanceTiming().navigationStart;\r\n customDuration = DateTimeUtils.GetDuration(start, +new Date);\r\n if (!this._pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\r\n customDuration = undefined;\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration = undefined;\r\n if (!CoreUtils.isNullOrUndefined(customProperties) &&\r\n !CoreUtils.isNullOrUndefined(customProperties.duration)) {\r\n duration = customProperties.duration;\r\n }\r\n if (this.overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[\"duration\"] = customDuration;\r\n }\r\n // case 2\r\n this.appInsights.sendPageViewInternal(pageView, customProperties);\r\n this._channel().forEach(function (queues) { queues.forEach(function (q) { return q.flush(true); }); });\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n var handle = setInterval((function () {\r\n try {\r\n if (_this._pageViewPerformanceManager.isPerformanceTimingDataReady()) {\r\n clearInterval(handle);\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n _this._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[\"duration\"] = customDuration;\r\n _this.appInsights.sendPageViewInternal(pageView, customProperties);\r\n _this._channel().forEach(function (queues) { queues.forEach(function (q) { return q.flush(true); }); });\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = pageViewPerformance.durationMs;\r\n _this.appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n if (!_this.pageViewPerformanceSent) {\r\n _this.appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n _this.pageViewPerformanceSent = true;\r\n }\r\n _this._channel().forEach(function (queues) { queues.forEach(function (q) { return q.flush(true); }); });\r\n }\r\n }\r\n else if (DateTimeUtils.GetDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n clearInterval(handle);\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = maxDurationLimit;\r\n _this.appInsights.sendPageViewInternal(pageView, customProperties);\r\n _this._channel().forEach(function (queues) { queues.forEach(function (q) { return q.flush(true); }); });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailedCalc, \"trackPageView failed on page load calculation: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }), 100);\r\n };\r\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Util } from '@microsoft/applicationinsights-common';\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \" + Util.dump(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n var prevPageVisitData = this.stopPageVisitTimer();\r\n this.startPageVisitTimer(pageName, pageUrl);\r\n return prevPageVisitData;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Call to restart failed: \" + Util.dump(e));\r\n return null;\r\n }\r\n };\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n if (Util.canUseSessionStorage()) {\r\n if (Util.getSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n throw new Error(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = JSON.stringify(currPageVisitData);\r\n Util.setSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n //TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n this._logger.warnToConsole(\"Call to start failed: \" + Util.dump(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\r\n try {\r\n if (Util.canUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = Date.now();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = Util.getSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr) {\r\n // if previous page data exists, set end time of visit\r\n var prevPageVisitData = JSON.parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n // Remove data from storage since we already used it\r\n Util.removeSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n // Return page visit data\r\n return prevPageVisitData;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Stop page visit timer failed: \" + Util.dump(e));\r\n return null;\r\n }\r\n };\r\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this.pageVisitStartTime = Date.now();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Util, DateTimeUtils } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';\r\n/**\r\n* Class encapsulates sending page view performance telemetry.\r\n*/\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n }\r\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n */\r\n var timing = this.getPerformanceTiming();\r\n if (timing) {\r\n var total = DateTimeUtils.GetDuration(timing.navigationStart, timing.loadEventEnd);\r\n var network = DateTimeUtils.GetDuration(timing.navigationStart, timing.connectEnd);\r\n var request = DateTimeUtils.GetDuration(timing.requestStart, timing.responseStart);\r\n var response = DateTimeUtils.GetDuration(timing.responseStart, timing.responseEnd);\r\n var dom = DateTimeUtils.GetDuration(timing.responseEnd, timing.loadEventEnd);\r\n if (total == 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ErrorPVCalc, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InvalidDurationValue, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ClientPerformanceMathError, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = Util.msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = Util.msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = Util.msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = Util.msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = Util.msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n if (this.isPerformanceTimingSupported()) {\r\n return window.performance.timing;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n return typeof window != \"undefined\" && window.performance && window.performance.timing;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n var timing = window.performance.timing;\r\n return timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var botAgentNames = ['googlebot', 'adsbot-google', 'apis-google', 'mediapartners-google'];\r\n var userAgent = navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i_1 = 0; i_1 < botAgentNames.length; i_1++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i_1]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations.length; i++) {\r\n if (durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Util, PageViewPerformance, PageView, RemoteDependencyData, Event as EventTelemetry, TelemetryItemCreator, Metric, Exception, SeverityLevel, Trace, ConfigurationManager, DateTimeUtils, PropertiesPluginIdentifier } from \"@microsoft/applicationinsights-common\";\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId, } from \"@microsoft/applicationinsights-core-js\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { PageViewPerformanceManager } from './Telemetry/PageViewPerformanceManager';\r\n\"use strict\";\r\nvar durationProperty = \"duration\";\r\nvar ApplicationInsights = /** @class */ (function () {\r\n function ApplicationInsights() {\r\n this.identifier = \"ApplicationInsightsAnalytics\"; // do not change name or priority\r\n this.priority = 180; // take from reserved priority range 100- 200\r\n this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n this._isInitialized = false;\r\n // Counts number of trackAjax invokations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n this._trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n this._urlArr = [];\r\n this._prevUri = window.location.href;\r\n this.initialize = this._initialize.bind(this);\r\n }\r\n ApplicationInsights.getDefaultConfig = function (config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config.sessionRenewalMs = 30 * 60 * 1000;\r\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\r\n config.disableExceptionTracking = Util.stringToBoolOrDefault(config.disableExceptionTracking);\r\n config.autoTrackPageVisitTime = Util.stringToBoolOrDefault(config.autoTrackPageVisitTime);\r\n config.overridePageViewDuration = Util.stringToBoolOrDefault(config.overridePageViewDuration);\r\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\r\n config.samplingPercentage = 100;\r\n }\r\n config.isCookieUseDisabled = Util.stringToBoolOrDefault(config.isCookieUseDisabled);\r\n config.isStorageUseDisabled = Util.stringToBoolOrDefault(config.isStorageUseDisabled);\r\n config.isBrowserLinkTrackingEnabled = Util.stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\r\n config.enableAutoRouteTracking = Util.stringToBoolOrDefault(config.enableAutoRouteTracking);\r\n config.namePrefix = config.namePrefix || \"\";\r\n return config;\r\n };\r\n ApplicationInsights.prototype.processTelemetry = function (env) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = this._telemetryInitializers.length;\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = this._telemetryInitializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.apply(null, [env]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + Util.getExceptionName(e), { exception: Util.dump(e) }, true);\r\n }\r\n }\r\n }\r\n if (!doNotSendItem && !CoreUtils.isNullOrUndefined(this._nextPlugin)) {\r\n this._nextPlugin.processTelemetry(env);\r\n }\r\n };\r\n ApplicationInsights.prototype.setNextPlugin = function (next) {\r\n this._nextPlugin = next;\r\n };\r\n ApplicationInsights.prototype.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(event, EventTelemetry.dataType, EventTelemetry.envelopeType, this._logger, customProperties);\r\n this.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n ApplicationInsights.prototype.startTrackEvent = function (name) {\r\n try {\r\n this._eventTracking.start(name);\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, \"startTrackEvent failed, event will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n ApplicationInsights.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n this._eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, \"stopTrackEvent failed, event will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(trace, Trace.dataType, Trace.envelopeType, this._logger, customProperties);\r\n this.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(metric, Metric.dataType, Metric.envelopeType, this._logger, customProperties);\r\n this.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, \"trackMetric failed, metric will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n ApplicationInsights.prototype.trackPageView = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n this._pageViewManager.trackPageView(inPv, tslib_1.__assign({}, inPv.properties, inPv.measurements, customProperties));\r\n if (this.config.autoTrackPageVisitTime) {\r\n this._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageView failed, page view will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n ApplicationInsights.prototype.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n if (typeof document !== \"undefined\") {\r\n pageView.refUri = pageView.refUri === undefined ? document.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = TelemetryItemCreator.create(pageView, PageView.dataType, PageView.envelopeType, this._logger, properties, systemProperties);\r\n this.core.track(telemetryItem);\r\n // reset ajaxes counter\r\n this._trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n ApplicationInsights.prototype.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = TelemetryItemCreator.create(pageViewPerformance, PageViewPerformance.dataType, PageViewPerformance.envelopeType, this._logger, properties, systemProperties);\r\n this.core.track(telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n ApplicationInsights.prototype.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n try {\r\n this._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n this.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageViewPerformance failed, page view will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n ApplicationInsights.prototype.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n name = window.document && window.document.title || \"\";\r\n }\r\n this._pageTracking.start(name);\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, \"startTrackPage failed, page view may not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n ApplicationInsights.prototype.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n name = window.document && window.document.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n url = window.location && window.location.href || \"\";\r\n }\r\n this._pageTracking.stop(name, url, properties, measurement);\r\n if (this.config.autoTrackPageVisitTime) {\r\n this._pageVisitTimeManager.trackPreviousPageVisit(name, url);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, \"stopTrackPage failed, page view will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n ApplicationInsights.prototype.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n var exceptionPartB = new Exception(this._logger, exception.exception || new Error(Util.NotSpecified), exception.properties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = TelemetryItemCreator.create(exceptionPartB, Exception.dataType, Exception.envelopeType, this._logger, customProperties, systemProperties);\r\n this.core.track(telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackException = function (exception, customProperties) {\r\n try {\r\n this.sendExceptionInternal(exception, customProperties);\r\n }\r\n catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, \"trackException failed, exception will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype._onerror = function (exception) {\r\n try {\r\n var properties_1 = {\r\n url: (exception && exception.url) || document.URL,\r\n lineNumber: exception.lineNumber,\r\n columnNumber: exception.columnNumber,\r\n message: exception.message\r\n };\r\n if (Util.isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\r\n this._sendCORSException(properties_1.url);\r\n }\r\n else {\r\n if (!Util.isError(exception.error)) {\r\n var stack = \"window.onerror@\" + properties_1.url + \":\" + exception.lineNumber + \":\" + (exception.columnNumber || 0);\r\n exception.error = new Error(exception.message);\r\n exception.error.stack = stack;\r\n }\r\n this.trackException({ exception: exception.error, severityLevel: SeverityLevel.Error }, properties_1);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = exception.error ?\r\n (exception.error.name + \", \" + exception.error.message)\r\n : \"null\";\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, \"_onError threw exception while logging error, error will not be collected: \"\r\n + Util.getExceptionName(e), { exception: Util.dump(e), errorString: errorString });\r\n }\r\n };\r\n ApplicationInsights.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n this._telemetryInitializers.push(telemetryInitializer);\r\n };\r\n ApplicationInsights.prototype._initialize = function (config, core, extensions) {\r\n var _this = this;\r\n if (this._isInitialized) {\r\n return;\r\n }\r\n if (CoreUtils.isNullOrUndefined(core)) {\r\n throw Error(\"Error initializing\");\r\n }\r\n this.core = core;\r\n this._logger = core.logger;\r\n this._globalconfig = {\r\n instrumentationKey: config.instrumentationKey,\r\n endpointUrl: config.endpointUrl || \"https://dc.services.visualstudio.com/v2/track\"\r\n };\r\n this.config = config.extensionConfig && config.extensionConfig[this.identifier] ? config.extensionConfig[this.identifier] : {};\r\n // load default values if specified\r\n var defaults = ApplicationInsights.getDefaultConfig();\r\n if (defaults !== undefined) {\r\n for (var field in defaults) {\r\n // for each unspecified field, set the default value\r\n this.config[field] = ConfigurationManager.getConfig(config, field, this.identifier, defaults[field]);\r\n }\r\n if (this._globalconfig) {\r\n for (var field in defaults) {\r\n if (this._globalconfig[field] === undefined) {\r\n this._globalconfig[field] = defaults[field];\r\n }\r\n }\r\n }\r\n }\r\n // Todo: move this out of static state\r\n if (this.config.isCookieUseDisabled) {\r\n Util.disableCookies();\r\n }\r\n // Todo: move this out of static state\r\n if (this.config.isStorageUseDisabled) {\r\n Util.disableStorage();\r\n }\r\n var configGetters = {\r\n instrumentationKey: function () { return config.instrumentationKey; },\r\n accountId: function () { return _this.config.accountId || config.accountId; },\r\n sessionRenewalMs: function () { return _this.config.sessionRenewalMs || config.sessionRenewalMs; },\r\n sessionExpirationMs: function () { return _this.config.sessionExpirationMs || config.sessionExpirationMs; },\r\n sampleRate: function () { return _this.config.samplingPercentage || config.samplingPercentage; },\r\n cookieDomain: function () { return _this.config.cookieDomain || config.cookieDomain; },\r\n sdkExtension: function () { return _this.config.sdkExtension || config.sdkExtension; },\r\n isBrowserLinkTrackingEnabled: function () { return _this.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled; },\r\n appId: function () { return _this.config.appId || config.appId; }\r\n };\r\n this._pageViewPerformanceManager = new PageViewPerformanceManager(this.core);\r\n this._pageViewManager = new PageViewManager(this, this.config.overridePageViewDuration, this.core, this._pageViewPerformanceManager);\r\n this._pageVisitTimeManager = new PageVisitTimeManager(this._logger, function (pageName, pageUrl, pageVisitTime) { return _this.trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n this._telemetryInitializers = [];\r\n this._addDefaultTelemetryInitializers(configGetters);\r\n this._eventTracking = new Timing(this._logger, \"trackEvent\");\r\n this._eventTracking.action =\r\n function (name, url, duration, properties) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n _this.trackEvent({ name: name, properties: properties });\r\n };\r\n // initialize page view timing\r\n this._pageTracking = new Timing(this._logger, \"trackPageView\");\r\n this._pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (CoreUtils.isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _this.sendPageViewInternal(pageViewItem);\r\n };\r\n var instance = this;\r\n if (this.config.disableExceptionTracking === false &&\r\n !this.config.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onerror_1 = \"onerror\";\r\n var originalOnError_1 = window[onerror_1];\r\n window.onerror = function (message, url, lineNumber, columnNumber, error) {\r\n var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);\r\n if (handled !== true) {\r\n instance._onerror({\r\n message: message,\r\n url: url,\r\n lineNumber: lineNumber,\r\n columnNumber: columnNumber,\r\n error: error\r\n });\r\n }\r\n return handled;\r\n };\r\n this.config.autoExceptionInstrumented = true;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (this.config.enableAutoRouteTracking === true\r\n && typeof history === \"object\" && typeof history.pushState === \"function\" && typeof history.replaceState === \"function\"\r\n && typeof window === \"object\"\r\n && typeof Event !== \"undefined\") {\r\n var _self_1 = this;\r\n // Find the properties plugin\r\n extensions.forEach(function (extension) {\r\n if (extension.identifier === PropertiesPluginIdentifier) {\r\n _this._properties = extension;\r\n }\r\n });\r\n history.pushState = (function (f) { return function pushState() {\r\n var ret = f.apply(this, arguments);\r\n window.dispatchEvent(Util.createDomEvent(_self_1.config.namePrefix + \"pushState\"));\r\n window.dispatchEvent(Util.createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(history.pushState);\r\n history.replaceState = (function (f) { return function replaceState() {\r\n var ret = f.apply(this, arguments);\r\n window.dispatchEvent(Util.createDomEvent(_self_1.config.namePrefix + \"replaceState\"));\r\n window.dispatchEvent(Util.createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(history.replaceState);\r\n window.addEventListener(_self_1.config.namePrefix + \"popstate\", function () {\r\n window.dispatchEvent(Util.createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n });\r\n window.addEventListener(_self_1.config.namePrefix + \"locationchange\", function () {\r\n if (_self_1._properties && _self_1._properties.context && _self_1._properties.context.telemetryTrace) {\r\n _self_1._properties.context.telemetryTrace.traceID = Util.generateW3CId();\r\n _self_1._properties.context.telemetryTrace.name = window.location.pathname;\r\n }\r\n if (_this._currUri) {\r\n _this._prevUri = _this._currUri;\r\n _this._currUri = window.location.href;\r\n }\r\n else {\r\n _this._currUri = window.location.href;\r\n }\r\n setTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self_1.trackPageView({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_this, _this._prevUri), _self_1.autoRoutePVDelay);\r\n });\r\n }\r\n this._isInitialized = true;\r\n };\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\r\n ApplicationInsights.prototype.trackPageVisitTime = function (pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n this.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n };\r\n ApplicationInsights.prototype._addDefaultTelemetryInitializers = function (configGetters) {\r\n if (!configGetters.isBrowserLinkTrackingEnabled()) {\r\n var browserLinkPaths_1 = ['/browserLinkSignalR/', '/__browserLink/'];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (envelope.baseType === RemoteDependencyData.dataType) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1.length; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n this._addTelemetryInitializer(dropBrowserLinkRequests);\r\n }\r\n };\r\n ApplicationInsights.prototype._addTelemetryInitializer = function (telemetryInitializer) {\r\n this._telemetryInitializers.push(telemetryInitializer);\r\n };\r\n ApplicationInsights.prototype._sendCORSException = function (url) {\r\n var exception = {\r\n message: \"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\",\r\n url: url,\r\n lineNumber: 0,\r\n columnNumber: 0,\r\n error: undefined\r\n };\r\n var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, this._logger, { url: url });\r\n this.core.track(telemetryItem);\r\n };\r\n ApplicationInsights.Version = \"2.2.0\"; // Not currently used anywhere\r\n return ApplicationInsights;\r\n}());\r\nexport { ApplicationInsights };\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n this._name = name;\r\n this._events = {};\r\n this._logger = logger;\r\n }\r\n Timing.prototype.start = function (name) {\r\n if (typeof this._events[name] !== \"undefined\") {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, \"start was called more than once for this event without calling stop.\", { name: this._name, key: name }, true);\r\n }\r\n this._events[name] = +new Date;\r\n };\r\n Timing.prototype.stop = function (name, url, properties, measurements) {\r\n var start = this._events[name];\r\n if (isNaN(start)) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, \"stop was called without a corresponding start.\", { name: this._name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = DateTimeUtils.GetDuration(start, end);\r\n this.action(name, url, duration, properties, measurements);\r\n }\r\n delete this._events[name];\r\n this._events[name] = undefined;\r\n };\r\n return Timing;\r\n}());\r\n//# sourceMappingURL=ApplicationInsights.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { StorageType } from \"./Enums\";\r\nimport { CoreUtils, _InternalMessageId, LoggingSeverity } from \"@microsoft/applicationinsights-core-js\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { DataSanitizer } from \"./Telemetry/Common/DataSanitizer\";\r\nvar Util = /** @class */ (function () {\r\n function Util() {\r\n }\r\n Util.createDomEvent = function (eventName) {\r\n var event = null;\r\n if (typeof Event === \"function\") {\r\n event = new Event(eventName);\r\n }\r\n else {\r\n event = document.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n return event;\r\n };\r\n /*\r\n * Force the SDK not to use local and session storage\r\n */\r\n Util.disableStorage = function () {\r\n Util._canUseLocalStorage = false;\r\n Util._canUseSessionStorage = false;\r\n };\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\n Util._getLocalStorageObject = function () {\r\n if (Util.canUseLocalStorage()) {\r\n return Util._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\n Util._getVerifiedStorageObject = function (storageType) {\r\n var storage = null;\r\n var fail;\r\n var uid;\r\n try {\r\n if (typeof window === 'undefined') {\r\n return null;\r\n }\r\n uid = new Date;\r\n storage = storageType === StorageType.LocalStorage ? window.localStorage : window.sessionStorage;\r\n storage.setItem(uid, uid);\r\n fail = storage.getItem(uid) != uid;\r\n storage.removeItem(uid);\r\n if (fail) {\r\n storage = null;\r\n }\r\n }\r\n catch (exception) {\r\n storage = null;\r\n }\r\n return storage;\r\n };\r\n /**\r\n * Checks if endpoint URL is application insights internal injestion service URL.\r\n *\r\n * @param endpointUrl Endpoint URL to check.\r\n * @returns {boolean} True if if endpoint URL is application insights internal injestion service URL.\r\n */\r\n Util.isInternalApplicationInsightsEndpoint = function (endpointUrl) {\r\n return Util._internalEndpoints.indexOf(endpointUrl.toLowerCase()) !== -1;\r\n };\r\n /**\r\n * Check if the browser supports local storage.\r\n *\r\n * @returns {boolean} True if local storage is supported.\r\n */\r\n Util.canUseLocalStorage = function () {\r\n if (Util._canUseLocalStorage === undefined) {\r\n Util._canUseLocalStorage = !!Util._getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return Util._canUseLocalStorage;\r\n };\r\n /**\r\n * Get an object from the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to get from storage\r\n * @returns {string} The contents of the storage object with the given name. Null if storage is not supported.\r\n */\r\n Util.getStorage = function (logger, name) {\r\n var storage = Util._getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n Util._canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadLocalStorage, \"Browser failed read of local storage. \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Set the contents of an object in the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to set in storage\r\n * @param {string} data - the contents of the object to set in storage\r\n * @returns {boolean} True if the storage object could be written.\r\n */\r\n Util.setStorage = function (logger, name, data) {\r\n var storage = Util._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 Util._canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteLocalStorage, \"Browser failed write to local storage. \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * Remove an object from the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to remove from storage\r\n * @returns {boolean} True if the storage object could be removed.\r\n */\r\n Util.removeStorage = function (logger, name) {\r\n var storage = Util._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 Util._canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromLocalStorage, \"Browser failed removal of local storage item. \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\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\n Util._getSessionStorageObject = function () {\r\n if (Util.canUseSessionStorage()) {\r\n return Util._getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Check if the browser supports session storage.\r\n *\r\n * @returns {boolean} True if session storage is supported.\r\n */\r\n Util.canUseSessionStorage = function () {\r\n if (Util._canUseSessionStorage === undefined) {\r\n Util._canUseSessionStorage = !!Util._getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return Util._canUseSessionStorage;\r\n };\r\n /**\r\n * Gets the list of session storage keys\r\n *\r\n * @returns {string[]} List of session storage keys\r\n */\r\n Util.getSessionStorageKeys = function () {\r\n var keys = [];\r\n if (Util.canUseSessionStorage()) {\r\n for (var key in window.sessionStorage) {\r\n keys.push(key);\r\n }\r\n }\r\n return keys;\r\n };\r\n /**\r\n * Get an object from the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to get from storage\r\n * @returns {string} The contents of the storage object with the given name. Null if storage is not supported.\r\n */\r\n Util.getSessionStorage = function (logger, name) {\r\n var storage = Util._getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n Util._canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadSessionStorage, \"Browser failed read of session storage. \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Set the contents of an object in the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to set in storage\r\n * @param {string} data - the contents of the object to set in storage\r\n * @returns {boolean} True if the storage object could be written.\r\n */\r\n Util.setSessionStorage = function (logger, name, data) {\r\n var storage = Util._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 Util._canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteSessionStorage, \"Browser failed write to session storage. \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * Remove an object from the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to remove from storage\r\n * @returns {boolean} True if the storage object could be removed.\r\n */\r\n Util.removeSessionStorage = function (logger, name) {\r\n var storage = Util._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 Util._canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromSessionStorage, \"Browser failed removal of session storage item. \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n };\r\n /*\r\n * Force the SDK not to store and read any data from cookies\r\n */\r\n Util.disableCookies = function () {\r\n CoreUtils.disableCookies();\r\n };\r\n /*\r\n * helper method to tell if document.cookie object is available\r\n */\r\n Util.canUseCookies = function (logger) {\r\n if (CoreUtils._canUseCookies === undefined) {\r\n CoreUtils._canUseCookies = false;\r\n try {\r\n CoreUtils._canUseCookies = Util.document.cookie !== undefined;\r\n }\r\n catch (e) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotAccessCookie, \"Cannot access document.cookie - \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n ;\r\n }\r\n return CoreUtils._canUseCookies;\r\n };\r\n /**\r\n * helper method to set userId and sessionId cookie\r\n */\r\n Util.setCookie = function (logger, name, value, domain) {\r\n var domainAttrib = \"\";\r\n var secureAttrib = \"\";\r\n if (domain) {\r\n domainAttrib = \";domain=\" + domain;\r\n }\r\n if (Util.document.location && Util.document.location.protocol === \"https:\") {\r\n secureAttrib = \";secure\";\r\n }\r\n if (Util.canUseCookies(logger)) {\r\n Util.document.cookie = name + \"=\" + value + domainAttrib + \";path=/\" + secureAttrib;\r\n }\r\n };\r\n Util.stringToBoolOrDefault = function (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 * helper method to access userId and sessionId cookie\r\n */\r\n Util.getCookie = function (logger, name) {\r\n if (!Util.canUseCookies(logger)) {\r\n return;\r\n }\r\n var value = \"\";\r\n if (name && name.length) {\r\n var cookieName = name + \"=\";\r\n var cookies = Util.document.cookie.split(\";\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var cookie = cookies[i];\r\n cookie = Util.trim(cookie);\r\n if (cookie && cookie.indexOf(cookieName) === 0) {\r\n value = cookie.substring(cookieName.length, cookies[i].length);\r\n break;\r\n }\r\n }\r\n }\r\n return value;\r\n };\r\n /**\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\n Util.deleteCookie = function (logger, name) {\r\n if (Util.canUseCookies(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n Util.document.cookie = name + \"=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\r\n }\r\n };\r\n /**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\n Util.trim = function (str) {\r\n if (typeof str !== \"string\")\r\n return str;\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n };\r\n /**\r\n * generate random id string\r\n */\r\n Util.newId = function () {\r\n var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n var result = \"\";\r\n // tslint:disable-next-line:insecure-random\r\n var random = Math.random() * 1073741824; //5 symbols in base64, almost maxint\r\n while (random > 0) {\r\n var char = base64chars.charAt(random % 64);\r\n result += char;\r\n random = Math.floor(random / 64);\r\n }\r\n return result;\r\n };\r\n /**\r\n * generate a random 32bit number (-0x80000000..0x7FFFFFFF).\r\n */\r\n Util.random32 = function () {\r\n return (0x100000000 * Math.random()) | 0;\r\n };\r\n /**\r\n * generate W3C trace id\r\n */\r\n Util.generateW3CId = function () {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = \"\", tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = Util.random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (Math.random() * 4) | 0];\r\n return oct.substr(0, 8) + oct.substr(9, 4) + \"4\" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);\r\n };\r\n /**\r\n * Check if an object is of type Array\r\n */\r\n Util.isArray = function (obj) {\r\n return Object.prototype.toString.call(obj) === \"[object Array]\";\r\n };\r\n /**\r\n * Check if an object is of type Error\r\n */\r\n Util.isError = function (obj) {\r\n return Object.prototype.toString.call(obj) === \"[object Error]\";\r\n };\r\n /**\r\n * Check if an object is of type Date\r\n */\r\n Util.isDate = function (obj) {\r\n return Object.prototype.toString.call(obj) === \"[object Date]\";\r\n };\r\n /**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\n Util.toISOStringForIE8 = function (date) {\r\n if (Util.isDate(date)) {\r\n if (Date.prototype.toISOString) {\r\n return date.toISOString();\r\n }\r\n else {\r\n var pad = function (num) {\r\n var r = String(num);\r\n if (r.length === 1) {\r\n r = \"0\" + r;\r\n }\r\n return r;\r\n };\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n }\r\n };\r\n /**\r\n * Gets IE version if we are running on IE, or null otherwise\r\n */\r\n Util.getIEVersion = function (userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n var myNav = userAgentStr ? userAgentStr.toLowerCase() : navigator.userAgent.toLowerCase();\r\n return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : null;\r\n };\r\n /**\r\n * Convert ms to c# time span format\r\n */\r\n Util.msToTimeSpan = function (totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = \"\" + totalms % 1000;\r\n var sec = \"\" + Math.floor(totalms / 1000) % 60;\r\n var min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = \"\" + 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 + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n };\r\n /**\r\n * Checks if error has no meaningful data inside. Ususally such errors are received by window.onerror when error\r\n * happens in a script from other domain (cross origin, CORS).\r\n */\r\n Util.isCrossOriginError = function (message, url, lineNumber, columnNumber, error) {\r\n return (message === \"Script error.\" || message === \"Script error\") && !error;\r\n };\r\n /**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\n Util.dump = function (object) {\r\n var objectTypeDump = Object.prototype.toString.call(object);\r\n var propertyValueDump = JSON.stringify(object);\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n };\r\n /**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\n Util.getExceptionName = function (object) {\r\n var objectTypeDump = Object.prototype.toString.call(object);\r\n if (objectTypeDump === \"[object Error]\") {\r\n return object.name;\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Adds an event handler for the specified event\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n Util.addEventHandler = function (eventName, callback) {\r\n if (typeof window === 'undefined' || !window || typeof eventName !== 'string' || typeof callback !== 'function') {\r\n return false;\r\n }\r\n // Create verb for the event\r\n var verbEventName = 'on' + eventName;\r\n // check if addEventListener is available\r\n if (window.addEventListener) {\r\n window.addEventListener(eventName, callback, false);\r\n }\r\n else if (window[\"attachEvent\"]) {\r\n window[\"attachEvent\"](verbEventName, callback);\r\n }\r\n else {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Tells if a browser supports a Beacon API\r\n */\r\n Util.IsBeaconApiSupported = function () {\r\n return ('sendBeacon' in navigator && navigator.sendBeacon);\r\n };\r\n Util.getExtension = function (extensions, identifier) {\r\n var extension = null;\r\n var extIx = 0;\r\n while (!extension && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === identifier) {\r\n extension = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n return extension;\r\n };\r\n Util.document = typeof document !== \"undefined\" ? document : {};\r\n Util._canUseLocalStorage = undefined;\r\n Util._canUseSessionStorage = undefined;\r\n // listing only non-geo specific locations\r\n Util._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\n Util.NotSpecified = \"not_specified\";\r\n return Util;\r\n}());\r\nexport { Util };\r\nvar UrlHelper = /** @class */ (function () {\r\n function UrlHelper() {\r\n }\r\n UrlHelper.parseUrl = function (url) {\r\n if (!UrlHelper.htmlAnchorElement) {\r\n UrlHelper.htmlAnchorElement = !!UrlHelper.document.createElement ? UrlHelper.document.createElement('a') : { host: UrlHelper.parseHost(url) }; // fill host field in the fallback case as that is the only externally required field from this fn\r\n }\r\n UrlHelper.htmlAnchorElement.href = url;\r\n return UrlHelper.htmlAnchorElement;\r\n };\r\n UrlHelper.getAbsoluteUrl = function (url) {\r\n var result;\r\n var a = UrlHelper.parseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n };\r\n UrlHelper.getPathName = function (url) {\r\n var result;\r\n var a = UrlHelper.parseUrl(url);\r\n if (a) {\r\n result = a.pathname;\r\n }\r\n return result;\r\n };\r\n UrlHelper.getCompleteUrl = function (method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n else {\r\n return absoluteUrl;\r\n }\r\n };\r\n // Fallback method to grab host from url if document.createElement method is not available\r\n UrlHelper.parseHost = function (url) {\r\n var match = url.match(/:\\/\\/(www[0-9]?\\.)?(.[^/:]+)/i);\r\n if (match != null && match.length > 2 && typeof match[2] === 'string' && match[2].length > 0) {\r\n return match[2];\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n UrlHelper.document = typeof document !== \"undefined\" ? document : {};\r\n return UrlHelper;\r\n}());\r\nexport { UrlHelper };\r\nvar CorrelationIdHelper = /** @class */ (function () {\r\n function CorrelationIdHelper() {\r\n }\r\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers\r\n */\r\n CorrelationIdHelper.canIncludeCorrelationHeader = function (config, requestUrl, currentHost) {\r\n if (config && config.disableCorrelationHeaders) {\r\n return false;\r\n }\r\n if (!requestUrl) {\r\n return false;\r\n }\r\n var requestHost = UrlHelper.parseUrl(requestUrl).host.toLowerCase();\r\n if ((!config || !config.enableCorsCorrelation) && 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 includedDomains.forEach(function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().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, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n CorrelationIdHelper.getCorrelationContext = function (responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders.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 CorrelationIdHelper.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 CorrelationIdHelper.correlationIdPrefix = \"cid-v1:\";\r\n return CorrelationIdHelper;\r\n}());\r\nexport { CorrelationIdHelper };\r\nvar AjaxHelper = /** @class */ (function () {\r\n function AjaxHelper() {\r\n }\r\n AjaxHelper.ParseDependencyPath = function (logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl.length > 0) {\r\n var parsedUrl = UrlHelper.parseUrl(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 = DataSanitizer.sanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = DataSanitizer.sanitizeString(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\n return AjaxHelper;\r\n}());\r\nexport { AjaxHelper };\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nvar DateTimeUtils = /** @class */ (function () {\r\n function DateTimeUtils() {\r\n }\r\n /**\r\n * Get the number of milliseconds since 1970/01/01 in local timezone\r\n */\r\n DateTimeUtils.Now = (typeof window === 'undefined') ? function () { return new Date().getTime(); } :\r\n (window.performance && window.performance.now && window.performance.timing) ?\r\n function () {\r\n return window.performance.now() + window.performance.timing.navigationStart;\r\n }\r\n :\r\n function () {\r\n return new Date().getTime();\r\n };\r\n /**\r\n * Gets duration between two timestamps\r\n */\r\n DateTimeUtils.GetDuration = function (start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !CoreUtils.isNullOrUndefined(start) && !CoreUtils.isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n };\r\n return DateTimeUtils;\r\n}());\r\nexport { DateTimeUtils };\r\n//# sourceMappingURL=Util.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nvar CoreUtils = /** @class */ (function () {\r\n function CoreUtils() {\r\n }\r\n CoreUtils.isNullOrUndefined = function (input) {\r\n return input === null || input === undefined;\r\n };\r\n /**\r\n* Creates a new GUID.\r\n* @return {string} A GUID.\r\n*/\r\n CoreUtils.disableCookies = function () {\r\n CoreUtils._canUseCookies = false;\r\n };\r\n CoreUtils.newGuid = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(GuidRegex, function (c) {\r\n // tslint:disable-next-line:insecure-random\r\n var r = (Math.random() * 16 | 0), v = (c === 'x' ? r : r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n };\r\n return CoreUtils;\r\n}());\r\nexport { CoreUtils };\r\nvar GuidRegex = /[xy]/g;\r\n//# sourceMappingURL=CoreUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var LoggingSeverity;\r\n(function (LoggingSeverity) {\r\n /**\r\n * Error will be sent as internal telemetry\r\n */\r\n LoggingSeverity[LoggingSeverity[\"CRITICAL\"] = 1] = \"CRITICAL\";\r\n /**\r\n * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n */\r\n LoggingSeverity[LoggingSeverity[\"WARNING\"] = 2] = \"WARNING\";\r\n})(LoggingSeverity || (LoggingSeverity = {}));\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport var _InternalMessageId = {\r\n // Non user actionable\r\n BrowserDoesNotSupportLocalStorage: 0,\r\n BrowserCannotReadLocalStorage: 1,\r\n BrowserCannotReadSessionStorage: 2,\r\n BrowserCannotWriteLocalStorage: 3,\r\n BrowserCannotWriteSessionStorage: 4,\r\n BrowserFailedRemovalFromLocalStorage: 5,\r\n BrowserFailedRemovalFromSessionStorage: 6,\r\n CannotSendEmptyTelemetry: 7,\r\n ClientPerformanceMathError: 8,\r\n ErrorParsingAISessionCookie: 9,\r\n ErrorPVCalc: 10,\r\n ExceptionWhileLoggingError: 11,\r\n FailedAddingTelemetryToBuffer: 12,\r\n FailedMonitorAjaxAbort: 13,\r\n FailedMonitorAjaxDur: 14,\r\n FailedMonitorAjaxOpen: 15,\r\n FailedMonitorAjaxRSC: 16,\r\n FailedMonitorAjaxSend: 17,\r\n FailedMonitorAjaxGetCorrelationHeader: 18,\r\n FailedToAddHandlerForOnBeforeUnload: 19,\r\n FailedToSendQueuedTelemetry: 20,\r\n FailedToReportDataLoss: 21,\r\n FlushFailed: 22,\r\n MessageLimitPerPVExceeded: 23,\r\n MissingRequiredFieldSpecification: 24,\r\n NavigationTimingNotSupported: 25,\r\n OnError: 26,\r\n SessionRenewalDateIsZero: 27,\r\n SenderNotInitialized: 28,\r\n StartTrackEventFailed: 29,\r\n StopTrackEventFailed: 30,\r\n StartTrackFailed: 31,\r\n StopTrackFailed: 32,\r\n TelemetrySampledAndNotSent: 33,\r\n TrackEventFailed: 34,\r\n TrackExceptionFailed: 35,\r\n TrackMetricFailed: 36,\r\n TrackPVFailed: 37,\r\n TrackPVFailedCalc: 38,\r\n TrackTraceFailed: 39,\r\n TransmissionFailed: 40,\r\n FailedToSetStorageBuffer: 41,\r\n FailedToRestoreStorageBuffer: 42,\r\n InvalidBackendResponse: 43,\r\n FailedToFixDepricatedValues: 44,\r\n InvalidDurationValue: 45,\r\n TelemetryEnvelopeInvalid: 46,\r\n CreateEnvelopeError: 47,\r\n // User actionable\r\n CannotSerializeObject: 48,\r\n CannotSerializeObjectNonSerializable: 49,\r\n CircularReferenceDetected: 50,\r\n ClearAuthContextFailed: 51,\r\n ExceptionTruncated: 52,\r\n IllegalCharsInName: 53,\r\n ItemNotInArray: 54,\r\n MaxAjaxPerPVExceeded: 55,\r\n MessageTruncated: 56,\r\n NameTooLong: 57,\r\n SampleRateOutOfRange: 58,\r\n SetAuthContextFailed: 59,\r\n SetAuthContextFailedAccountName: 60,\r\n StringValueTooLong: 61,\r\n StartCalledMoreThanOnce: 62,\r\n StopCalledWithoutStart: 63,\r\n TelemetryInitializerFailed: 64,\r\n TrackArgumentsNotSpecified: 65,\r\n UrlTooLong: 66,\r\n SessionStorageBufferFull: 67,\r\n CannotAccessCookie: 68,\r\n IdTooLong: 69,\r\n InvalidEvent: 70,\r\n FailedMonitorAjaxSetRequestHeader: 71\r\n};\r\n//# sourceMappingURL=LoggingEnums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport { Util, CorrelationIdHelper, UrlHelper, DateTimeUtils } from './Util';\r\nexport { FieldType } from './Enums';\r\nexport { RequestHeaders } from './RequestResponseHeaders';\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod } from './Constants';\r\nexport { Data as AIData } from './Interfaces/Contracts/Generated/Data';\r\nexport { Base as AIBase } from './Interfaces/Contracts/Generated/Base';\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 { PageViewData } from './Interfaces/Contracts/Generated/PageViewData';\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/Generated/SeverityLevel';\r\nexport { ConfigurationManager } from './Interfaces/IConfig';\r\nexport { ContextTagKeys } from './Interfaces/Contracts/Generated/ContextTagKeys';\r\nexport { DataSanitizer } from './Telemetry/Common/DataSanitizer';\r\nexport { TelemetryItemCreator } from './TelemetryItemCreator';\r\nexport { CtxTagKeys, Extensions } from './Interfaces/PartAExtensions';\r\nexport { DistributedTracingModes } from './Enums';\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * The abstract common base of all domains.\r\n */\r\nvar Domain = /** @class */ (function () {\r\n function Domain() {\r\n }\r\n return Domain;\r\n}());\r\nexport { Domain };\r\n//# sourceMappingURL=Domain.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { EventData } from './EventData';\r\n/**\r\n * An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.\r\n */\r\nvar PageViewData = /** @class */ (function (_super) {\r\n tslib_1.__extends(PageViewData, _super);\r\n function PageViewData() {\r\n var _this = _super.call(this) || this;\r\n _this.ver = 2;\r\n _this.properties = {};\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return PageViewData;\r\n}(EventData));\r\nexport { PageViewData };\r\n//# sourceMappingURL=PageViewData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar RequestHeaders = /** @class */ (function () {\r\n function RequestHeaders() {\r\n }\r\n /**\r\n * Request-Context header\r\n */\r\n RequestHeaders.requestContextHeader = \"Request-Context\";\r\n /**\r\n * Target instrumentation header that is added to the response and retrieved by the\r\n * calling application when processing incoming responses.\r\n */\r\n RequestHeaders.requestContextTargetKey = \"appId\";\r\n /**\r\n * Request-Context appId format\r\n */\r\n RequestHeaders.requestContextAppIdFormat = \"appId=cid-v1:\";\r\n /**\r\n * Request-Id header\r\n */\r\n RequestHeaders.requestIdHeader = \"Request-Id\";\r\n /**\r\n * W3C distributed tracing protocol header\r\n */\r\n RequestHeaders.traceParentHeader = \"traceparent\";\r\n /**\r\n * Sdk-Context header\r\n * If this header passed with appId in content then appId will be returned back by the backend.\r\n */\r\n RequestHeaders.sdkContextHeader = \"Sdk-Context\";\r\n /**\r\n * String to pass in header for requesting appId back from the backend.\r\n */\r\n RequestHeaders.sdkContextHeaderAppIdRequest = \"appId\";\r\n RequestHeaders.requestContextHeaderLowerCase = \"request-context\";\r\n return RequestHeaders;\r\n}());\r\nexport { RequestHeaders };\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nvar ContextTagKeys = /** @class */ (function () {\r\n function ContextTagKeys() {\r\n this.applicationVersion = \"ai.application.ver\";\r\n this.applicationBuild = \"ai.application.build\";\r\n this.applicationTypeId = \"ai.application.typeId\";\r\n this.applicationId = \"ai.application.applicationId\";\r\n this.applicationLayer = \"ai.application.layer\";\r\n this.deviceId = \"ai.device.id\";\r\n this.deviceIp = \"ai.device.ip\";\r\n this.deviceLanguage = \"ai.device.language\";\r\n this.deviceLocale = \"ai.device.locale\";\r\n this.deviceModel = \"ai.device.model\";\r\n this.deviceFriendlyName = \"ai.device.friendlyName\";\r\n this.deviceNetwork = \"ai.device.network\";\r\n this.deviceNetworkName = \"ai.device.networkName\";\r\n this.deviceOEMName = \"ai.device.oemName\";\r\n this.deviceOS = \"ai.device.os\";\r\n this.deviceOSVersion = \"ai.device.osVersion\";\r\n this.deviceRoleInstance = \"ai.device.roleInstance\";\r\n this.deviceRoleName = \"ai.device.roleName\";\r\n this.deviceScreenResolution = \"ai.device.screenResolution\";\r\n this.deviceType = \"ai.device.type\";\r\n this.deviceMachineName = \"ai.device.machineName\";\r\n this.deviceVMName = \"ai.device.vmName\";\r\n this.deviceBrowser = \"ai.device.browser\";\r\n this.deviceBrowserVersion = \"ai.device.browserVersion\";\r\n this.locationIp = \"ai.location.ip\";\r\n this.locationCountry = \"ai.location.country\";\r\n this.locationProvince = \"ai.location.province\";\r\n this.locationCity = \"ai.location.city\";\r\n this.operationId = \"ai.operation.id\";\r\n this.operationName = \"ai.operation.name\";\r\n this.operationParentId = \"ai.operation.parentId\";\r\n this.operationRootId = \"ai.operation.rootId\";\r\n this.operationSyntheticSource = \"ai.operation.syntheticSource\";\r\n this.operationCorrelationVector = \"ai.operation.correlationVector\";\r\n this.sessionId = \"ai.session.id\";\r\n this.sessionIsFirst = \"ai.session.isFirst\";\r\n this.sessionIsNew = \"ai.session.isNew\";\r\n this.userAccountAcquisitionDate = \"ai.user.accountAcquisitionDate\";\r\n this.userAccountId = \"ai.user.accountId\";\r\n this.userAgent = \"ai.user.userAgent\";\r\n this.userId = \"ai.user.id\";\r\n this.userStoreRegion = \"ai.user.storeRegion\";\r\n this.userAuthUserId = \"ai.user.authUserId\";\r\n this.userAnonymousUserAcquisitionDate = \"ai.user.anonUserAcquisitionDate\";\r\n this.userAuthenticatedUserAcquisitionDate = \"ai.user.authUserAcquisitionDate\";\r\n this.cloudName = \"ai.cloud.name\";\r\n this.cloudRole = \"ai.cloud.role\";\r\n this.cloudRoleVer = \"ai.cloud.roleVer\";\r\n this.cloudRoleInstance = \"ai.cloud.roleInstance\";\r\n this.cloudEnvironment = \"ai.cloud.environment\";\r\n this.cloudLocation = \"ai.cloud.location\";\r\n this.cloudDeploymentUnit = \"ai.cloud.deploymentUnit\";\r\n this.internalNodeName = \"ai.internal.nodeName\";\r\n this.internalSdkVersion = \"ai.internal.sdkVersion\";\r\n this.internalAgentVersion = \"ai.internal.agentVersion\";\r\n }\r\n return ContextTagKeys;\r\n}());\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from './Base';\r\n/**\r\n * Data struct to contain both B and C sections.\r\n */\r\nvar Data = /** @class */ (function (_super) {\r\n tslib_1.__extends(Data, _super);\r\n function Data() {\r\n return _super.call(this) || this;\r\n }\r\n return Data;\r\n}(Base));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\nvar Base = /** @class */ (function () {\r\n function Base() {\r\n }\r\n return Base;\r\n}());\r\nexport { Base };\r\n//# sourceMappingURL=Base.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\n/**\r\n * Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.\r\n */\r\nvar EventData = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventData, _super);\r\n function EventData() {\r\n var _this = _super.call(this) || this;\r\n _this.ver = 2;\r\n _this.properties = {};\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return EventData;\r\n}(Domain));\r\nexport { EventData };\r\n//# sourceMappingURL=EventData.js.map","import { ContextTagKeys } from \"./Contracts/Generated/ContextTagKeys\";\r\nvar Extensions = /** @class */ (function () {\r\n function Extensions() {\r\n }\r\n Extensions.UserExt = \"user\";\r\n Extensions.DeviceExt = \"device\";\r\n Extensions.TraceExt = \"trace\";\r\n Extensions.WebExt = \"web\";\r\n Extensions.AppExt = \"app\";\r\n Extensions.OSExt = \"os\";\r\n Extensions.SessionExt = \"ses\";\r\n Extensions.SDKExt = \"sdk\";\r\n return Extensions;\r\n}());\r\nexport { Extensions };\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\n/**\r\n * An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.\r\n */\r\nvar RemoteDependencyData = /** @class */ (function (_super) {\r\n tslib_1.__extends(RemoteDependencyData, _super);\r\n function RemoteDependencyData() {\r\n var _this = _super.call(this) || this;\r\n _this.ver = 2;\r\n _this.success = true;\r\n _this.properties = {};\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return RemoteDependencyData;\r\n}(Domain));\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\nimport { AjaxHelper } from '../Util';\r\nimport { RemoteDependencyData as GeneratedRemoteDependencyData } from '../Interfaces/Contracts/Generated/RemoteDependencyData';\r\nvar RemoteDependencyData = /** @class */ (function (_super) {\r\n tslib_1.__extends(RemoteDependencyData, _super);\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, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n id: FieldType.Required,\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n resultCode: FieldType.Default,\r\n duration: FieldType.Default,\r\n success: FieldType.Default,\r\n data: FieldType.Default,\r\n target: FieldType.Default,\r\n type: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default,\r\n kind: FieldType.Default,\r\n value: FieldType.Default,\r\n count: FieldType.Default,\r\n min: FieldType.Default,\r\n max: FieldType.Default,\r\n stdDev: FieldType.Default,\r\n dependencyKind: FieldType.Default,\r\n dependencySource: FieldType.Default,\r\n commandName: FieldType.Default,\r\n dependencyTypeName: FieldType.Default,\r\n };\r\n _this.id = id;\r\n _this.duration = Util.msToTimeSpan(value);\r\n _this.success = success;\r\n _this.resultCode = resultCode + \"\";\r\n _this.type = DataSanitizer.sanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelper.ParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _this.data = DataSanitizer.sanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _this.target = DataSanitizer.sanitizeString(logger, dependencyFields.target);\r\n _this.name = DataSanitizer.sanitizeString(logger, dependencyFields.name);\r\n _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}(GeneratedRemoteDependencyData));\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Util } from \"./Util\";\r\nimport { DataSanitizer } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { CoreUtils } from \"@microsoft/applicationinsights-core-js\";\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 = function (item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n envelopeName = DataSanitizer.sanitizeString(logger, envelopeName) || Util.NotSpecified;\r\n if (CoreUtils.isNullOrUndefined(item) ||\r\n CoreUtils.isNullOrUndefined(baseType) ||\r\n CoreUtils.isNullOrUndefined(envelopeName)) {\r\n throw Error(\"Input doesn't contain all required fields\");\r\n }\r\n var telemetryItem = {\r\n name: envelopeName,\r\n time: new Date().toISOString(),\r\n 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 (!CoreUtils.isNullOrUndefined(customProperties)) {\r\n for (var prop in customProperties) {\r\n if (customProperties.hasOwnProperty(prop)) {\r\n telemetryItem.data[prop] = customProperties[prop];\r\n }\r\n }\r\n }\r\n return telemetryItem;\r\n };\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { EventData } from '../Interfaces/Contracts/Generated/EventData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\nvar Event = /** @class */ (function (_super) {\r\n tslib_1.__extends(Event, _super);\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Required,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n };\r\n _this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}(EventData));\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { PageViewData } from '../Interfaces/Contracts/Generated/PageViewData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\nvar PageView = /** @class */ (function (_super) {\r\n tslib_1.__extends(PageView, _super);\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 var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n url: FieldType.Default,\r\n duration: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default,\r\n id: FieldType.Default\r\n };\r\n _this.id = DataSanitizer.sanitizeId(logger, id);\r\n _this.url = DataSanitizer.sanitizeUrl(logger, url);\r\n _this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _this.duration = Util.msToTimeSpan(durationMs);\r\n }\r\n _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}(PageViewData));\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n* Defines the level of severity for the event.\r\n*/\r\nexport var SeverityLevel;\r\n(function (SeverityLevel) {\r\n SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\r\n SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\r\n SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\r\n SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\r\n SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\r\n})(SeverityLevel || (SeverityLevel = {}));\r\n//# sourceMappingURL=SeverityLevel.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { CoreUtils } 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] && !CoreUtils.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 !CoreUtils.isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n };\r\n return ConfigurationManager;\r\n}());\r\nexport { ConfigurationManager };\r\n//# sourceMappingURL=IConfig.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Data as AIData } from '../../Interfaces/Contracts/Generated/Data';\r\nimport { FieldType } from '../../Enums';\r\nvar Data = /** @class */ (function (_super) {\r\n tslib_1.__extends(Data, _super);\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n _this.aiDataContract = {\r\n baseType: FieldType.Required,\r\n baseData: FieldType.Required\r\n };\r\n _this.baseType = baseType;\r\n _this.baseData = data;\r\n return _this;\r\n }\r\n return Data;\r\n}(AIData));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Type of the metric data measurement.\r\n */\r\nexport var DataPointType;\r\n(function (DataPointType) {\r\n DataPointType[DataPointType[\"Measurement\"] = 0] = \"Measurement\";\r\n DataPointType[DataPointType[\"Aggregation\"] = 1] = \"Aggregation\";\r\n})(DataPointType || (DataPointType = {}));\r\n//# sourceMappingURL=DataPointType.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\n/**\r\n * An instance of the Metric item is a list of measurements (single data points) and/or aggregations.\r\n */\r\nvar MetricData = /** @class */ (function (_super) {\r\n tslib_1.__extends(MetricData, _super);\r\n function MetricData() {\r\n var _this = _super.call(this) || this;\r\n _this.ver = 2;\r\n _this.metrics = [];\r\n _this.properties = {};\r\n return _this;\r\n }\r\n return MetricData;\r\n}(Domain));\r\nexport { MetricData };\r\n//# sourceMappingURL=MetricData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { DataPointType } from './DataPointType';\r\n/**\r\n * Metric data single measurement.\r\n */\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n this.kind = DataPointType.Measurement;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { DataPoint as AIDataPoint } from '../../Interfaces/Contracts/Generated/DataPoint';\r\nimport { FieldType } from '../../Enums';\r\nvar DataPoint = /** @class */ (function (_super) {\r\n tslib_1.__extends(DataPoint, _super);\r\n function DataPoint() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n _this.aiDataContract = {\r\n name: FieldType.Required,\r\n kind: FieldType.Default,\r\n value: FieldType.Required,\r\n count: FieldType.Default,\r\n min: FieldType.Default,\r\n max: FieldType.Default,\r\n stdDev: FieldType.Default\r\n };\r\n return _this;\r\n }\r\n return DataPoint;\r\n}(AIDataPoint));\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { MetricData } from '../Interfaces/Contracts/Generated/MetricData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { DataPoint } from './Common/DataPoint';\r\nimport { Util } from '../Util';\r\nvar Metric = /** @class */ (function (_super) {\r\n tslib_1.__extends(Metric, _super);\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, properties) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: FieldType.Required,\r\n metrics: FieldType.Required,\r\n properties: FieldType.Default\r\n };\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 = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n dataPoint.value = value;\r\n _this.metrics = [dataPoint];\r\n _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n return _this;\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}(MetricData));\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Stack frame information.\r\n */\r\nvar StackFrame = /** @class */ (function () {\r\n function StackFrame() {\r\n }\r\n return StackFrame;\r\n}());\r\nexport { StackFrame };\r\n//# sourceMappingURL=StackFrame.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Domain } from './Domain';\r\n/**\r\n * An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.\r\n */\r\nvar ExceptionData = /** @class */ (function (_super) {\r\n tslib_1.__extends(ExceptionData, _super);\r\n function ExceptionData() {\r\n var _this = _super.call(this) || this;\r\n _this.ver = 2;\r\n _this.exceptions = [];\r\n _this.properties = {};\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return ExceptionData;\r\n}(Domain));\r\nexport { ExceptionData };\r\n//# sourceMappingURL=ExceptionData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Exception details of the exception in a chain.\r\n */\r\nvar ExceptionDetails = /** @class */ (function () {\r\n function ExceptionDetails() {\r\n this.hasFullStack = true;\r\n this.parsedStack = [];\r\n }\r\n return ExceptionDetails;\r\n}());\r\nexport { ExceptionDetails };\r\n//# sourceMappingURL=ExceptionDetails.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { StackFrame } from '../Interfaces/Contracts/Generated/StackFrame';\r\nimport { ExceptionData } from '../Interfaces/Contracts/Generated/ExceptionData';\r\nimport { ExceptionDetails } from '../Interfaces/Contracts/Generated/ExceptionDetails';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\nimport { CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nvar Exception = /** @class */ (function (_super) {\r\n tslib_1.__extends(Exception, _super);\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 var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: FieldType.Required,\r\n exceptions: FieldType.Required,\r\n severityLevel: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n };\r\n if (exception instanceof Error) {\r\n _this.exceptions = [new _ExceptionDetails(logger, exception)];\r\n _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n if (severityLevel)\r\n _this.severityLevel = severityLevel;\r\n if (id)\r\n _this.id = id;\r\n }\r\n else {\r\n _this.exceptions = exception.exceptions;\r\n _this.properties = exception.properties;\r\n _this.measurements = exception.measurements;\r\n if (exception.severityLevel)\r\n _this.severityLevel = exception.severityLevel;\r\n if (exception.id)\r\n _this.id = exception.id;\r\n if (exception.problemGroup)\r\n _this.problemGroup = exception.problemGroup;\r\n // bool/int types, use isNullOrUndefined\r\n if (!CoreUtils.isNullOrUndefined(exception.ver))\r\n _this.ver = exception.ver;\r\n if (!CoreUtils.isNullOrUndefined(exception.isManual))\r\n _this.isManual = exception.isManual;\r\n }\r\n return _this;\r\n }\r\n Exception.CreateFromInterface = function (logger, exception) {\r\n var exceptions = exception.exceptions\r\n && exception.exceptions.map(function (ex) { return _ExceptionDetails.CreateFromInterface(logger, ex); });\r\n var exceptionData = new Exception(logger, tslib_1.__assign({}, exception, { exceptions: exceptions }));\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, ver = _a.ver, problemGroup = _a.problemGroup, id = _a.id, isManual = _a.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && exceptions.map(function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return {\r\n ver: ver,\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 return Exception;\r\n}(ExceptionData));\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function (_super) {\r\n tslib_1.__extends(_ExceptionDetails, _super);\r\n function _ExceptionDetails(logger, exception) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n id: FieldType.Default,\r\n outerId: FieldType.Default,\r\n typeName: FieldType.Required,\r\n message: FieldType.Required,\r\n hasFullStack: FieldType.Default,\r\n stack: FieldType.Default,\r\n parsedStack: FieldType.Array\r\n };\r\n if (exception instanceof Error) {\r\n _this.typeName = DataSanitizer.sanitizeString(logger, exception.name) || Util.NotSpecified;\r\n _this.message = DataSanitizer.sanitizeMessage(logger, exception.message) || Util.NotSpecified;\r\n var stack = exception.stack;\r\n _this.parsedStack = _ExceptionDetails.parseStack(stack);\r\n _this.stack = DataSanitizer.sanitizeException(logger, stack);\r\n _this.hasFullStack = Util.isArray(_this.parsedStack) && _this.parsedStack.length > 0;\r\n }\r\n else {\r\n _this.typeName = exception.typeName;\r\n _this.message = exception.message;\r\n _this.stack = exception.stack;\r\n _this.parsedStack = exception.parsedStack;\r\n _this.hasFullStack = exception.hasFullStack;\r\n }\r\n return _this;\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var parsedStack = this.parsedStack instanceof Array\r\n && this.parsedStack.map(function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = {\r\n id: this.id,\r\n outerId: this.outerId,\r\n typeName: this.typeName,\r\n message: this.message,\r\n hasFullStack: this.hasFullStack,\r\n stack: this.stack,\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 && exception.parsedStack.map(function (frame) { return _StackFrame.CreateFromInterface(frame); }))\r\n || exception.parsedStack;\r\n var exceptionDetails = new _ExceptionDetails(logger, tslib_1.__assign({}, exception, { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n _ExceptionDetails.parseStack = function (stack) {\r\n var parsedStack = undefined;\r\n if (typeof stack === \"string\") {\r\n var frames = stack.split('\\n');\r\n parsedStack = [];\r\n var level = 0;\r\n var totalSizeInBytes = 0;\r\n for (var i = 0; i <= frames.length; i++) {\r\n var frame = frames[i];\r\n if (_StackFrame.regex.test(frame)) {\r\n var parsedFrame = new _StackFrame(frames[i], level++);\r\n totalSizeInBytes += 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 > 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\n return _ExceptionDetails;\r\n}(ExceptionDetails));\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function (_super) {\r\n tslib_1.__extends(_StackFrame, _super);\r\n function _StackFrame(sourceFrame, level) {\r\n var _this = _super.call(this) || this;\r\n _this.sizeInBytes = 0;\r\n _this.aiDataContract = {\r\n level: FieldType.Required,\r\n method: FieldType.Required,\r\n assembly: FieldType.Default,\r\n fileName: FieldType.Default,\r\n line: FieldType.Default,\r\n };\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _this.level = level;\r\n _this.method = \"\";\r\n _this.assembly = Util.trim(frame);\r\n _this.fileName = \"\";\r\n _this.line = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches.length >= 5) {\r\n _this.method = Util.trim(matches[2]) || _this.method;\r\n _this.fileName = Util.trim(matches[4]);\r\n _this.line = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _this.level = sourceFrame.level;\r\n _this.method = sourceFrame.method;\r\n _this.assembly = sourceFrame.assembly;\r\n _this.fileName = sourceFrame.fileName;\r\n _this.line = sourceFrame.line;\r\n _this.sizeInBytes = 0;\r\n }\r\n _this.sizeInBytes += _this.method.length;\r\n _this.sizeInBytes += _this.fileName.length;\r\n _this.sizeInBytes += _this.assembly.length;\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _this.sizeInBytes += _StackFrame.baseSize;\r\n _this.sizeInBytes += _this.level.toString().length;\r\n _this.sizeInBytes += _this.line.toString().length;\r\n return _this;\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 return {\r\n level: this.level,\r\n method: this.method,\r\n assembly: this.assembly,\r\n fileName: this.fileName,\r\n line: this.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\\(|\\s)([^\\(\\@\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; //'{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}(StackFrame));\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\n/**\r\n * Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into intances of this type. The message does not have measurements.\r\n */\r\nvar MessageData = /** @class */ (function (_super) {\r\n tslib_1.__extends(MessageData, _super);\r\n function MessageData() {\r\n var _this = _super.call(this) || this;\r\n _this.ver = 2;\r\n _this.properties = {};\r\n return _this;\r\n }\r\n return MessageData;\r\n}(Domain));\r\nexport { MessageData };\r\n//# sourceMappingURL=MessageData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { MessageData } from '../Interfaces/Contracts/Generated/MessageData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\nvar Trace = /** @class */ (function (_super) {\r\n tslib_1.__extends(Trace, _super);\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: FieldType.Required,\r\n message: FieldType.Required,\r\n severityLevel: FieldType.Default,\r\n properties: FieldType.Default\r\n };\r\n message = message || Util.NotSpecified;\r\n _this.message = DataSanitizer.sanitizeMessage(logger, message);\r\n _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n if (severityLevel) {\r\n _this.severityLevel = severityLevel;\r\n }\r\n return _this;\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}(MessageData));\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { PageViewData } from './PageViewData';\r\n/**\r\n * An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.\r\n */\r\nvar PageViewPerfData = /** @class */ (function (_super) {\r\n tslib_1.__extends(PageViewPerfData, _super);\r\n function PageViewPerfData() {\r\n var _this = _super.call(this) || this;\r\n _this.ver = 2;\r\n _this.properties = {};\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return PageViewPerfData;\r\n}(PageViewData));\r\nexport { PageViewPerfData };\r\n//# sourceMappingURL=PageViewPerfData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { PageViewPerfData } from '../Interfaces/Contracts/Generated/PageViewPerfData';\r\nimport { FieldType } from '../Enums';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { Util } from '../Util';\r\nvar PageViewPerformance = /** @class */ (function (_super) {\r\n tslib_1.__extends(PageViewPerformance, _super);\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 var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n url: FieldType.Default,\r\n duration: FieldType.Default,\r\n perfTotal: FieldType.Default,\r\n networkConnect: FieldType.Default,\r\n sentRequest: FieldType.Default,\r\n receivedResponse: FieldType.Default,\r\n domProcessing: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n };\r\n _this.url = DataSanitizer.sanitizeUrl(logger, url);\r\n _this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _this.domProcessing = cs4BaseData.domProcessing;\r\n _this.duration = cs4BaseData.duration;\r\n _this.networkConnect = cs4BaseData.networkConnect;\r\n _this.perfTotal = cs4BaseData.perfTotal;\r\n _this.receivedResponse = cs4BaseData.receivedResponse;\r\n _this.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n return _this;\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}(PageViewPerfData));\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * System variables for a telemetry item.\r\n */\r\nvar Envelope = /** @class */ (function () {\r\n function Envelope() {\r\n this.ver = 1;\r\n this.sampleRate = 100.0;\r\n this.tags = {};\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Envelope as AIEnvelope } from '../../Interfaces/Contracts/Generated/Envelope';\r\nimport { DataSanitizer } from './DataSanitizer';\r\nimport { FieldType } from '../../Enums';\r\nimport { Util } from '../../Util';\r\nvar Envelope = /** @class */ (function (_super) {\r\n tslib_1.__extends(Envelope, _super);\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = _super.call(this) || this;\r\n _this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n _this.data = data;\r\n _this.time = Util.toISOStringForIE8(new Date());\r\n _this.aiDataContract = {\r\n time: FieldType.Required,\r\n iKey: FieldType.Required,\r\n name: FieldType.Required,\r\n sampleRate: function () {\r\n return (_this.sampleRate == 100) ? FieldType.Hidden : FieldType.Required;\r\n },\r\n tags: FieldType.Required,\r\n data: FieldType.Required\r\n };\r\n return _this;\r\n }\r\n return Envelope;\r\n}(AIEnvelope));\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n* Type of storage to differentiate between local storage and session storage\r\n*/\r\nexport var StorageType;\r\n(function (StorageType) {\r\n StorageType[StorageType[\"LocalStorage\"] = 0] = \"LocalStorage\";\r\n StorageType[StorageType[\"SessionStorage\"] = 1] = \"SessionStorage\";\r\n})(StorageType || (StorageType = {}));\r\n/**\r\n * Enum is used in aiDataContract to describe how fields are serialized.\r\n * For instance: (Fieldtype.Required | FieldType.Array) will mark the field as required and indicate it's an array\r\n */\r\nexport var FieldType;\r\n(function (FieldType) {\r\n FieldType[FieldType[\"Default\"] = 0] = \"Default\";\r\n FieldType[FieldType[\"Required\"] = 1] = \"Required\";\r\n FieldType[FieldType[\"Array\"] = 2] = \"Array\";\r\n FieldType[FieldType[\"Hidden\"] = 4] = \"Hidden\";\r\n})(FieldType || (FieldType = {}));\r\n;\r\nexport var DistributedTracingModes;\r\n(function (DistributedTracingModes) {\r\n /**\r\n * (Default) Send Application Insights correlation headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"AI\"] = 0] = \"AI\";\r\n /**\r\n * Send both W3C Trace Context headers and back-compatibility Application Insights headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"AI_AND_W3C\"] = 1] = \"AI_AND_W3C\";\r\n /**\r\n * Send W3C Trace Context headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"W3C\"] = 2] = \"W3C\";\r\n})(DistributedTracingModes || (DistributedTracingModes = {}));\r\n//# sourceMappingURL=Enums.js.map"],"sourceRoot":""}