{"version":3,"sources":["../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTEventProperties.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTClockSkewManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/DataModels.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTSerializer.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTRetryPolicy.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTRecordBatcher.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTTransmissionManagerCore.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/Enums.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/bond_const.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.utils.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/Version.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTHttpManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTSemanticContext.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTLogger.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTAutoCollection.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/Utils.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTLogManagerSettings.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.primitives.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/Enums.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTLogManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTStatsManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTKillSwitch.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.encoding.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AriaSDK.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTTransmissionManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTQueueManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTNotificationManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.floatutils.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.io.js"],"names":["Object","defineProperty","exports","value","Utils","__webpack_require__","Enums_1","AWTEventProperties","name","this","_event","properties","setName","prototype","getName","setType","type","getType","setTimestamp","timestampInEpochMillis","timestamp","getTimestamp","setEventPriority","priority","getEventPriority","setProperty","AWTPropertyType","Unspecified","property","pii","AWTPiiKind","NotSet","cc","AWTCustomerContentKind","sanitizeProperty","setPropertyWithPii","setPropertyWithCustomerContent","customerContent","getPropertyMap","getEvent","default","AWTClockSkewManager","clockSkewRefreshDurationInMins","_reset","allowRequestSending","_isFirstRequest","_clockSkewSet","_allowRequestSending","shouldAddClockSkewHeaders","_shouldAddClockSkewHeaders","getClockSkewHeaderValue","_clockSkewHeaderValue","setClockSkew","timeDeltaInMillis","_this","setTimeout","AWT_REAL_TIME","AWT_NEAR_REAL_TIME","AWT_BEST_EFFORT","Bond","AWTNotificationManager_1","AWTSerializer","getPayloadBlob","requestDictionary","tokenCount","remainingRequest","requestFull","stream","IO","MemoryStream","writer","CompactBinaryProtocolWriter","token","_WriteFieldBegin","_BondDataType","_BT_MAP","_WriteMapContainerBegin","_BT_STRING","_BT_LIST","hasOwnProperty","_WriteString","dataPackage","_WriteContainerBegin","_BT_STRUCT","newGuid","_BT_INT64","_WriteInt64","numberToBondInt64","Date","now","dpSizePos","_GetBuffer","length","dpSizeSerialized","i","currentStreamPos","writeEvent","eventsRejected","AWTEventsRejectedReason","SizeLimitExceeded","splice","_addNewDataPackageSize","_WriteStructEnd","payloadBlob","size","oldDpSize","streamPos","newRecordCountSerialized","_Encoding","_Varint_GetBytes","Number","_ToUInt32","j","slice","eventData","id","propsString","propStringCount","propsInt64","propInt64Count","propsDouble","propDoubleCount","propsBool","propBoolCount","propsDate","propDateCount","piiProps","piiPropCount","ccProps","ccPropCount","key","String","Int64","Double","Boolean","toString","_BT_INT32","_WriteInt32","_BT_BOOL","_WriteBool","_BT_DOUBLE","_WriteDouble","base64Encode","data","_Base64_GetString","AWTRetryPolicy","shouldRetryForStatus","httpStatusCode","getMillisToBackoffForRetry","retriesSoFar","waitDuration","randomBackoff","Math","floor","random","BaseBackoff","pow","min","AWTRecordBatcher","_outboundQueue","_maxNumberOfEvents","_currentBatch","_currentNumEventsInBatch","addEventToBatch","event","AWTEventPriority","Immediate_sync","immediateBatch","apiKey","flushBatch","undefined","push","hasBatch","DataModels_1","AWTQueueManager_1","AWTStatsManager_1","AWTEventProperties_1","AWTLogManager_1","AWTTransmissionManagerCore","setEventsHandler","eventsHandler","_eventHandler","getEventsHandler","scheduleTimer","timer","_profiles","_currentProfile","_timeout","_paused","hasEvents","_currentBackoffCount","_batchAndSendEvents","_timerCount","initialize","config","_newEventsAllowed","_config","collectorUri","cacheMemorySizeLimitInNumberOfEvents","httpXHROverride","_initializeProfiles","stats","tenantId","canSendStatEvent","event_1","statKey","High","getLogger","StatsApiKey","logEvent","setTransmitProfile","profileName","clearTimeout","loadTransmitProfiles","profiles","_resetTransmitProfiles","timerMultiplier","ceil","sendEvent","addEvent","flush","callback","currentTime","getTime","_lastUploadNowCall","uploadNow","pauseTransmission","resumeTransmision","resumeTransmission","flushAndTeardown","teardown","backOffTransmission","clearBackOff","Low","Normal","sendEventsForPriorityAndAbove","AWTUserIdType","AWTSessionState","BrowserChecker","_IsDataViewSupport","ArrayBuffer","DataView","Version","FullVersionString","AWTSerializer_1","AWTRetryPolicy_1","AWTKillSwitch_1","AWTClockSkewManager_1","AWTTransmissionManagerCore_1","Method","AWTHttpManager","_requestQueue","collectorUrl","_queueManager","_httpInterface","_urlString","_killSwitch","_useBeacons","_activeConnections","_clockSkewManager","isUint8ArrayAvailable","isReactNative","sendPOST","urlString","ontimeout","onerror","onload","sync","useXDomainRequest","xdr","XDomainRequest","open","send","fetch","body","method","then","response","headerMap","headers","forEach","status","catch","error","xhr_1","XMLHttpRequest","_convertAllHeadersToMap","getAllResponseHeaders","e","hasIdleConnection","sendQueuedRequests","_sendRequest","shift","isCompletelyIdle","pause","resume","removeQueuedRequests","sendSynchronousRequest","request","retryCount","isTeardown","isSynchronous","addBackRequest","tokenCount_1","apikey_1","isTenantKilled","KillSwitch","payloadResult","Uint8Array","sendAttempt","isBeaconsSupported","navigator","sendBeacon","_retryRequestIfNeeded","_handleRequestFinished","apikey","shouldRetry","killedTokens","setKillSwitchTenants","eventsRetrying","success","eventsSent","eventsDropped","AWTEventsDroppedReason","NonRetryableStatus","headersString","headersArray","split","header","AWTAutoCollection_1","Enums_2","AWTSemanticContext","_allowDeviceFields","_properties","setAppId","appId","_addContext","setAppVersion","appVersion","setAppLanguage","appLanguage","setDeviceId","deviceId","checkAndSaveDeviceId","setDeviceOsName","deviceOsName","setDeviceOsVersion","deviceOsVersion","setDeviceBrowserName","deviceBrowserName","setDeviceBrowserVersion","deviceBrowserVersion","setDeviceMake","deviceMake","setDeviceModel","deviceModel","setUserId","userId","userIdType","isNaN","inferredUserIdType","SipAddress","PhoneNumber","SmtpAddress","EmailAddress","Unknown","Skype","Identity","_addContextWithPii","setUserAdvertisingId","userAdvertisingId","setUserTimeZone","userTimeZone","setUserLanguage","userLanguage","AWTLogManagerSettings_1","AWTSemanticContext_1","AWTLogger","_apiKey","_contextProperties","_semanticContext","_sessionStartTime","_createInitId","setContext","setContextWithPii","setContextWithCustomerContent","getSemanticContext","loggingEnabled","defaultTenantToken","sanitizeProperties","isString","eventReceived","_logEvent","_getInternalEvent","logSession","state","sessionEnabled","sessionEvent","_addPropertiesToEvent","Started","_sessionId","Ended","sessionDurationSec","_getSessionDurationFromTime","firstLaunchTime","getSessionId","logFailure","signature","detail","category","failureEvent","logPageView","pageName","uri","referrerUri","pageViewEvent","_initIdMap","propertiesEvent","name_1","timeInSec","eventWithMetaData","contextProperties","toLowerCase","replace","EventNameDotRegex","EventNameAndTypeRegex","test","isNumber","_addContextIfAbsent","logManagerContext","_setDefaultProperty","_getInitId","_getSequenceId","toISOString","isPriority","_sendEvent","InvalidEvent","name_2","name_3","internalEvent","_sequenceIdMap","DEVICE_ID_COOKIE","FIRSTLAUNCHTIME_COOKIE","BROWSERS","OPERATING_SYSTEMS","OSNAMEREGEX","VERSION_MAPPINGS","5.1","6.0","6.1","6.2","6.3","10.0","AWTAutoCollection","addPropertyStorageOverride","propertyStorage","_propertyStorage","autoCollect","semanticContext","disableCookies","userAgent","_disableCookies","_autoCollect","_autoCollectFromUserAgent","_deleteCookie","_areCookiesAvailable","_autoCollectDeviceId","oldDeviceId","_getData","flt","getISOString","_saveData","_setFirstLaunchTime","document","documentElement","lang","language","timeZone","getTimezoneOffset","minutes","hours","timeZonePrefix","abs","browserName","_getBrowserName","_getBrowserVersion","osName","_getOsName","_getOsVersion","_userAgentContainsString","fltDate","setTime","parseInt","searchString","indexOf","_getIeVersion","_getOtherVersion","classicIeVersionMatches","match","RegExp","ieVersionMatches","browserString","matches","_getGenericOsVersion","_getMacOsxVersion","ntVersionMatches","macOsxVersionInUserAgentMatches","versionString","delimiter","_getDelimiter","date","expires","toUTCString","cookie","getProperty","ca","c","charAt","substring","microsoft_bond_primitives_1","GuidRegex","MSTillUnixEpoch","MSToTicksMultiplier","NullValue","PropertyNameRegex","beaconsSupported","uInt8ArraySupported","useXDR","isBoolean","isDate","msToTicks","timeInMs","product","twoDigit","n","isNotDefined","bond_value","low","high","r","getTenantId","indexTenantId","ua","isSafariOrFirefox","isPropertyType","getCorrectType","NaN","sanitizePropertyType","isCustomerContent","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","conn","withCredentials","AWTLogManagerSettings","numberStr","_Equals","tmp","UInt64","_ToByte","_ToUInt8","_ToInt32","bond_const_1","_stream","_WriteBlob","blob","_Write","_WriteByte","elementType","_WriteUInt8","_WriteUInt32","keyType","valueType","array","_Double_GetBytes","metadata","_Zigzag_EncodeZigzag32","_WriteUInt64","_Zigzag_EncodeZigzag64","_Utf8_GetBytes","isBase","_BT_STOP_BASE","_BT_STOP","_Varint64_GetBytes","AWTLogger_1","AWTLogManager","tenantToken","configuration","_isInitialized","_overrideValuesFromConfig","disableCookiesUsage","propertyStorageOverride","enableAutoUserSession","window","addEventListener","_isDestroyed","_loggers","addNotificationListener","listener","removeNotificationListener","eventName","AWTStatsManager","sendStats","_sendStats","_isInitalized","events","_addStat","reason","MaxRetryLimit","QueueFull","_stats","statName","AWTKillSwitch","_killedTokenDictionary","killTokens","killDuration","durationMs","ex","microsoft_bond_floatutils_1","microsoft_bond_utils_1","char","charCodeAt","inArray","num","lookup","output","paddingBytes","length_1","temp","join","temp2","view","setFloat64","getUint8","FloatUtils","_ConvertNumberToArray","tmpH","tmpL","res","AWTTransmissionManager_1","AWTTransmissionManager","AWT_COLLECTOR_URL_UNITED_STATES","AWT_COLLECTOR_URL_GERMANY","AWT_COLLECTOR_URL_JAPAN","AWT_COLLECTOR_URL_AUSTRALIA","AWT_COLLECTOR_URL_EUROPE","AWT_COLLECTOR_URL_USGOV_DOD","AWT_COLLECTOR_URL_USGOV_DOJ","AWTHttpManager_1","AWTRecordBatcher_1","MaxNumberEventPerBatch","AWTQueueManager","_queueSizeLimit","xhrOverride","_isCurrentlyUploadingNow","_uploadNowQueue","_shouldDropEventsOnPause","_queueSize","_inboundQueues","_addEmptyQueues","_batcher","_httpManager","_addEventToProperQueue","_dropEventWithPriorityOrLess","_batchEvents","_uploadNow","shouldDropEventsOnPause","_removeFirstQueues","currentPriority","priorityToProcess","pop","_checkOutboundQueueEmptyAndSent","AWTNotificationManager","listeners","index","_loop_1","this_1","_loop_2","this_2","_loop_3","this_3","_loop_4","this_4","isDouble","_doubleZero","_floatZero","precisionBits","bias","minExponent","maxExponent","sign","intPart","floatPart","len","buffer","Array","firstBit","exponent","lastBit","_doubleNegInifinity","_floatNegInifinity","_doubleInifinity","_floatInifinity","result","_buffer","byte","offset","count"],"mappings":"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","file":"static/js/vendor.initial~01aab416.cbf431e7.chunk.js","sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTEventProperties.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n*/\r\nvar Utils = require(\"../common/Utils\");\r\nvar Enums_1 = require(\"../common/Enums\");\r\n/**\r\n* The AWTEventProperties class is used for creating an event.\r\n*/\r\nvar AWTEventProperties = /** @class */ (function () {\r\n /**\r\n * The AWTEventProperties class constructor.\r\n * @constructor\r\n * @param {string} - [Optional] The name of the event.\r\n */\r\n function AWTEventProperties(name) {\r\n this._event = { name: '', properties: {} };\r\n if (name) {\r\n this.setName(name);\r\n }\r\n }\r\n /**\r\n * Sets the name of the event.\r\n * @param {string} name - The name of the event.\r\n */\r\n AWTEventProperties.prototype.setName = function (name) {\r\n this._event.name = name;\r\n };\r\n /**\r\n * Gets the name of the event.\r\n * @return {string|undefined} - The name of the event, or undefined if the name has not been set.\r\n */\r\n AWTEventProperties.prototype.getName = function () {\r\n return this._event.name;\r\n };\r\n /**\r\n * Sets the base type of the event.\r\n * @param {string} type - The base type of the event.\r\n */\r\n AWTEventProperties.prototype.setType = function (type) {\r\n this._event.type = type;\r\n };\r\n /**\r\n * Gets the base type of the event.\r\n * @return {string|undefined} The base type of the event, or undefined if the base type has not been set.\r\n */\r\n AWTEventProperties.prototype.getType = function () {\r\n return this._event.type;\r\n };\r\n /**\r\n * Sets the timestamp for the event.\r\n * @param {number} timestampInEpochMillis - The timestamp (in milliseconds) since UNIX Epoch.\r\n */\r\n AWTEventProperties.prototype.setTimestamp = function (timestampInEpochMillis) {\r\n this._event.timestamp = timestampInEpochMillis;\r\n };\r\n /**\r\n * Gets the timestamp for the event.\r\n * @return {number|undefined} The timestamp for the event, or undefined if it has not been set.\r\n */\r\n AWTEventProperties.prototype.getTimestamp = function () {\r\n return this._event.timestamp;\r\n };\r\n /**\r\n * Sets the priority for sending the event. The default priority\r\n * of the event is Normal.\r\n * @param {enum} priority - An AWTEventPriority enumeration value that specifies the priority of the event.\r\n */\r\n AWTEventProperties.prototype.setEventPriority = function (priority) {\r\n this._event.priority = priority;\r\n };\r\n /**\r\n * Gets the priority for the event.\r\n * @return {AWTEventPriority} - An AWTEventPriority enumeration value that specifies the priority of the event.\r\n */\r\n AWTEventProperties.prototype.getEventPriority = function () {\r\n return this._event.priority;\r\n };\r\n /**\r\n * Sets a property with a name and value. Optionally sets the property type.\r\n * @param {string} name - The name of the property.\r\n * @param {string|number|boolean|Date} value - The property's value.\r\n * @param {enum} type - [Optional] One of the AWTPropertyType enumeration values that specifies\r\n * the type for the property.\r\n */\r\n AWTEventProperties.prototype.setProperty = function (name, value, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n var property = { value: value, type: type, pii: Enums_1.AWTPiiKind.NotSet, cc: Enums_1.AWTCustomerContentKind.NotSet };\r\n property = Utils.sanitizeProperty(name, property);\r\n if (property === null) {\r\n delete this._event.properties[name];\r\n return;\r\n }\r\n this._event.properties[name] = property;\r\n };\r\n /**\r\n * Sets a property with a name, a value, and a PII. Optionally sets the property type.\r\n * @param {string} name - The name of the property.\r\n * @param {string|number|boolean|Date} value - The property's value.\r\n * @param {enum} pii - The kind of PII for the property.\r\n * @param {enum} type - [Optional] One of the AWTPropertyType enumeration values that specifies\r\n * the type for the property.\r\n */\r\n AWTEventProperties.prototype.setPropertyWithPii = function (name, value, pii, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n var property = { value: value, type: type, pii: pii, cc: Enums_1.AWTCustomerContentKind.NotSet };\r\n property = Utils.sanitizeProperty(name, property);\r\n if (property === null) {\r\n delete this._event.properties[name];\r\n return;\r\n }\r\n this._event.properties[name] = property;\r\n };\r\n /**\r\n * Sets a property with name, value and customer content. Optionally set the property type of the value.\r\n * @param {string} name - The name of the property.\r\n * @param {string|number|boolean|Date} value - The property's value.\r\n * @param {enum} customerContent - The customer content kind for the property.\r\n * @param {enum} type - [Optional] One of the AWTPropertyType enumeration values that specifies\r\n * the type for the property.\r\n */\r\n AWTEventProperties.prototype.setPropertyWithCustomerContent = function (name, value, customerContent, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n var property = { value: value, type: type, pii: Enums_1.AWTPiiKind.NotSet, cc: customerContent };\r\n property = Utils.sanitizeProperty(name, property);\r\n if (property === null) {\r\n delete this._event.properties[name];\r\n return;\r\n }\r\n this._event.properties[name] = property;\r\n };\r\n /**\r\n * Gets the properties currently added to the event.\r\n * @return {object} A Map containing the current properties.\r\n */\r\n AWTEventProperties.prototype.getPropertyMap = function () {\r\n return this._event.properties;\r\n };\r\n /**\r\n * Gets the event from this event properties object.\r\n * @return {object} The event properties compiled into AWTEventData.\r\n */\r\n AWTEventProperties.prototype.getEvent = function () {\r\n return this._event;\r\n };\r\n return AWTEventProperties;\r\n}());\r\nexports.default = AWTEventProperties;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTClockSkewManager.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\n/**\r\n* Class to manage clock skew correction.\r\n*/\r\nvar AWTClockSkewManager = /** @class */ (function () {\r\n function AWTClockSkewManager(clockSkewRefreshDurationInMins) {\r\n this.clockSkewRefreshDurationInMins = clockSkewRefreshDurationInMins;\r\n this._reset();\r\n }\r\n /**\r\n * Determine if the request can be sent.\r\n * @return {boolean} True if requests can be sent, false otherwise.\r\n */\r\n AWTClockSkewManager.prototype.allowRequestSending = function () {\r\n if (this._isFirstRequest && !this._clockSkewSet) {\r\n this._isFirstRequest = false;\r\n this._allowRequestSending = false;\r\n return true;\r\n }\r\n return this._allowRequestSending;\r\n };\r\n /**\r\n * Determine if clock skew headers should be added to the request.\r\n * @return {boolean} True if clock skew headers should be added, false otherwise.\r\n */\r\n AWTClockSkewManager.prototype.shouldAddClockSkewHeaders = function () {\r\n return this._shouldAddClockSkewHeaders;\r\n };\r\n /**\r\n * Gets the clock skew header value.\r\n * @return {string} The clock skew header value.\r\n */\r\n AWTClockSkewManager.prototype.getClockSkewHeaderValue = function () {\r\n return this._clockSkewHeaderValue;\r\n };\r\n /**\r\n * Sets the clock skew header value. Once clock skew is set this method\r\n * is no-op.\r\n * @param {string} timeDeltaInMillis - Time delta to be saved as the clock skew header value.\r\n */\r\n AWTClockSkewManager.prototype.setClockSkew = function (timeDeltaInMillis) {\r\n if (!this._clockSkewSet) {\r\n if (timeDeltaInMillis) {\r\n this._clockSkewHeaderValue = timeDeltaInMillis;\r\n }\r\n else {\r\n this._shouldAddClockSkewHeaders = false;\r\n }\r\n this._clockSkewSet = true;\r\n this._allowRequestSending = true;\r\n }\r\n };\r\n AWTClockSkewManager.prototype._reset = function () {\r\n var _this = this;\r\n this._isFirstRequest = true;\r\n this._clockSkewSet = false;\r\n this._allowRequestSending = true;\r\n this._shouldAddClockSkewHeaders = true;\r\n this._clockSkewHeaderValue = 'use-collector-delta';\r\n if (this.clockSkewRefreshDurationInMins > 0) {\r\n setTimeout(function () { return _this._reset(); }, this.clockSkewRefreshDurationInMins * 60000);\r\n }\r\n };\r\n return AWTClockSkewManager;\r\n}());\r\nexports.default = AWTClockSkewManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AWT_REAL_TIME = 'REAL_TIME';\r\nexports.AWT_NEAR_REAL_TIME = 'NEAR_REAL_TIME';\r\nexports.AWT_BEST_EFFORT = 'BEST_EFFORT';\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTSerializer.ts\r\n* @author Brent Erickson (brericks) and Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar Bond = require(\"../bond/microsoft.bond\");\r\nvar Enums_1 = require(\"./Enums\");\r\nvar AWTNotificationManager_1 = require(\"./AWTNotificationManager\");\r\nvar Utils = require(\"./Utils\");\r\nvar RequestSizeLimitBytes = 2936012; //approx 2.8 Mb\r\n/**\r\n* Class to handle serialization of event and request.\r\n* Currently uses Bond for serialization. Please note that this may be subject to change.\r\n*/\r\nvar AWTSerializer = /** @class */ (function () {\r\n function AWTSerializer() {\r\n }\r\n /**\r\n * Serialies a request using Bond.\r\n * @param {object} requestDictionary - A dictionary containing the token to event mapping.\r\n * @param {number} tokenCount - Number of tenant tokens to be sent in the request.\r\n * @return {number[]} The serialized bond request.\r\n */\r\n AWTSerializer.getPayloadBlob = function (requestDictionary, tokenCount) {\r\n var requestFull = false;\r\n var remainingRequest;\r\n var stream = new Bond.IO.MemoryStream();\r\n var writer = new Bond.CompactBinaryProtocolWriter(stream);\r\n //Write TokenToDataPackagesMap\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 3, null);\r\n writer._WriteMapContainerBegin(tokenCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_LIST);\r\n for (var token in requestDictionary) {\r\n if (!requestFull) {\r\n if (requestDictionary.hasOwnProperty(token)) {\r\n //write token\r\n writer._WriteString(token);\r\n var dataPackage = requestDictionary[token];\r\n // Write list of DataPackages\r\n writer._WriteContainerBegin(1, Bond._BondDataType._BT_STRUCT);\r\n // Source\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 2, null);\r\n writer._WriteString('act_default_source');\r\n // DataPackageId\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 5, null);\r\n writer._WriteString(Utils.newGuid());\r\n // Timestamp\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT64, 6, null);\r\n writer._WriteInt64(Utils.numberToBondInt64(Date.now()));\r\n // Records\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_LIST, 8, null);\r\n //Advance position by 1 for the elementy type which is always struct\r\n var dpSizePos = stream._GetBuffer().length + 1;\r\n writer._WriteContainerBegin(requestDictionary[token].length, Bond._BondDataType._BT_STRUCT);\r\n var dpSizeSerialized = stream._GetBuffer().length - dpSizePos;\r\n for (var i = 0; i < dataPackage.length; ++i) {\r\n var currentStreamPos = stream._GetBuffer().length;\r\n this.writeEvent(dataPackage[i], writer);\r\n if (stream._GetBuffer().length - currentStreamPos > RequestSizeLimitBytes) {\r\n //single event too big\r\n AWTNotificationManager_1.default.eventsRejected([dataPackage[i]], Enums_1.AWTEventsRejectedReason.SizeLimitExceeded);\r\n //move i one place back so that we can evaluate the next element once we delete the current element at pos i\r\n dataPackage.splice(i--, 1);\r\n stream._GetBuffer().splice(currentStreamPos);\r\n //Bond serialization to change the datapackage length since we couldnt send this event\r\n this._addNewDataPackageSize(dataPackage.length, stream, dpSizeSerialized, dpSizePos);\r\n continue;\r\n }\r\n if (stream._GetBuffer().length > RequestSizeLimitBytes) {\r\n //Adding this event exceeded the max request size. We should rever this event and send the serialized request.\r\n //The remaining events should be returned to send in a separate request.\r\n stream._GetBuffer().splice(currentStreamPos);\r\n if (!remainingRequest) {\r\n remainingRequest = {};\r\n }\r\n requestDictionary[token] = dataPackage.splice(0, i);\r\n remainingRequest[token] = dataPackage;\r\n this._addNewDataPackageSize(requestDictionary[token].length, stream, dpSizeSerialized, dpSizePos);\r\n requestFull = true;\r\n break;\r\n }\r\n }\r\n writer._WriteStructEnd(false);\r\n }\r\n }\r\n else {\r\n if (!remainingRequest) {\r\n remainingRequest = {};\r\n }\r\n remainingRequest[token] = requestDictionary[token];\r\n delete requestDictionary[token];\r\n }\r\n }\r\n // End ClientCollector\r\n writer._WriteStructEnd(false);\r\n return { payloadBlob: stream._GetBuffer(), remainingRequest: remainingRequest };\r\n };\r\n AWTSerializer._addNewDataPackageSize = function (size, stream, oldDpSize, streamPos) {\r\n //Bond serialization to change the datapackage length since we couldnt send everything\r\n var newRecordCountSerialized = Bond._Encoding._Varint_GetBytes(Bond.Number._ToUInt32(size));\r\n for (var j = 0; j < oldDpSize; ++j) {\r\n if (j < newRecordCountSerialized.length) {\r\n stream._GetBuffer()[streamPos + j] = newRecordCountSerialized[j];\r\n }\r\n else {\r\n stream._GetBuffer().slice(streamPos + j, oldDpSize - j);\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Bond serialize the event.\r\n * @param {object} eventData - The event that needs to be serialized.\r\n * @return {number[]} The serialized bond event.\r\n */\r\n AWTSerializer.writeEvent = function (eventData, writer) {\r\n // ID\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 1, null);\r\n writer._WriteString(eventData.id);\r\n // Timestamp\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT64, 3, null);\r\n writer._WriteInt64(Utils.numberToBondInt64(eventData.timestamp));\r\n // Type\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 5, null);\r\n writer._WriteString(eventData.type);\r\n // Event Type\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 6, null);\r\n writer._WriteString(eventData.name);\r\n var propsString = {};\r\n var propStringCount = 0;\r\n var propsInt64 = {};\r\n var propInt64Count = 0;\r\n var propsDouble = {};\r\n var propDoubleCount = 0;\r\n var propsBool = {};\r\n var propBoolCount = 0;\r\n var propsDate = {};\r\n var propDateCount = 0;\r\n var piiProps = {};\r\n var piiPropCount = 0;\r\n var ccProps = {};\r\n var ccPropCount = 0;\r\n // Iterate across event data properties and separate based on pii\r\n for (var key in eventData.properties) {\r\n if (eventData.properties.hasOwnProperty(key)) {\r\n var property = eventData.properties[key];\r\n if (property.cc > 0) {\r\n ccProps[key] = property;\r\n ccPropCount++;\r\n }\r\n else if (property.pii > 0) {\r\n piiProps[key] = property;\r\n piiPropCount++;\r\n }\r\n else {\r\n switch (property.type) {\r\n case Enums_1.AWTPropertyType.String:\r\n propsString[key] = property.value;\r\n propStringCount++;\r\n break;\r\n case Enums_1.AWTPropertyType.Int64:\r\n propsInt64[key] = property.value;\r\n propInt64Count++;\r\n break;\r\n case Enums_1.AWTPropertyType.Double:\r\n propsDouble[key] = property.value;\r\n propDoubleCount++;\r\n break;\r\n case Enums_1.AWTPropertyType.Boolean:\r\n propsBool[key] = property.value;\r\n propBoolCount++;\r\n break;\r\n case Enums_1.AWTPropertyType.Date:\r\n propsDate[key] = property.value;\r\n propDateCount++;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n //Extension map\r\n if (propStringCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 13, null);\r\n writer._WriteMapContainerBegin(propStringCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_STRING);\r\n for (var key in propsString) {\r\n if (propsString.hasOwnProperty(key)) {\r\n var value = propsString[key];\r\n writer._WriteString(key);\r\n writer._WriteString(value.toString());\r\n }\r\n }\r\n }\r\n // Pii\r\n if (piiPropCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 30, null);\r\n writer._WriteMapContainerBegin(piiPropCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_STRUCT);\r\n for (var key in piiProps) {\r\n if (piiProps.hasOwnProperty(key)) {\r\n var property = piiProps[key];\r\n writer._WriteString(key);\r\n // PII Data\r\n // O365 scrubber type\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT32, 1, null);\r\n writer._WriteInt32(1);\r\n // PII Kind\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT32, 2, null);\r\n writer._WriteInt32(property.pii);\r\n // Value\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 3, null);\r\n writer._WriteString(property.value.toString());\r\n writer._WriteStructEnd(false);\r\n }\r\n }\r\n }\r\n // TypedExtensionBoolean map\r\n if (propBoolCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 31, null);\r\n writer._WriteMapContainerBegin(propBoolCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_BOOL);\r\n for (var key in propsBool) {\r\n if (propsBool.hasOwnProperty(key)) {\r\n var value = propsBool[key];\r\n writer._WriteString(key);\r\n writer._WriteBool(value);\r\n }\r\n }\r\n }\r\n //TypedExtensionDateTime map\r\n if (propDateCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 32, null);\r\n writer._WriteMapContainerBegin(propDateCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_INT64);\r\n for (var key in propsDate) {\r\n if (propsDate.hasOwnProperty(key)) {\r\n var value = propsDate[key];\r\n writer._WriteString(key);\r\n writer._WriteInt64(Utils.numberToBondInt64(value));\r\n }\r\n }\r\n }\r\n //TypedExtensionInt64 map\r\n if (propInt64Count) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 33, null);\r\n writer._WriteMapContainerBegin(propInt64Count, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_INT64);\r\n for (var key in propsInt64) {\r\n if (propsInt64.hasOwnProperty(key)) {\r\n var value = propsInt64[key];\r\n writer._WriteString(key);\r\n writer._WriteInt64(Utils.numberToBondInt64(value));\r\n }\r\n }\r\n }\r\n //TypedExtensionDouble map\r\n if (propDoubleCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 34, null);\r\n writer._WriteMapContainerBegin(propDoubleCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_DOUBLE);\r\n for (var key in propsDouble) {\r\n if (propsDouble.hasOwnProperty(key)) {\r\n var value = propsDouble[key];\r\n writer._WriteString(key);\r\n writer._WriteDouble(value);\r\n }\r\n }\r\n }\r\n //CustomerContentExtensions map\r\n if (ccPropCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 36, null);\r\n writer._WriteMapContainerBegin(ccPropCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_STRUCT);\r\n for (var key in ccProps) {\r\n if (ccProps.hasOwnProperty(key)) {\r\n var property = ccProps[key];\r\n writer._WriteString(key);\r\n // CustomerContent Data\r\n // CustomerContentKind\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT32, 1, null);\r\n writer._WriteInt32(property.cc);\r\n // RawContent\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 2, null);\r\n writer._WriteString(property.value.toString());\r\n writer._WriteStructEnd(false);\r\n }\r\n }\r\n }\r\n writer._WriteStructEnd(false);\r\n };\r\n /**\r\n * Base64 encode the given number[].\r\n * @param {number[]} data - The data to be base64 encoded.\r\n * @return {string} The base64 encoded data.\r\n */\r\n AWTSerializer.base64Encode = function (data) {\r\n return Bond._Encoding._Base64_GetString(data);\r\n };\r\n return AWTSerializer;\r\n}());\r\nexports.default = AWTSerializer;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTRetryPolicy.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar RandomizationLowerThreshold = 0.8;\r\nvar RandomizationUpperThreshold = 1.2;\r\nvar BaseBackoff = 3000;\r\nvar MaxBackoff = 120000;\r\n/**\r\n* Class for retry policy.\r\n*/\r\nvar AWTRetryPolicy = /** @class */ (function () {\r\n function AWTRetryPolicy() {\r\n }\r\n /**\r\n * Determine if the request should be retried for the given status code.\r\n * The below expression reads that we should only retry for:\r\n * - HttpStatusCodes that are smaller than 300.\r\n * - HttpStatusCodes greater or equal to 500 (except for 501-NotImplement\r\n * and 505-HttpVersionNotSupport).\r\n * - HttpStatusCode 408-RequestTimeout.\r\n * This is based on Microsoft.WindowsAzure.Storage.RetryPolicies.ExponentialRetry class\r\n * @param {number} httpStatusCode - The status code returned for the request.\r\n * @return {boolean} True if request should be retried, false otherwise.\r\n */\r\n AWTRetryPolicy.shouldRetryForStatus = function (httpStatusCode) {\r\n /* */\r\n return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode !== 408)\r\n || (httpStatusCode === 501)\r\n || (httpStatusCode === 505));\r\n };\r\n /**\r\n * Gets the number of milliseconds to back off before retrying the request. The\r\n * back off duration is exponentially scaled based on the number of retries already\r\n * done for the request.\r\n * @param {number} retriesSoFar - The number of times the request has already been retried.\r\n * @return {number} The back off duration for the request before it can be retried.\r\n */\r\n AWTRetryPolicy.getMillisToBackoffForRetry = function (retriesSoFar) {\r\n var waitDuration = 0;\r\n var minBackoff = BaseBackoff * RandomizationLowerThreshold;\r\n var maxBackoff = BaseBackoff * RandomizationUpperThreshold;\r\n var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;\r\n waitDuration = Math.pow(4, retriesSoFar) * randomBackoff;\r\n return Math.min(waitDuration, MaxBackoff);\r\n };\r\n return AWTRetryPolicy;\r\n}());\r\nexports.default = AWTRetryPolicy;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = require(\"./Enums\");\r\n/**\r\n* Class to batch events.\r\n*/\r\nvar AWTRecordBatcher = /** @class */ (function () {\r\n function AWTRecordBatcher(_outboundQueue, _maxNumberOfEvents) {\r\n this._outboundQueue = _outboundQueue;\r\n this._maxNumberOfEvents = _maxNumberOfEvents;\r\n this._currentBatch = {};\r\n this._currentNumEventsInBatch = 0;\r\n }\r\n /**\r\n * Add an event to the current batch.\r\n * If the priority of the event is synchronous, it will also return the batch containing only the synchronous event.\r\n * @param {object} event - The event that needs to be batched.\r\n * @return {object} If the priority of the event is synchronous, it will also return the batch containing only the synchronous event.\r\n * Otherwise returns null.\r\n */\r\n AWTRecordBatcher.prototype.addEventToBatch = function (event) {\r\n if (event.priority === Enums_1.AWTEventPriority.Immediate_sync) {\r\n //batch immediate priority into its own batch\r\n var immediateBatch = {};\r\n immediateBatch[event.apiKey] = [event];\r\n return immediateBatch;\r\n }\r\n else {\r\n if (this._currentNumEventsInBatch >= this._maxNumberOfEvents) {\r\n this.flushBatch();\r\n }\r\n if (this._currentBatch[event.apiKey] === undefined) {\r\n this._currentBatch[event.apiKey] = [];\r\n }\r\n this._currentBatch[event.apiKey].push(event);\r\n this._currentNumEventsInBatch++;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Flush the current batch so that it is added to the outbound queue.\r\n */\r\n AWTRecordBatcher.prototype.flushBatch = function () {\r\n if (this._currentNumEventsInBatch > 0) {\r\n this._outboundQueue.push(this._currentBatch);\r\n this._currentBatch = {};\r\n this._currentNumEventsInBatch = 0;\r\n }\r\n };\r\n /**\r\n * Check if there is a batch that contains events.\r\n */\r\n AWTRecordBatcher.prototype.hasBatch = function () {\r\n return this._currentNumEventsInBatch > 0;\r\n };\r\n return AWTRecordBatcher;\r\n}());\r\nexports.default = AWTRecordBatcher;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTTransmissionManagerCore.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar DataModels_1 = require(\"./DataModels\");\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar AWTQueueManager_1 = require(\"./AWTQueueManager\");\r\nvar AWTStatsManager_1 = require(\"../common/AWTStatsManager\");\r\nvar AWTEventProperties_1 = require(\"./AWTEventProperties\");\r\nvar AWTLogManager_1 = require(\"./AWTLogManager\");\r\nvar Utils = require(\"../common/Utils\");\r\nvar MaxBackoffCount = 4;\r\nvar MinDurationBetweenUploadNow = 30000; //30 sec\r\nvar StatName = 'awt_stats';\r\n/**\r\n * Class that manages the timers for when to send events. It also\r\n * handles flush and flushAndTeardown. This class also allows setting\r\n * new event handlers. The default event handler is the Inbound Queue Manager.\r\n */\r\nvar AWTTransmissionManagerCore = /** @class */ (function () {\r\n function AWTTransmissionManagerCore() {\r\n }\r\n /**\r\n * Sets the event handler to be used by the tranmission manager.\r\n * The default event handler is the Inbound queue manager. This handler\r\n * is used to batch and send events to Aria. If you intend to send events\r\n * to Aria please make sure your event handler forwards events to the Inbound\r\n * Queue Manager. You can retrieve the Inbound Queue Manager by calling\r\n * getEventsHandler before you set your handler.\r\n * @param {object} eventsHandler - The new events handler to be used by the tranmission\r\n * manager.\r\n */\r\n AWTTransmissionManagerCore.setEventsHandler = function (eventsHandler) {\r\n this._eventHandler = eventsHandler;\r\n };\r\n /**\r\n * Gets the current event handler used by the tranmission manager.\r\n * @return {object} The event handler currently used by the tranmission manager.\r\n */\r\n AWTTransmissionManagerCore.getEventsHandler = function () {\r\n return this._eventHandler;\r\n };\r\n /**\r\n * Try to schedule the timer after which events will be sent. If there are\r\n * no events to be sent, or there is already a timer scheduled, or the\r\n * http manager doesn't have any idle connections this method is no-op.\r\n */\r\n AWTTransmissionManagerCore.scheduleTimer = function () {\r\n var _this = this;\r\n var timer = this._profiles[this._currentProfile][2];\r\n if (this._timeout < 0 && timer >= 0 && !this._paused) {\r\n if (this._eventHandler.hasEvents()) {\r\n //If the transmission is backed off make the timer atleast 1 sec to allow for backoff.\r\n if (timer === 0 && this._currentBackoffCount > 0) {\r\n timer = 1;\r\n }\r\n this._timeout = setTimeout(function () { return _this._batchAndSendEvents(); }, timer * (1 << this._currentBackoffCount) * 1000);\r\n }\r\n else {\r\n this._timerCount = 0;\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize the transmission manager. After this method is called events are\r\n * accepted for tranmission.\r\n * @param {object} config - The configuration passed during AWTLogManager initialize.\r\n */\r\n AWTTransmissionManagerCore.initialize = function (config) {\r\n var _this = this;\r\n this._newEventsAllowed = true;\r\n this._config = config;\r\n this._eventHandler = new AWTQueueManager_1.default(config.collectorUri, config.cacheMemorySizeLimitInNumberOfEvents, config.httpXHROverride, config.clockSkewRefreshDurationInMins);\r\n this._initializeProfiles();\r\n AWTStatsManager_1.default.initialize(function (stats, tenantId) {\r\n if (_this._config.canSendStatEvent(StatName)) {\r\n var event_1 = new AWTEventProperties_1.default(StatName);\r\n event_1.setEventPriority(Enums_1.AWTEventPriority.High);\r\n event_1.setProperty('TenantId', tenantId);\r\n for (var statKey in stats) {\r\n if (stats.hasOwnProperty(statKey)) {\r\n event_1.setProperty(statKey, stats[statKey].toString());\r\n }\r\n }\r\n AWTLogManager_1.default.getLogger(Utils.StatsApiKey).logEvent(event_1);\r\n }\r\n });\r\n };\r\n /**\r\n * Set the transmit profile to be used. This will change the tranmission timers\r\n * based on the transmit profile.\r\n * @param {string} profileName - The name of the transmit profile to be used.\r\n */\r\n AWTTransmissionManagerCore.setTransmitProfile = function (profileName) {\r\n if (this._currentProfile !== profileName && this._profiles[profileName] !== undefined) {\r\n this.clearTimeout();\r\n this._currentProfile = profileName;\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Load custom tranmission profiles. Each profile should have timers for\r\n * high, normal and low. Each profile should make sure\r\n * that a each priority timer is a multiple of the priority higher than it.\r\n * Setting the timer value to -1 means that the events for that priority will\r\n * not be sent. Note that once a priority has been set to not send, all priorities\r\n * below it will also not be sent. The timers should be in the form of [low, normal, high].\r\n * e.g Custom: [30,10,5]\r\n * This also removes any previously loaded custom profiles.\r\n * @param {object} profiles - A dictionary containing the transmit profiles.\r\n */\r\n AWTTransmissionManagerCore.loadTransmitProfiles = function (profiles) {\r\n this._resetTransmitProfiles();\r\n for (var profileName in profiles) {\r\n if (profiles.hasOwnProperty(profileName)) {\r\n if (profiles[profileName].length !== 3) {\r\n continue;\r\n }\r\n //Make sure if a higher priority is set to not send then dont send lower priority\r\n for (var i = 2; i >= 0; --i) {\r\n if (profiles[profileName][i] < 0) {\r\n for (var j = i; j >= 0; --j) {\r\n profiles[profileName][j] = -1;\r\n }\r\n break;\r\n }\r\n }\r\n //Make sure each priority is multiple of the priority higher then it. If not a multiple\r\n //we round up so that it becomes a multiple.\r\n for (var i = 2; i > 0; --i) {\r\n if (profiles[profileName][i] > 0 && profiles[profileName][i - 1] > 0) {\r\n var timerMultiplier = profiles[profileName][i - 1] / profiles[profileName][i];\r\n profiles[profileName][i - 1] = Math.ceil(timerMultiplier) * profiles[profileName][i];\r\n }\r\n }\r\n this._profiles[profileName] = profiles[profileName];\r\n }\r\n }\r\n };\r\n /**\r\n * Pass the event to the event handler and try to schedule the timer.\r\n * @param {object} event - The event to be sent.\r\n */\r\n AWTTransmissionManagerCore.sendEvent = function (event) {\r\n if (this._newEventsAllowed) {\r\n //If the transmission is backed off then do not send synchronous events.\r\n //We will convert these events to High priority instead.\r\n if (this._currentBackoffCount > 0 && event.priority === Enums_1.AWTEventPriority.Immediate_sync) {\r\n event.priority = Enums_1.AWTEventPriority.High;\r\n }\r\n this._eventHandler.addEvent(event);\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Sends events for all priority for the current inbound queue.\r\n * This method adds new inbound queues to which new events will be added.\r\n * Note: If LogManager is paused or flush is called again in less than 30 sec\r\n * then flush will be no-op and the callback will not be called.\r\n * @param {function} callback - The function to be called when flush is finished.\r\n */\r\n AWTTransmissionManagerCore.flush = function (callback) {\r\n var currentTime = (new Date()).getTime();\r\n if (!this._paused && this._lastUploadNowCall + MinDurationBetweenUploadNow < currentTime) {\r\n this._lastUploadNowCall = currentTime;\r\n if (this._timeout > -1) {\r\n clearTimeout(this._timeout);\r\n this._timeout = -1;\r\n }\r\n this._eventHandler.uploadNow(callback);\r\n }\r\n };\r\n /**\r\n * Pauses transmission. It pauses the http manager and also clears timers.\r\n */\r\n AWTTransmissionManagerCore.pauseTransmission = function () {\r\n if (!this._paused) {\r\n this.clearTimeout();\r\n this._eventHandler.pauseTransmission();\r\n this._paused = true;\r\n }\r\n };\r\n /**\r\n * Resumes tranmission. It resumes the http manager and tries to schedule the timer.\r\n */\r\n AWTTransmissionManagerCore.resumeTransmision = function () {\r\n if (this._paused) {\r\n this._paused = false;\r\n this._eventHandler.resumeTransmission();\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Stops allowing new events being added for tranmission. It also batches all\r\n * events currently in the queue and creates requests from them to be sent.\r\n */\r\n AWTTransmissionManagerCore.flushAndTeardown = function () {\r\n AWTStatsManager_1.default.teardown();\r\n this._newEventsAllowed = false;\r\n this.clearTimeout();\r\n //No op if offline storage is added\r\n this._eventHandler.teardown();\r\n };\r\n /**\r\n * Backs off tranmission. This exponentially increases all the timers.\r\n */\r\n AWTTransmissionManagerCore.backOffTransmission = function () {\r\n if (this._currentBackoffCount < MaxBackoffCount) {\r\n this._currentBackoffCount++;\r\n this.clearTimeout();\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Clears backoff for tranmission.\r\n */\r\n AWTTransmissionManagerCore.clearBackOff = function () {\r\n if (this._currentBackoffCount > 0) {\r\n this._currentBackoffCount = 0;\r\n this.clearTimeout();\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Resets the transmit profiles to the default profiles of Real Time, Near Real Time\r\n * and Best Effort. This removes all the custom profiles that were loaded.\r\n */\r\n AWTTransmissionManagerCore._resetTransmitProfiles = function () {\r\n this.clearTimeout();\r\n this._initializeProfiles();\r\n this._currentProfile = DataModels_1.AWT_REAL_TIME;\r\n this.scheduleTimer();\r\n };\r\n AWTTransmissionManagerCore.clearTimeout = function () {\r\n if (this._timeout > 0) {\r\n clearTimeout(this._timeout);\r\n this._timeout = -1;\r\n this._timerCount = 0;\r\n }\r\n };\r\n AWTTransmissionManagerCore._batchAndSendEvents = function () {\r\n var priority = Enums_1.AWTEventPriority.High;\r\n this._timerCount++;\r\n if (this._timerCount * this._profiles[this._currentProfile][2] === this._profiles[this._currentProfile][0]) {\r\n priority = Enums_1.AWTEventPriority.Low;\r\n this._timerCount = 0;\r\n }\r\n else if (this._timerCount * this._profiles[this._currentProfile][2] === this._profiles[this._currentProfile][1]) {\r\n priority = Enums_1.AWTEventPriority.Normal;\r\n }\r\n this._eventHandler.sendEventsForPriorityAndAbove(priority);\r\n this._timeout = -1;\r\n this.scheduleTimer();\r\n };\r\n AWTTransmissionManagerCore._initializeProfiles = function () {\r\n this._profiles = {};\r\n this._profiles[DataModels_1.AWT_REAL_TIME] = [4, 2, 1];\r\n this._profiles[DataModels_1.AWT_NEAR_REAL_TIME] = [12, 6, 3];\r\n this._profiles[DataModels_1.AWT_BEST_EFFORT] = [36, 18, 9];\r\n };\r\n AWTTransmissionManagerCore._newEventsAllowed = false;\r\n AWTTransmissionManagerCore._currentProfile = DataModels_1.AWT_REAL_TIME;\r\n AWTTransmissionManagerCore._timeout = -1;\r\n AWTTransmissionManagerCore._currentBackoffCount = 0;\r\n AWTTransmissionManagerCore._paused = false;\r\n AWTTransmissionManagerCore._timerCount = 0;\r\n AWTTransmissionManagerCore._lastUploadNowCall = 0;\r\n return AWTTransmissionManagerCore;\r\n}());\r\nexports.default = AWTTransmissionManagerCore;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Enums.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n* File containing the enums.\r\n*/\r\n/**\r\n * The AWTUserIdType enumeration contains a set of values that specify the type of user ID.\r\n * @enum {number}\r\n */\r\nvar AWTUserIdType;\r\n(function (AWTUserIdType) {\r\n /**\r\n * The user ID type is unknown.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * Microsoft Account ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"MSACID\"] = 1] = \"MSACID\";\r\n /**\r\n * Microsoft .NET Passport Unique ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"MSAPUID\"] = 2] = \"MSAPUID\";\r\n /**\r\n * Anonymous user ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"ANID\"] = 3] = \"ANID\";\r\n /**\r\n * Organization customer ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"OrgIdCID\"] = 4] = \"OrgIdCID\";\r\n /**\r\n * Microsoft Exchange Passport ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"OrgIdPUID\"] = 5] = \"OrgIdPUID\";\r\n /**\r\n * User object ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"UserObjectId\"] = 6] = \"UserObjectId\";\r\n /**\r\n * Skype ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"Skype\"] = 7] = \"Skype\";\r\n /**\r\n * Yammer ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"Yammer\"] = 8] = \"Yammer\";\r\n /**\r\n * E-mail address.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"EmailAddress\"] = 9] = \"EmailAddress\";\r\n /**\r\n * Telephone number.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"PhoneNumber\"] = 10] = \"PhoneNumber\";\r\n /**\r\n * SIP address.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"SipAddress\"] = 11] = \"SipAddress\";\r\n /**\r\n * Multiple unit identity.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"MUID\"] = 12] = \"MUID\";\r\n})(AWTUserIdType = exports.AWTUserIdType || (exports.AWTUserIdType = {}));\r\n/**\r\n * The AWTSessionState enumeration contains a set of values that indicate the session state.\r\n * @enum {number}\r\n */\r\nvar AWTSessionState;\r\n(function (AWTSessionState) {\r\n /**\r\n * Session started.\r\n */\r\n AWTSessionState[AWTSessionState[\"Started\"] = 0] = \"Started\";\r\n /**\r\n * Session ended.\r\n */\r\n AWTSessionState[AWTSessionState[\"Ended\"] = 1] = \"Ended\";\r\n})(AWTSessionState = exports.AWTSessionState || (exports.AWTSessionState = {}));\r\n","\"use strict\";\r\n/**\r\n* bond_const.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//------------------------------------------------------------------------------\r\n// \r\n// This code was generated by a tool.\r\n//\r\n// Tool : bondc, Version=3.0.1, Build=bond-git.debug.not\r\n// Template : Microsoft.Bond.Rules.dll#TypeScript.tt\r\n// File : bond_const.ts\r\n//\r\n// Changes to this file may cause incorrect behavior and will be lost when\r\n// the code is regenerated.\r\n// \r\n//------------------------------------------------------------------------------\r\nvar _BondDataType;\r\n(function (_BondDataType) {\r\n _BondDataType[_BondDataType[\"_BT_STOP\"] = 0] = \"_BT_STOP\";\r\n _BondDataType[_BondDataType[\"_BT_STOP_BASE\"] = 1] = \"_BT_STOP_BASE\";\r\n _BondDataType[_BondDataType[\"_BT_BOOL\"] = 2] = \"_BT_BOOL\";\r\n _BondDataType[_BondDataType[\"_BT_DOUBLE\"] = 8] = \"_BT_DOUBLE\";\r\n _BondDataType[_BondDataType[\"_BT_STRING\"] = 9] = \"_BT_STRING\";\r\n _BondDataType[_BondDataType[\"_BT_STRUCT\"] = 10] = \"_BT_STRUCT\";\r\n _BondDataType[_BondDataType[\"_BT_LIST\"] = 11] = \"_BT_LIST\";\r\n _BondDataType[_BondDataType[\"_BT_MAP\"] = 13] = \"_BT_MAP\";\r\n _BondDataType[_BondDataType[\"_BT_INT32\"] = 16] = \"_BT_INT32\";\r\n _BondDataType[_BondDataType[\"_BT_INT64\"] = 17] = \"_BT_INT64\";\r\n})(_BondDataType = exports._BondDataType || (exports._BondDataType = {}));\r\n","\"use strict\";\r\n/**\r\n* microsoft.bond.utils.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BrowserChecker = /** @class */ (function () {\r\n function BrowserChecker() {\r\n }\r\n BrowserChecker._IsDataViewSupport = function () {\r\n return typeof ArrayBuffer !== 'undefined' &&\r\n typeof DataView !== 'undefined';\r\n };\r\n return BrowserChecker;\r\n}());\r\nexports.BrowserChecker = BrowserChecker;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Version.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n* File for SDK version.\r\n*/\r\nexports.Version = '1.8.4';\r\nexports.FullVersionString = 'AWT-Web-JS-' + exports.Version;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar AWTSerializer_1 = require(\"../common/AWTSerializer\");\r\nvar AWTRetryPolicy_1 = require(\"../common/AWTRetryPolicy\");\r\nvar AWTKillSwitch_1 = require(\"../common/AWTKillSwitch\");\r\nvar AWTClockSkewManager_1 = require(\"../common/AWTClockSkewManager\");\r\nvar Version = require(\"./Version\");\r\nvar Utils = require(\"../common/Utils\");\r\nvar AWTNotificationManager_1 = require(\"../common/AWTNotificationManager\");\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\nvar MaxConnections = 2;\r\nvar MaxRetries = 1;\r\nvar Method = 'POST';\r\n/**\r\n * Class managing the sending of requests.\r\n */\r\nvar AWTHttpManager = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * @param {object} requestQueue - The queue that contains the requests to be sent.\r\n * @param {string} collectorUrl - The collector url to which the requests must be sent.\r\n * @param {object} _queueManager - The queue manager that we should add requests back to if needed.\r\n * @param {object} _httpInterface - The http interface that should be used to send HTTP requests.\r\n */\r\n function AWTHttpManager(_requestQueue, collectorUrl, _queueManager, _httpInterface, clockSkewRefreshDurationInMins) {\r\n var _this = this;\r\n this._requestQueue = _requestQueue;\r\n this._queueManager = _queueManager;\r\n this._httpInterface = _httpInterface;\r\n this._urlString = '?qsp=true&content-type=application%2Fbond-compact-binary&client-id=NO_AUTH&sdk-version='\r\n + Version.FullVersionString;\r\n this._killSwitch = new AWTKillSwitch_1.default();\r\n this._paused = false;\r\n this._useBeacons = false;\r\n this._activeConnections = 0;\r\n this._clockSkewManager = new AWTClockSkewManager_1.default(clockSkewRefreshDurationInMins);\r\n if (!Utils.isUint8ArrayAvailable()) {\r\n this._urlString += '&content-encoding=base64';\r\n }\r\n this._urlString = collectorUrl + this._urlString;\r\n if (!this._httpInterface) {\r\n this._useBeacons = !Utils.isReactNative(); //Only use beacons if not running in React Native\r\n this._httpInterface = {\r\n sendPOST: function (urlString, data, ontimeout, onerror, onload, sync) {\r\n try {\r\n if (Utils.useXDomainRequest()) {\r\n var xdr = new XDomainRequest();\r\n xdr.open(Method, urlString);\r\n //can't get the status code in xdr.\r\n xdr.onload = function () {\r\n // we will assume onload means the request succeeded.\r\n onload(200, null);\r\n };\r\n xdr.onerror = function () {\r\n // we will assume onerror means we need to drop the events.\r\n onerror(400, null);\r\n };\r\n xdr.ontimeout = function () {\r\n // we will assume ontimeout means we need to retry the events.\r\n ontimeout(500, null);\r\n };\r\n xdr.send(data);\r\n }\r\n else if (Utils.isReactNative()) {\r\n //Use the fetch API to send events in React Native\r\n fetch(urlString, {\r\n body: data,\r\n method: Method\r\n }).then(function (response) {\r\n var headerMap = {};\r\n if (response.headers) {\r\n response.headers.forEach(function (value, name) {\r\n headerMap[name] = value;\r\n });\r\n }\r\n onload(response.status, headerMap);\r\n }).catch(function (error) {\r\n //In case there is an error in the request. Set the status to 0\r\n //so that the events can be retried later.\r\n onerror(0, {});\r\n });\r\n }\r\n else {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(Method, urlString, !sync);\r\n xhr_1.onload = function () {\r\n onload(xhr_1.status, _this._convertAllHeadersToMap(xhr_1.getAllResponseHeaders()));\r\n };\r\n xhr_1.onerror = function () {\r\n onerror(xhr_1.status, _this._convertAllHeadersToMap(xhr_1.getAllResponseHeaders()));\r\n };\r\n xhr_1.ontimeout = function () {\r\n ontimeout(xhr_1.status, _this._convertAllHeadersToMap(xhr_1.getAllResponseHeaders()));\r\n };\r\n xhr_1.send(data);\r\n }\r\n }\r\n catch (e) {\r\n // we will assume exception means we need to drop the events.\r\n onerror(400, null);\r\n }\r\n }\r\n };\r\n }\r\n }\r\n /**\r\n * Check if there is an idle connection overwhich we can send a request.\r\n * @return {boolean} True if there is an idle connection, false otherwise.\r\n */\r\n AWTHttpManager.prototype.hasIdleConnection = function () {\r\n return this._activeConnections < MaxConnections;\r\n };\r\n /**\r\n * Send requests in the request queue up if there is an idle connection, sending is\r\n * not pause and clock skew manager allows sending request.\r\n */\r\n AWTHttpManager.prototype.sendQueuedRequests = function () {\r\n while (this.hasIdleConnection() && !this._paused && this._requestQueue.length > 0\r\n && this._clockSkewManager.allowRequestSending()) {\r\n this._activeConnections++;\r\n this._sendRequest(this._requestQueue.shift(), 0, false);\r\n }\r\n //No more requests to send, tell TPM to try to schedule timer\r\n //in case it was waiting for idle connections\r\n if (this.hasIdleConnection()) {\r\n AWTTransmissionManagerCore_1.default.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Check if there are no active requests being sent.\r\n * @return {boolean} True if idle, false otherwise.\r\n */\r\n AWTHttpManager.prototype.isCompletelyIdle = function () {\r\n return this._activeConnections === 0;\r\n };\r\n /**\r\n * Queue all the remaning requests to be sent. The requests will be\r\n * sent using HTML5 Beacons if they are available.\r\n */\r\n AWTHttpManager.prototype.teardown = function () {\r\n while (this._requestQueue.length > 0) {\r\n this._sendRequest(this._requestQueue.shift(), 0, true);\r\n }\r\n };\r\n /**\r\n * Pause the sending of requests. No new requests will be sent.\r\n */\r\n AWTHttpManager.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n /**\r\n * Resume the sending of requests.\r\n */\r\n AWTHttpManager.prototype.resume = function () {\r\n this._paused = false;\r\n this.sendQueuedRequests();\r\n };\r\n /**\r\n * Removes any pending requests to be sent.\r\n */\r\n AWTHttpManager.prototype.removeQueuedRequests = function () {\r\n this._requestQueue.length = 0;\r\n };\r\n /**\r\n * Sends a request synchronously to the Aria collector. This api is used to send\r\n * a request containing a single immediate event.\r\n *\r\n * @param request - The request to be sent.\r\n * @param token - The token used to send the request.\r\n */\r\n AWTHttpManager.prototype.sendSynchronousRequest = function (request, token) {\r\n //This will not take into account the max connections restriction. Since this is sync, we can \r\n //only send one of this request at a time and thus should not worry about multiple connections \r\n //being used to send synchronoush events.\r\n if (this._paused) {\r\n //If paused then convert to High priority. It will be added back to queue in _sendRequest\r\n request[token][0].priority = Enums_1.AWTEventPriority.High;\r\n }\r\n //Increment active connection since we are still going to use a connection to send the request.\r\n this._activeConnections++;\r\n //For sync requests we will not wait for the clock skew. \r\n this._sendRequest(request, 0, false, true);\r\n };\r\n AWTHttpManager.prototype._sendRequest = function (request, retryCount, isTeardown, isSynchronous) {\r\n var _this = this;\r\n if (isSynchronous === void 0) { isSynchronous = false; }\r\n try {\r\n if (this._paused) {\r\n this._activeConnections--;\r\n this._queueManager.addBackRequest(request);\r\n return;\r\n }\r\n var tokenCount_1 = 0;\r\n var apikey_1 = '';\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n if (!this._killSwitch.isTenantKilled(token)) {\r\n if (apikey_1.length > 0) {\r\n apikey_1 += ',';\r\n }\r\n apikey_1 += token;\r\n tokenCount_1++;\r\n }\r\n else {\r\n AWTNotificationManager_1.default.eventsRejected(request[token], Enums_1.AWTEventsRejectedReason.KillSwitch);\r\n delete request[token];\r\n }\r\n }\r\n }\r\n if (tokenCount_1 > 0) {\r\n var payloadResult = AWTSerializer_1.default.getPayloadBlob(request, tokenCount_1);\r\n if (payloadResult.remainingRequest) {\r\n this._requestQueue.push(payloadResult.remainingRequest);\r\n }\r\n var urlString = this._urlString + '&x-apikey=' + apikey_1 + '&client-time-epoch-millis='\r\n + Date.now().toString();\r\n if (this._clockSkewManager.shouldAddClockSkewHeaders()) {\r\n urlString = urlString + '&time-delta-to-apply-millis=' + this._clockSkewManager.getClockSkewHeaderValue();\r\n }\r\n var data = void 0;\r\n if (!Utils.isUint8ArrayAvailable()) {\r\n data = AWTSerializer_1.default.base64Encode(payloadResult.payloadBlob);\r\n }\r\n else {\r\n data = new Uint8Array(payloadResult.payloadBlob);\r\n }\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n //Increment the send attempt count\r\n for (var i = 0; i < request[token].length; ++i) {\r\n request[token][i].sendAttempt > 0 ? request[token][i].sendAttempt++ : request[token][i].sendAttempt = 1;\r\n }\r\n }\r\n }\r\n //beacons will not be used if an http interface was passed by the customer\r\n if (this._useBeacons && isTeardown && Utils.isBeaconsSupported()) {\r\n if (navigator.sendBeacon(urlString, data)) {\r\n //Request sent via beacon.\r\n return;\r\n }\r\n }\r\n //Send sync requests if the request is immediate or we are tearing down telemetry.\r\n this._httpInterface.sendPOST(urlString, data, function (status, headers) {\r\n _this._retryRequestIfNeeded(status, headers, request, tokenCount_1, apikey_1, retryCount, isTeardown, isSynchronous);\r\n }, function (status, headers) {\r\n _this._retryRequestIfNeeded(status, headers, request, tokenCount_1, apikey_1, retryCount, isTeardown, isSynchronous);\r\n }, function (status, headers) {\r\n _this._retryRequestIfNeeded(status, headers, request, tokenCount_1, apikey_1, retryCount, isTeardown, isSynchronous);\r\n }, isTeardown || isSynchronous);\r\n }\r\n else if (!isTeardown) {\r\n this._handleRequestFinished(false, {}, isTeardown, isSynchronous);\r\n }\r\n }\r\n catch (e) {\r\n //If we catch any error while sending the request, drop the request.\r\n this._handleRequestFinished(false, {}, isTeardown, isSynchronous);\r\n }\r\n };\r\n AWTHttpManager.prototype._retryRequestIfNeeded = function (status, headers, request, tokenCount, apikey, retryCount, isTeardown, isSynchronous) {\r\n var _this = this;\r\n var shouldRetry = true;\r\n if (typeof status !== 'undefined') {\r\n if (headers) {\r\n var killedTokens = this._killSwitch.setKillSwitchTenants(headers['kill-tokens'], headers['kill-duration-seconds']);\r\n this._clockSkewManager.setClockSkew(headers['time-delta-millis']);\r\n for (var i = 0; i < killedTokens.length; ++i) {\r\n AWTNotificationManager_1.default.eventsRejected(request[killedTokens[i]], Enums_1.AWTEventsRejectedReason.KillSwitch);\r\n delete request[killedTokens[i]];\r\n tokenCount--;\r\n }\r\n }\r\n else {\r\n this._clockSkewManager.setClockSkew(null);\r\n }\r\n if (status === 200) {\r\n this._handleRequestFinished(true, request, isTeardown, isSynchronous);\r\n return;\r\n }\r\n if (!AWTRetryPolicy_1.default.shouldRetryForStatus(status) || tokenCount <= 0) {\r\n shouldRetry = false;\r\n }\r\n }\r\n if (shouldRetry) {\r\n if (isSynchronous) {\r\n //Synchronous events only contain a single event so the apiKey is equal to the token for that event.\r\n //Convert the event to High priority and add back to queue to be sent as High event.\r\n this._activeConnections--;\r\n request[apikey][0].priority = Enums_1.AWTEventPriority.High;\r\n this._queueManager.addBackRequest(request);\r\n }\r\n else if (retryCount < MaxRetries) {\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n AWTNotificationManager_1.default.eventsRetrying(request[token]);\r\n }\r\n }\r\n setTimeout(function () { return _this._sendRequest(request, retryCount + 1, false); }, AWTRetryPolicy_1.default.getMillisToBackoffForRetry(retryCount));\r\n }\r\n else {\r\n this._activeConnections--;\r\n AWTTransmissionManagerCore_1.default.backOffTransmission();\r\n this._queueManager.addBackRequest(request);\r\n }\r\n }\r\n else {\r\n this._handleRequestFinished(false, request, isTeardown, isSynchronous);\r\n }\r\n };\r\n AWTHttpManager.prototype._handleRequestFinished = function (success, request, isTeardown, isSynchronous) {\r\n if (success) {\r\n AWTTransmissionManagerCore_1.default.clearBackOff();\r\n }\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n if (success) {\r\n AWTNotificationManager_1.default.eventsSent(request[token]);\r\n }\r\n else {\r\n AWTNotificationManager_1.default.eventsDropped(request[token], Enums_1.AWTEventsDroppedReason.NonRetryableStatus);\r\n }\r\n }\r\n }\r\n this._activeConnections--;\r\n if (!isSynchronous && !isTeardown) {\r\n //Only continue sending more requests as long as the current request was not an synchronous request or sent\r\n //during teardown. We want to return after just sending this one sync request.\r\n this.sendQueuedRequests();\r\n }\r\n };\r\n /**\r\n * Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n */\r\n AWTHttpManager.prototype._convertAllHeadersToMap = function (headersString) {\r\n var headers = {};\r\n if (headersString) {\r\n var headersArray = headersString.split('\\n');\r\n for (var i = 0; i < headersArray.length; ++i) {\r\n var header = headersArray[i].split(': ');\r\n headers[header[0]] = header[1];\r\n }\r\n }\r\n return headers;\r\n };\r\n return AWTHttpManager;\r\n}());\r\nexports.default = AWTHttpManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AWTAutoCollection_1 = require(\"./AWTAutoCollection\");\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar Enums_2 = require(\"./Enums\");\r\nvar UI_IDTYPE = 'UserInfo.IdType';\r\n/**\r\n * Class to allow users to set semantic context properties.\r\n */\r\nvar AWTSemanticContext = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * @param {boolean} _allowDeviceFields - Allow setting of device semantic context.\r\n * @param {object} _properties - The event properties where to add the semantic context.\r\n */\r\n function AWTSemanticContext(_allowDeviceFields, _properties) {\r\n this._allowDeviceFields = _allowDeviceFields;\r\n this._properties = _properties;\r\n }\r\n /**\r\n * Sets the field AppInfo.Id with the given value.\r\n * @param {string} appId - The Id uniquely identifies the App from this this event originated.\r\n * In the multi-tenant Aria Platform, this is the Application Id of the\r\n * registered Application. Example, \"735d47645f7c4de69964e2c01888d6b6\".\r\n */\r\n AWTSemanticContext.prototype.setAppId = function (appId) {\r\n this._addContext('AppInfo.Id', appId);\r\n };\r\n /**\r\n * Sets the field AppInfo.Version with the given value.\r\n * @param {string} appVersion - The version of the App, retrieved programmatically where possible. This\r\n * is app/platform dependent. Examples such as \"7.0.0.100\" for Skype,\r\n * or \"12.0.30723.00 Update 3\" for Microsoft Visual Studio Ultimate 2013\r\n */\r\n AWTSemanticContext.prototype.setAppVersion = function (appVersion) {\r\n this._addContext('AppInfo.Version', appVersion);\r\n };\r\n /**\r\n * Sets the field AppInfo.Language with the given value.\r\n * @param {string} appLanguage - Language of the App in IETF language tag format, as described in RFC 4646.\r\n * Examples of acceptable values include \"en\", \"pt-BR\" and \"zh-Hant-CN\".\r\n */\r\n AWTSemanticContext.prototype.setAppLanguage = function (appLanguage) {\r\n this._addContext('AppInfo.Language', appLanguage);\r\n };\r\n /**\r\n * Sets the field DeviceInfo.Id with the given value.\r\n * @param {string} deviceId - The device Id uniquely identifies the physical device, using platform\r\n * available API's. This allows correlation against Aria Hardware Inventory.\r\n */\r\n AWTSemanticContext.prototype.setDeviceId = function (deviceId) {\r\n if (this._allowDeviceFields) {\r\n AWTAutoCollection_1.default.checkAndSaveDeviceId(deviceId);\r\n this._addContext('DeviceInfo.Id', deviceId);\r\n }\r\n };\r\n /**\r\n * Sets the field DeviceInfo.OsName with the given value.\r\n * @param {string} deviceOsName - The name of the OS. The SDK should ensure this is a limited normalized\r\n * set. Asimov is using very high level value e.g. Windows/Android/iOS.\r\n * Examples such as \"iOS\" or \"Windows Phone\".\r\n */\r\n AWTSemanticContext.prototype.setDeviceOsName = function (deviceOsName) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.OsName', deviceOsName);\r\n }\r\n };\r\n /**\r\n * Sets the field DeviceInfo.OsVersion with the given value.\r\n * @param {string} deviceOsVersion - The version of the OS, retrieved programmatically, which can be used\r\n * for aggregation or filtering for scenarios like real time monitoring\r\n * or metrics reporting. Flurry and GA provide aggregation at this level.\r\n * Examples such as \"8.1.2\" for iOS, or \"8.1\" for Windows Phone.\r\n */\r\n AWTSemanticContext.prototype.setDeviceOsVersion = function (deviceOsVersion) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.OsVersion', deviceOsVersion);\r\n }\r\n };\r\n /**\r\n * Sets the field DeviceInfo.Id with the given value.\r\n * @param {string} deviceBrowserName - he name of the OS. The SDK should ensure this is a limited normalized set.\r\n * Examples such as \"Chrome\" or \"Edge\".\r\n */\r\n AWTSemanticContext.prototype.setDeviceBrowserName = function (deviceBrowserName) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.BrowserName', deviceBrowserName);\r\n }\r\n };\r\n /**\r\n * Sets the field DeviceInfo.Id with the given value.\r\n * @param {string} deviceBrowserVersion - The version of the browser, retrieved programmatically, which can be used\r\n * for aggregation or filtering for scenarios like real time monitoring or metrics reporting.\r\n * Examples such as \"57.0.2987.133\" for Chrome, or \"15.15063\" for Edge.\r\n */\r\n AWTSemanticContext.prototype.setDeviceBrowserVersion = function (deviceBrowserVersion) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.BrowserVersion', deviceBrowserVersion);\r\n }\r\n };\r\n /**\r\n * Set the device manufacturer context information of telemetry event.\r\n * Can only be set at the LogManager level. Setting it via the object obtained from ILogger\r\n * will be no-op.\r\n * @param {string} deviceMake The manufacturer of the device, retrieved\r\n * programmatically where possible and is app/platform specific\r\n */\r\n AWTSemanticContext.prototype.setDeviceMake = function (deviceMake) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.Make', deviceMake);\r\n }\r\n };\r\n /**\r\n * Set the device model context information of telemetry event.\r\n * Can only be set at the LogManager level. Setting it via the object obtained from ILogger\r\n * will be no-op.\r\n * @param {string} deviceModel The model of the device, retrieved programmatically\r\n * where possible and is app/platform specific\r\n */\r\n AWTSemanticContext.prototype.setDeviceModel = function (deviceModel) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.Model', deviceModel);\r\n }\r\n };\r\n /**\r\n * Sets the field UserInfo.Id with the given value.\r\n * @param {string} userId - The id uniquely identifies the user in an application-specific\r\n * user namespace, such as a Skype ID in the Skype App. This may be empty for Apps\r\n * which do not require user sign-in.\r\n * @param {enum} pii - Optional pii type for the user id.\r\n * @param {enum} userIdType - Optional id type for the user id.\r\n */\r\n AWTSemanticContext.prototype.setUserId = function (userId, pii, userIdType) {\r\n if (!isNaN(userIdType) && userIdType !== null && userIdType >= 0 && userIdType <= 12) {\r\n this._addContext(UI_IDTYPE, userIdType.toString());\r\n }\r\n else {\r\n var inferredUserIdType = void 0;\r\n switch (pii) {\r\n case Enums_1.AWTPiiKind.SipAddress:\r\n inferredUserIdType = Enums_2.AWTUserIdType.SipAddress;\r\n break;\r\n case Enums_1.AWTPiiKind.PhoneNumber:\r\n inferredUserIdType = Enums_2.AWTUserIdType.PhoneNumber;\r\n break;\r\n case Enums_1.AWTPiiKind.SmtpAddress:\r\n inferredUserIdType = Enums_2.AWTUserIdType.EmailAddress;\r\n break;\r\n default:\r\n inferredUserIdType = Enums_2.AWTUserIdType.Unknown;\r\n break;\r\n }\r\n this._addContext(UI_IDTYPE, inferredUserIdType.toString());\r\n }\r\n if (isNaN(pii) || pii === null || pii === Enums_1.AWTPiiKind.NotSet || pii > 13) {\r\n switch (userIdType) {\r\n case Enums_2.AWTUserIdType.Skype:\r\n pii = Enums_1.AWTPiiKind.Identity;\r\n break;\r\n case Enums_2.AWTUserIdType.EmailAddress:\r\n pii = Enums_1.AWTPiiKind.SmtpAddress;\r\n break;\r\n case Enums_2.AWTUserIdType.PhoneNumber:\r\n pii = Enums_1.AWTPiiKind.PhoneNumber;\r\n break;\r\n case Enums_2.AWTUserIdType.SipAddress:\r\n pii = Enums_1.AWTPiiKind.SipAddress;\r\n break;\r\n default:\r\n pii = Enums_1.AWTPiiKind.NotSet;\r\n break;\r\n }\r\n }\r\n this._addContextWithPii('UserInfo.Id', userId, pii);\r\n };\r\n /**\r\n * Sets the field UserInfo.AdvertisingId with the given value.\r\n * @param {string} userAdvertisingId - The AdvertisingId is the user-specific device id obtainable through\r\n * platform API's. This may not be available if users choose to opt-out\r\n * of this id, or if the underlying platform does not support it.\r\n */\r\n AWTSemanticContext.prototype.setUserAdvertisingId = function (userAdvertisingId) {\r\n this._addContext('UserInfo.AdvertisingId', userAdvertisingId);\r\n };\r\n /**\r\n * Sets the field UserInfo.TimeZone with the given value.\r\n * @param {string} userTimeZone - The user's time zone relative to UTC, in ISO 8601 time zone format.\r\n * Examples of acceptable values include \"+00\", \"+07:00\", and \"-1130\".\r\n */\r\n AWTSemanticContext.prototype.setUserTimeZone = function (userTimeZone) {\r\n this._addContext('UserInfo.TimeZone', userTimeZone);\r\n };\r\n /**\r\n * Sets the field UserInfo.Language with the given value.\r\n * @param {string} userLanguage - The user's language in IETF language tag format, as described in RFC 4646.\r\n * Examples of acceptable values include \"en\", \"pt-BR\" and \"zh-Hant-CN\".\r\n */\r\n AWTSemanticContext.prototype.setUserLanguage = function (userLanguage) {\r\n this._addContext('UserInfo.Language', userLanguage);\r\n };\r\n AWTSemanticContext.prototype._addContext = function (key, value) {\r\n if (typeof value === 'string') {\r\n this._properties.setProperty(key, value);\r\n }\r\n };\r\n AWTSemanticContext.prototype._addContextWithPii = function (key, value, pii) {\r\n if (typeof value === 'string') {\r\n this._properties.setPropertyWithPii(key, value, pii);\r\n }\r\n };\r\n return AWTSemanticContext;\r\n}());\r\nexports.default = AWTSemanticContext;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTLogger.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar Enums_2 = require(\"./Enums\");\r\nvar AWTEventProperties_1 = require(\"./AWTEventProperties\");\r\nvar Utils = require(\"../common/Utils\");\r\nvar AWTStatsManager_1 = require(\"../common/AWTStatsManager\");\r\nvar AWTNotificationManager_1 = require(\"../common/AWTNotificationManager\");\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\nvar AWTLogManagerSettings_1 = require(\"./AWTLogManagerSettings\");\r\nvar Version = require(\"./Version\");\r\nvar AWTSemanticContext_1 = require(\"./AWTSemanticContext\");\r\nvar AWTAutoCollection_1 = require(\"./AWTAutoCollection\");\r\n/**\r\n* The AWTLogger class defines a logger.\r\n*/\r\nvar AWTLogger = /** @class */ (function () {\r\n /**\r\n * The AWTLogger class constructor.\r\n * @constructor\r\n * @param {string} _apiKey - The API key (also known as application key, and tenant token).\r\n */\r\n function AWTLogger(_apiKey) {\r\n this._apiKey = _apiKey;\r\n this._contextProperties = new AWTEventProperties_1.default();\r\n this._semanticContext = new AWTSemanticContext_1.default(false, this._contextProperties);\r\n this._sessionStartTime = 0;\r\n this._createInitId();\r\n }\r\n /**\r\n * Sets the context sent with every event from this logger.\r\n * @param {string} name - The name of the context property.\r\n * @param {string|number|boolean} value - The context property's value.\r\n * @param {enum} type - [Optional] The type of context property, as one of the AWTPropertyType enumeration values.\r\n */\r\n AWTLogger.prototype.setContext = function (name, value, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n this._contextProperties.setProperty(name, value, type);\r\n };\r\n /**\r\n * Sets context that will be sent with every event from this logger, and tags it as PII.\r\n * @param {string} name - The name of the context property.\r\n * @param {string|number|boolean} value - The context property's value.\r\n * @param {enum} pii - The kind of PII for the context property, as one of the AWTPiiKind enumeration values.\r\n * @param {enum} type - [Optional] The type of context property, as one of the AWTPropertyType enumeration values.\r\n */\r\n AWTLogger.prototype.setContextWithPii = function (name, value, pii, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n this._contextProperties.setPropertyWithPii(name, value, pii, type);\r\n };\r\n /**\r\n * Sets the context that sent with every event from this logger, and tags it as customer content.\r\n * @param {string} name - The name of the context property.\r\n * @param {string|number|boolean} value - The context property's value.\r\n * @param {enum} customerContent - The customer content kind, as one of the AWTCustomerContentKind enumeration values.\r\n * @param {enum} type - [Optional] The type of context property, as one of the AWTPropertyType enumeration values.\r\n */\r\n AWTLogger.prototype.setContextWithCustomerContent = function (name, value, customerContent, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n this._contextProperties.setPropertyWithCustomerContent(name, value, customerContent, type);\r\n };\r\n /**\r\n * Gets the logger semantic context.\r\n * Note: Device properties are not permitted at the logger level, but you can set them\r\n * at the global level using the AWTLogManager class.\r\n *\r\n * @return A AWTSemanticContext object that you can use to set common semantic properties.\r\n */\r\n AWTLogger.prototype.getSemanticContext = function () {\r\n return this._semanticContext;\r\n };\r\n /**\r\n * Logs a custom event with the specified name and fields - to track information\r\n * such as how a particular feature is used.\r\n * @param {Object} event - Can be either an AWTEventProperties object or an AWTEventData object or an event name.\r\n */\r\n AWTLogger.prototype.logEvent = function (event) {\r\n if (AWTLogManagerSettings_1.default.loggingEnabled) {\r\n if (!this._apiKey) {\r\n this._apiKey = AWTLogManagerSettings_1.default.defaultTenantToken;\r\n this._createInitId();\r\n }\r\n var sanitizeProperties = true;\r\n if (Utils.isString(event)) {\r\n event = {\r\n name: event\r\n };\r\n }\r\n else if (event instanceof AWTEventProperties_1.default) {\r\n event = event.getEvent();\r\n //AWTEventProperties will already sanitize properties\r\n sanitizeProperties = false;\r\n }\r\n AWTStatsManager_1.default.eventReceived(this._apiKey);\r\n AWTLogger._logEvent(AWTLogger._getInternalEvent(event, this._apiKey, sanitizeProperties), this._contextProperties);\r\n }\r\n };\r\n /**\r\n * Logs the session state.\r\n * Note: Calling Logging session start while a session already exists will produce a no-op. Similarly, calling logging\r\n * session end while a session does not exist will also produce a no-op.\r\n * @param {enum} state - The session's state.\r\n * @param {obbject} properties - [Optional] Properties of the session event as either a AWTEventProperties object,\r\n * or a AWTEventData object.\r\n */\r\n AWTLogger.prototype.logSession = function (state, properties) {\r\n if (AWTLogManagerSettings_1.default.sessionEnabled) {\r\n var sessionEvent = {\r\n name: 'session',\r\n type: 'session',\r\n properties: {}\r\n };\r\n AWTLogger._addPropertiesToEvent(sessionEvent, properties);\r\n sessionEvent.priority = Enums_1.AWTEventPriority.High;\r\n if (state === Enums_2.AWTSessionState.Started) {\r\n if (this._sessionStartTime > 0) {\r\n //Session start called out of order. Session start time being non zero indicates an ongoing session.\r\n return;\r\n }\r\n this._sessionStartTime = (new Date()).getTime();\r\n this._sessionId = Utils.newGuid();\r\n this.setContext('Session.Id', this._sessionId);\r\n sessionEvent.properties['Session.State'] = 'Started';\r\n }\r\n else if (state === Enums_2.AWTSessionState.Ended) {\r\n if (this._sessionStartTime === 0) {\r\n //Session end called out of order. Session start time being zero indicates no ongoing session.\r\n return;\r\n }\r\n var sessionDurationSec = Math.floor(((new Date()).getTime() - this._sessionStartTime) / 1000);\r\n sessionEvent.properties['Session.Id'] = this._sessionId;\r\n sessionEvent.properties['Session.State'] = 'Ended';\r\n sessionEvent.properties['Session.Duration'] = sessionDurationSec.toString();\r\n sessionEvent.properties['Session.DurationBucket'] =\r\n AWTLogger._getSessionDurationFromTime(sessionDurationSec);\r\n this._sessionStartTime = 0;\r\n this.setContext('Session.Id', null);\r\n this._sessionId = undefined;\r\n }\r\n else {\r\n return;\r\n }\r\n sessionEvent.properties['Session.FirstLaunchTime'] = AWTAutoCollection_1.default.firstLaunchTime;\r\n this.logEvent(sessionEvent);\r\n }\r\n };\r\n /**\r\n * Gets the session ID for the ongoing session.\r\n * @return {string} A string that contains the session ID for the ongoing session. Returns undefined if there is\r\n * no ongoing session.\r\n */\r\n AWTLogger.prototype.getSessionId = function () {\r\n return this._sessionId;\r\n };\r\n /**\r\n * Logs a failure event, such as an application exception.\r\n * @param {string} signature - A string that identifies the bucket of the failure.\r\n * @param {string} detail - A string that contains the a description of the failure.\r\n * @param {string} category - [Optional] A string that identifies the category of the failure, such as an application error,\r\n * a hang, or a crash.\r\n * @param {string} id - [Optional] A string that that uniquely identifies this failure.\r\n * @param {object} properties - [Optional] Properties of the failure event, as either an AWTEventProperties object or an\r\n * AWTEventData object. This value can also be null.\r\n */\r\n AWTLogger.prototype.logFailure = function (signature, detail, category, id, properties) {\r\n if (!signature || !detail) {\r\n return;\r\n }\r\n var failureEvent = {\r\n name: 'failure',\r\n type: 'failure',\r\n properties: {}\r\n };\r\n AWTLogger._addPropertiesToEvent(failureEvent, properties);\r\n failureEvent.properties['Failure.Signature'] = signature;\r\n failureEvent.properties['Failure.Detail'] = detail;\r\n if (category) {\r\n failureEvent.properties['Failure.Category'] = category;\r\n }\r\n if (id) {\r\n failureEvent.properties['Failure.Id'] = id;\r\n }\r\n failureEvent.priority = Enums_1.AWTEventPriority.High;\r\n this.logEvent(failureEvent);\r\n };\r\n /**\r\n * Logs a page view event which is normally a result of a user action on a UI page - such as search query,\r\n * a content request, or a page navigation.\r\n *\r\n * @param {string} id - A string that uniquely identifies this page.\r\n * @param {string} pageName - The name of the page.\r\n * @param {string} category - [Optional] A string that contains the category to which this page belongs.\r\n * @param {string} uri - [Optional] A string that contains the URI of this page.\r\n * @param {string} referrerUri - [Optional] A string that contains the URI that refers to this page.\r\n * @param {object} properties - [Optional] Properties of the page view event, as an AWTEventProperties object.\r\n * This value can also be null.\r\n */\r\n AWTLogger.prototype.logPageView = function (id, pageName, category, uri, referrerUri, properties) {\r\n if (!id || !pageName) {\r\n return;\r\n }\r\n var pageViewEvent = {\r\n name: 'pageview',\r\n type: 'pageview',\r\n properties: {}\r\n };\r\n AWTLogger._addPropertiesToEvent(pageViewEvent, properties);\r\n pageViewEvent.properties['PageView.Id'] = id;\r\n pageViewEvent.properties['PageView.Name'] = pageName;\r\n if (category) {\r\n pageViewEvent.properties['PageView.Category'] = category;\r\n }\r\n if (uri) {\r\n pageViewEvent.properties['PageView.Uri'] = uri;\r\n }\r\n if (referrerUri) {\r\n pageViewEvent.properties['PageView.ReferrerUri'] = referrerUri;\r\n }\r\n this.logEvent(pageViewEvent);\r\n };\r\n AWTLogger.prototype._createInitId = function () {\r\n // If no init ID for this tenant token exists, create one\r\n if (!AWTLogger._initIdMap[this._apiKey] && this._apiKey) {\r\n AWTLogger._initIdMap[this._apiKey] = Utils.newGuid();\r\n }\r\n };\r\n AWTLogger._addPropertiesToEvent = function (event, propertiesEvent) {\r\n if (propertiesEvent) {\r\n if (propertiesEvent instanceof AWTEventProperties_1.default) {\r\n propertiesEvent = propertiesEvent.getEvent();\r\n }\r\n if (propertiesEvent.name) {\r\n event.name = propertiesEvent.name;\r\n }\r\n if (propertiesEvent.priority) {\r\n event.priority = propertiesEvent.priority;\r\n }\r\n for (var name_1 in propertiesEvent.properties) {\r\n if (propertiesEvent.properties.hasOwnProperty(name_1)) {\r\n event.properties[name_1] = propertiesEvent.properties[name_1];\r\n }\r\n }\r\n }\r\n };\r\n AWTLogger._getSessionDurationFromTime = function (timeInSec) {\r\n if (timeInSec < 0) {\r\n return 'Undefined';\r\n }\r\n else if (timeInSec <= 3) {\r\n return 'UpTo3Sec';\r\n }\r\n else if (timeInSec <= 10) {\r\n return 'UpTo10Sec';\r\n }\r\n else if (timeInSec <= 30) {\r\n return 'UpTo30Sec';\r\n }\r\n else if (timeInSec <= 60) {\r\n return 'UpTo60Sec';\r\n }\r\n else if (timeInSec <= 180) {\r\n return 'UpTo3Min';\r\n }\r\n else if (timeInSec <= 600) {\r\n return 'UpTo10Min';\r\n }\r\n else if (timeInSec <= 1800) {\r\n return 'UpTo30Min';\r\n }\r\n return 'Above30Min';\r\n };\r\n AWTLogger._logEvent = function (eventWithMetaData, contextProperties) {\r\n if (!eventWithMetaData.name || !Utils.isString(eventWithMetaData.name)) {\r\n AWTNotificationManager_1.default.eventsRejected([eventWithMetaData], Enums_1.AWTEventsRejectedReason.InvalidEvent);\r\n return;\r\n }\r\n eventWithMetaData.name = eventWithMetaData.name.toLowerCase();\r\n //Check if name is a string and replace . with _ if it is. Drop otherwise.\r\n eventWithMetaData.name = eventWithMetaData.name.replace(Utils.EventNameDotRegex, '_');\r\n if (!eventWithMetaData.type || !Utils.isString(eventWithMetaData.type)) {\r\n eventWithMetaData.type = 'custom';\r\n }\r\n else {\r\n eventWithMetaData.type = eventWithMetaData.type.toLowerCase();\r\n }\r\n //Validate name and type and drop if invalid\r\n if (!Utils.EventNameAndTypeRegex.test(eventWithMetaData.name) || !Utils.EventNameAndTypeRegex.test(eventWithMetaData.type)) {\r\n AWTNotificationManager_1.default.eventsRejected([eventWithMetaData], Enums_1.AWTEventsRejectedReason.InvalidEvent);\r\n return;\r\n }\r\n //Add the timestamp if the timestamp is not set or is negative.\r\n if (!Utils.isNumber(eventWithMetaData.timestamp) || eventWithMetaData.timestamp < 0) {\r\n eventWithMetaData.timestamp = (new Date()).getTime();\r\n }\r\n //If no properties create one for EventInfo and context \r\n if (!eventWithMetaData.properties) {\r\n eventWithMetaData.properties = {};\r\n }\r\n // Logger ContextProperties\r\n this._addContextIfAbsent(eventWithMetaData, contextProperties.getPropertyMap());\r\n // LogManager ContextProperties\r\n this._addContextIfAbsent(eventWithMetaData, AWTLogManagerSettings_1.default.logManagerContext.getPropertyMap());\r\n //Add event info\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.InitId', this._getInitId(eventWithMetaData.apiKey));\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.Sequence', this._getSequenceId(eventWithMetaData.apiKey));\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.SdkVersion', Version.FullVersionString);\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.Name', eventWithMetaData.name);\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.Time', (new Date(eventWithMetaData.timestamp)).toISOString());\r\n if (!Utils.isPriority(eventWithMetaData.priority)) {\r\n eventWithMetaData.priority = Enums_1.AWTEventPriority.Normal;\r\n }\r\n this._sendEvent(eventWithMetaData);\r\n };\r\n AWTLogger._addContextIfAbsent = function (event, contextProperties) {\r\n if (contextProperties) {\r\n for (var name_2 in contextProperties) {\r\n if (contextProperties.hasOwnProperty(name_2)) {\r\n if (!event.properties[name_2]) {\r\n event.properties[name_2] = contextProperties[name_2];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n AWTLogger._setDefaultProperty = function (event, name, value) {\r\n event.properties[name] = { value: value, pii: Enums_1.AWTPiiKind.NotSet, type: Enums_1.AWTPropertyType.String };\r\n };\r\n AWTLogger._sendEvent = function (event) {\r\n AWTTransmissionManagerCore_1.default.sendEvent(event);\r\n };\r\n AWTLogger._getInternalEvent = function (event, apiKey, sanitizeProperties) {\r\n event.properties = event.properties || {};\r\n if (sanitizeProperties) {\r\n // Event Properties \r\n for (var name_3 in event.properties) {\r\n if (event.properties.hasOwnProperty(name_3)) {\r\n event.properties[name_3] = Utils.sanitizeProperty(name_3, event.properties[name_3]);\r\n if (event.properties[name_3] === null) {\r\n delete event.properties[name_3];\r\n }\r\n }\r\n }\r\n }\r\n var internalEvent = event;\r\n internalEvent.id = Utils.newGuid();\r\n internalEvent.apiKey = apiKey;\r\n return internalEvent;\r\n };\r\n AWTLogger._getInitId = function (apiKey) {\r\n return AWTLogger._initIdMap[apiKey];\r\n };\r\n AWTLogger._getSequenceId = function (apiKey) {\r\n if (AWTLogger._sequenceIdMap[apiKey] === undefined) {\r\n AWTLogger._sequenceIdMap[apiKey] = 0;\r\n }\r\n return (++AWTLogger._sequenceIdMap[apiKey]).toString();\r\n };\r\n AWTLogger._sequenceIdMap = {};\r\n AWTLogger._initIdMap = {};\r\n return AWTLogger;\r\n}());\r\nexports.default = AWTLogger;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTAutoCollection.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n*/\r\nvar Utils = require(\"../common/Utils\");\r\nvar DEVICE_ID_COOKIE = 'MicrosoftApplicationsTelemetryDeviceId';\r\nvar FIRSTLAUNCHTIME_COOKIE = 'MicrosoftApplicationsTelemetryFirstLaunchTime';\r\nvar BROWSERS = {\r\n MSIE: 'MSIE',\r\n CHROME: 'Chrome',\r\n FIREFOX: 'Firefox',\r\n SAFARI: 'Safari',\r\n EDGE: 'Edge',\r\n ELECTRON: 'Electron',\r\n SKYPE_SHELL: 'SkypeShell',\r\n PHANTOMJS: 'PhantomJS',\r\n OPERA: 'Opera'\r\n};\r\nvar OPERATING_SYSTEMS = {\r\n WINDOWS: 'Windows',\r\n MACOSX: 'Mac OS X',\r\n WINDOWS_PHONE: 'Windows Phone',\r\n WINDOWS_RT: 'Windows RT',\r\n IOS: 'iOS',\r\n ANDROID: 'Android',\r\n LINUX: 'Linux',\r\n CROS: 'Chrome OS',\r\n UNKNOWN: 'Unknown'\r\n};\r\nvar OSNAMEREGEX = {\r\n WIN: /(windows|win32)/i,\r\n WINRT: / arm;/i,\r\n WINPHONE: /windows\\sphone\\s\\d+\\.\\d+/i,\r\n OSX: /(macintosh|mac os x)/i,\r\n IOS: /(iPad|iPhone|iPod)(?=.*like Mac OS X)/i,\r\n LINUX: /(linux|joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk)/i,\r\n ANDROID: /android/i,\r\n CROS: /CrOS/i\r\n};\r\nvar VERSION_MAPPINGS = {\r\n '5.1': 'XP',\r\n '6.0': 'Vista',\r\n '6.1': '7',\r\n '6.2': '8',\r\n '6.3': '8.1',\r\n '10.0': '10'\r\n};\r\nvar REGEX_VERSION = '([\\\\d,.]+)';\r\nvar REGEX_VERSION_MAC = '([\\\\d,_,.]+)';\r\nvar UNKNOWN = 'Unknown';\r\nvar UNDEFINED = 'undefined';\r\n/**\r\n * Class that stores semantic properties.\r\n */\r\nvar AWTAutoCollection = /** @class */ (function () {\r\n function AWTAutoCollection() {\r\n }\r\n /**\r\n * Add a property storage override to override the usage of document.cookie to store\r\n * properties. The property storage object should implement both getProperty and setProperty, otherwise\r\n * it will be rejected.\r\n * @param {object} propertyStorage - Property storage object which is used for storing SDK properties.\r\n * @return {boolean} True if the property storage override was accepted, false otherwise.\r\n */\r\n AWTAutoCollection.addPropertyStorageOverride = function (propertyStorage) {\r\n if (propertyStorage) {\r\n this._propertyStorage = propertyStorage;\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Auto collect semantic context properties.\r\n * @param {object} semantContext - The semantic context to use to set auto collected information.\r\n * @param {boolean} disableCookies - Determines if setting cookies is disabled.\r\n * @param {object} userAgent - UserAgent string to be used for auto collection of semantic properties.\r\n */\r\n AWTAutoCollection.autoCollect = function (semanticContext, disableCookies, userAgent) {\r\n this._semanticContext = semanticContext;\r\n this._disableCookies = disableCookies;\r\n this._autoCollect();\r\n if (!userAgent && typeof navigator !== UNDEFINED) {\r\n userAgent = navigator.userAgent || '';\r\n }\r\n this._autoCollectFromUserAgent(userAgent);\r\n if (this._disableCookies && !this._propertyStorage) {\r\n this._deleteCookie(DEVICE_ID_COOKIE);\r\n this._deleteCookie(FIRSTLAUNCHTIME_COOKIE);\r\n return;\r\n }\r\n //Only collect device id if it can be stored\r\n if (this._propertyStorage || (this._areCookiesAvailable && !this._disableCookies)) {\r\n this._autoCollectDeviceId();\r\n }\r\n };\r\n /**\r\n * Checks if the device id stored is the same as the new device id. If they are not,\r\n * store the new id and store a new first launch time.\r\n * @param {string} deviceId - The new device id.\r\n */\r\n AWTAutoCollection.checkAndSaveDeviceId = function (deviceId) {\r\n if (deviceId) {\r\n var oldDeviceId = this._getData(DEVICE_ID_COOKIE);\r\n var flt = this._getData(FIRSTLAUNCHTIME_COOKIE);\r\n if (oldDeviceId !== deviceId) {\r\n flt = Utils.getISOString(new Date());\r\n }\r\n this._saveData(DEVICE_ID_COOKIE, deviceId);\r\n this._saveData(FIRSTLAUNCHTIME_COOKIE, flt);\r\n this._setFirstLaunchTime(flt);\r\n }\r\n };\r\n /**\r\n * Auto collect the device SDK Id.\r\n */\r\n AWTAutoCollection._autoCollectDeviceId = function () {\r\n var deviceId = this._getData(DEVICE_ID_COOKIE);\r\n if (!deviceId) {\r\n deviceId = Utils.newGuid();\r\n }\r\n this._semanticContext.setDeviceId(deviceId);\r\n };\r\n AWTAutoCollection._autoCollect = function () {\r\n //Get app language\r\n if (typeof document !== UNDEFINED && document.documentElement) {\r\n this._semanticContext.setAppLanguage(document.documentElement.lang);\r\n }\r\n //Get user language\r\n if (typeof navigator !== UNDEFINED) {\r\n this._semanticContext.setUserLanguage(navigator.userLanguage || navigator.language);\r\n }\r\n //Get time zone\r\n var timeZone = new Date().getTimezoneOffset();\r\n var minutes = timeZone % 60;\r\n var hours = (timeZone - minutes) / 60;\r\n var timeZonePrefix = '+';\r\n if (hours > 0) {\r\n timeZonePrefix = '-';\r\n }\r\n hours = Math.abs(hours);\r\n minutes = Math.abs(minutes);\r\n this._semanticContext.setUserTimeZone(timeZonePrefix + (hours < 10 ? '0' + hours : hours.toString()) + ':'\r\n + (minutes < 10 ? '0' + minutes : minutes.toString()));\r\n };\r\n AWTAutoCollection._autoCollectFromUserAgent = function (userAgent) {\r\n if (userAgent) {\r\n var browserName = this._getBrowserName(userAgent);\r\n this._semanticContext.setDeviceBrowserName(browserName);\r\n this._semanticContext.setDeviceBrowserVersion(this._getBrowserVersion(userAgent, browserName));\r\n var osName = this._getOsName(userAgent);\r\n this._semanticContext.setDeviceOsName(osName);\r\n this._semanticContext.setDeviceOsVersion(this._getOsVersion(userAgent, osName));\r\n }\r\n };\r\n AWTAutoCollection._getBrowserName = function (userAgent) {\r\n //Check for Opera first \r\n if (this._userAgentContainsString('OPR/', userAgent)) {\r\n return BROWSERS.OPERA;\r\n }\r\n //Check for Phantom JS\r\n if (this._userAgentContainsString(BROWSERS.PHANTOMJS, userAgent)) {\r\n return BROWSERS.PHANTOMJS;\r\n }\r\n //Check for Edge\r\n if (this._userAgentContainsString(BROWSERS.EDGE, userAgent)) {\r\n return BROWSERS.EDGE;\r\n }\r\n //Check for Electron\r\n if (this._userAgentContainsString(BROWSERS.ELECTRON, userAgent)) {\r\n return BROWSERS.ELECTRON;\r\n }\r\n //Check for Chrome\r\n if (this._userAgentContainsString(BROWSERS.CHROME, userAgent)) {\r\n return BROWSERS.CHROME;\r\n }\r\n //Check for Internet Explorer\r\n if (this._userAgentContainsString('Trident', userAgent)) {\r\n return BROWSERS.MSIE;\r\n }\r\n //Check for Firefox\r\n if (this._userAgentContainsString(BROWSERS.FIREFOX, userAgent)) {\r\n return BROWSERS.FIREFOX;\r\n }\r\n //Check for Safari\r\n if (this._userAgentContainsString(BROWSERS.SAFARI, userAgent)) {\r\n return BROWSERS.SAFARI;\r\n }\r\n //Check for Skype shell\r\n if (this._userAgentContainsString(BROWSERS.SKYPE_SHELL, userAgent)) {\r\n return BROWSERS.SKYPE_SHELL;\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._setFirstLaunchTime = function (flt) {\r\n if (!isNaN(flt)) {\r\n var fltDate = new Date();\r\n fltDate.setTime(parseInt(flt, 10));\r\n flt = Utils.getISOString(fltDate);\r\n }\r\n this.firstLaunchTime = flt;\r\n };\r\n AWTAutoCollection._userAgentContainsString = function (searchString, userAgent) {\r\n return userAgent.indexOf(searchString) > -1;\r\n };\r\n AWTAutoCollection._getBrowserVersion = function (userAgent, browserName) {\r\n if (browserName === BROWSERS.MSIE) {\r\n return this._getIeVersion(userAgent);\r\n }\r\n else {\r\n return this._getOtherVersion(browserName, userAgent);\r\n }\r\n };\r\n AWTAutoCollection._getIeVersion = function (userAgent) {\r\n var classicIeVersionMatches = userAgent.match(new RegExp(BROWSERS.MSIE + ' ' + REGEX_VERSION));\r\n if (classicIeVersionMatches) {\r\n return classicIeVersionMatches[1];\r\n }\r\n else {\r\n var ieVersionMatches = userAgent.match(new RegExp('rv:' + REGEX_VERSION));\r\n if (ieVersionMatches) {\r\n return ieVersionMatches[1];\r\n }\r\n }\r\n };\r\n AWTAutoCollection._getOtherVersion = function (browserString, userAgent) {\r\n if (browserString === BROWSERS.SAFARI) {\r\n browserString = 'Version';\r\n }\r\n var matches = userAgent.match(new RegExp(browserString + '/' + REGEX_VERSION));\r\n if (matches) {\r\n return matches[1];\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getOsName = function (userAgent) {\r\n if (userAgent.match(OSNAMEREGEX.WINPHONE)) {\r\n return OPERATING_SYSTEMS.WINDOWS_PHONE;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.WINRT)) {\r\n return OPERATING_SYSTEMS.WINDOWS_RT;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.IOS)) {\r\n return OPERATING_SYSTEMS.IOS;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.ANDROID)) {\r\n return OPERATING_SYSTEMS.ANDROID;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.LINUX)) {\r\n return OPERATING_SYSTEMS.LINUX;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.OSX)) {\r\n return OPERATING_SYSTEMS.MACOSX;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.WIN)) {\r\n return OPERATING_SYSTEMS.WINDOWS;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.CROS)) {\r\n return OPERATING_SYSTEMS.CROS;\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getOsVersion = function (userAgent, osName) {\r\n if (osName === OPERATING_SYSTEMS.WINDOWS) {\r\n return this._getGenericOsVersion(userAgent, 'Windows NT');\r\n }\r\n if (osName === OPERATING_SYSTEMS.ANDROID) {\r\n return this._getGenericOsVersion(userAgent, osName);\r\n }\r\n if (osName === OPERATING_SYSTEMS.MACOSX) {\r\n return this._getMacOsxVersion(userAgent);\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getGenericOsVersion = function (userAgent, osName) {\r\n var ntVersionMatches = userAgent.match(new RegExp(osName + ' ' + REGEX_VERSION));\r\n if (ntVersionMatches) {\r\n if (VERSION_MAPPINGS[ntVersionMatches[1]]) {\r\n return VERSION_MAPPINGS[ntVersionMatches[1]];\r\n }\r\n return ntVersionMatches[1];\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getMacOsxVersion = function (userAgent) {\r\n var macOsxVersionInUserAgentMatches = userAgent.match(new RegExp(OPERATING_SYSTEMS.MACOSX + ' ' + REGEX_VERSION_MAC));\r\n if (macOsxVersionInUserAgentMatches) {\r\n var versionString = macOsxVersionInUserAgentMatches[1].replace(/_/g, '.');\r\n if (versionString) {\r\n var delimiter = this._getDelimiter(versionString);\r\n if (delimiter) {\r\n var components = versionString.split(delimiter);\r\n return components[0];\r\n }\r\n else {\r\n return versionString;\r\n }\r\n }\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getDelimiter = function (versionString) {\r\n if (versionString.indexOf('.') > -1) {\r\n return '.';\r\n }\r\n if (versionString.indexOf('_') > -1) {\r\n return '_';\r\n }\r\n return null;\r\n };\r\n AWTAutoCollection._saveData = function (name, value) {\r\n if (this._propertyStorage) {\r\n this._propertyStorage.setProperty(name, value);\r\n }\r\n else if (this._areCookiesAvailable) {\r\n //Expires in 365 days\r\n var date = new Date();\r\n date.setTime(date.getTime() + 31536000000 /*365 days in milliseconds*/);\r\n var expires = 'expires=' + date.toUTCString();\r\n document.cookie = name + '=' + value + '; ' + expires;\r\n }\r\n };\r\n AWTAutoCollection._getData = function (name) {\r\n if (this._propertyStorage) {\r\n return this._propertyStorage.getProperty(name) || '';\r\n }\r\n else if (this._areCookiesAvailable) {\r\n name = name + '=';\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n var j = 0;\r\n while (c.charAt(j) === ' ') {\r\n j++;\r\n }\r\n c = c.substring(j);\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n }\r\n return '';\r\n };\r\n AWTAutoCollection._deleteCookie = function (name) {\r\n if (this._areCookiesAvailable) {\r\n document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n }\r\n };\r\n AWTAutoCollection._disableCookies = false;\r\n AWTAutoCollection._areCookiesAvailable = typeof document !== UNDEFINED && typeof document.cookie !== UNDEFINED;\r\n return AWTAutoCollection;\r\n}());\r\nexports.default = AWTAutoCollection;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Utils.ts\r\n* @author Brent Erickson (brericks) and Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n* File containing utility functions.\r\n*/\r\nvar microsoft_bond_primitives_1 = require(\"../bond/microsoft.bond.primitives\");\r\nvar Enums_1 = require(\"./Enums\");\r\nvar GuidRegex = /[xy]/g;\r\nvar MSTillUnixEpoch = 62135596800000;\r\nvar MSToTicksMultiplier = 10000;\r\nvar NullValue = null;\r\nexports.EventNameAndTypeRegex = /^[a-zA-Z]([a-zA-Z0-9]|_){2,98}[a-zA-Z0-9]$/;\r\nexports.EventNameDotRegex = /\\./g;\r\nexports.PropertyNameRegex = /^[a-zA-Z](([a-zA-Z0-9|_|\\.]){0,98}[a-zA-Z0-9])?$/;\r\nexports.StatsApiKey = 'a387cfcf60114a43a7699f9fbb49289e-9bceb9fe-1c06-460f-96c5-6a0b247358bc-7238';\r\nvar beaconsSupported = NullValue;\r\nvar uInt8ArraySupported = NullValue;\r\nvar useXDR = NullValue;\r\n/**\r\n * Converts a number to Bond Int64.\r\n * @param {number} value - The number to be converted.\r\n * @return {object} The Int64 value for the passed number.\r\n */\r\nfunction numberToBondInt64(value) {\r\n // Construct bond timestamp for aria\r\n var bond_value = new microsoft_bond_primitives_1.Int64('0');\r\n bond_value.low = value & 0xffffffff;\r\n bond_value.high = Math.floor(value / 0x100000000);\r\n return bond_value;\r\n}\r\nexports.numberToBondInt64 = numberToBondInt64;\r\n/**\r\n * Creates a new GUID.\r\n * @return {string} A GUID.\r\n */\r\nfunction newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(GuidRegex, function (c) {\r\n var r = (Math.random() * 16 | 0), v = (c === 'x' ? r : r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n}\r\nexports.newGuid = newGuid;\r\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\nfunction isString(value) {\r\n return typeof value === 'string';\r\n}\r\nexports.isString = isString;\r\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nfunction isNumber(value) {\r\n return typeof value === 'number';\r\n}\r\nexports.isNumber = isNumber;\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nfunction isBoolean(value) {\r\n return typeof value === 'boolean';\r\n}\r\nexports.isBoolean = isBoolean;\r\n/**\r\n * Check if the type of value is a date.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a date, false otherwise.\r\n */\r\nfunction isDate(value) {\r\n return value instanceof Date;\r\n}\r\nexports.isDate = isDate;\r\n/**\r\n * Converts milliseconds to ticks since 00:00:00 Jan 1, 0001.\r\n * @param {number} msToTicks - The milliseconds value to be converted.\r\n * @return {number} The value of the milliseconds in .Net Ticks.\r\n */\r\nfunction msToTicks(timeInMs) {\r\n return (timeInMs + MSTillUnixEpoch) * MSToTicksMultiplier;\r\n}\r\nexports.msToTicks = msToTicks;\r\n/**\r\n * Gets the tenant id from the tenant token.\r\n * @param {string} apiKey - The token from which the tenant id is to be extracted.\r\n * @return {string} The tenant id.\r\n */\r\nfunction getTenantId(apiKey) {\r\n var indexTenantId = apiKey.indexOf('-');\r\n if (indexTenantId > -1) {\r\n return apiKey.substring(0, indexTenantId);\r\n }\r\n return '';\r\n}\r\nexports.getTenantId = getTenantId;\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @return {boolean} True if supported, false otherwise.\r\n */\r\nfunction isBeaconsSupported() {\r\n if (beaconsSupported === NullValue) {\r\n beaconsSupported = typeof navigator !== 'undefined' && Boolean(navigator.sendBeacon);\r\n }\r\n return beaconsSupported;\r\n}\r\nexports.isBeaconsSupported = isBeaconsSupported;\r\n/**\r\n * Checks if Uint8Array are available in the current environment. Safari and Firefox along with\r\n * ReactNative are known to not support Uint8Array properly.\r\n * @return {boolean} True if available, false otherwise.\r\n */\r\nfunction isUint8ArrayAvailable() {\r\n if (uInt8ArraySupported === NullValue) {\r\n uInt8ArraySupported = typeof Uint8Array !== 'undefined' && !isSafariOrFirefox() && !isReactNative();\r\n }\r\n return uInt8ArraySupported;\r\n}\r\nexports.isUint8ArrayAvailable = isUint8ArrayAvailable;\r\n/**\r\n * Checks if the value is an AWTEventPriority.\r\n * @param {enum} value - The value that needs to be checked.\r\n * @return {boolean} True if the value is in AWTEventPriority, false otherwise.\r\n */\r\nfunction isPriority(value) {\r\n if (isNumber(value) && ((value >= 1 && value <= 3) || value === 5)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexports.isPriority = isPriority;\r\n/**\r\n * Sanitizes the Property. It checks the that the property name and value are valid. It also\r\n * checks/populates the correct type and pii of the property value.\r\n * @param {string} name - The property name.\r\n * @param {string|number|boolean|Date|object} property - The property value or an AWTEventProperty containing value,\r\n * type ,pii and customer content.\r\n * @return {object} AWTEventProperty containing valid name, value, pii and type or null if invalid.\r\n */\r\nfunction sanitizeProperty(name, property) {\r\n //Check that property is valid\r\n if (!exports.PropertyNameRegex.test(name) || isNotDefined(property)) {\r\n return NullValue;\r\n }\r\n //Check if type is AWTEventProperty. If not convert to AWTEventProperty\r\n if (isNotDefined(property.value)) {\r\n property = { value: property, type: Enums_1.AWTPropertyType.Unspecified };\r\n }\r\n property.type = sanitizePropertyType(property.value, property.type);\r\n if (!property.type) {\r\n return NullValue;\r\n }\r\n //If value is date. Then convert to number in Ticks.\r\n if (isDate(property.value)) {\r\n property.value = msToTicks(property.value.getTime());\r\n }\r\n //Ensure that only one of pii or customer content can be set\r\n if (property.pii > 0 && property.cc > 0) {\r\n return NullValue;\r\n }\r\n //If pii is set we need to validate its enum value.\r\n if (property.pii) {\r\n return isPii(property.pii) ? property : NullValue;\r\n }\r\n //If cc is set we need to validate its enum value.\r\n if (property.cc) {\r\n return isCustomerContent(property.cc) ? property : NullValue;\r\n }\r\n return property;\r\n}\r\nexports.sanitizeProperty = sanitizeProperty;\r\n/**\r\n * Converts a date object into an ISO string. This is needed because not all browsers support ISO string format\r\n * on the date.\r\n * @param {object} date - The date which needs to be converted to ISO format.\r\n * @return {string} The date in ISO format.\r\n */\r\nfunction getISOString(date) {\r\n return date.getUTCFullYear() + '-' +\r\n twoDigit(date.getUTCMonth() + 1) + '-' +\r\n twoDigit(date.getUTCDate()) + 'T' +\r\n twoDigit(date.getUTCHours()) + ':' +\r\n twoDigit(date.getUTCMinutes()) + ':' +\r\n twoDigit(date.getUTCSeconds()) + '.' +\r\n threeDigit(date.getUTCMilliseconds()) + 'Z';\r\n}\r\nexports.getISOString = getISOString;\r\nfunction useXDomainRequest() {\r\n if (useXDR === NullValue) {\r\n var conn = new XMLHttpRequest();\r\n if (typeof conn.withCredentials === 'undefined' &&\r\n typeof XDomainRequest !== 'undefined') {\r\n useXDR = true;\r\n }\r\n else {\r\n useXDR = false;\r\n }\r\n }\r\n return useXDR;\r\n}\r\nexports.useXDomainRequest = useXDomainRequest;\r\nfunction isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n if (typeof navigator !== 'undefined' && navigator.product) {\r\n return navigator.product === 'ReactNative';\r\n }\r\n return false;\r\n}\r\nexports.isReactNative = isReactNative;\r\nfunction twoDigit(n) {\r\n // Format integers to have at least two digits.\r\n return n < 10 ? '0' + n : n.toString();\r\n}\r\nfunction threeDigit(n) {\r\n // Format integers to have at least three digits.\r\n if (n < 10) {\r\n return '00' + n;\r\n }\r\n else if (n < 100) {\r\n return '0' + n;\r\n }\r\n return n.toString();\r\n}\r\nfunction sanitizePropertyType(value, type) {\r\n type = !isPropertyType(type) ? Enums_1.AWTPropertyType.Unspecified : type;\r\n switch (type) {\r\n case Enums_1.AWTPropertyType.Unspecified:\r\n return getCorrectType(value);\r\n case Enums_1.AWTPropertyType.String:\r\n return isString(value) ? type : NullValue;\r\n case Enums_1.AWTPropertyType.Boolean:\r\n return isBoolean(value) ? type : NullValue;\r\n case Enums_1.AWTPropertyType.Date:\r\n return isDate(value) && value.getTime() !== NaN ? type : NullValue;\r\n case Enums_1.AWTPropertyType.Int64:\r\n return isNumber(value) && value % 1 === 0 ? type : NullValue;\r\n case Enums_1.AWTPropertyType.Double:\r\n return isNumber(value) ? type : NullValue;\r\n }\r\n return NullValue;\r\n}\r\nfunction getCorrectType(value) {\r\n switch (typeof value) {\r\n case 'string':\r\n return Enums_1.AWTPropertyType.String;\r\n case 'boolean':\r\n return Enums_1.AWTPropertyType.Boolean;\r\n case 'number':\r\n return Enums_1.AWTPropertyType.Double;\r\n case 'object':\r\n return isDate(value) ? Enums_1.AWTPropertyType.Date : NullValue;\r\n }\r\n return NullValue;\r\n}\r\nfunction isPii(value) {\r\n if (isNumber(value) && value >= 0 && value <= 13) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isCustomerContent(value) {\r\n if (isNumber(value) && value >= 0 && value <= 1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isPropertyType(value) {\r\n if (isNumber(value) && value >= 0 && value <= 4) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSafariOrFirefox() {\r\n // If non-browser navigator will be undefined\r\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\r\n var ua = navigator.userAgent.toLowerCase();\r\n if ((ua.indexOf('safari') >= 0 || ua.indexOf('firefox') >= 0) && ua.indexOf('chrome') < 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction isNotDefined(value) {\r\n return value === undefined || value === NullValue || value === '';\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTLogManagerSettings.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar AWTEventProperties_1 = require(\"./AWTEventProperties\");\r\nvar AWTSemanticContext_1 = require(\"./AWTSemanticContext\");\r\n/**\r\n* Class that stores LogManagers context.\r\n*/\r\nvar AWTLogManagerSettings = /** @class */ (function () {\r\n function AWTLogManagerSettings() {\r\n }\r\n AWTLogManagerSettings.logManagerContext = new AWTEventProperties_1.default();\r\n AWTLogManagerSettings.sessionEnabled = true;\r\n AWTLogManagerSettings.loggingEnabled = false;\r\n AWTLogManagerSettings.defaultTenantToken = '';\r\n AWTLogManagerSettings.semanticContext = new AWTSemanticContext_1.default(true, AWTLogManagerSettings.logManagerContext);\r\n return AWTLogManagerSettings;\r\n}());\r\nexports.default = AWTLogManagerSettings;\r\n","\"use strict\";\r\n/**\r\n* microsoft.bond.primitives.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Int64 = /** @class */ (function () {\r\n function Int64(numberStr) {\r\n this.low = 0;\r\n this.high = 0;\r\n this.low = parseInt(numberStr, 10);\r\n if (this.low < 0) {\r\n this.high = -1;\r\n }\r\n }\r\n Int64.prototype._Equals = function (numberStr) {\r\n var tmp = new Int64(numberStr);\r\n return this.low === tmp.low && this.high === tmp.high;\r\n };\r\n return Int64;\r\n}());\r\nexports.Int64 = Int64;\r\nvar UInt64 = /** @class */ (function () {\r\n function UInt64(numberStr) {\r\n this.low = 0;\r\n this.high = 0;\r\n this.low = parseInt(numberStr, 10);\r\n }\r\n UInt64.prototype._Equals = function (numberStr) {\r\n var tmp = new UInt64(numberStr);\r\n return this.low === tmp.low && this.high === tmp.high;\r\n };\r\n return UInt64;\r\n}());\r\nexports.UInt64 = UInt64;\r\nvar Number = /** @class */ (function () {\r\n function Number() {\r\n }\r\n Number._ToByte = function (value) {\r\n return this._ToUInt8(value);\r\n };\r\n Number._ToUInt8 = function (value) {\r\n return value & 0xff;\r\n };\r\n Number._ToInt32 = function (value) {\r\n var signMask = (value & 0x80000000);\r\n return (value & 0x7fffffff) | signMask;\r\n };\r\n Number._ToUInt32 = function (value) {\r\n return value & 0xffffffff;\r\n };\r\n return Number;\r\n}());\r\nexports.Number = Number;\r\n","\"use strict\";\r\n/**\r\n* microsoft.bond.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar bond_const_1 = require(\"./bond_const\");\r\nexports._BondDataType = bond_const_1._BondDataType;\r\nvar _Encoding = require(\"./microsoft.bond.encoding\");\r\nexports._Encoding = _Encoding;\r\nvar IO = require(\"./microsoft.bond.io\");\r\nexports.IO = IO;\r\nvar microsoft_bond_primitives_1 = require(\"./microsoft.bond.primitives\");\r\nexports.Int64 = microsoft_bond_primitives_1.Int64;\r\nexports.UInt64 = microsoft_bond_primitives_1.UInt64;\r\nexports.Number = microsoft_bond_primitives_1.Number;\r\nvar CompactBinaryProtocolWriter = /** @class */ (function () {\r\n function CompactBinaryProtocolWriter(stream) {\r\n this._stream = stream;\r\n }\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteBlob = function (blob) {\r\n this._stream._Write(blob, 0, blob.length);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteBool = function (value) {\r\n this._stream._WriteByte(value ? 1 : 0);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteContainerBegin = function (size, elementType) {\r\n this._WriteUInt8(elementType);\r\n this._WriteUInt32(size);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteMapContainerBegin = function (size, keyType, valueType) {\r\n this._WriteUInt8(keyType);\r\n this._WriteUInt8(valueType);\r\n this._WriteUInt32(size);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteDouble = function (value) {\r\n var array = _Encoding._Double_GetBytes(value);\r\n this._stream._Write(array, 0, array.length);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteFieldBegin = function (type, id, metadata) {\r\n if (id <= 5) {\r\n this._stream._WriteByte(type | (id << 5));\r\n }\r\n else if (id <= 0xff) {\r\n this._stream._WriteByte(type | (6 << 5));\r\n this._stream._WriteByte(id);\r\n }\r\n else {\r\n this._stream._WriteByte(type | (7 << 5));\r\n this._stream._WriteByte(id);\r\n this._stream._WriteByte(id >> 8);\r\n }\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteInt32 = function (value) {\r\n value = _Encoding._Zigzag_EncodeZigzag32(value);\r\n this._WriteUInt32(value);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteInt64 = function (value) {\r\n this._WriteUInt64(_Encoding._Zigzag_EncodeZigzag64(value));\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteString = function (value) {\r\n if (value === '') {\r\n this._WriteUInt32(0 /*length*/);\r\n }\r\n else {\r\n var array = _Encoding._Utf8_GetBytes(value);\r\n this._WriteUInt32(array.length);\r\n this._stream._Write(array, 0, array.length);\r\n }\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteStructEnd = function (isBase) {\r\n this._WriteUInt8(isBase ? bond_const_1._BondDataType._BT_STOP_BASE : bond_const_1._BondDataType._BT_STOP);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteUInt32 = function (value) {\r\n var array = _Encoding._Varint_GetBytes(microsoft_bond_primitives_1.Number._ToUInt32(value));\r\n this._stream._Write(array, 0, array.length);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteUInt64 = function (value) {\r\n var array = _Encoding._Varint64_GetBytes(value);\r\n this._stream._Write(array, 0, array.length);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteUInt8 = function (value) {\r\n this._stream._WriteByte(microsoft_bond_primitives_1.Number._ToUInt8(value));\r\n };\r\n return CompactBinaryProtocolWriter;\r\n}());\r\nexports.CompactBinaryProtocolWriter = CompactBinaryProtocolWriter;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Enums.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n* File containing the enums.\r\n*/\r\n/**\r\n * The AWTPropertyType enumeration contains a set of values that specify types of properties.\r\n * @enum {number}\r\n */\r\nvar AWTPropertyType;\r\n(function (AWTPropertyType) {\r\n /**\r\n * Property type is unspecified.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * A string.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"String\"] = 1] = \"String\";\r\n /**\r\n * A 64-bit integer.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Int64\"] = 2] = \"Int64\";\r\n /**\r\n * A double.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Double\"] = 3] = \"Double\";\r\n /**\r\n * A boolean.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Boolean\"] = 4] = \"Boolean\";\r\n /**\r\n * A date.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Date\"] = 5] = \"Date\";\r\n})(AWTPropertyType = exports.AWTPropertyType || (exports.AWTPropertyType = {}));\r\n/**\r\n * The AWTPiiKind enumeration contains a set of values that specify the kind of PII (Personal Identifiable Information).\r\n * @enum {number}\r\n */\r\nvar AWTPiiKind;\r\n(function (AWTPiiKind) {\r\n /**\r\n * No kind.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * An LDAP distinguished name. For example, CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=COM.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"DistinguishedName\"] = 1] = \"DistinguishedName\";\r\n /**\r\n * Generic information.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"GenericData\"] = 2] = \"GenericData\";\r\n /**\r\n * An IPV4 Internet address. For example, 192.0.2.1.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"IPV4Address\"] = 3] = \"IPV4Address\";\r\n /**\r\n * An IPV6 Internet address. For example, 2001:0db8:85a3:0000:0000:8a2e:0370:7334.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"IPv6Address\"] = 4] = \"IPv6Address\";\r\n /**\r\n * The Subject of an e-mail message.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"MailSubject\"] = 5] = \"MailSubject\";\r\n /**\r\n * A telephone number.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"PhoneNumber\"] = 6] = \"PhoneNumber\";\r\n /**\r\n * A query string.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"QueryString\"] = 7] = \"QueryString\";\r\n /**\r\n * An SIP (Session Internet Protocol) address.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"SipAddress\"] = 8] = \"SipAddress\";\r\n /**\r\n * An e-mail address.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"SmtpAddress\"] = 9] = \"SmtpAddress\";\r\n /**\r\n * An user ID.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"Identity\"] = 10] = \"Identity\";\r\n /**\r\n * A URI (Uniform Resource Identifier).\r\n */\r\n AWTPiiKind[AWTPiiKind[\"Uri\"] = 11] = \"Uri\";\r\n /**\r\n * The fully-qualified domain name.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"Fqdn\"] = 12] = \"Fqdn\";\r\n /**\r\n * Scrubs the last octet in a IPV4 Internet address.\r\n * For example: 10.121.227.147 becomes 10.121.227.*\r\n */\r\n AWTPiiKind[AWTPiiKind[\"IPV4AddressLegacy\"] = 13] = \"IPV4AddressLegacy\";\r\n})(AWTPiiKind = exports.AWTPiiKind || (exports.AWTPiiKind = {}));\r\n/**\r\n * The AWTCustomerContentKind enumeration contains a set of values that specify the kind of customer content.\r\n * @enum {number}\r\n */\r\nvar AWTCustomerContentKind;\r\n(function (AWTCustomerContentKind) {\r\n /**\r\n * No kind.\r\n */\r\n AWTCustomerContentKind[AWTCustomerContentKind[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Generic content.\r\n */\r\n AWTCustomerContentKind[AWTCustomerContentKind[\"GenericContent\"] = 1] = \"GenericContent\";\r\n})(AWTCustomerContentKind = exports.AWTCustomerContentKind || (exports.AWTCustomerContentKind = {}));\r\n/**\r\n * The AWTEventPriority enumeration contains a set of values that specify an event's priority.\r\n * @enum {number}\r\n */\r\nvar AWTEventPriority;\r\n(function (AWTEventPriority) {\r\n /**\r\n * Low priority.\r\n */\r\n AWTEventPriority[AWTEventPriority[\"Low\"] = 1] = \"Low\";\r\n /**\r\n * Normal priority.\r\n */\r\n AWTEventPriority[AWTEventPriority[\"Normal\"] = 2] = \"Normal\";\r\n /**\r\n * High priority.\r\n */\r\n AWTEventPriority[AWTEventPriority[\"High\"] = 3] = \"High\";\r\n /**\r\n * Immediate_sync priority (Events are sent sync immediately).\r\n */\r\n AWTEventPriority[AWTEventPriority[\"Immediate_sync\"] = 5] = \"Immediate_sync\";\r\n})(AWTEventPriority = exports.AWTEventPriority || (exports.AWTEventPriority = {}));\r\n/**\r\n * The AWTEventsDroppedReason enumeration contains a set of values that specify the reason for dropping an event.\r\n * @enum {number}\r\n */\r\nvar AWTEventsDroppedReason;\r\n(function (AWTEventsDroppedReason) {\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n AWTEventsDroppedReason[AWTEventsDroppedReason[\"NonRetryableStatus\"] = 1] = \"NonRetryableStatus\";\r\n /**\r\n * Enum value 2 has been deprecated\r\n */\r\n /**\r\n * The event queue is full.\r\n */\r\n AWTEventsDroppedReason[AWTEventsDroppedReason[\"QueueFull\"] = 3] = \"QueueFull\";\r\n /**\r\n * Max retry limit reached.\r\n */\r\n AWTEventsDroppedReason[AWTEventsDroppedReason[\"MaxRetryLimit\"] = 4] = \"MaxRetryLimit\";\r\n})(AWTEventsDroppedReason = exports.AWTEventsDroppedReason || (exports.AWTEventsDroppedReason = {}));\r\n/**\r\n * The AWTEventsRejectedReason enumeration contains a set of values that specify the reason for rejecting an event.\r\n * @enum {number}\r\n */\r\nvar AWTEventsRejectedReason;\r\n(function (AWTEventsRejectedReason) {\r\n /**\r\n * The event is invalid.\r\n */\r\n AWTEventsRejectedReason[AWTEventsRejectedReason[\"InvalidEvent\"] = 1] = \"InvalidEvent\";\r\n /**\r\n * The size of the event is too large.\r\n */\r\n AWTEventsRejectedReason[AWTEventsRejectedReason[\"SizeLimitExceeded\"] = 2] = \"SizeLimitExceeded\";\r\n /**\r\n * The server is not accepting events from this token.\r\n */\r\n AWTEventsRejectedReason[AWTEventsRejectedReason[\"KillSwitch\"] = 3] = \"KillSwitch\";\r\n})(AWTEventsRejectedReason = exports.AWTEventsRejectedReason || (exports.AWTEventsRejectedReason = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar Enums_2 = require(\"./Enums\");\r\nvar AWTLogManagerSettings_1 = require(\"./AWTLogManagerSettings\");\r\nvar AWTLogger_1 = require(\"./AWTLogger\");\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\nvar AWTNotificationManager_1 = require(\"../common/AWTNotificationManager\");\r\nvar AWTAutoCollection_1 = require(\"./AWTAutoCollection\");\r\n/**\r\n* The AWTLogManager class manages the Aria SDK.\r\n*/\r\nvar AWTLogManager = /** @class */ (function () {\r\n function AWTLogManager() {\r\n }\r\n /**\r\n * Initializes the log manager. After this method is called, events are\r\n * accepted for transmission.\r\n * @param {string} tenantToken - A string that contains the default tenant token.\r\n * @param {object} config - [Optional] Configuration settings for initialize, as an AWTLogConfiguration object.\r\n */\r\n AWTLogManager.initialize = function (tenantToken, configuration) {\r\n if (configuration === void 0) { configuration = {}; }\r\n if (this._isInitialized) {\r\n return;\r\n }\r\n this._isInitialized = true;\r\n AWTLogManagerSettings_1.default.defaultTenantToken = tenantToken;\r\n this._overrideValuesFromConfig(configuration);\r\n if (this._config.disableCookiesUsage && !this._config.propertyStorageOverride) {\r\n AWTLogManagerSettings_1.default.sessionEnabled = false;\r\n }\r\n AWTAutoCollection_1.default.addPropertyStorageOverride(this._config.propertyStorageOverride);\r\n AWTAutoCollection_1.default.autoCollect(AWTLogManagerSettings_1.default.semanticContext, this._config.disableCookiesUsage, this._config.userAgent);\r\n //Create sender\r\n AWTTransmissionManagerCore_1.default.initialize(this._config);\r\n AWTLogManagerSettings_1.default.loggingEnabled = true;\r\n //Autolog session events for browsers\r\n if (this._config.enableAutoUserSession) {\r\n this.getLogger().logSession(Enums_2.AWTSessionState.Started);\r\n window.addEventListener('beforeunload', this.flushAndTeardown);\r\n }\r\n return this.getLogger();\r\n };\r\n /**\r\n * Gets the global semantic context.\r\n *\r\n * @return A AWTSemanticContext object, through which you can set common semantic properties.\r\n */\r\n AWTLogManager.getSemanticContext = function () {\r\n return AWTLogManagerSettings_1.default.semanticContext;\r\n };\r\n /**\r\n * Asynchronously sends events currently in the queue. New events added\r\n * are sent after the current flush finishes. The passed callback is\r\n * called when flush finishes. Note: If LogManager is paused, or if\r\n * flush is called again in less than 30 seconds, then flush is no-op, and\r\n * the callback is not called.\r\n * @param {function} callback - The function that is called when flush finishes.\r\n */\r\n AWTLogManager.flush = function (callback) {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.flush(callback);\r\n }\r\n };\r\n /**\r\n * Prevents new events from being added for transmission. It also batches all\r\n * events currently in the queue, and creates requests for them to be sent. If\r\n * HTML5 Beacons are supported, then they will be used.\r\n */\r\n AWTLogManager.flushAndTeardown = function () {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n if (this._config.enableAutoUserSession) {\r\n this.getLogger().logSession(Enums_2.AWTSessionState.Ended);\r\n }\r\n AWTTransmissionManagerCore_1.default.flushAndTeardown();\r\n AWTLogManagerSettings_1.default.loggingEnabled = false;\r\n this._isDestroyed = true;\r\n }\r\n };\r\n /**\r\n * Pasues the transmission of events.\r\n */\r\n AWTLogManager.pauseTransmission = function () {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.pauseTransmission();\r\n }\r\n };\r\n /**\r\n * Resumes the tranmission of events.\r\n */\r\n AWTLogManager.resumeTransmision = function () {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.resumeTransmision();\r\n }\r\n };\r\n /**\r\n * Sets the transmit profile. This changes the transmission timers\r\n * based on the transmit profile.\r\n * @param {string} profileName - A string that contains the name of the transmit profile.\r\n */\r\n AWTLogManager.setTransmitProfile = function (profileName) {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.setTransmitProfile(profileName);\r\n }\r\n };\r\n /**\r\n * Loads custom transmission profiles. Each profile should have timers for\r\n * high, normal, and low. Each profile should make sure\r\n * that a each priority timer is a multiple of the priority higher than it.\r\n * Setting the timer value to -1 means the events for that priority will\r\n * not be sent. Note that once a priority has been set to not send, then all priorities\r\n * below it will also not be sent. The timers should be in the form of [low, normal, high].\r\n * E.g, Custom: [30,10,5].\r\n * This method removes any previously loaded custom profiles.\r\n * @param {object} profiles - A dictionary that contains the transmit profiles.\r\n */\r\n AWTLogManager.loadTransmitProfiles = function (profiles) {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.loadTransmitProfiles(profiles);\r\n }\r\n };\r\n /**\r\n * Sets the context sent with every event.\r\n * @param {string} name - A string that contains the name of the context property.\r\n * @param {string|number|boolean} value - The value of the context property.\r\n * @param {enum} type - [Optional] The type for the context property value, as one of the\r\n * AWTPropertyType enumeration values.\r\n */\r\n AWTLogManager.setContext = function (name, value, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n AWTLogManagerSettings_1.default.logManagerContext.setProperty(name, value, type);\r\n };\r\n /**\r\n * Sets the context sents with every event, and tags it as PII.\r\n * @param {string} name - A string that contains the name of the context property.\r\n * @param {string|number|boolean} value - The value of the context property.\r\n * @param {enum} pii - The kind of PII for the context property.\r\n * @param {enum} type - [Optional] The type for the context property value, as one of the\r\n * AWTPropertyType enumeration values.\r\n */\r\n AWTLogManager.setContextWithPii = function (name, value, pii, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n AWTLogManagerSettings_1.default.logManagerContext.setPropertyWithPii(name, value, pii, type);\r\n };\r\n /**\r\n * Sets the context sent with every event from this logger, and tags it as customer content.\r\n * @param {string} name - A string that contains the name of the context property.\r\n * @param {string|number|boolean} value - The value of the context property.\r\n * @param {enum} customerContent - The kind of customer content for the context property, as one of the\r\n * AWTCustomerContentKind enumeration values.\r\n * @param {enum} type - [Optional] The type for the context property value, as one of the\r\n * AWTPropertyType enumeration values.\r\n */\r\n AWTLogManager.setContextWithCustomerContent = function (name, value, customerContent, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n AWTLogManagerSettings_1.default.logManagerContext.setPropertyWithCustomerContent(name, value, customerContent, type);\r\n };\r\n /**\r\n * Gets the logger for the specified tenant token.\r\n * @param {string} tenantToken - A string that contains the tenant token.\r\n * @return An AWTLogger object which sends data with the specified tenant token. If the tenant token is\r\n * undefined, or null, or empty, then undefined is returned.\r\n */\r\n AWTLogManager.getLogger = function (tenantToken) {\r\n var key = tenantToken;\r\n if (!key || key === AWTLogManagerSettings_1.default.defaultTenantToken) {\r\n key = '';\r\n }\r\n if (!this._loggers[key]) {\r\n this._loggers[key] = new AWTLogger_1.default(key);\r\n }\r\n return this._loggers[key];\r\n };\r\n /**\r\n * Adds a notification listener. The Aria SDK calls methods on the listener\r\n * when an appropriate notification is raised.\r\n * @param {object} listener - An AWTNotificationListener object.\r\n */\r\n AWTLogManager.addNotificationListener = function (listener) {\r\n AWTNotificationManager_1.default.addNotificationListener(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {object} listener - AWTNotificationListener to remove.\r\n */\r\n AWTLogManager.removeNotificationListener = function (listener) {\r\n AWTNotificationManager_1.default.removeNotificationListener(listener);\r\n };\r\n AWTLogManager._overrideValuesFromConfig = function (config) {\r\n if (config.collectorUri) {\r\n this._config.collectorUri = config.collectorUri;\r\n }\r\n if (config.cacheMemorySizeLimitInNumberOfEvents > 0) {\r\n this._config.cacheMemorySizeLimitInNumberOfEvents = config.cacheMemorySizeLimitInNumberOfEvents;\r\n }\r\n if (config.httpXHROverride && config.httpXHROverride.sendPOST) {\r\n this._config.httpXHROverride = config.httpXHROverride;\r\n }\r\n if (config.propertyStorageOverride && config.propertyStorageOverride.getProperty &&\r\n config.propertyStorageOverride.setProperty) {\r\n this._config.propertyStorageOverride = config.propertyStorageOverride;\r\n }\r\n if (config.userAgent) {\r\n this._config.userAgent = config.userAgent;\r\n }\r\n if (config.disableCookiesUsage) {\r\n this._config.disableCookiesUsage = config.disableCookiesUsage;\r\n }\r\n if (config.canSendStatEvent) {\r\n this._config.canSendStatEvent = config.canSendStatEvent;\r\n }\r\n if (config.enableAutoUserSession && typeof window !== 'undefined' && window.addEventListener) {\r\n this._config.enableAutoUserSession = config.enableAutoUserSession;\r\n }\r\n if (config.clockSkewRefreshDurationInMins > 0) {\r\n this._config.clockSkewRefreshDurationInMins = config.clockSkewRefreshDurationInMins;\r\n }\r\n };\r\n AWTLogManager._loggers = {};\r\n AWTLogManager._isInitialized = false;\r\n AWTLogManager._isDestroyed = false;\r\n AWTLogManager._config = {\r\n collectorUri: 'https://browser.pipe.aria.microsoft.com/Collector/3.0/',\r\n cacheMemorySizeLimitInNumberOfEvents: 10000,\r\n disableCookiesUsage: false,\r\n canSendStatEvent: function (eventName) { return true; },\r\n clockSkewRefreshDurationInMins: 0\r\n };\r\n return AWTLogManager;\r\n}());\r\nexports.default = AWTLogManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTStatsManager.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar Utils = require(\"./Utils\");\r\nvar AWTNotificationManager_1 = require(\"./AWTNotificationManager\");\r\nvar Enums_1 = require(\"./Enums\");\r\nvar StatsTimer = 60000;\r\n/**\r\n* Class that manages the stats.\r\n*/\r\nvar AWTStatsManager = /** @class */ (function () {\r\n function AWTStatsManager() {\r\n }\r\n /**\r\n * Intiailizes the stats collection.\r\n * @param {function} sendStats - The function to call when the stats are ready to be sent.\r\n */\r\n AWTStatsManager.initialize = function (sendStats) {\r\n var _this = this;\r\n this._sendStats = sendStats;\r\n this._isInitalized = true;\r\n AWTNotificationManager_1.default.addNotificationListener({\r\n eventsSent: function (events) {\r\n _this._addStat('records_sent_count', events.length, events[0].apiKey);\r\n },\r\n eventsDropped: function (events, reason) {\r\n switch (reason) {\r\n case Enums_1.AWTEventsDroppedReason.NonRetryableStatus:\r\n _this._addStat('d_send_fail', events.length, events[0].apiKey);\r\n _this._addStat('records_dropped_count', events.length, events[0].apiKey);\r\n break;\r\n case Enums_1.AWTEventsDroppedReason.MaxRetryLimit:\r\n _this._addStat('d_retry_limit', events.length, events[0].apiKey);\r\n _this._addStat('records_dropped_count', events.length, events[0].apiKey);\r\n break;\r\n case Enums_1.AWTEventsDroppedReason.QueueFull:\r\n _this._addStat('d_queue_full', events.length, events[0].apiKey);\r\n break;\r\n }\r\n },\r\n eventsRejected: function (events, reason) {\r\n switch (reason) {\r\n case Enums_1.AWTEventsRejectedReason.InvalidEvent:\r\n _this._addStat('r_inv', events.length, events[0].apiKey);\r\n break;\r\n case Enums_1.AWTEventsRejectedReason.KillSwitch:\r\n _this._addStat('r_kl', events.length, events[0].apiKey);\r\n break;\r\n case Enums_1.AWTEventsRejectedReason.SizeLimitExceeded:\r\n _this._addStat('r_size', events.length, events[0].apiKey);\r\n break;\r\n }\r\n _this._addStat('r_count', events.length, events[0].apiKey);\r\n },\r\n eventsRetrying: null\r\n });\r\n setTimeout(function () { return _this.flush(); }, StatsTimer);\r\n };\r\n /**\r\n * Flush the current stats and stop the stats collection.\r\n */\r\n AWTStatsManager.teardown = function () {\r\n if (this._isInitalized) {\r\n this.flush();\r\n this._isInitalized = false;\r\n }\r\n };\r\n /**\r\n * Increments the stat for event received.\r\n * @param {string} apiKey - The apiKey for which the event was received\r\n */\r\n AWTStatsManager.eventReceived = function (apiKey) {\r\n AWTStatsManager._addStat('records_received_count', 1, apiKey);\r\n };\r\n /**\r\n * Creates an event for each tenant token which had a stat and calls the\r\n * sendStats for that token.\r\n */\r\n AWTStatsManager.flush = function () {\r\n var _this = this;\r\n if (this._isInitalized) {\r\n for (var tenantId in this._stats) {\r\n if (this._stats.hasOwnProperty(tenantId)) {\r\n this._sendStats(this._stats[tenantId], tenantId);\r\n }\r\n }\r\n this._stats = {};\r\n setTimeout(function () { return _this.flush(); }, StatsTimer);\r\n }\r\n };\r\n AWTStatsManager._addStat = function (statName, value, apiKey) {\r\n if (this._isInitalized && apiKey !== Utils.StatsApiKey) {\r\n var tenantId = Utils.getTenantId(apiKey);\r\n if (!this._stats[tenantId]) {\r\n this._stats[tenantId] = {};\r\n }\r\n if (!this._stats[tenantId][statName]) {\r\n this._stats[tenantId][statName] = value;\r\n }\r\n else {\r\n this._stats[tenantId][statName] = this._stats[tenantId][statName] + value;\r\n }\r\n }\r\n };\r\n AWTStatsManager._isInitalized = false;\r\n AWTStatsManager._stats = {};\r\n return AWTStatsManager;\r\n}());\r\nexports.default = AWTStatsManager;\r\n","\"use strict\";\r\n/**\r\n* AWTKillSwitch.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SecToMsMultiplier = 1000;\r\n/**\r\n* Class to stop certain tenants sending events.\r\n*/\r\nvar AWTKillSwitch = /** @class */ (function () {\r\n function AWTKillSwitch() {\r\n this._killedTokenDictionary = {};\r\n }\r\n /**\r\n * Set the tenants that are to be killed along with the duration. If the duration is\r\n * a special value identifying that the tokens are too be killed for only this request, then\r\n * a array of tokens is returned.\r\n * @param {string} killedTokens - Tokens that are too be marked to be killed.\r\n * @param {string} killDuration - The duration for which the tokens are to be killed.\r\n * @return {string[]} The tokens that are killed only for this given request.\r\n */\r\n AWTKillSwitch.prototype.setKillSwitchTenants = function (killTokens, killDuration) {\r\n if (killTokens && killDuration) {\r\n try {\r\n var killedTokens = killTokens.split(',');\r\n if (killDuration === 'this-request-only') {\r\n return killedTokens;\r\n }\r\n var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;\r\n for (var i = 0; i < killedTokens.length; ++i) {\r\n this._killedTokenDictionary[killedTokens[i]] = Date.now() + durationMs;\r\n }\r\n }\r\n catch (ex) {\r\n return [];\r\n }\r\n }\r\n return [];\r\n };\r\n /**\r\n * Determing if the given tenant token has been killed for the moment.\r\n * @param {string} tenantToken - The token to be checked.\r\n * @return {boolean} True if token has been killed, false otherwise.\r\n */\r\n AWTKillSwitch.prototype.isTenantKilled = function (tenantToken) {\r\n if (this._killedTokenDictionary[tenantToken] !== undefined && this._killedTokenDictionary[tenantToken] > Date.now()) {\r\n return true;\r\n }\r\n delete this._killedTokenDictionary[tenantToken];\r\n return false;\r\n };\r\n return AWTKillSwitch;\r\n}());\r\nexports.default = AWTKillSwitch;\r\n","\"use strict\";\r\n/**\r\n* microsoft.bond.encoding.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar microsoft_bond_primitives_1 = require(\"./microsoft.bond.primitives\");\r\nvar microsoft_bond_floatutils_1 = require(\"./microsoft.bond.floatutils\");\r\nvar microsoft_bond_utils_1 = require(\"./microsoft.bond.utils\");\r\nfunction _Utf8_GetBytes(value) {\r\n var array = [];\r\n for (var i = 0; i < value.length; ++i) {\r\n var char = value.charCodeAt(i);\r\n if (char < 0x80) {\r\n array.push(char);\r\n }\r\n else if (char < 0x800) {\r\n array.push(0xc0 | (char >> 6), 0x80 | (char & 0x3f));\r\n }\r\n else if (char < 0xd800 || char >= 0xe000) {\r\n array.push(0xe0 | (char >> 12), 0x80 | ((char >> 6) & 0x3f), 0x80 | (char & 0x3f));\r\n }\r\n else {\r\n char = 0x10000 + (((char & 0x3ff) << 10) | (value.charCodeAt(++i) & 0x3ff));\r\n array.push(0xf0 | (char >> 18), 0x80 | ((char >> 12) & 0x3f), 0x80 | ((char >> 6) & 0x3f), 0x80 | (char & 0x3f));\r\n }\r\n }\r\n return array;\r\n}\r\nexports._Utf8_GetBytes = _Utf8_GetBytes;\r\nfunction _Base64_GetString(inArray) {\r\n var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n var output = [];\r\n var paddingBytes = inArray.length % 3;\r\n var toBase64 = function (num) {\r\n return [lookup.charAt((num >> 18) & 0x3F),\r\n lookup.charAt((num >> 12) & 0x3F),\r\n lookup.charAt((num >> 6) & 0x3F),\r\n lookup.charAt(num & 0x3F)].join('');\r\n };\r\n for (var i = 0, length_1 = inArray.length - paddingBytes; i < length_1; i += 3) {\r\n var temp = (inArray[i] << 16) + (inArray[i + 1] << 8) + (inArray[i + 2]);\r\n output.push(toBase64(temp));\r\n }\r\n switch (paddingBytes) {\r\n case 1:\r\n var temp = inArray[inArray.length - 1];\r\n output.push(lookup.charAt(temp >> 2));\r\n output.push(lookup.charAt((temp << 4) & 0x3F));\r\n output.push('==');\r\n break;\r\n case 2:\r\n var temp2 = (inArray[inArray.length - 2] << 8) + (inArray[inArray.length - 1]);\r\n output.push(lookup.charAt(temp2 >> 10));\r\n output.push(lookup.charAt((temp2 >> 4) & 0x3F));\r\n output.push(lookup.charAt((temp2 << 2) & 0x3F));\r\n output.push('=');\r\n break;\r\n }\r\n return output.join('');\r\n}\r\nexports._Base64_GetString = _Base64_GetString;\r\nfunction _Varint_GetBytes(value) {\r\n var array = [];\r\n while (value & 0xffffff80) {\r\n array.push((value & 0x7f) | 0x80);\r\n value >>>= 7;\r\n }\r\n array.push(value & 0x7f);\r\n return array;\r\n}\r\nexports._Varint_GetBytes = _Varint_GetBytes;\r\nfunction _Varint64_GetBytes(value) {\r\n var low = value.low;\r\n var high = value.high;\r\n var array = [];\r\n while (high || (0xffffff80 & low)) {\r\n array.push((low & 0x7f) | 0x80);\r\n low = ((high & 0x7f) << 25) | (low >>> 7);\r\n high >>>= 7;\r\n }\r\n array.push(low & 0x7f);\r\n return array;\r\n}\r\nexports._Varint64_GetBytes = _Varint64_GetBytes;\r\n// Note: see notes of Float.\r\nfunction _Double_GetBytes(value) {\r\n if (microsoft_bond_utils_1.BrowserChecker._IsDataViewSupport()) {\r\n var view = new DataView(new ArrayBuffer(8));\r\n view.setFloat64(0, value, true /*littleEndian*/);\r\n var array = [];\r\n for (var i = 0; i < 8; ++i) {\r\n array.push(view.getUint8(i));\r\n }\r\n return array;\r\n }\r\n else {\r\n return microsoft_bond_floatutils_1.FloatUtils._ConvertNumberToArray(value, true /*isDouble*/);\r\n }\r\n}\r\nexports._Double_GetBytes = _Double_GetBytes;\r\nfunction _Zigzag_EncodeZigzag32(value) {\r\n value = microsoft_bond_primitives_1.Number._ToInt32(value);\r\n return ((value << 1) ^ (value >> (4 /*sizeof(int)*/ * 8 - 1)));\r\n}\r\nexports._Zigzag_EncodeZigzag32 = _Zigzag_EncodeZigzag32;\r\nfunction _Zigzag_EncodeZigzag64(value) {\r\n var low = value.low;\r\n var high = value.high;\r\n var tmpH = (high << 1) | (low >>> 31);\r\n var tmpL = low << 1;\r\n if (high & 0x80000000) {\r\n tmpH = ~tmpH;\r\n tmpL = ~tmpL;\r\n }\r\n var res = new microsoft_bond_primitives_1.UInt64('0');\r\n res.low = tmpL;\r\n res.high = tmpH;\r\n return res;\r\n}\r\nexports._Zigzag_EncodeZigzag64 = _Zigzag_EncodeZigzag64;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AriaSDK.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n* File to export public classes, interfaces and enums.\r\n*/\r\nvar Enums_1 = require(\"../common/Enums\");\r\nexports.AWTPropertyType = Enums_1.AWTPropertyType;\r\nexports.AWTPiiKind = Enums_1.AWTPiiKind;\r\nexports.AWTEventPriority = Enums_1.AWTEventPriority;\r\nexports.AWTEventsDroppedReason = Enums_1.AWTEventsDroppedReason;\r\nexports.AWTEventsRejectedReason = Enums_1.AWTEventsRejectedReason;\r\nexports.AWTCustomerContentKind = Enums_1.AWTCustomerContentKind;\r\nvar Enums_2 = require(\"./Enums\");\r\nexports.AWTUserIdType = Enums_2.AWTUserIdType;\r\nexports.AWTSessionState = Enums_2.AWTSessionState;\r\nvar DataModels_1 = require(\"./DataModels\");\r\nexports.AWT_BEST_EFFORT = DataModels_1.AWT_BEST_EFFORT;\r\nexports.AWT_NEAR_REAL_TIME = DataModels_1.AWT_NEAR_REAL_TIME;\r\nexports.AWT_REAL_TIME = DataModels_1.AWT_REAL_TIME;\r\nvar AWTEventProperties_1 = require(\"./AWTEventProperties\");\r\nexports.AWTEventProperties = AWTEventProperties_1.default;\r\nvar AWTLogger_1 = require(\"./AWTLogger\");\r\nexports.AWTLogger = AWTLogger_1.default;\r\nvar AWTLogManager_1 = require(\"./AWTLogManager\");\r\nexports.AWTLogManager = AWTLogManager_1.default;\r\nvar AWTTransmissionManager_1 = require(\"./AWTTransmissionManager\");\r\nexports.AWTTransmissionManager = AWTTransmissionManager_1.default;\r\nvar AWTSerializer_1 = require(\"../common/AWTSerializer\");\r\nexports.AWTSerializer = AWTSerializer_1.default;\r\nvar AWTSemanticContext_1 = require(\"./AWTSemanticContext\");\r\nexports.AWTSemanticContext = AWTSemanticContext_1.default;\r\nexports.AWT_COLLECTOR_URL_UNITED_STATES = 'https://us.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_GERMANY = 'https://de.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_JAPAN = 'https://jp.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_AUSTRALIA = 'https://au.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_EUROPE = 'https://eu.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_USGOV_DOD = 'https://pf.pipe.aria.microsoft.com/Collector/3.0';\r\nexports.AWT_COLLECTOR_URL_USGOV_DOJ = 'https://tb.pipe.aria.microsoft.com/Collector/3.0';\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\n/**\r\n * The AWTTransmissionManager calss is a wrapper class that exposes some of the\r\n * Transmission functionality needed by other Aria modules.\r\n */\r\nvar AWTTransmissionManager = /** @class */ (function () {\r\n function AWTTransmissionManager() {\r\n }\r\n /**\r\n * Sets the event handler used by the tranmission manager.\r\n * The default event handler is the Inbound queue manager. This handler\r\n * is used to batch and send events to Aria. If you intend to send events\r\n * to Aria please make sure that your event handler forwards events to the Inbound\r\n * Queue Manager. You can retrieve the Inbound Queue Manager by calling\r\n * getEventsHandler before you set your handler.\r\n * @param {object} eventsHandler - An AWTEventHandler event handler used by the tranmission\r\n * manager.\r\n */\r\n AWTTransmissionManager.setEventsHandler = function (eventsHandler) {\r\n AWTTransmissionManagerCore_1.default.setEventsHandler(eventsHandler);\r\n };\r\n /**\r\n * Gets the current event handler used by the tranmission manager.\r\n * @return {object} An AWTEventHandler event handler used by the tranmission manager.\r\n */\r\n AWTTransmissionManager.getEventsHandler = function () {\r\n return AWTTransmissionManagerCore_1.default.getEventsHandler();\r\n };\r\n /**\r\n * The scheduleTimer method tries to schedule the waiting period after which events are sent. If there are\r\n * no events to be sent, or if there is already a timer scheduled, or if the\r\n * http manager doesn't have any idle connections, then this method is no-op.\r\n */\r\n AWTTransmissionManager.scheduleTimer = function () {\r\n AWTTransmissionManagerCore_1.default.scheduleTimer();\r\n };\r\n return AWTTransmissionManager;\r\n}());\r\nexports.default = AWTTransmissionManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar AWTHttpManager_1 = require(\"./AWTHttpManager\");\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\nvar AWTRecordBatcher_1 = require(\"../common/AWTRecordBatcher\");\r\nvar AWTNotificationManager_1 = require(\"../common/AWTNotificationManager\");\r\nvar Utils = require(\"../common/Utils\");\r\nvar UploadNowCheckTimer = 250;\r\nvar MaxNumberEventPerBatch = 500;\r\nvar MaxSendAttempts = 6;\r\n/**\r\n * Class that manages adding events to inbound queues and batching of events\r\n * into requests.\r\n */\r\nvar AWTQueueManager = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * @param {string} collectorUrl - The collector url to which the requests must be sent.\r\n */\r\n function AWTQueueManager(collectorUrl, _queueSizeLimit, xhrOverride, clockSkewRefreshDurationInMins) {\r\n this._queueSizeLimit = _queueSizeLimit;\r\n this._isCurrentlyUploadingNow = false;\r\n this._uploadNowQueue = [];\r\n this._shouldDropEventsOnPause = false;\r\n this._paused = false;\r\n this._queueSize = 0;\r\n this._outboundQueue = [];\r\n this._inboundQueues = {};\r\n this._inboundQueues[Enums_1.AWTEventPriority.High] = [];\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal] = [];\r\n this._inboundQueues[Enums_1.AWTEventPriority.Low] = [];\r\n this._addEmptyQueues();\r\n this._batcher = new AWTRecordBatcher_1.default(this._outboundQueue, MaxNumberEventPerBatch);\r\n this._httpManager = new AWTHttpManager_1.default(this._outboundQueue, collectorUrl, this, xhrOverride, clockSkewRefreshDurationInMins);\r\n }\r\n /**\r\n * Add an event to the appropriate inbound queue based on its priority.\r\n * @param {object} event - The event to be added to the queue.\r\n */\r\n AWTQueueManager.prototype.addEvent = function (event) {\r\n if (!Utils.isPriority(event.priority)) {\r\n //If invalid priority, then send it with normal priority\r\n event.priority = Enums_1.AWTEventPriority.Normal;\r\n }\r\n if (event.priority === Enums_1.AWTEventPriority.Immediate_sync) {\r\n //Log event synchronously\r\n this._httpManager.sendSynchronousRequest(this._batcher.addEventToBatch(event), event.apiKey);\r\n }\r\n else if (this._queueSize < this._queueSizeLimit) {\r\n this._addEventToProperQueue(event);\r\n }\r\n else {\r\n //Drop old event from lower or equal priority\r\n if (this._dropEventWithPriorityOrLess(event.priority)) {\r\n this._addEventToProperQueue(event);\r\n }\r\n else {\r\n //Can't drop events from current queues because the all the slots are taken by queues that are being flushed.\r\n AWTNotificationManager_1.default.eventsDropped([event], Enums_1.AWTEventsDroppedReason.QueueFull);\r\n }\r\n }\r\n };\r\n /**\r\n * Batch and send events currently in the queue for the given priority.\r\n * @param {enum} priority - Priority for which to send events.\r\n */\r\n AWTQueueManager.prototype.sendEventsForPriorityAndAbove = function (priority) {\r\n this._batchEvents(priority);\r\n this._httpManager.sendQueuedRequests();\r\n };\r\n /**\r\n * Check if the inbound queues or batcher has any events that can be sent presently.\r\n * @return {boolean} True if there are events, false otherwise.\r\n */\r\n AWTQueueManager.prototype.hasEvents = function () {\r\n return (this._inboundQueues[Enums_1.AWTEventPriority.High][0].length > 0 || this._inboundQueues[Enums_1.AWTEventPriority.Normal][0].length > 0\r\n || this._inboundQueues[Enums_1.AWTEventPriority.Low][0].length > 0 || this._batcher.hasBatch())\r\n && this._httpManager.hasIdleConnection();\r\n };\r\n /**\r\n * Add back the events from a failed request back to the queue.\r\n * @param {object} request - The request whose events need to be added back to the batcher.\r\n */\r\n AWTQueueManager.prototype.addBackRequest = function (request) {\r\n if (!this._paused || !this._shouldDropEventsOnPause) {\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n for (var i = 0; i < request[token].length; ++i) {\r\n if (request[token][i].sendAttempt < MaxSendAttempts) {\r\n this.addEvent(request[token][i]);\r\n }\r\n else {\r\n AWTNotificationManager_1.default.eventsDropped([request[token][i]], Enums_1.AWTEventsDroppedReason.MaxRetryLimit);\r\n }\r\n }\r\n }\r\n }\r\n AWTTransmissionManagerCore_1.default.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Batch all current events in the queues and send them.\r\n */\r\n AWTQueueManager.prototype.teardown = function () {\r\n if (!this._paused) {\r\n this._batchEvents(Enums_1.AWTEventPriority.Low);\r\n this._httpManager.teardown();\r\n }\r\n };\r\n /**\r\n * Sends events for all priority for the current inbound queue.\r\n * This method adds new inbound queues to which new events will be added.\r\n * @param {function} callback - The function to be called when uploadNow is finished.\r\n */\r\n AWTQueueManager.prototype.uploadNow = function (callback) {\r\n var _this = this;\r\n this._addEmptyQueues();\r\n if (!this._isCurrentlyUploadingNow) {\r\n this._isCurrentlyUploadingNow = true;\r\n setTimeout(function () { return _this._uploadNow(callback); }, 0);\r\n }\r\n else {\r\n this._uploadNowQueue.push(callback);\r\n }\r\n };\r\n /**\r\n * Pause the tranmission of any requests\r\n */\r\n AWTQueueManager.prototype.pauseTransmission = function () {\r\n this._paused = true;\r\n this._httpManager.pause();\r\n if (this.shouldDropEventsOnPause) {\r\n this._queueSize -= (this._inboundQueues[Enums_1.AWTEventPriority.High][0].length +\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal][0].length + this._inboundQueues[Enums_1.AWTEventPriority.Low][0].length);\r\n this._inboundQueues[Enums_1.AWTEventPriority.High][0] = [];\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal][0] = [];\r\n this._inboundQueues[Enums_1.AWTEventPriority.Low][0] = [];\r\n this._httpManager.removeQueuedRequests();\r\n }\r\n };\r\n /**\r\n * Resumes transmission of events.\r\n */\r\n AWTQueueManager.prototype.resumeTransmission = function () {\r\n this._paused = false;\r\n this._httpManager.resume();\r\n };\r\n /**\r\n * Determines whether events in the queues should be dropped when transmission is paused.\r\n */\r\n AWTQueueManager.prototype.shouldDropEventsOnPause = function (shouldDropEventsOnPause) {\r\n this._shouldDropEventsOnPause = shouldDropEventsOnPause;\r\n };\r\n /**\r\n * Remove the first queues for all priorities in the inbound queues map. This is called\r\n * when transmission manager has finished flushing the events in the old queues. We now make\r\n * the next queue the primary queue.\r\n */\r\n AWTQueueManager.prototype._removeFirstQueues = function () {\r\n this._inboundQueues[Enums_1.AWTEventPriority.High].shift();\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal].shift();\r\n this._inboundQueues[Enums_1.AWTEventPriority.Low].shift();\r\n };\r\n /**\r\n * Add empty queues for all priorities in the inbound queues map. This is called\r\n * when Transmission Manager is being flushed. This ensures that new events added\r\n * after flush are stored separately till we flush the current events.\r\n */\r\n AWTQueueManager.prototype._addEmptyQueues = function () {\r\n this._inboundQueues[Enums_1.AWTEventPriority.High].push([]);\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal].push([]);\r\n this._inboundQueues[Enums_1.AWTEventPriority.Low].push([]);\r\n };\r\n AWTQueueManager.prototype._addEventToProperQueue = function (event) {\r\n if (!this._paused || !this._shouldDropEventsOnPause) {\r\n this._queueSize++;\r\n this._inboundQueues[event.priority][this._inboundQueues[event.priority].length - 1].push(event);\r\n }\r\n };\r\n AWTQueueManager.prototype._dropEventWithPriorityOrLess = function (priority) {\r\n var currentPriority = Enums_1.AWTEventPriority.Low;\r\n while (currentPriority <= priority) {\r\n if (this._inboundQueues[currentPriority][this._inboundQueues[currentPriority].length - 1].length > 0) {\r\n //Dropped oldest event from lowest possible priority\r\n AWTNotificationManager_1.default.eventsDropped([this._inboundQueues[currentPriority][this._inboundQueues[currentPriority].length - 1].shift()], Enums_1.AWTEventsDroppedReason.QueueFull);\r\n return true;\r\n }\r\n currentPriority++;\r\n }\r\n return false;\r\n };\r\n AWTQueueManager.prototype._batchEvents = function (priority) {\r\n var priorityToProcess = Enums_1.AWTEventPriority.High;\r\n while (priorityToProcess >= priority) {\r\n while (this._inboundQueues[priorityToProcess][0].length > 0) {\r\n var event_1 = this._inboundQueues[priorityToProcess][0].pop();\r\n this._queueSize--;\r\n this._batcher.addEventToBatch(event_1);\r\n }\r\n priorityToProcess--;\r\n }\r\n this._batcher.flushBatch();\r\n };\r\n AWTQueueManager.prototype._uploadNow = function (callback) {\r\n var _this = this;\r\n if (this.hasEvents()) {\r\n this.sendEventsForPriorityAndAbove(Enums_1.AWTEventPriority.Low);\r\n }\r\n this._checkOutboundQueueEmptyAndSent(function () {\r\n //Move the next queues to be primary\r\n _this._removeFirstQueues();\r\n if (callback !== null && callback !== undefined) {\r\n callback();\r\n }\r\n if (_this._uploadNowQueue.length > 0) {\r\n setTimeout(function () { return _this._uploadNow(_this._uploadNowQueue.shift()); }, 0);\r\n }\r\n else {\r\n _this._isCurrentlyUploadingNow = false;\r\n if (_this.hasEvents()) {\r\n AWTTransmissionManagerCore_1.default.scheduleTimer();\r\n }\r\n }\r\n });\r\n };\r\n AWTQueueManager.prototype._checkOutboundQueueEmptyAndSent = function (callback) {\r\n var _this = this;\r\n if (this._httpManager.isCompletelyIdle()) {\r\n callback();\r\n }\r\n else {\r\n setTimeout(function () { return _this._checkOutboundQueueEmptyAndSent(callback); }, UploadNowCheckTimer);\r\n }\r\n };\r\n return AWTQueueManager;\r\n}());\r\nexports.default = AWTQueueManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar AWTNotificationManager = /** @class */ (function () {\r\n function AWTNotificationManager() {\r\n }\r\n /**\r\n * Adds a notification listener.\r\n * @param {object} listener - The notification listener to be added.\r\n */\r\n AWTNotificationManager.addNotificationListener = function (listener) {\r\n this.listeners.push(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {object} listener - AWTNotificationListener to remove.\r\n */\r\n AWTNotificationManager.removeNotificationListener = function (listener) {\r\n var index = this.listeners.indexOf(listener);\r\n while (index > -1) {\r\n this.listeners.splice(index, 1);\r\n index = this.listeners.indexOf(listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {object[]} events - The array of events that have been sent.\r\n */\r\n AWTNotificationManager.eventsSent = function (events) {\r\n var _this = this;\r\n var _loop_1 = function (i) {\r\n if (this_1.listeners[i].eventsSent) {\r\n setTimeout(function () { return _this.listeners[i].eventsSent(events); }, 0);\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_1(i);\r\n }\r\n };\r\n /**\r\n * Notification for events being dropped.\r\n * @param {object[]} events - The array of events that have been dropped.\r\n * @param {enum} reason - The reason for which the SDK dropped the events.\r\n */\r\n AWTNotificationManager.eventsDropped = function (events, reason) {\r\n var _this = this;\r\n var _loop_2 = function (i) {\r\n if (this_2.listeners[i].eventsDropped) {\r\n setTimeout(function () { return _this.listeners[i].eventsDropped(events, reason); }, 0);\r\n }\r\n };\r\n var this_2 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_2(i);\r\n }\r\n };\r\n /**\r\n * Notification for events being retried when the request failed with a retryable status.\r\n * @param {object[]} events - The array of events that are being retried.\r\n */\r\n AWTNotificationManager.eventsRetrying = function (events) {\r\n var _this = this;\r\n var _loop_3 = function (i) {\r\n if (this_3.listeners[i].eventsRetrying) {\r\n setTimeout(function () { return _this.listeners[i].eventsRetrying(events); }, 0);\r\n }\r\n };\r\n var this_3 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_3(i);\r\n }\r\n };\r\n /**\r\n * Notification for events being rejected.\r\n * @param {object[]} events - The array of events that have been rejected.\r\n * @param {enum} reason - The reason for which the SDK rejeceted the events.\r\n */\r\n AWTNotificationManager.eventsRejected = function (events, reason) {\r\n var _this = this;\r\n var _loop_4 = function (i) {\r\n if (this_4.listeners[i].eventsRejected) {\r\n setTimeout(function () { return _this.listeners[i].eventsRejected(events, reason); }, 0);\r\n }\r\n };\r\n var this_4 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_4(i);\r\n }\r\n };\r\n AWTNotificationManager.listeners = [];\r\n return AWTNotificationManager;\r\n}());\r\nexports.default = AWTNotificationManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* microsoft.bond.floatutils.ts\r\n* Copyright: Microsoft 2016\r\n*\r\n* This class will be used to convert float/double to byte array on browsers which don't support html5.\r\n*\r\n* Format: IEEE-754, littleEndian, http://en.wikipedia.org/wiki/IEEE_754-1985\r\n*\r\n* \\note\r\n* 1. Don't have negative zero. All zero will be positive zero.\r\n* 2. If the buffer array passed to ConvertArrayToFloat() is actual NaN or Inifinity value,\r\n* exception will be raised.\r\n*/\r\nvar FloatUtils = /** @class */ (function () {\r\n function FloatUtils() {\r\n }\r\n FloatUtils._ConvertNumberToArray = function (num, isDouble) {\r\n if (!num) {\r\n return isDouble ? this._doubleZero : this._floatZero;\r\n }\r\n var exponentBits = isDouble ? 11 : 8;\r\n var precisionBits = isDouble ? 52 : 23;\r\n // follow IEEE-754, exponent bias is 2^(k-1)-1 where k is the number of bits\r\n // in the exponent: http://en.wikipedia.org/wiki/Exponent_bias\r\n var bias = (1 << (exponentBits - 1)) - 1;\r\n var minExponent = 1 - bias;\r\n var maxExponent = bias;\r\n var sign = num < 0 ? 1 : 0;\r\n num = Math.abs(num);\r\n var intPart = Math.floor(num);\r\n var floatPart = num - intPart;\r\n var len = 2 * (bias + 2) + precisionBits;\r\n var buffer = new Array(len);\r\n var i = 0;\r\n while (i < len) {\r\n buffer[i++] = 0;\r\n }\r\n // caculate the intPart\r\n i = bias + 2;\r\n while (i && intPart) {\r\n buffer[--i] = intPart % 2;\r\n intPart = Math.floor(intPart / 2);\r\n }\r\n // caculate the floatPart\r\n i = bias + 1;\r\n while (i < len - 1 && floatPart > 0) {\r\n floatPart *= 2;\r\n if (floatPart >= 1) {\r\n buffer[++i] = 1;\r\n --floatPart;\r\n }\r\n else {\r\n buffer[++i] = 0;\r\n }\r\n }\r\n // find the first 1\r\n var firstBit = 0;\r\n while (firstBit < len && !buffer[firstBit]) {\r\n firstBit++;\r\n }\r\n // caculate exponent\r\n var exponent = bias + 1 - firstBit;\r\n // caculate round\r\n var lastBit = firstBit + precisionBits;\r\n if (buffer[lastBit + 1]) {\r\n for (i = lastBit; i > firstBit; --i) {\r\n buffer[i] = 1 - buffer[i];\r\n if (buffer) {\r\n break;\r\n }\r\n }\r\n if (i === firstBit) {\r\n ++exponent;\r\n }\r\n }\r\n // check overflow\r\n if (exponent > maxExponent || intPart) {\r\n if (sign) {\r\n return isDouble ? this._doubleNegInifinity : this._floatNegInifinity;\r\n }\r\n else {\r\n return isDouble ? this._doubleInifinity : this._floatInifinity;\r\n }\r\n }\r\n else if (exponent < minExponent) {\r\n return isDouble ? this._doubleZero : this._floatZero;\r\n }\r\n // caculate the result\r\n if (isDouble) {\r\n var high = 0;\r\n for (i = 0; i < 20; ++i) {\r\n high = (high << 1) | buffer[++firstBit];\r\n }\r\n var low = 0;\r\n for (; i < 52; ++i) {\r\n low = (low << 1) | buffer[++firstBit];\r\n }\r\n high |= (exponent + bias) << 20;\r\n high = (sign << 31) | (high & 0x7FFFFFFF);\r\n var resArray = [low & 0xff, (low >> 8) & 0xff, (low >> 16) & 0xff, low >>> 24,\r\n high & 0xff, (high >> 8) & 0xff, (high >> 16) & 0xff, high >>> 24];\r\n return resArray;\r\n }\r\n else {\r\n var result = 0;\r\n for (i = 0; i < 23; ++i) {\r\n result = (result << 1) | buffer[++firstBit];\r\n }\r\n result |= (exponent + bias) << 23;\r\n result = (sign << 31) | (result & 0x7FFFFFFF);\r\n var resArray = [result & 0xff, (result >> 8) & 0xff, (result >> 16) & 0xff, result >>> 24];\r\n return resArray;\r\n }\r\n };\r\n FloatUtils._floatZero = [0x00, 0x00, 0x00, 0x00];\r\n FloatUtils._doubleZero = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00];\r\n FloatUtils._floatInifinity = [0x00, 0x00, 0x80, 0x7F];\r\n FloatUtils._floatNegInifinity = [0x00, 0x00, 0x80, 0xFF];\r\n FloatUtils._doubleInifinity = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f];\r\n FloatUtils._doubleNegInifinity = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff];\r\n return FloatUtils;\r\n}());\r\nexports.FloatUtils = FloatUtils;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* microsoft.bond.io.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nvar microsoft_bond_primitives_1 = require(\"./microsoft.bond.primitives\");\r\nvar MemoryStream = /** @class */ (function () {\r\n function MemoryStream() {\r\n this._buffer = [];\r\n }\r\n /*override*/\r\n MemoryStream.prototype._WriteByte = function (byte) {\r\n this._buffer.push(microsoft_bond_primitives_1.Number._ToByte(byte));\r\n };\r\n /*override*/\r\n MemoryStream.prototype._Write = function (buffer, offset, count) {\r\n while (count--) {\r\n this._WriteByte(buffer[offset++]);\r\n }\r\n };\r\n /**\r\n * Returns the array of unsigned bytes from which this stream was created.\r\n */\r\n MemoryStream.prototype._GetBuffer = function () {\r\n return this._buffer;\r\n };\r\n return MemoryStream;\r\n}());\r\nexports.MemoryStream = MemoryStream;\r\n"],"sourceRoot":""}