{"version":3,"sources":["webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-channel-js@2.5.4/node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-channel-js@2.5.4/node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-channel-js@2.5.4/node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-channel-js@2.5.4/node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-channel-js@2.5.4/node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-channel-js@2.5.4/node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-channel-js@2.5.4/node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-channel-js@2.5.4/node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js"],"names":["ArraySendBuffer","config","this","_config","_buffer","prototype","enqueue","payload","push","count","length","clear","getItems","slice","batchPayloads","emitLineDelimitedJson","join","markAsSent","clearSent","SessionStorageSendBuffer","logger","_bufferFullMessageSent","_logger","bufferItems","getBuffer","BUFFER_KEY","notDeliveredItems","SENT_BUFFER_KEY","concat","MAX_BUFFER_SIZE","setBuffer","throwInternal","WARNING","SessionStorageBufferFull","removePayloadsFromBuffer","sentElements","Array","CRITICAL","payloads","buffer","remaining","i","contains","j","key","prefixedKey","namePrefix","bufferJson","Util","getSessionStorage","parse","e","FailedToRestoreStorageBuffer","getExceptionName","exception","dump","JSON","stringify","setSessionStorage","FailedToSetStorageBuffer","EnvelopeCreator","extractPropsAndMeasurements","data","properties","measurements","CoreUtils","isNullOrUndefined","hasOwnProperty","value","isNumber","isString","createEnvelope","envelopeType","telemetryItem","envelope","Envelope","sampleRate","iKey","iKeyNoDashes","replace","name","extractPartAExtensions","tags","item","env","ext","user","authId","userAuthUserId","userId","id","localId","app","sesId","sessionId","device","deviceId","deviceClass","deviceType","ip","deviceIp","web","browserLang","deviceLanguage","browserVer","deviceBrowserVersion","browser","deviceBrowser","baseData","domain","isManual","toString","screenRes","userConsent","model","deviceModel","os","deviceOS","trace","parentID","operationParentId","operationName","traceID","operationId","tgs","_loop_1","tg","arrForEach","objKeys","splice","internalSdkVersion","Version","_super","DependencyEnvelopeCreator","apply","arguments","Create","TelemetryEnvelopeInvalid","customMeasurements","customProperties","bd","warnToConsole","absoluteUrl","target","command","duration","success","resultCode","responseCode","requestAPI","type","correlationContext","method","RemoteDependencyData","Data","dataType","EventEnvelopeCreator","baseType","Event","eventName","ExceptionEnvelopeCreator","Exception","CreateFromInterface","MetricEnvelopeCreator","props","average","sampleCount","min","max","Metric","PageViewEnvelopeCreator","currentContextId","url","uri","refUri","pageType","isLoggedIn","pageTags","PageView","PageViewPerformanceEnvelopeCreator","PageViewPerformance","undefined","TraceEnvelopeCreator","message","severityLevel","Trace","Serializer","serialize","input","output","_serializeObject","CannotSerializeObject","isFunction","source","CircularReferenceDetected","aiDataContract","_serializeStringMap","isArray","_serializeArray","CannotSerializeObjectNonSerializable","field","contract","isRequired","Required","isHidden","Hidden","isPresent","isObject","MissingRequiredFieldSpecification","sources","ItemNotInArray","map","expectedType","num","parseFloat","isNaN","Offline","OfflineListener","_onlineStatus","_window","_document","isListening","Attach","_setOnline","bind","_setOffline","body","isUndefined","ononline","onoffline","isOnline","_navigator","onLine","isOffline","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","MIN_INPUT_LENGTH","hash","charCodeAt","Math","abs","SamplingScoreGenerator","hashCodeGeneragor","keys","ContextTagKeys","getSamplingScore","telemetryTrace","random","Sample","DiagnosticLogger","SampleRateOutOfRange","samplingRate","samplingScoreGenerator","isSampledIn","samplingPercentage","_getResponseText","xhr","responseText","Sender","_this","priority","identifier","_XMLHttpRequestSupported","constructEnvelope","orig","_getDefaultAppInsightsChannelConfig","endpointUrl","maxBatchInterval","maxBatchSizeInBytes","disableTelemetry","enableSessionStorageBuffer","isRetryDisabled","isBeaconApiDisabled","onunloadDisableBeacon","instrumentationKey","_getEmptyAppInsightsChannelConfig","pause","Error","resume","flush","triggerSend","diagLog","FlushFailed","onunloadFlush","_senderConfig","IsBeaconApiSupported","_beaconSender","FailedToSendQueuedTelemetry","teardown","initialize","core","extensions","pluginChain","call","ctx","_getTelCtx","_serializer","_consecutiveErrors","_retryAt","_lastSend","_sender","defaultConfig","this_1","getConfig","canUseSessionStorage","_sample","XMLHttpRequest","_xhrSender","XDomainRequest","_xdrSender","processTelemetry","itemCtx","CannotSendEmptyTelemetry","InvalidEvent","SenderNotInitialized","_isSampledIn","TelemetrySampledAndNotSent","SampleRate","aiEnvelope_1","CreateEnvelopeError","doNotSendItem_1","callBack","TelemetryInitializerFailed","bufferPayload","batch","_setupTimer","FailedAddingTelemetryToBuffer","processNext","_xhrReadyStateChange","countOfItemsInPayload","readyState","response","_appId","_parseResponse","appId","status","_isRetriable","_resendPayload","TransmissionFailed","_onError","_formatErrorMessageXhr","_onPartialSuccess","_onSuccess","async","forcedSender","Date","clearTimeout","_timeoutHandle","getIEVersion","event","OnError","results","failed","retry","_i","errors_1","errors","reverse","error","extracted","index","statusCode","itemsAccepted","itemsReceived","_xdrOnLoad","xdr","_formatErrorMessageXdr","isAsync","plainTextBatch","Blob","sendBeacon","endPointUrl","open","setRequestHeader","isInternalApplicationInsightsEndpoint","sdkContextHeader","sdkContextHeaderAppIdRequest","onreadystatechange","onerror","send","result","InvalidBackendResponse","linearFactor","payload_1","_setRetryTime","delayInSeconds","backOffSlot","pow","backOffDelay","floor","retryAfterTimeSpan","now","retryInterval","timerValue","setTimeout","onload","hostingProtocol","location","protocol","lastIndexOf","BaseTelemetryPlugin"],"mappings":"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","file":"npm.microsoft+applicationinsights-channel-js@2.5.4.9c46dc7dc71e9271851e.js","sourcesContent":["import { Util } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, getJSON } 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 = getJSON().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, SampleRate } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId, hasJSON, getJSON } 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.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 (CoreUtils.isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (CoreUtils.isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON().stringify(value);\r\n }\r\n }\r\n }\r\n }\r\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 if (telemetryItem[SampleRate]) {\r\n envelope.sampleRate = telemetryItem[SampleRate];\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n 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 // CoreUtils.objKeys returns an array of keys\r\n CoreUtils.arrForEach(CoreUtils.objKeys(tg), 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.5.4\";\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 correlationContext = bd.correlationContext;\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, correlationContext, 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 measurements = telemetryItem.baseData.measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);\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, props, measurements);\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;\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 props = telemetryItem.baseData.properties || {};\r\n var measurements = telemetryItem.baseData.measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\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, CoreUtils, getJSON } 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 try {\r\n return getJSON().stringify(output);\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 && CoreUtils.isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\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 getJSON().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 && CoreUtils.isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n for (var field in source.aiDataContract) {\r\n var contract = source.aiDataContract[field];\r\n var isRequired = (CoreUtils.isFunction(contract)) ? (contract() & FieldType.Required) : (contract & FieldType.Required);\r\n var isHidden = (CoreUtils.isFunction(contract)) ? (contract() & FieldType.Hidden) : (contract & FieldType.Hidden);\r\n var isArray = contract & FieldType.Array;\r\n var isPresent = source[field] !== undefined;\r\n var isObject = CoreUtils.isObject(source[field]) && 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 = void 0;\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;\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;\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, EventHelper, getWindow, getDocument, getNavigator } 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 var _window = getWindow();\r\n var _document = getDocument();\r\n var isListening = false;\r\n var _this = this;\r\n try {\r\n if (_window) {\r\n if (EventHelper.Attach(_window, 'online', this._setOnline.bind(_this))) {\r\n EventHelper.Attach(_window, 'offline', this._setOffline.bind(_this));\r\n isListening = true;\r\n }\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!CoreUtils.isUndefined(target.ononline)) {\r\n target.ononline = this._setOnline.bind(_this);\r\n target.onoffline = this._setOffline.bind(_this);\r\n isListening = true;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n isListening = false;\r\n }\r\n this.isListening = isListening;\r\n }\r\n OfflineListener.prototype.isOnline = function () {\r\n var _navigator = getNavigator();\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.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.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 this._logger = CoreUtils.isNullOrUndefined(logger) ? new DiagnosticLogger() : logger;\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, ProcessLegacy, BreezeChannelIdentifier, SampleRate } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, _InternalMessageId, LoggingSeverity, getWindow, getNavigator, getJSON, BaseTelemetryPlugin } from '@microsoft/applicationinsights-core-js';\r\nimport { Offline } from './Offline';\r\nimport { Sample } from './TelemetryProcessors/Sample';\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nvar Sender = /** @class */ (function (_super) {\r\n tslib_1.__extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\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 return _this;\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 onunloadDisableBeacon: function () { return false; },\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 onunloadDisableBeacon: undefined,\r\n instrumentationKey: undefined,\r\n namePrefix: undefined,\r\n samplingPercentage: undefined\r\n };\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.diagLog().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.onunloadFlush = function () {\r\n if ((this._senderConfig.onunloadDisableBeacon() === false || this._senderConfig.isBeaconApiDisabled() === false) && Util.IsBeaconApiSupported()) {\r\n try {\r\n this.triggerSend(true, this._beaconSender);\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n else {\r\n this.flush();\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, pluginChain) {\r\n _super.prototype.initialize.call(this, config, core, extensions, pluginChain);\r\n var ctx = this._getTelCtx();\r\n var identifier = this.identifier;\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._senderConfig = Sender._getEmptyAppInsightsChannelConfig();\r\n var _loop_1 = function (field) {\r\n this_1._senderConfig[field] = function () { return ctx.getConfig(identifier, field, 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._senderConfig.enableSessionStorageBuffer && Util.canUseSessionStorage())\r\n ? new SessionStorageSendBuffer(this.diagLog(), this._senderConfig) : new ArraySendBuffer(this._senderConfig);\r\n this._sample = new Sample(this._senderConfig.samplingPercentage(), this.diagLog());\r\n if (!this._senderConfig.isBeaconApiDisabled() && Util.IsBeaconApiSupported()) {\r\n this._sender = this._beaconSender;\r\n }\r\n else {\r\n if (!CoreUtils.isUndefined(XMLHttpRequest)) {\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 (!CoreUtils.isUndefined(XDomainRequest)) {\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, itemCtx) {\r\n itemCtx = this._getTelCtx(itemCtx);\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (this._senderConfig.disableTelemetry()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n itemCtx.diagLog().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 itemCtx.diagLog().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 itemCtx.diagLog().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 itemCtx.diagLog().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[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._senderConfig.instrumentationKey(), itemCtx.diagLog());\r\n if (!aiEnvelope_1) {\r\n itemCtx.diagLog().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 CoreUtils.arrForEach(telemetryItem.tags[ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n itemCtx.diagLog().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 itemCtx.diagLog().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._senderConfig.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 itemCtx.diagLog().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 this.processNext(telemetryItem, itemCtx);\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(_getResponseText(xhr) || 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._senderConfig.isRetryDisabled() && this._isRetriable(xhr.status)) {\r\n this._resendPayload(payload);\r\n this.diagLog().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._senderConfig.isRetryDisabled()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n this._resendPayload(payload, offlineBackOffMultiplier);\r\n this.diagLog().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(_getResponseText(xhr) || xhr.response);\r\n }\r\n if (response && !this._senderConfig.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 * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n Sender.prototype.triggerSend = function (async, forcedSender) {\r\n if (async === void 0) { async = true; }\r\n try {\r\n // Send data only if disableTelemetry is false\r\n if (!this._senderConfig.disableTelemetry()) {\r\n if (this._buffer.count() > 0) {\r\n var payload = this._buffer.getItems();\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(this, payload, async);\r\n }\r\n else {\r\n this._sender(payload, async);\r\n }\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.diagLog().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.diagLog().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.diagLog().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 var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n this._consecutiveErrors = 0;\r\n this._onSuccess(payload, 0);\r\n }\r\n else {\r\n var results = this._parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n && !this._senderConfig.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.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._senderConfig.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 = getNavigator().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.diagLog().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 var endPointUrl = this._senderConfig.endpointUrl();\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (Util.isInternalApplicationInsightsEndpoint(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 = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors.length) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.diagLog().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 /**\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._senderConfig.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:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n };\r\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n Sender.prototype._xdrSender = function (payload, isAsync) {\r\n var _this = this;\r\n var _window = getWindow();\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 && _window.location && _window.location.protocol || \"\";\r\n if (this._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n this.diagLog().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._senderConfig.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:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n };\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map"],"sourceRoot":""}