{"version":3,"sources":["webpack:///./node_modules/@microsoft/applicationinsights-channel-js/node_modules/tslib/tslib.es6.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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","ArraySendBuffer","config","_config","_buffer","enqueue","payload","push","count","clear","getItems","slice","batchPayloads","batch","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","CRITICAL","payloads","buffer","remaining","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","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","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","circularReferenceCheck","CircularReferenceDetected","aiDataContract","_serializeStringMap","isArray","_serializeArray","CannotSerializeObjectNonSerializable","field","contract","isRequired","Required","isHidden","Hidden","isPresent","isObject","MissingRequiredFieldSpecification","sources","ItemNotInArray","map","expectedType","num","parseFloat","isNaN","OfflineListener","_onlineStatus","_window","_document","isListening","_this","Attach","_setOnline","bind","_setOffline","body","isUndefined","ononline","onoffline","isOnline","_navigator","onLine","isOffline","Offline","HashCodeScoreGenerator","getHashCodeScore","score","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","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","ctx","_getTelCtx","_serializer","_consecutiveErrors","_retryAt","_lastSend","_sender","defaultConfig","this_1","getConfig","canUseSessionStorage","_sample","XMLHttpRequest","testXhr","_xhrSender","XDomainRequest","_xdrSender","processTelemetry","itemCtx","CannotSendEmptyTelemetry","InvalidEvent","SenderNotInitialized","_isSampledIn","TelemetrySampledAndNotSent","SampleRate","aiEnvelope_1","CreateEnvelopeError","doNotSendItem_1","callBack","TelemetryInitializerFailed","bufferPayload","_setupTimer","FailedAddingTelemetryToBuffer","processNext","_xhrReadyStateChange","countOfItemsInPayload","readyState","response","_appId","_parseResponse","appId","status","_isRetriable","_resendPayload","TransmissionFailed","_onError","_formatErrorMessageXhr","offlineBackOffMultiplier","_onPartialSuccess","_onSuccess","async","forcedSender","Date","clearTimeout","_timeoutHandle","getIEVersion","event","OnError","results","failed","retry","errors","reverse","_i","errors_1","error","extracted","index","statusCode","itemsAccepted","itemsReceived","_xdrOnLoad","xdr","_formatErrorMessageXdr","isAsync","plainTextBatch","Blob","queued","sendBeacon","endPointUrl","open","setRequestHeader","isInternalApplicationInsightsEndpoint","sdkContextHeader","sdkContextHeaderAppIdRequest","onreadystatechange","onerror","send","result","InvalidBackendResponse","linearFactor","payload_1","_setRetryTime","delayInSeconds","SlotDelayInSeconds","backOffSlot","pow","backOffDelay","floor","retryAfterTimeSpan","now","retryInterval","timerValue","setTimeout","onload","hostingProtocol","location","protocol","lastIndexOf","BaseTelemetryPlugin"],"mappings":"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","file":"js/chunk-vendors~0f5241eb.bc3be276.js","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","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":""}