{"version":3,"sources":["jsdelivr-header.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/InternalConstants.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/__DynamicConstants.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/EnvelopeCreator.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/SendBuffer.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/Sender.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/Serializer.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/TelemetryProcessors/Sample.js"],"names":[],"mappings":"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","file":"/npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/applicationinsights-channel-js.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.\n * Original file: /npm/@microsoft/applicationinsights-channel-js@3.3.8/dist-es5/applicationinsights-channel-js.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n//# sourceMappingURL=InternalConstants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 13\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 38\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 9\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 6\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 4\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 8\r\nexport var _DYN_CONCAT = \"concat\"; // Count: 6\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 5\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 16\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 3\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 3\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ALWAYS_USE_XHR_OVERR4 = \"alwaysUseXhrOverride\"; // Count: 2\r\nexport var _DYN_ENABLE_SESSION_STORA5 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 9\r\nexport var _DYN_ONUNLOAD_DISABLE_FET6 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_DISABLE_SEND_BEACON_7 = \"disableSendBeaconSplit\"; // Count: 2\r\nexport var _DYN_GET_SENDER_INST = \"getSenderInst\"; // Count: 4\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 7\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 3\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","import { __assign } from \"tslib\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n    return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n    // todo: switch to keys from common in this method\r\n    var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n    var itmExt = item.ext = item.ext || {};\r\n    var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n    var extUser = itmExt.user;\r\n    if (extUser) {\r\n        _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n        _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n    }\r\n    var extApp = itmExt.app;\r\n    if (extApp) {\r\n        _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n    }\r\n    var extDevice = itmExt.device;\r\n    if (extDevice) {\r\n        _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n        _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n        _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n        _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n        _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n    }\r\n    var web = item.ext.web;\r\n    if (web) {\r\n        _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n        _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n        _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n        var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n        var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n        var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n        _setValueIf(envProps, \"domain\", web.domain);\r\n        _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n        _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n        _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n    }\r\n    var extOs = itmExt.os;\r\n    if (extOs) {\r\n        _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n        _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);\r\n    }\r\n    // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n    var extTrace = itmExt.trace;\r\n    if (extTrace) {\r\n        _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n        _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n        _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n    }\r\n    // Sample 4.0 schema\r\n    //  {\r\n    //     \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n    //     \"name\" : \"MetricWithNamespace\",\r\n    //     \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n    //     \"ext\": {  \"cloud\": {\r\n    //          \"role\": \"WATSON3\",\r\n    //          \"roleInstance\": \"CO4AEAP00000260\"\r\n    //      },\r\n    //      \"device\": {}, \"correlation\": {} },\r\n    //      \"tags\": [\r\n    //        { \"amazon.region\" : \"east2\" },\r\n    //        { \"os.expid\" : \"wp:02df239\" }\r\n    //     ]\r\n    //   }\r\n    var tgs = {};\r\n    // deals with tags.push({object})\r\n    for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n        var tg = itmTags[i];\r\n        objForEachKey(tg, function (key, value) {\r\n            tgs[key] = value;\r\n        });\r\n        itmTags.splice(i, 1);\r\n    }\r\n    // deals with tags[key]=value (and handles hasOwnProperty)\r\n    objForEachKey(itmTags, function (tg, value) {\r\n        tgs[tg] = value;\r\n    });\r\n    var theTags = __assign(__assign({}, envTags), tgs);\r\n    if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n        // Append a version in case it is not already set\r\n        theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n    }\r\n    env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n    if (!isNullOrUndefined(data)) {\r\n        objForEachKey(data, function (key, value) {\r\n            if (isNumber(value)) {\r\n                measurements[key] = value;\r\n            }\r\n            else if (isString(value)) {\r\n                properties[key] = value;\r\n            }\r\n            else if (hasJSON()) {\r\n                properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n            }\r\n        });\r\n    }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n    if (!isNullOrUndefined(properties)) {\r\n        objForEachKey(properties, function (key, value) {\r\n            properties[key] = value || customUndefinedValue;\r\n        });\r\n    }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n    var envelope = new Envelope(logger, data, envelopeType);\r\n    _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n    if ((telemetryItem[strBaseData] || {}).startTime) {\r\n        // Starting from Version 3.0.3, the time property will be assigned by the startTime value,\r\n        // which records the loadEvent time for the pageView event.\r\n        envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n    }\r\n    envelope.iKey = telemetryItem.iKey;\r\n    var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n    envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n    // extract all extensions from ctx\r\n    _extractPartAExtensions(logger, telemetryItem, envelope);\r\n    // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n    telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n    return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n    if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n        _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n    }\r\n}\r\nexport var EnvelopeCreator = {\r\n    Version: '3.3.8'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n    }\r\n    var bd = telemetryItem[strBaseData];\r\n    if (isNullOrUndefined(bd)) {\r\n        _warnToConsole(logger, \"Invalid input for dependency data\");\r\n        return null;\r\n    }\r\n    var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n    var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n    var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n    return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var customProperties = {};\r\n    var customMeasurements = {};\r\n    if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n        customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n    }\r\n    if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n        customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n        customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    }\r\n    else { // if its not a known type, convert to custom event\r\n        if (telemetryItem[strBaseData]) {\r\n            _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n        }\r\n    }\r\n    // Extract root level properties from part C telemetryItem.data\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n    }\r\n    var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n    var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n    var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n    return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    // Extract root level properties from part C telemetryItem.data\r\n    var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n    }\r\n    var bd = telemetryItem[strBaseData];\r\n    var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n    var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n    return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var baseData = telemetryItem[strBaseData];\r\n    var props = baseData[strProperties] || {};\r\n    var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n    }\r\n    var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n    var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n    return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n    var duration;\r\n    var baseData = telemetryItem[strBaseData];\r\n    if (!isNullOrUndefined(baseData) &&\r\n        !isNullOrUndefined(baseData[strProperties]) &&\r\n        !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n        duration = baseData[strProperties][STR_DURATION];\r\n        delete baseData[strProperties][STR_DURATION];\r\n    }\r\n    else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n        !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n        duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n        delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n    }\r\n    var bd = telemetryItem[strBaseData];\r\n    // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n    var currentContextId;\r\n    if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n        currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n    }\r\n    var id = bd.id || currentContextId;\r\n    var name = bd[_DYN_NAME /* @min:%2ename */];\r\n    var url = bd.uri;\r\n    var properties = bd[strProperties] || {};\r\n    var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n    if (!isNullOrUndefined(bd.refUri)) {\r\n        properties[\"refUri\"] = bd.refUri;\r\n    }\r\n    // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n    if (!isNullOrUndefined(bd.pageType)) {\r\n        properties[\"pageType\"] = bd.pageType;\r\n    }\r\n    // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n    if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n        properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n    }\r\n    // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n    if (!isNullOrUndefined(bd[strProperties])) {\r\n        var pageTags = bd[strProperties];\r\n        objForEachKey(pageTags, function (key, value) {\r\n            properties[key] = value;\r\n        });\r\n    }\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n    }\r\n    var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n    var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n    return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var bd = telemetryItem[strBaseData];\r\n    var name = bd[_DYN_NAME /* @min:%2ename */];\r\n    var url = bd.uri || bd.url;\r\n    var properties = bd[strProperties] || {};\r\n    var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n    }\r\n    var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n    var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n    return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n    EnvelopeCreatorInit(logger, telemetryItem);\r\n    var message = telemetryItem[strBaseData].message;\r\n    var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n    var props = telemetryItem[strBaseData][strProperties] || {};\r\n    var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n    _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n    if (!isNullOrUndefined(customUndefinedValue)) {\r\n        _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n    }\r\n    var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n    var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n    return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","import { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isNullOrUndefined, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONCAT, _DYN_COUNT, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n    function BaseSendBuffer(logger, config) {\r\n        var _buffer = [];\r\n        var _bufferFullMessageSent = false;\r\n        var _maxRetryCnt = config.maxRetryCnt;\r\n        this._get = function () {\r\n            return _buffer;\r\n        };\r\n        this._set = function (buffer) {\r\n            _buffer = buffer;\r\n            return _buffer;\r\n        };\r\n        dynamicProto(BaseSendBuffer, this, function (_self) {\r\n            _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n                if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config.eventsLimitInMem) {\r\n                    // sent internal log only once per page view\r\n                    if (!_bufferFullMessageSent) {\r\n                        _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n                        _bufferFullMessageSent = true;\r\n                    }\r\n                    return;\r\n                }\r\n                payload.cnt = payload.cnt || 0;\r\n                // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n                if (!isNullOrUndefined(_maxRetryCnt)) {\r\n                    if (payload.cnt > _maxRetryCnt) {\r\n                        // TODO: add log here on dropping payloads\r\n                        // will log statsbeat exception later here\r\n                        return;\r\n                    }\r\n                }\r\n                _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n                return;\r\n            };\r\n            _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n                return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n            };\r\n            _self.size = function () {\r\n                var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n                for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n                    size += (_buffer[lp].item)[_DYN_LENGTH /* @min:%2elength */];\r\n                }\r\n                if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n                    size += 2;\r\n                }\r\n                return size;\r\n            };\r\n            _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n                _buffer = [];\r\n                _bufferFullMessageSent = false;\r\n            };\r\n            _self.getItems = function () {\r\n                return _buffer.slice(0);\r\n            };\r\n            _self.batchPayloads = function (payloads) {\r\n                if (payloads && payloads[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    var payloadStr_1 = [];\r\n                    arrForEach(payloads, function (payload) {\r\n                        payloadStr_1[_DYN_PUSH /* @min:%2epush */](payload.item);\r\n                    });\r\n                    var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n                        payloadStr_1.join(\"\\n\") :\r\n                        \"[\" + payloadStr_1.join(\",\") + \"]\";\r\n                    return batch;\r\n                }\r\n                return null;\r\n            };\r\n            _self.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n                var items = _buffer.slice(0);\r\n                newLogger = newLogger || logger;\r\n                newConfig = newConfig || {};\r\n                var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n                arrForEach(items, function (payload) {\r\n                    newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n                });\r\n                return newBuffer;\r\n            };\r\n        });\r\n    }\r\n    BaseSendBuffer.prototype.enqueue = function (payload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    BaseSendBuffer.prototype.count = function () {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n        return 0;\r\n    };\r\n    BaseSendBuffer.prototype.size = function () {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n        return 0;\r\n    };\r\n    BaseSendBuffer.prototype.clear = function () {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    BaseSendBuffer.prototype.getItems = function () {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n        return null;\r\n    };\r\n    BaseSendBuffer.prototype.batchPayloads = function (payload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n        return null;\r\n    };\r\n    BaseSendBuffer.prototype.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n        return null;\r\n    };\r\n    return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n    __extends(ArraySendBuffer, _super);\r\n    function ArraySendBuffer(logger, config) {\r\n        var _this = _super.call(this, logger, config) || this;\r\n        dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n            _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n                _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n            };\r\n            _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n                // not supported\r\n            };\r\n        });\r\n        return _this;\r\n    }\r\n    ArraySendBuffer.prototype.markAsSent = function (payload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    ArraySendBuffer.prototype.clearSent = function (payload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\nvar PREVIOUS_KEYS = [\"AI_buffer\", \"AI_sentBuffer\"];\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n    __extends(SessionStorageSendBuffer, _super);\r\n    function SessionStorageSendBuffer(logger, config) {\r\n        var _this = _super.call(this, logger, config) || this;\r\n        var _bufferFullMessageSent = false;\r\n        //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n        var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n        // TODO: add remove buffer override as well\r\n        var _b = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;\r\n        var _maxRetryCnt = config.maxRetryCnt;\r\n        dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n            var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n            var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n            var previousItems = _getPreviousEvents();\r\n            var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT /* @min:%2econcat */](previousItems);\r\n            var buffer = _self._set(bufferItems[_DYN_CONCAT /* @min:%2econcat */](notDeliveredItems));\r\n            // If the buffer has too many items, drop items from the end.\r\n            if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n                buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n            }\r\n            _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n            _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n            _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n                if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n                    // sent internal log only once per page view\r\n                    if (!_bufferFullMessageSent) {\r\n                        _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n                        _bufferFullMessageSent = true;\r\n                    }\r\n                    return;\r\n                }\r\n                payload.cnt = payload.cnt || 0;\r\n                // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n                if (!isNullOrUndefined(_maxRetryCnt)) {\r\n                    if (payload.cnt > _maxRetryCnt) {\r\n                        // TODO: add log here on dropping payloads\r\n                        return;\r\n                    }\r\n                }\r\n                _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._get());\r\n            };\r\n            _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n                _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._get());\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n                _bufferFullMessageSent = false;\r\n            };\r\n            _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self._get())));\r\n                var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n                if (sentElements instanceof Array && payload instanceof Array) {\r\n                    sentElements = sentElements[_DYN_CONCAT /* @min:%2econcat */](payload);\r\n                    if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n                        // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n                        // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n                        _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n                        sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n                    }\r\n                    _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n                }\r\n            };\r\n            _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n                var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n                sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n                _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n            };\r\n            _self.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n                canUseSessionStorage = !!canUseSessionStorage;\r\n                var unsentItems = _self._get().slice(0);\r\n                var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n                newLogger = newLogger || logger;\r\n                newConfig = newConfig || {};\r\n                // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n                _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n                var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n                arrForEach(unsentItems, function (payload) {\r\n                    newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n                });\r\n                if (canUseSessionStorage) {\r\n                    // arr buffer will clear all payloads if markAsSent() is called\r\n                    newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n                }\r\n                return newBuffer;\r\n            };\r\n            function _removePayloadsFromBuffer(payloads, buffer) {\r\n                var remaining = [];\r\n                var payloadStr = [];\r\n                arrForEach(payloads, function (payload) {\r\n                    payloadStr[_DYN_PUSH /* @min:%2epush */](payload.item);\r\n                });\r\n                arrForEach(buffer, function (value) {\r\n                    if (!isFunction(value) && arrIndexOf(payloadStr, value.item) === -1) {\r\n                        remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n                    }\r\n                });\r\n                return remaining;\r\n            }\r\n            function _getBuffer(key) {\r\n                var prefixedKey = key;\r\n                prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n                return _getBufferBase(prefixedKey);\r\n            }\r\n            function _getBufferBase(key) {\r\n                try {\r\n                    var bufferJson = getItem(logger, key);\r\n                    if (bufferJson) {\r\n                        var buffer_1 = getJSON().parse(bufferJson);\r\n                        if (isString(buffer_1)) {\r\n                            // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n                            buffer_1 = getJSON().parse(buffer_1);\r\n                        }\r\n                        if (buffer_1 && isArray(buffer_1)) {\r\n                            return buffer_1;\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + key + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n                return [];\r\n            }\r\n            function _setBuffer(key, buffer) {\r\n                var prefixedKey = key;\r\n                try {\r\n                    prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n                    var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n                    setItem(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                    setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n                    _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n                }\r\n            }\r\n            // this removes buffer with prefix+key\r\n            function _getPreviousEvents() {\r\n                var items = [];\r\n                try {\r\n                    arrForEach(PREVIOUS_KEYS, function (key) {\r\n                        var events = _getItemsFromPreviousKey(key);\r\n                        items = items[_DYN_CONCAT /* @min:%2econcat */](events);\r\n                        // to make sure that we also transfer items from old prefixed + key buffer\r\n                        if (_namePrefix) {\r\n                            var prefixedKey = _namePrefix + \"_\" + key;\r\n                            var prefixEvents = _getItemsFromPreviousKey(prefixedKey);\r\n                            items = items[_DYN_CONCAT /* @min:%2econcat */](prefixEvents);\r\n                        }\r\n                    });\r\n                    return items;\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \"Transfer events from previous buffers: \" + getExceptionName(e) + \". previous Buffer items can not be removed\", { exception: dumpObj(e) });\r\n                }\r\n                return [];\r\n            }\r\n            // transform string[] to IInternalStorageItem[]\r\n            function _getItemsFromPreviousKey(key) {\r\n                try {\r\n                    var items = _getBufferBase(key);\r\n                    var transFormedItems_1 = [];\r\n                    arrForEach(items, function (item) {\r\n                        var internalItem = {\r\n                            item: item,\r\n                            cnt: 0 // previous events will be default to 0 count\r\n                        };\r\n                        transFormedItems_1[_DYN_PUSH /* @min:%2epush */](internalItem);\r\n                    });\r\n                    // remove the session storage if we can add events back\r\n                    utlRemoveSessionStorage(logger, key);\r\n                    return transFormedItems_1;\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return [];\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n    SessionStorageSendBuffer.prototype.enqueue = function (payload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    SessionStorageSendBuffer.prototype.clear = function () {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    SessionStorageSendBuffer.prototype.markAsSent = function (payload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    SessionStorageSendBuffer.prototype.clearSent = function (payload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    SessionStorageSendBuffer.prototype.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n        return null;\r\n    };\r\n    var _a;\r\n    _a = SessionStorageSendBuffer;\r\n    SessionStorageSendBuffer.VERSION = \"_1\";\r\n    SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\" + _a.VERSION;\r\n    SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\" + _a.VERSION;\r\n    // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n    SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n    return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","var _a, _b;\r\nimport { __assign, __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, createOfflineListener, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { ActiveStatus, BaseTelemetryPlugin, SenderPostManager, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, formatErrorMessageXdr, formatErrorMessageXhr, getExceptionName, getIEVersion, isArray, isBeaconsSupported, isFeatureEnabled, isFetchSupported, isNullOrUndefined, mergeEvtNamespace, objExtend, onConfigChange, parseResponse, prependTransports, runTargetUnload } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getInst, isFunction, isNumber, isPromiseLike, isString, isTruthy, mathFloor, mathMax, mathMin, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_ALWAYS_USE_XHR_OVERR4, _DYN_BASE_TYPE, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_COUNT, _DYN_CUSTOM_HEADERS, _DYN_DIAG_LOG, _DYN_DISABLE_SEND_BEACON_7, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SESSION_STORA5, _DYN_ENDPOINT_URL, _DYN_ENQUEUE, _DYN_GET_SENDER_INST, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET6, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar EMPTY_STR = \"\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n    try {\r\n        return xhr.responseText;\r\n    }\r\n    catch (e) {\r\n        // Best effort, as XHR may throw while XDR wont so just ignore\r\n    }\r\n    return null;\r\n}\r\nfunction isOverrideFn(httpXHROverride) {\r\n    return httpXHROverride && httpXHROverride.sendPOST;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n        // Use the default value (handles empty string in the configuration)\r\n        endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n    },\r\n    _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n    _a.maxBatchInterval = 15000,\r\n    _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n    _a.disableTelemetry = cfgDfBoolean(),\r\n    _a[_DYN_ENABLE_SESSION_STORA5 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n    _a.isRetryDisabled = cfgDfBoolean(),\r\n    _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n    _a[_DYN_DISABLE_SEND_BEACON_7 /* @min:disableSendBeaconSplit */] = cfgDfBoolean(true),\r\n    _a.disableXhr = cfgDfBoolean(),\r\n    _a[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n    _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n    _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n    _a.namePrefix = UNDEFINED_VALUE,\r\n    _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n    _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n    _a.convertUndefined = UNDEFINED_VALUE,\r\n    _a.eventsLimitInMem = 10000,\r\n    _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n    _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },\r\n    _a[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:alwaysUseXhrOverride */] = cfgDfBoolean(),\r\n    _a.transports = UNDEFINED_VALUE,\r\n    _a.retryCodes = UNDEFINED_VALUE,\r\n    _a.corsPolicy = UNDEFINED_VALUE,\r\n    _a.maxRetryCnt = { isVal: isNumber, v: 10 },\r\n    _a));\r\nvar CrossOriginResourcePolicyHeader = \"X-Set-Cross-Origin-Resource-Policy\";\r\nfunction _chkSampling(value) {\r\n    return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n    _b[Event.dataType] = EventEnvelopeCreator,\r\n    _b[Trace.dataType] = TraceEnvelopeCreator,\r\n    _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n    _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n    _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n    _b[Metric.dataType] = MetricEnvelopeCreator,\r\n    _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n    _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n    __extends(Sender, _super);\r\n    function Sender() {\r\n        var _this = _super.call(this) || this;\r\n        _this.priority = 1001;\r\n        _this.identifier = BreezeChannelIdentifier;\r\n        // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n        var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n        var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n        var _lastSend; // The time of the last send operation.\r\n        var _paused; // Flag indicating that the sending should be paused\r\n        var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n        var _serializer;\r\n        var _stamp_specific_redirects;\r\n        var _headers;\r\n        var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n        var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n        var _offlineListener;\r\n        var _evtNamespace;\r\n        var _endpointUrl;\r\n        var _orgEndpointUrl;\r\n        var _maxBatchSizeInBytes;\r\n        var _beaconSupported;\r\n        var _beaconOnUnloadSupported;\r\n        var _beaconNormalSupported;\r\n        var _customHeaders;\r\n        var _disableTelemetry;\r\n        var _instrumentationKey;\r\n        var _convertUndefined;\r\n        var _isRetryDisabled;\r\n        var _maxBatchInterval;\r\n        var _sessionStorageUsed;\r\n        var _bufferOverrideUsed;\r\n        var _namePrefix;\r\n        var _enableSendPromise;\r\n        var _alwaysUseCustomSend;\r\n        var _disableXhr;\r\n        var _fetchKeepAlive;\r\n        var _xhrSend;\r\n        var _fallbackSend;\r\n        var _disableBeaconSplit;\r\n        var _sendPostMgr;\r\n        var _retryCodes;\r\n        var _zipPayload;\r\n        dynamicProto(Sender, _this, function (_self, _base) {\r\n            _initDefaults();\r\n            _self.pause = function () {\r\n                _clearScheduledTimer();\r\n                _paused = true;\r\n            };\r\n            _self.resume = function () {\r\n                if (_paused) {\r\n                    _paused = false;\r\n                    _retryAt = null;\r\n                    // flush if we have exceeded the max-size already\r\n                    _checkMaxSize();\r\n                    _setupTimer();\r\n                }\r\n            };\r\n            _self.flush = function (isAsync, callBack, sendReason) {\r\n                if (isAsync === void 0) { isAsync = true; }\r\n                if (!_paused) {\r\n                    // Clear the normal schedule timer as we are going to try and flush ASAP\r\n                    _clearScheduledTimer();\r\n                    try {\r\n                        return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n            };\r\n            _self.onunloadFlush = function () {\r\n                if (!_paused) {\r\n                    if (_beaconSupported || _alwaysUseCustomSend) {\r\n                        try {\r\n                            return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n                        }\r\n                        catch (e) {\r\n                            _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                        }\r\n                    }\r\n                    else {\r\n                        _self.flush(false);\r\n                    }\r\n                }\r\n            };\r\n            _self.addHeader = function (name, value) {\r\n                _headers[name] = value;\r\n            };\r\n            _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n                if (_self.isInitialized()) {\r\n                    _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n                }\r\n                _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, core, extensions, pluginChain);\r\n                var identifier = _self.identifier;\r\n                _serializer = new Serializer(core.logger);\r\n                _consecutiveErrors = 0;\r\n                _retryAt = null;\r\n                _lastSend = 0;\r\n                _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n                _stamp_specific_redirects = 0;\r\n                var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n                _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n                _offlineListener = createOfflineListener(_evtNamespace);\r\n                // This function will be re-called whenever any referenced configuration is changed\r\n                _self._addHook(onConfigChange(config, function (details) {\r\n                    var config = details.cfg;\r\n                    if (config.storagePrefix) {\r\n                        utlSetStoragePrefix(config.storagePrefix);\r\n                    }\r\n                    var ctx = createProcessTelemetryContext(null, config, core);\r\n                    // getExtCfg only finds undefined values from core\r\n                    var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n                    var curExtUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n                    // if it is not inital change (_endpointUrl has value)\r\n                    // if current sender endpoint url is not changed directly\r\n                    // means ExtCfg is not changed directly\r\n                    // then we need to monitor endpoint url changes from core\r\n                    if (_endpointUrl && curExtUrl === _endpointUrl) {\r\n                        var coreUrl = config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n                        // if core endpoint url is changed\r\n                        if (coreUrl && coreUrl !== curExtUrl) {\r\n                            // and endpoint promise changes is handled by this as well\r\n                            senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = coreUrl;\r\n                        }\r\n                    }\r\n                    var csStream = getInst(\"CompressionStream\");\r\n                    // Determine whether to enable payload compression (zipping).\r\n                    _zipPayload = isFeatureEnabled(\"zipPayload\", config, false);\r\n                    if (!isFunction(csStream)) {\r\n                        _zipPayload = false;\r\n                    }\r\n                    var corsPolicy = senderConfig.corsPolicy;\r\n                    if (corsPolicy) {\r\n                        if (corsPolicy === \"same-origin\" || corsPolicy === \"same-site\" || corsPolicy === \"cross-origin\") {\r\n                            _this.addHeader(CrossOriginResourcePolicyHeader, corsPolicy);\r\n                        }\r\n                    }\r\n                    else {\r\n                        delete _headers[CrossOriginResourcePolicyHeader];\r\n                    }\r\n                    if (isPromiseLike(senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n                        // if it is promise, means the endpoint url is from core.endpointurl\r\n                        senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n                    }\r\n                    objDefine(_self, \"_senderConfig\", {\r\n                        g: function () {\r\n                            return senderConfig;\r\n                        }\r\n                    });\r\n                    // Only update the endpoint if the original config !== the current config\r\n                    // This is so any redirect endpointUrl is not overwritten\r\n                    if (_orgEndpointUrl !== senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]) {\r\n                        if (_orgEndpointUrl) {\r\n                            // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n                        }\r\n                        _endpointUrl = _orgEndpointUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n                    }\r\n                    // or is not string\r\n                    if (core.activeStatus() === ActiveStatus.PENDING) {\r\n                        // waiting for core promises to be resolved\r\n                        // NOTE: if active status is set to pending, stop sending, clear timer here\r\n                        _self.pause();\r\n                    }\r\n                    else if (core.activeStatus() === ActiveStatus.ACTIVE) {\r\n                        // core status changed from pending to other status\r\n                        _self.resume();\r\n                    }\r\n                    if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n                        // Removing any previously defined custom headers as they have changed\r\n                        arrForEach(_customHeaders, function (customHeader) {\r\n                            delete _headers[customHeader.header];\r\n                        });\r\n                    }\r\n                    _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n                    _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n                    _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false && isBeaconsSupported();\r\n                    _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false && isBeaconsSupported();\r\n                    _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:%2ealwaysUseXhrOverride */];\r\n                    _disableXhr = !!senderConfig.disableXhr;\r\n                    _retryCodes = senderConfig.retryCodes;\r\n                    var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n                    var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 /* @min:%2eenableSessionStorageBuffer */] &&\r\n                        (!!bufferOverride || utlCanUseSessionStorage());\r\n                    var namePrefix = senderConfig.namePrefix;\r\n                    //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n                    //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n                    var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n                        || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n                        || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n                    if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n                        // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n                        // if namePrefix changes, transfer current buffer to new buffer\r\n                        // else no action needed\r\n                        //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n                        // transfer current buffer to new buffer\r\n                        if (shouldUpdate) {\r\n                            try {\r\n                                _self[_DYN__BUFFER /* @min:%2e_buffer */] = _self[_DYN__BUFFER /* @min:%2e_buffer */].createNew(diagLog, senderConfig, canUseSessionStorage);\r\n                            }\r\n                            catch (e) {\r\n                                _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                            }\r\n                        }\r\n                        _checkMaxSize();\r\n                    }\r\n                    else {\r\n                        _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n                            ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n                    }\r\n                    _namePrefix = namePrefix;\r\n                    _sessionStorageUsed = canUseSessionStorage;\r\n                    _bufferOverrideUsed = bufferOverride;\r\n                    _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true);\r\n                    _disableBeaconSplit = !!senderConfig[_DYN_DISABLE_SEND_BEACON_7 /* @min:%2edisableSendBeaconSplit */];\r\n                    _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n                    _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n                    if (!isPromiseLike(_instrumentationKey) && !_validateInstrumentationKey(_instrumentationKey, config)) {\r\n                        _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n                    }\r\n                    _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n                    if (isString(_endpointUrl) && !isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                        arrForEach(_customHeaders, function (customHeader) {\r\n                            _this.addHeader(customHeader.header, customHeader.value);\r\n                        });\r\n                    }\r\n                    else {\r\n                        _customHeaders = null;\r\n                    }\r\n                    _enableSendPromise = senderConfig.enableSendPromise;\r\n                    var sendPostConfig = _getSendPostMgrConfig();\r\n                    // only init it once\r\n                    if (!_sendPostMgr) {\r\n                        _sendPostMgr = new SenderPostManager();\r\n                        _sendPostMgr[_DYN_INITIALIZE /* @min:%2einitialize */](sendPostConfig, diagLog);\r\n                    }\r\n                    else {\r\n                        _sendPostMgr.SetConfig(sendPostConfig);\r\n                    }\r\n                    var customInterface = senderConfig.httpXHROverride;\r\n                    var httpInterface = null;\r\n                    var syncInterface = null;\r\n                    // User requested transport(s) values > Beacon > Fetch > XHR\r\n                    // Beacon would be filtered out if user has set disableBeaconApi to true at _getSenderInterface\r\n                    var theTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */], senderConfig.transports);\r\n                    httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](theTransports, false);\r\n                    var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();\r\n                    _xhrSend = function (payload, isAsync) {\r\n                        return _doSend(xhrInterface, payload, isAsync);\r\n                    };\r\n                    _fallbackSend = function (payload, isAsync) {\r\n                        return _doSend(xhrInterface, payload, isAsync, false);\r\n                    };\r\n                    httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);\r\n                    _self[_DYN__SENDER /* @min:%2e_sender */] = function (payload, isAsync) {\r\n                        return _doSend(httpInterface, payload, isAsync);\r\n                    };\r\n                    if (_fetchKeepAlive) {\r\n                        // Try and use the fetch with keepalive\r\n                        _syncUnloadSender = _fetchKeepAliveSender;\r\n                    }\r\n                    var syncTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */], senderConfig.unloadTransports);\r\n                    if (!_fetchKeepAlive) {\r\n                        // remove fetch from theTransports\r\n                        syncTransports = syncTransports.filter(function (transport) { return transport !== 2 /* TransportType.Fetch */; });\r\n                    }\r\n                    syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](syncTransports, true);\r\n                    syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);\r\n                    if ((_alwaysUseCustomSend || senderConfig.unloadTransports || !_syncUnloadSender) && syncInterface) {\r\n                        _syncUnloadSender = function (payload, isAsync) {\r\n                            return _doSend(syncInterface, payload, isAsync);\r\n                        };\r\n                    }\r\n                    if (!_syncUnloadSender) {\r\n                        _syncUnloadSender = _xhrSend;\r\n                    }\r\n                    _disableTelemetry = senderConfig.disableTelemetry;\r\n                    _convertUndefined = senderConfig.convertUndefined || UNDEFINED_VALUE;\r\n                    _isRetryDisabled = senderConfig.isRetryDisabled;\r\n                    _maxBatchInterval = senderConfig.maxBatchInterval;\r\n                }));\r\n            };\r\n            _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n                itemCtx = _self._getTelCtx(itemCtx);\r\n                var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n                try {\r\n                    var isValidate = _validate(telemetryItem, diagLogger);\r\n                    if (!isValidate) {\r\n                        return;\r\n                    }\r\n                    var aiEnvelope = _getEnvelope(telemetryItem, diagLogger);\r\n                    if (!aiEnvelope) {\r\n                        return;\r\n                    }\r\n                    // check if the incoming payload is too large, truncate if necessary\r\n                    var payload = _serializer.serialize(aiEnvelope);\r\n                    // flush if we would exceed the max-size limit by adding this item\r\n                    var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n                    _checkMaxSize(payload);\r\n                    var payloadItem = {\r\n                        item: payload,\r\n                        cnt: 0 // inital cnt will always be 0\r\n                    };\r\n                    // enqueue the payload\r\n                    buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payloadItem);\r\n                    // ensure an invocation timeout is set\r\n                    _setupTimer();\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n                // hand off the telemetry item to the next plugin\r\n                _self.processNext(telemetryItem, itemCtx);\r\n            };\r\n            _self.isCompletelyIdle = function () {\r\n                return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT /* @min:%2ecount */]() === 0;\r\n            };\r\n            _self.getOfflineListener = function () {\r\n                return _offlineListener;\r\n            };\r\n            /**\r\n             * xhr state changes\r\n             */\r\n            _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n                // since version 3.2.0, this function is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);\r\n            };\r\n            /**\r\n             * Immediately send buffered data\r\n             * @param async - Indicates if the events should be sent asynchronously\r\n             * @param forcedSender - Indicates the forcedSender, undefined if not passed\r\n             */\r\n            _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n                if (async === void 0) { async = true; }\r\n                var result;\r\n                if (!_paused) {\r\n                    try {\r\n                        var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n                        // Send data only if disableTelemetry is false\r\n                        if (!_disableTelemetry) {\r\n                            if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n                                var payload = buffer.getItems();\r\n                                _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n                                // invoke send\r\n                                if (forcedSender) {\r\n                                    result = forcedSender.call(_self, payload, async);\r\n                                }\r\n                                else {\r\n                                    result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n                                }\r\n                            }\r\n                            // update lastSend time to enable throttling\r\n                            _lastSend = +new Date;\r\n                        }\r\n                        else {\r\n                            buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n                        }\r\n                        _clearScheduledTimer();\r\n                    }\r\n                    catch (e) {\r\n                        /* Ignore this error for IE under v10 */\r\n                        var ieVer = getIEVersion();\r\n                        if (!ieVer || ieVer > 9) {\r\n                            _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                        }\r\n                        // potential place to call countException q3\r\n                    }\r\n                }\r\n                return result;\r\n            };\r\n            _self.getOfflineSupport = function () {\r\n                return {\r\n                    getUrl: function () {\r\n                        return _endpointUrl;\r\n                    },\r\n                    createPayload: _createPayload,\r\n                    serialize: _serialize,\r\n                    batch: _batch,\r\n                    shouldProcess: function (evt) {\r\n                        return !!_validate(evt);\r\n                    }\r\n                };\r\n            };\r\n            _self._doTeardown = function (unloadCtx, unloadState) {\r\n                _self.onunloadFlush();\r\n                runTargetUnload(_offlineListener, false);\r\n                _initDefaults();\r\n            };\r\n            /**\r\n             * error handler\r\n             */\r\n            _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n                // since version 3.1.3, string[] is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _onError(payload, message, event);\r\n            };\r\n            /**\r\n             * partial success handler\r\n             */\r\n            _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n                // since version 3.1.3, string[] is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _onPartialSuccess(payload, results);\r\n            };\r\n            /**\r\n             * success handler\r\n             */\r\n            _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n                // since version 3.1.3, string[] is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _onSuccess(payload, countOfItemsInPayload);\r\n                //_self._buffer && _self._buffer.clearSent(payload);\r\n            };\r\n            /**\r\n             * xdr state changes\r\n             */\r\n            _self._xdrOnLoad = function (xdr, payload) {\r\n                // since version 3.1.3, string[] is no-op\r\n                if (_isStringArr(payload)) {\r\n                    return;\r\n                }\r\n                return _xdrOnLoad(xdr, payload);\r\n            };\r\n            // function _getStatsBeat() {\r\n            //     let statsBeatConfig: IStatsBeatState = {\r\n            //         cKey: _self._senderConfig.instrumentationKey,\r\n            //         endpoint: _endpointUrl,\r\n            //         sdkVer: EnvelopeCreator.Version,\r\n            //         type: eStatsType.SDK\r\n            //     };\r\n            //     let core = _self.core;\r\n            //     // During page unload the core may have been cleared and some async events may not have been sent yet\r\n            //     // resulting in the core being null. In this case we don't want to create a statsbeat instance\r\n            //     return core ? core.getStatsBeat(statsBeatConfig) : null;\r\n            // }\r\n            function _xdrOnLoad(xdr, payload) {\r\n                var responseText = _getResponseText(xdr);\r\n                if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n                    _consecutiveErrors = 0;\r\n                    _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n                }\r\n                else {\r\n                    var results = parseResponse(responseText);\r\n                    if (results && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n                        && !_isRetryDisabled) {\r\n                        _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n                    }\r\n                    else {\r\n                        _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, formatErrorMessageXdr(xdr));\r\n                    }\r\n                }\r\n            }\r\n            function _getSendPostMgrConfig() {\r\n                try {\r\n                    var onCompleteFuncs = {\r\n                        xdrOnComplete: function (xdr, oncomplete, payload) {\r\n                            var payloadArr = _getPayloadArr(payload);\r\n                            if (!payloadArr) {\r\n                                return;\r\n                            }\r\n                            //const responseText = _getResponseText(xdr);\r\n                            // let statsbeat = _getStatsBeat();\r\n                            // if (statsbeat) {\r\n                            //     if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n                            //         _consecutiveErrors = 0;\r\n                            //         statsbeat.count(200, payload, _endpointUrl);\r\n                            //     } else {\r\n                            //         const results = parseResponse(responseText);\r\n                            //         if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n                            //             && !_isRetryDisabled) {\r\n                            //             statsbeat.count(206, payload, _endpointUrl);\r\n                            //         } else {\r\n                            //             statsbeat.count(499, payload, _endpointUrl);\r\n                            //         }\r\n                            //     }\r\n                            // }\r\n                            return _xdrOnLoad(xdr, payloadArr);\r\n                        },\r\n                        fetchOnComplete: function (response, onComplete, resValue, payload) {\r\n                            var payloadArr = _getPayloadArr(payload);\r\n                            if (!payloadArr) {\r\n                                return;\r\n                            }\r\n                            // let statsbeat = _getStatsBeat();\r\n                            // if (statsbeat) {\r\n                            //     statsbeat.count(response.status, payload, _endpointUrl);\r\n                            // }\r\n                            return _checkResponsStatus(response.status, payloadArr, response.url, payloadArr[_DYN_LENGTH /* @min:%2elength */], response.statusText, resValue || \"\");\r\n                        },\r\n                        xhrOnComplete: function (request, oncomplete, payload) {\r\n                            var payloadArr = _getPayloadArr(payload);\r\n                            if (!payloadArr) {\r\n                                return;\r\n                            }\r\n                            // let statsbeat = _getStatsBeat();\r\n                            // if (statsbeat && request.readyState === 4) {\r\n                            //     statsbeat.count(request.status, payload, _endpointUrl);\r\n                            // }\r\n                            return _xhrReadyStateChange(request, payloadArr, payloadArr[_DYN_LENGTH /* @min:%2elength */]);\r\n                        },\r\n                        beaconOnRetry: function (data, onComplete, canSend) {\r\n                            // let statsbeat = _getStatsBeat();\r\n                            // if (statsbeat) {\r\n                            //     statsbeat.count(499, data, _endpointUrl);\r\n                            // }\r\n                            return _onBeaconRetry(data, onComplete, canSend);\r\n                        }\r\n                    };\r\n                    var config = {\r\n                        enableSendPromise: _enableSendPromise,\r\n                        isOneDs: false,\r\n                        disableCredentials: false,\r\n                        disableXhr: _disableXhr,\r\n                        disableBeacon: !_beaconNormalSupported,\r\n                        disableBeaconSync: !_beaconOnUnloadSupported,\r\n                        senderOnCompleteCallBack: onCompleteFuncs\r\n                    };\r\n                    return config;\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return null;\r\n            }\r\n            /**\r\n             * xhr state changes\r\n             */\r\n            function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {\r\n                if (xhr.readyState === 4) {\r\n                    _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n                }\r\n            }\r\n            /**\r\n             * error handler\r\n             */\r\n            function _onError(payload, message, event) {\r\n                _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n                _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n            }\r\n            /**\r\n             * partial success handler\r\n             */\r\n            function _onPartialSuccess(payload, results) {\r\n                var failed = [];\r\n                var retry = [];\r\n                // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n                var errors = results.errors.reverse();\r\n                for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n                    var error = errors_1[_i];\r\n                    var extracted = payload.splice(error.index, 1)[0];\r\n                    if (_isRetriable(error.statusCode)) {\r\n                        retry[_DYN_PUSH /* @min:%2epush */](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[_DYN_PUSH /* @min:%2epush */](extracted);\r\n                    }\r\n                }\r\n                if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n                }\r\n                if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n                }\r\n                if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    _resendPayload(retry);\r\n                    _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n                        \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n                        \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n                }\r\n            }\r\n            /**\r\n             * success handler\r\n             */\r\n            function _onSuccess(payload, countOfItemsInPayload) {\r\n                _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n            }\r\n            function _getPayloadArr(payload) {\r\n                try {\r\n                    if (payload) {\r\n                        var internalPayload = payload;\r\n                        var arr = internalPayload.oriPayload;\r\n                        if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n                            return arr;\r\n                        }\r\n                        return null;\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return null;\r\n            }\r\n            function _validate(telemetryItem, diagLogger) {\r\n                if (_disableTelemetry) {\r\n                    // Do not send/save data\r\n                    return false;\r\n                }\r\n                // validate input\r\n                if (!telemetryItem) {\r\n                    diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n                    return false;\r\n                }\r\n                // validate event\r\n                if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n                    diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n                    return false;\r\n                }\r\n                if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n                    // Default\r\n                    telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n                }\r\n                // ensure a sender was constructed\r\n                if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n                    diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n                    return false;\r\n                }\r\n                // check if this item should be sampled in, else add sampleRate tag\r\n                if (!_isSampledIn(telemetryItem)) {\r\n                    // Item is sampled out, do not send it\r\n                    diagLogger && _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n                    return false;\r\n                }\r\n                else {\r\n                    telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n                }\r\n                return true;\r\n            }\r\n            function _getEnvelope(telemetryItem, diagLogger) {\r\n                // construct an envelope that Application Insights endpoint can understand\r\n                // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n                var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n                var aiEnvelope = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n                if (!aiEnvelope) {\r\n                    _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n                    return;\r\n                }\r\n                var doNotSendItem = false;\r\n                // this is for running in legacy mode, where customer may already have a custom initializer present\r\n                if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n                    arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n                        try {\r\n                            if (callBack && callBack(aiEnvelope) === false) {\r\n                                doNotSendItem = true;\r\n                                _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n                            }\r\n                        }\r\n                        catch (e) {\r\n                            // log error but dont stop executing rest of the telemetry initializers\r\n                            // doNotSendItem = true;\r\n                            _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n                        }\r\n                    });\r\n                    delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n                }\r\n                if (doNotSendItem) {\r\n                    return; // do not send, no need to execute next plugin\r\n                }\r\n                return aiEnvelope;\r\n            }\r\n            function _serialize(item) {\r\n                var rlt = EMPTY_STR;\r\n                var diagLogger = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n                try {\r\n                    var valid = _validate(item, diagLogger);\r\n                    var envelope = null;\r\n                    if (valid) {\r\n                        envelope = _getEnvelope(item, diagLogger);\r\n                    }\r\n                    if (envelope) {\r\n                        rlt = _serializer.serialize(envelope);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return rlt;\r\n            }\r\n            function _batch(arr) {\r\n                var rlt = EMPTY_STR;\r\n                if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n                    rlt = \"[\" + arr.join(\",\") + \"]\";\r\n                }\r\n                return rlt;\r\n            }\r\n            function _createPayload(data) {\r\n                var headers = _getHeaders();\r\n                return {\r\n                    urlString: _endpointUrl,\r\n                    data: data,\r\n                    headers: headers\r\n                };\r\n            }\r\n            function _isSampledIn(envelope) {\r\n                return _self._sample.isSampledIn(envelope);\r\n            }\r\n            function _getOnComplete(payload, status, headers, response) {\r\n                // ***********************************************************************************************\r\n                //TODO: handle other status codes\r\n                if (status === 200 && payload) {\r\n                    _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n                }\r\n                else {\r\n                    response && _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response);\r\n                }\r\n            }\r\n            function _doSend(sendInterface, payload, isAsync, markAsSent) {\r\n                if (markAsSent === void 0) { markAsSent = true; }\r\n                var onComplete = function (status, headers, response) {\r\n                    // let statsbeat = _getStatsBeat();\r\n                    // if (statsbeat) {\r\n                    //     statsbeat.count(status, payloadData, _endpointUrl);\r\n                    // }\r\n                    return _getOnComplete(payload, status, headers, response);\r\n                };\r\n                var payloadData = _getPayload(payload);\r\n                // if (payloadData) {\r\n                //     payloadData.statsBeatData = {startTime: dateNow()};\r\n                // }\r\n                var sendPostFunc = sendInterface && sendInterface.sendPOST;\r\n                if (sendPostFunc && payloadData) {\r\n                    // ***********************************************************************************************\r\n                    // mark payload as sent at the beginning of calling each send function\r\n                    if (markAsSent) {\r\n                        _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n                    }\r\n                    _sendPostMgr.preparePayload(function (processedPayload) {\r\n                        return sendPostFunc(processedPayload, onComplete, !isAsync);\r\n                    }, _zipPayload, payloadData, !isAsync);\r\n                }\r\n                return null;\r\n            }\r\n            function _getPayload(payload) {\r\n                if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                    var batch = _self[_DYN__BUFFER /* @min:%2e_buffer */].batchPayloads(payload);\r\n                    var headers = _getHeaders();\r\n                    var payloadData = {\r\n                        data: batch,\r\n                        urlString: _endpointUrl,\r\n                        headers: headers,\r\n                        disableXhrSync: _disableXhr,\r\n                        disableFetchKeepAlive: !_fetchKeepAlive,\r\n                        oriPayload: payload\r\n                    };\r\n                    return payloadData;\r\n                }\r\n                return null;\r\n            }\r\n            function _getHeaders() {\r\n                try {\r\n                    var headers = _headers || {};\r\n                    if (isInternalApplicationInsightsEndpoint(_endpointUrl)) {\r\n                        headers[RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */]] = RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */];\r\n                    }\r\n                    return headers;\r\n                }\r\n                catch (e) {\r\n                    // eslint-disable-next-line no-empty\r\n                }\r\n                return null;\r\n            }\r\n            function _checkMaxSize(incomingPayload) {\r\n                var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n                if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n                    if (!_offlineListener || _offlineListener.isOnline()) { // only trigger send when currently online\r\n                        _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n                    }\r\n                    return true;\r\n                }\r\n                return false;\r\n            }\r\n            function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n                var response = null;\r\n                if (!_self._appId) {\r\n                    response = parseResponse(res);\r\n                    if (response && response.appId) {\r\n                        _self._appId = response.appId;\r\n                    }\r\n                }\r\n                if ((status < 200 || status >= 300) && status !== 0) {\r\n                    // Update End Point url if permanent redirect or moved permanently\r\n                    // Updates the end point url before retry\r\n                    if (status === 301 || status === 307 || status === 308) {\r\n                        if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n                            _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n                            return;\r\n                        }\r\n                    }\r\n                    if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n                        // Note: Don't check for status == 0, since adblock gives this code\r\n                        if (!_isRetryDisabled) {\r\n                            var offlineBackOffMultiplier = 10; // arbritrary number\r\n                            _resendPayload(payload, offlineBackOffMultiplier);\r\n                            _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n                        }\r\n                        return;\r\n                    }\r\n                    if (!_isRetryDisabled && _isRetriable(status)) {\r\n                        _resendPayload(payload);\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n                            \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n                    }\r\n                    else {\r\n                        _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n                    }\r\n                }\r\n                else {\r\n                    // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n                    // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n                    _checkAndUpdateEndPointUrl(responseUrl);\r\n                    if (status === 206) {\r\n                        if (!response) {\r\n                            response = parseResponse(res);\r\n                        }\r\n                        if (response && !_isRetryDisabled) {\r\n                            _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n                        }\r\n                        else {\r\n                            _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n                        }\r\n                    }\r\n                    else {\r\n                        _consecutiveErrors = 0;\r\n                        _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n                    }\r\n                }\r\n            }\r\n            function _checkAndUpdateEndPointUrl(responseUrl) {\r\n                // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n                if (_stamp_specific_redirects >= 10) {\r\n                    //  _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n                    //  _stamp_specific_redirects = 0;\r\n                    return false;\r\n                }\r\n                if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n                    if (responseUrl !== _endpointUrl) {\r\n                        _endpointUrl = responseUrl;\r\n                        ++_stamp_specific_redirects;\r\n                        return true;\r\n                    }\r\n                }\r\n                return false;\r\n            }\r\n            function _doUnloadSend(payload, isAsync) {\r\n                if (_syncUnloadSender) {\r\n                    // We are unloading so always call the sender with sync set to false\r\n                    _syncUnloadSender(payload, false);\r\n                }\r\n                else {\r\n                    // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n                    var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([3 /* TransportType.Beacon */], true);\r\n                    return _doSend(beaconInst, payload, isAsync);\r\n                }\r\n            }\r\n            function _onBeaconRetry(payload, onComplete, canSend) {\r\n                var internalPayload = payload;\r\n                var data = internalPayload && internalPayload.oriPayload;\r\n                if (!_disableBeaconSplit) {\r\n                    // Failed to send entire payload so try and split data and try to send as much events as possible\r\n                    var droppedPayload = [];\r\n                    for (var lp = 0; lp < data[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n                        var thePayload = data[lp];\r\n                        var arr = [thePayload];\r\n                        var item = _getPayload(arr);\r\n                        if (!canSend(item, onComplete)) {\r\n                            // Can't send anymore, so split the batch and drop the rest\r\n                            droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n                        }\r\n                        else {\r\n                            _self._onSuccess(arr, arr[_DYN_LENGTH /* @min:%2elength */]);\r\n                        }\r\n                    }\r\n                    if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n                        _fallbackSend && _fallbackSend(droppedPayload, true);\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n                    }\r\n                }\r\n                else {\r\n                    _fallbackSend && _fallbackSend(data, true);\r\n                    _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n                }\r\n            }\r\n            function _isStringArr(arr) {\r\n                try {\r\n                    if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n                        return (isString(arr[0]));\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    //TODO: log, sender use IInternalStorageItem instead of string since 3.1.3\r\n                }\r\n                return null;\r\n            }\r\n            function _fetchKeepAliveSender(payload, isAsync) {\r\n                var transport = null;\r\n                if (isArray(payload)) {\r\n                    var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n                    for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n                        payloadSize += payload[lp].item[_DYN_LENGTH /* @min:%2elength */];\r\n                    }\r\n                    var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();\r\n                    if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n                        transport = 2 /* TransportType.Fetch */;\r\n                    }\r\n                    else if (isBeaconsSupported()) {\r\n                        // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n                        transport = 3 /* TransportType.Beacon */;\r\n                    }\r\n                    else {\r\n                        // Payload is going to be too big so just try and send via XHR\r\n                        transport = 1 /* TransportType.Xhr */;\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n                    }\r\n                    var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([transport], true);\r\n                    return _doSend(inst, payload, isAsync);\r\n                }\r\n                return null;\r\n            }\r\n            /**\r\n             * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n             * @param payload\r\n             */\r\n            function _resendPayload(payload, linearFactor) {\r\n                if (linearFactor === void 0) { linearFactor = 1; }\r\n                if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n                    return;\r\n                }\r\n                var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n                buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n                _consecutiveErrors++;\r\n                for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n                    var item = payload_1[_i];\r\n                    item.cnt = item.cnt || 0; // to make sure we have cnt for each payload\r\n                    item.cnt++; // when resend, increase cnt\r\n                    buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n                }\r\n                // setup timer\r\n                _setRetryTime(linearFactor);\r\n                _setupTimer();\r\n            }\r\n            /**\r\n             * Calculates the time to wait before retrying in case of an error based on\r\n             * http://en.wikipedia.org/wiki/Exponential_backoff\r\n             */\r\n            function _setRetryTime(linearFactor) {\r\n                var SlotDelayInSeconds = 10;\r\n                var delayInSeconds;\r\n                if (_consecutiveErrors <= 1) {\r\n                    delayInSeconds = SlotDelayInSeconds;\r\n                }\r\n                else {\r\n                    var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n                    // tslint:disable-next-line:insecure-random\r\n                    var backOffDelay = mathFloor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n                    backOffDelay = linearFactor * backOffDelay;\r\n                    delayInSeconds = mathMax(mathMin(backOffDelay, 3600), SlotDelayInSeconds);\r\n                }\r\n                // TODO: Log the backoff time like the C# version does.\r\n                var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n                // TODO: Log the retry at time like the C# version does.\r\n                _retryAt = retryAfterTimeSpan;\r\n            }\r\n            /**\r\n             * Sets up the timer which triggers actually sending the data.\r\n             */\r\n            function _setupTimer() {\r\n                if (!_timeoutHandle && !_paused) {\r\n                    var retryInterval = _retryAt ? mathMax(0, _retryAt - dateNow()) : 0;\r\n                    var timerValue = mathMax(_maxBatchInterval, retryInterval);\r\n                    _timeoutHandle = scheduleTimeout(function () {\r\n                        _timeoutHandle = null;\r\n                        _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n                    }, timerValue);\r\n                }\r\n            }\r\n            function _clearScheduledTimer() {\r\n                _timeoutHandle && _timeoutHandle.cancel();\r\n                _timeoutHandle = null;\r\n                _retryAt = null;\r\n            }\r\n            /**\r\n             * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n             * @param statusCode\r\n             */\r\n            function _isRetriable(statusCode) {\r\n                // retryCodes = [] means should not retry\r\n                if (!isNullOrUndefined(_retryCodes)) {\r\n                    return _retryCodes[_DYN_LENGTH /* @min:%2elength */] && _retryCodes.indexOf(statusCode) > -1;\r\n                }\r\n                return statusCode === 401 // Unauthorized\r\n                    // Removing as private links can return a 403 which causes excessive retries and session storage usage\r\n                    // || statusCode === 403 // Forbidden\r\n                    || statusCode === 408 // Timeout\r\n                    || statusCode === 429 // Too many requests.\r\n                    || statusCode === 500 // Internal server error.\r\n                    || statusCode === 502 // Bad Gateway.\r\n                    || statusCode === 503 // Service unavailable.\r\n                    || statusCode === 504; // Gateway timeout.\r\n            }\r\n            // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n            function _getNotifyMgr() {\r\n                var func = \"getNotifyMgr\";\r\n                var result;\r\n                var core = _self.core;\r\n                if (core) {\r\n                    // During page unload the core may have been cleared and some async events may not have been sent yet\r\n                    // resulting in the core being null. In this case we don't want to create a statsbeat instance\r\n                    if (core[func]) {\r\n                        result = core[func]();\r\n                    }\r\n                    else {\r\n                        // using _self.core['_notificationManager'] for backward compatibility\r\n                        result = core[\"_notificationManager\"];\r\n                    }\r\n                }\r\n                return result;\r\n            }\r\n            function _notifySendRequest(sendRequest, isAsync) {\r\n                var manager = _getNotifyMgr();\r\n                if (manager && manager.eventsSendRequest) {\r\n                    try {\r\n                        manager.eventsSendRequest(sendRequest, isAsync);\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n            }\r\n            /**\r\n             * Validate UUID Format\r\n             * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n             */\r\n            function _validateInstrumentationKey(instrumentationKey, config) {\r\n                var disableValidation = config.disableInstrumentationKeyValidation;\r\n                var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n                if (disableIKeyValidationFlag) {\r\n                    return true;\r\n                }\r\n                var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n                var regexp = new RegExp(UUID_Regex);\r\n                return regexp.test(instrumentationKey);\r\n            }\r\n            function _initDefaults() {\r\n                _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n                _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n                _self._appId = null;\r\n                _self._sample = null;\r\n                _headers = {};\r\n                _offlineListener = null;\r\n                _consecutiveErrors = 0;\r\n                _retryAt = null;\r\n                _lastSend = null;\r\n                _paused = false;\r\n                _timeoutHandle = null;\r\n                _serializer = null;\r\n                _stamp_specific_redirects = 0;\r\n                _syncFetchPayload = 0;\r\n                _syncUnloadSender = null;\r\n                _evtNamespace = null;\r\n                _endpointUrl = null;\r\n                _orgEndpointUrl = null;\r\n                _maxBatchSizeInBytes = 0;\r\n                _beaconSupported = false;\r\n                _customHeaders = null;\r\n                _disableTelemetry = false;\r\n                _instrumentationKey = null;\r\n                _convertUndefined = UNDEFINED_VALUE;\r\n                _isRetryDisabled = false;\r\n                _sessionStorageUsed = null;\r\n                _namePrefix = UNDEFINED_VALUE;\r\n                _disableXhr = false;\r\n                _fetchKeepAlive = false;\r\n                _disableBeaconSplit = false;\r\n                _xhrSend = null;\r\n                _fallbackSend = null;\r\n                _sendPostMgr = null;\r\n                objDefine(_self, \"_senderConfig\", {\r\n                    g: function () {\r\n                        return objExtend({}, defaultAppInsightsChannelConfig);\r\n                    }\r\n                });\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n    Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n        var envelope;\r\n        if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n            envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n        }\r\n        else {\r\n            envelope = orig;\r\n        }\r\n        var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n        return creator(logger, envelope, convertUndefined);\r\n    };\r\n    /**\r\n     * Pause the sending (transmission) of events, this will cause all events to be batched only until the maximum limits are\r\n     * hit at which point new events are dropped. Will also cause events to NOT be sent during page unload, so if Session storage\r\n     * is disabled events will be lost.\r\n     * SessionStorage Limit is 2000 events, In-Memory (Array) Storage is 10,000 events (can be configured via the eventsLimitInMem).\r\n     */\r\n    Sender.prototype.pause = function () {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * Resume the sending (transmission) of events, this will restart the timer and any batched events will be sent using the normal\r\n     * send interval.\r\n     */\r\n    Sender.prototype.resume = function () {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * Flush to send data immediately; channel should default to sending data asynchronously. If executing asynchronously (the default) and\r\n     * you DO NOT pass a callback function then a [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n     * will be returned which will resolve once the flush is complete. The actual implementation of the `IPromise`\r\n     * will be a native Promise (if supported) or the default as supplied by [ts-async library](https://github.com/nevware21/ts-async)\r\n     * @param async - send data asynchronously when true\r\n     * @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.\r\n     * If the caller doesn't return true the caller should assume that it may never be called.\r\n     * @param sendReason - specify the reason that you are calling \"flush\" defaults to ManualFlush (1) if not specified\r\n     * @returns - If a callback is provided `true` to indicate that callback will be called after the flush is complete otherwise the caller\r\n     * should assume that any provided callback will never be called, Nothing or if occurring asynchronously a\r\n     * [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) which will be resolved once the unload is complete,\r\n     * the [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) will only be returned when no callback is provided\r\n     * and async is true.\r\n     */\r\n    Sender.prototype.flush = function (async, callBack) {\r\n        if (async === void 0) { async = true; }\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * Flush the batched events synchronously (if possible -- based on configuration).\r\n     * Will not flush if the Send has been paused.\r\n     */\r\n    Sender.prototype.onunloadFlush = function () {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    Sender.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    Sender.prototype.processTelemetry = function (telemetryItem, itemCtx) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * xhr state changes\r\n     * @deprecated\r\n     * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n     */\r\n    Sender.prototype._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n        // TODO: no-op\r\n        // add note to users, this will be removed\r\n    };\r\n    /**\r\n     * Trigger the immediate send of buffered data; If executing asynchronously (the default) this may (not required) return\r\n     * an [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) that will resolve once the\r\n     * send is complete. The actual implementation of the `IPromise` will be a native Promise (if supported) or the default\r\n     * as supplied by [ts-async library](https://github.com/nevware21/ts-async)\r\n     * @param async - Indicates if the events should be sent asynchronously\r\n     * @param forcedSender - Indicates the forcedSender, undefined if not passed\r\n     * @returns - Nothing or optionally, if occurring asynchronously a [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n     * which will be resolved (or reject) once the send is complete, the [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n     * should only be returned when async is true.\r\n     */\r\n    Sender.prototype.triggerSend = function (async, forcedSender, sendReason) {\r\n        if (async === void 0) { async = true; }\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * error handler\r\n     * @internal\r\n     * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n     */\r\n    Sender.prototype._onError = function (payload, message, event) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * partial success handler\r\n     * @internal\r\n     * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n     */\r\n    Sender.prototype._onPartialSuccess = function (payload, results) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * success handler\r\n     * @internal\r\n     * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n     */\r\n    Sender.prototype._onSuccess = function (payload, countOfItemsInPayload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * xdr state changes\r\n     * @deprecated\r\n     * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n     */\r\n    Sender.prototype._xdrOnLoad = function (xdr, payload) {\r\n        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * Add header to request\r\n     * @param name - Header name.\r\n     * @param value - Header value.\r\n     */\r\n    Sender.prototype.addHeader = function (name, value) {\r\n        // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n    };\r\n    /**\r\n     * Check if there are no active requests being sent.\r\n     * @returns True if idle, false otherwise.\r\n     */\r\n    Sender.prototype.isCompletelyIdle = function () {\r\n        // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n        return false;\r\n    };\r\n    /**\r\n     * Get Offline Serializer support\r\n     * @returns internal Offline Serializer object\r\n     */\r\n    Sender.prototype.getOfflineSupport = function () {\r\n        // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n        return null;\r\n    };\r\n    /**\r\n     * Get Offline listener\r\n     * @returns offlineListener\r\n     * @since 3.3.4\r\n     */\r\n    Sender.prototype.getOfflineListener = function () {\r\n        // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n        return null;\r\n    };\r\n    return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","import dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n    function Serializer(logger) {\r\n        dynamicProto(Serializer, this, function (_self) {\r\n            /**\r\n             * Serializes the current object to a JSON string.\r\n             */\r\n            _self.serialize = function (input) {\r\n                var output = _serializeObject(input, \"root\");\r\n                try {\r\n                    return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n                }\r\n                catch (e) {\r\n                    // if serialization fails return an empty string\r\n                    _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n                }\r\n            };\r\n            function _serializeObject(source, name) {\r\n                var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n                var output = {};\r\n                if (!source) {\r\n                    _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n                    return output;\r\n                }\r\n                if (source[circularReferenceCheck]) {\r\n                    _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n                    return output;\r\n                }\r\n                if (!source.aiDataContract) {\r\n                    // special case for measurements/properties/tags\r\n                    if (name === \"measurements\") {\r\n                        output = _serializeStringMap(source, \"number\", name);\r\n                    }\r\n                    else if (name === \"properties\") {\r\n                        output = _serializeStringMap(source, \"string\", name);\r\n                    }\r\n                    else if (name === \"tags\") {\r\n                        output = _serializeStringMap(source, \"string\", name);\r\n                    }\r\n                    else if (isArray(source)) {\r\n                        output = _serializeArray(source, name);\r\n                    }\r\n                    else {\r\n                        _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.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()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n                            output = source;\r\n                        }\r\n                        catch (e) {\r\n                            // if serialization fails return an empty string\r\n                            _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n                        }\r\n                    }\r\n                    return output;\r\n                }\r\n                source[circularReferenceCheck] = true;\r\n                objForEachKey(source.aiDataContract, function (field, contract) {\r\n                    var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n                    var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n                    var isArray = contract & 2 /* FieldType.Array */;\r\n                    var isPresent = source[field] !== undefined;\r\n                    var isObj = isObject(source[field]) && source[field] !== null;\r\n                    if (isRequired && !isPresent && !isArray) {\r\n                        _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n                        // If not in debug mode, continue and hope the error is permissible\r\n                    }\r\n                    else if (!isHidden) { // Don't serialize hidden fields\r\n                        var value = void 0;\r\n                        if (isObj) {\r\n                            if (isArray) {\r\n                                // special case; recurse on each object in the source array\r\n                                value = _serializeArray(source[field], field);\r\n                            }\r\n                            else {\r\n                                // recurse on the source object in this field\r\n                                value = _serializeObject(source[field], field);\r\n                            }\r\n                        }\r\n                        else {\r\n                            // assign the source field to the output even if undefined or required\r\n                            value = source[field];\r\n                        }\r\n                        // only emit this field if the value is defined\r\n                        if (value !== undefined) {\r\n                            output[field] = value;\r\n                        }\r\n                    }\r\n                });\r\n                delete source[circularReferenceCheck];\r\n                return output;\r\n            }\r\n            function _serializeArray(sources, name) {\r\n                var output;\r\n                if (!!sources) {\r\n                    if (!isArray(sources)) {\r\n                        _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.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[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n                            var source = sources[i];\r\n                            var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n                            output[_DYN_PUSH /* @min:%2epush */](item);\r\n                        }\r\n                    }\r\n                }\r\n                return output;\r\n            }\r\n            function _serializeStringMap(map, expectedType, name) {\r\n                var output;\r\n                if (map) {\r\n                    output = {};\r\n                    objForEachKey(map, function (field, value) {\r\n                        if (expectedType === \"string\") {\r\n                            if (value === undefined) {\r\n                                output[field] = \"undefined\";\r\n                            }\r\n                            else if (value === null) {\r\n                                output[field] = \"null\";\r\n                            }\r\n                            else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n                                output[field] = \"invalid field: toString() is not defined.\";\r\n                            }\r\n                            else {\r\n                                output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\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                                output[field] = num;\r\n                            }\r\n                        }\r\n                        else {\r\n                            output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n                            _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n                        }\r\n                    });\r\n                }\r\n                return output;\r\n            }\r\n        });\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        // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n        return null;\r\n    };\r\n    return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_CONCAT, _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n    function HashCodeScoreGenerator() {\r\n    }\r\n    HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n        var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n        return score * 100;\r\n    };\r\n    HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n        if (input === \"\") {\r\n            return 0;\r\n        }\r\n        while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n            input = input[_DYN_CONCAT /* @min:%2econcat */](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[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n            hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n            // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n            // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n            hash = hash & hash;\r\n        }\r\n        return Math.abs(hash);\r\n    };\r\n    // We're using 32 bit math, hence max value is (2^31 - 1)\r\n    HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n    return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n    function SamplingScoreGenerator() {\r\n        var _self = this;\r\n        var hashCodeGenerator = new HashCodeScoreGenerator();\r\n        var keys = new ContextTagKeys();\r\n        _self.getSamplingScore = function (item) {\r\n            var score = 0;\r\n            if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n                score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n            }\r\n            else if (item.ext && item.ext.user && item.ext.user.id) {\r\n                score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n            }\r\n            else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n                score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n            }\r\n            else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n                score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n            }\r\n            else {\r\n                // tslint:disable-next-line:insecure-random\r\n                score = (Math.random() * 100);\r\n            }\r\n            return score;\r\n        };\r\n    }\r\n    return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n    function Sample(sampleRate, logger) {\r\n        // We're using 32 bit math, hence max value is (2^31 - 1)\r\n        this.INT_MAX_VALUE = 2147483647;\r\n        var _logger = logger || safeGetLogger(null);\r\n        if (sampleRate > 100 || sampleRate < 0) {\r\n            _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n            sampleRate = 100;\r\n        }\r\n        this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = 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[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 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[_DYN_DATA_TYPE /* @min:%2edataType */]) {\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"]}