@microsoft/1ds-core-js 3.2.8 → 3.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bundle/{ms.core-3.2.8.gbl.js → ms.core-3.2.9.gbl.js} +4 -4
- package/bundle/ms.core-3.2.9.gbl.js.map +1 -0
- package/bundle/ms.core-3.2.9.gbl.min.js +7 -0
- package/bundle/ms.core-3.2.9.gbl.min.js.map +1 -0
- package/bundle/ms.core-3.2.9.integrity.json +46 -0
- package/bundle/{ms.core-3.2.8.js → ms.core-3.2.9.js} +4 -4
- package/bundle/ms.core-3.2.9.js.map +1 -0
- package/bundle/ms.core-3.2.9.min.js +7 -0
- package/bundle/ms.core-3.2.9.min.js.map +1 -0
- package/bundle/ms.core.gbl.js +3 -3
- package/bundle/ms.core.gbl.js.map +1 -1
- package/bundle/ms.core.gbl.min.js +2 -2
- package/bundle/ms.core.gbl.min.js.map +1 -1
- package/bundle/ms.core.integrity.json +17 -17
- package/bundle/ms.core.js +3 -3
- package/bundle/ms.core.js.map +1 -1
- package/bundle/ms.core.min.js +2 -2
- package/bundle/ms.core.min.js.map +1 -1
- package/dist/ms.core.js +2 -2
- package/dist/ms.core.js.map +1 -1
- package/dist/ms.core.min.js +2 -2
- package/dist/ms.core.min.js.map +1 -1
- package/dist-esm/src/AppInsightsCore.js +1 -1
- package/dist-esm/src/BaseCore.js +1 -1
- package/dist-esm/src/DataModels.d.ts +2 -2
- package/dist-esm/src/DataModels.js +1 -1
- package/dist-esm/src/ESPromise.d.ts +4 -4
- package/dist-esm/src/ESPromise.js +1 -1
- package/dist-esm/src/ESPromiseScheduler.d.ts +1 -1
- package/dist-esm/src/ESPromiseScheduler.js +1 -1
- package/dist-esm/src/Enums.d.ts +6 -6
- package/dist-esm/src/Enums.js +1 -1
- package/dist-esm/src/Index.js +1 -1
- package/dist-esm/src/InternalConstants.js +1 -1
- package/dist-esm/src/Utils.d.ts +1 -1
- package/dist-esm/src/Utils.js +2 -2
- package/dist-esm/src/Utils.js.map +1 -1
- package/dist-esm/src/ValueSanitizer.js +1 -1
- package/package.json +2 -2
- package/bundle/ms.core-3.2.8.gbl.js.map +0 -1
- package/bundle/ms.core-3.2.8.gbl.min.js +0 -7
- package/bundle/ms.core-3.2.8.gbl.min.js.map +0 -1
- package/bundle/ms.core-3.2.8.integrity.json +0 -46
- package/bundle/ms.core-3.2.8.js.map +0 -1
- package/bundle/ms.core-3.2.8.min.js +0 -7
- package/bundle/ms.core-3.2.8.min.js.map +0 -1
package/dist/ms.core.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ms.core.min.js","sources":["../dist-esm/src/Enums.js","../dist-esm/src/InternalConstants.js","../dist-esm/src/Utils.js","../dist-esm/src/AppInsightsCore.js","../dist-esm/src/BaseCore.js","../dist-esm/src/ESPromise.js","../dist-esm/src/ESPromiseScheduler.js","../dist-esm/src/ValueSanitizer.js"],"sourcesContent":["/*\n * 1DS JS SDK Core, 3.2.8\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Enums.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n* File containing the enums as constants.\r\n*/\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { _InternalMessageId, createEnumStyle, objFreeze } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * The ValueKind contains a set of values that specify value kind of the property.\r\n * Either PII (Personal Identifiable Information) or customer content.\r\n */\r\nexport var ValueKind = createEnumStyle({\r\n NotSet: 0 /* eValueKind.NotSet */,\r\n Pii_DistinguishedName: 1 /* eValueKind.Pii_DistinguishedName */,\r\n Pii_GenericData: 2 /* eValueKind.Pii_GenericData */,\r\n Pii_IPV4Address: 3 /* eValueKind.Pii_IPV4Address */,\r\n Pii_IPv6Address: 4 /* eValueKind.Pii_IPv6Address */,\r\n Pii_MailSubject: 5 /* eValueKind.Pii_MailSubject */,\r\n Pii_PhoneNumber: 6 /* eValueKind.Pii_PhoneNumber */,\r\n Pii_QueryString: 7 /* eValueKind.Pii_QueryString */,\r\n Pii_SipAddress: 8 /* eValueKind.Pii_SipAddress */,\r\n Pii_SmtpAddress: 9 /* eValueKind.Pii_SmtpAddress */,\r\n Pii_Identity: 10 /* eValueKind.Pii_Identity */,\r\n Pii_Uri: 11 /* eValueKind.Pii_Uri */,\r\n Pii_Fqdn: 12 /* eValueKind.Pii_Fqdn */,\r\n Pii_IPV4AddressLegacy: 13 /* eValueKind.Pii_IPV4AddressLegacy */,\r\n CustomerContent_GenericContent: 32 /* eValueKind.CustomerContent_GenericContent */\r\n});\r\n/**\r\n * The EventLatency contains a set of values that specify the latency with which an event is sent.\r\n */\r\nexport var EventLatency = createEnumStyle({\r\n /**\r\n * Normal latency.\r\n */\r\n Normal: 1 /* EventLatencyValue.Normal */,\r\n /**\r\n * Cost deferred latency. At the moment this latency is treated as Normal latency.\r\n */\r\n CostDeferred: 2 /* EventLatencyValue.CostDeferred */,\r\n /**\r\n * Real time latency.\r\n */\r\n RealTime: 3 /* EventLatencyValue.RealTime */,\r\n /**\r\n * Bypass normal batching/timing and send as soon as possible, this will still send asynchronously.\r\n * Added in v3.1.1\r\n */\r\n Immediate: 4 /* EventLatencyValue.Immediate */\r\n});\r\n/**\r\n * Enum for property types.\r\n */\r\nexport var EventPropertyType = createEnumStyle({\r\n Unspecified: 0 /* eEventPropertyType.Unspecified */,\r\n String: 1 /* eEventPropertyType.String */,\r\n Int32: 2 /* eEventPropertyType.Int32 */,\r\n UInt32: 3 /* eEventPropertyType.UInt32 */,\r\n Int64: 4 /* eEventPropertyType.Int64 */,\r\n UInt64: 5 /* eEventPropertyType.UInt64 */,\r\n Double: 6 /* eEventPropertyType.Double */,\r\n Bool: 7 /* eEventPropertyType.Bool */,\r\n Guid: 8 /* eEventPropertyType.Guid */,\r\n DateTime: 9 /* eEventPropertyType.DateTime */\r\n});\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = createEnumStyle({\r\n /**\r\n * Normal persistence.\r\n */\r\n Normal: 1 /* EventPersistenceValue.Normal */,\r\n /**\r\n * Critical persistence.\r\n */\r\n Critical: 2 /* EventPersistenceValue.Critical */\r\n});\r\nexport var TraceLevel = createEnumStyle({\r\n NONE: 0 /* eTraceLevel.NONE */,\r\n ERROR: 1 /* eTraceLevel.ERROR */,\r\n WARNING: 2 /* eTraceLevel.WARNING */,\r\n INFORMATION: 3 /* eTraceLevel.INFORMATION */\r\n});\r\nexport var _ExtendedInternalMessageId = objFreeze(__assign(__assign({}, _InternalMessageId), createEnumStyle({\r\n AuthHandShakeError: 501 /* _eExtendedInternalMessageId.AuthHandShakeError */,\r\n AuthRedirectFail: 502 /* _eExtendedInternalMessageId.AuthRedirectFail */,\r\n BrowserCannotReadLocalStorage: 503 /* _eExtendedInternalMessageId.BrowserCannotReadLocalStorage */,\r\n BrowserCannotWriteLocalStorage: 504 /* _eExtendedInternalMessageId.BrowserCannotWriteLocalStorage */,\r\n BrowserDoesNotSupportLocalStorage: 505 /* _eExtendedInternalMessageId.BrowserDoesNotSupportLocalStorage */,\r\n CannotParseBiBlobValue: 506 /* _eExtendedInternalMessageId.CannotParseBiBlobValue */,\r\n CannotParseDataAttribute: 507 /* _eExtendedInternalMessageId.CannotParseDataAttribute */,\r\n CVPluginNotAvailable: 508 /* _eExtendedInternalMessageId.CVPluginNotAvailable */,\r\n DroppedEvent: 509 /* _eExtendedInternalMessageId.DroppedEvent */,\r\n ErrorParsingAISessionCookie: 510 /* _eExtendedInternalMessageId.ErrorParsingAISessionCookie */,\r\n ErrorProvidedChannels: 511 /* _eExtendedInternalMessageId.ErrorProvidedChannels */,\r\n FailedToGetCookies: 512 /* _eExtendedInternalMessageId.FailedToGetCookies */,\r\n FailedToInitializeCorrelationVector: 513 /* _eExtendedInternalMessageId.FailedToInitializeCorrelationVector */,\r\n FailedToInitializeSDK: 514 /* _eExtendedInternalMessageId.FailedToInitializeSDK */,\r\n InvalidContentBlob: 515 /* _eExtendedInternalMessageId.InvalidContentBlob */,\r\n InvalidCorrelationValue: 516 /* _eExtendedInternalMessageId.InvalidCorrelationValue */,\r\n SessionRenewalDateIsZero: 517 /* _eExtendedInternalMessageId.SessionRenewalDateIsZero */,\r\n SendPostOnCompleteFailure: 518 /* _eExtendedInternalMessageId.SendPostOnCompleteFailure */,\r\n PostResponseHandler: 519 /* _eExtendedInternalMessageId.PostResponseHandler */,\r\n SDKNotInitialized: 520 /* _eExtendedInternalMessageId.SDKNotInitialized */\r\n})));\r\n//# sourceMappingURL=Enums.js.map","/*\n * 1DS JS SDK Core, 3.2.8\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n\r\n// Licensed under the MIT License.\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_DEFAULT_ENDPOINT_URL = \"https://browser.events.data.microsoft.com/OneCollector/1.0/\";\r\nexport var STR_PLUGIN_VERSION_STRING = \"pluginVersionString\";\r\nexport var STR_PLUGIN_VERSION_STRING_ARR = STR_PLUGIN_VERSION_STRING + \"Arr\";\r\nexport var STR_VERSION = \"version\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * 1DS JS SDK Core, 3.2.8\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nvar _a;\r\n/**\r\n* Utils.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n* File containing utility functions.\r\n*/\r\nimport { addEventHandler, addPageUnloadEventListener, areCookiesSupported, arrForEach, arrIndexOf, arrMap, arrReduce, dateNow, generateW3CId, getDocument, getGlobalInst, getNavigator, getWindow, hasOwnProperty, isArray, isBeaconsSupported, isBoolean, isDate, isError, isFunction, isIE, isNullOrUndefined, isNumber, isObject, isReactNative, isString, isTypeof, isUndefined, mwcRandom32, mwcRandomSeed, newGuid, newId, objDefineAccessors, objForEachKey, objKeys, perfNow, random32, randomValue, safeGetCookieMgr, strEndsWith, strObject, strTrim, strUndefined, toISOString, uaDisallowsSameSiteNone, useXDomainRequest } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ObjHasOwnProperty, objCreateFn, strShimObject, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nexport var Version = '3.2.8';\r\nexport var FullVersionString = \"1DS-Web-JS-\" + Version;\r\n// Defining here so we don't need to take (import) the ApplicationInsights Common module\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n// If value is array just get the type for the first element\r\nvar _fieldTypeEventPropMap = (_a = {},\r\n _a[0 /* FieldValueSanitizerType.NotSet */] = 0 /* eEventPropertyType.Unspecified */,\r\n _a[2 /* FieldValueSanitizerType.Number */] = 6 /* eEventPropertyType.Double */,\r\n _a[1 /* FieldValueSanitizerType.String */] = 1 /* eEventPropertyType.String */,\r\n _a[3 /* FieldValueSanitizerType.Boolean */] = 7 /* eEventPropertyType.Bool */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 2 /* FieldValueSanitizerType.Number */] = 6 /* eEventPropertyType.Double */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 1 /* FieldValueSanitizerType.String */] = 1 /* eEventPropertyType.String */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 3 /* FieldValueSanitizerType.Boolean */] = 7 /* eEventPropertyType.Bool */,\r\n _a);\r\n/**\r\n * @ignore\r\n */\r\n// let _uaDisallowsSameSiteNone = null;\r\nvar uInt8ArraySupported = null;\r\n// var _areCookiesAvailable: boolean | undefined;\r\n/**\r\n * Checks if document object is available\r\n */\r\nexport var isDocumentObjectAvailable = Boolean(getDocument());\r\n/**\r\n * Checks if window object is available\r\n */\r\nexport var isWindowObjectAvailable = Boolean(getWindow());\r\n/**\r\n * Checks if value is assigned to the given param.\r\n * @param value - The token from which the tenant id is to be extracted.\r\n * @returns True/false denoting if value is assigned to the param.\r\n */\r\nexport function isValueAssigned(value) {\r\n /// <summary> takes a value and checks for undefined, null and empty string </summary>\r\n /// <param type=\"any\"> value to be tested </param>\r\n /// <returns> true if value is null undefined or emptyString </returns>\r\n return !(value === STR_EMPTY || isNullOrUndefined(value));\r\n}\r\n/**\r\n * Gets the tenant id from the tenant token.\r\n * @param apiKey - The token from which the tenant id is to be extracted.\r\n * @returns The tenant id.\r\n */\r\nexport function getTenantId(apiKey) {\r\n if (apiKey) {\r\n var indexTenantId = apiKey.indexOf(\"-\");\r\n if (indexTenantId > -1) {\r\n return apiKey.substring(0, indexTenantId);\r\n }\r\n }\r\n return STR_EMPTY;\r\n}\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 * @returns True if available, false otherwise.\r\n */\r\nexport function isUint8ArrayAvailable() {\r\n if (uInt8ArraySupported === null) {\r\n uInt8ArraySupported = !isUndefined(Uint8Array) && !isSafariOrFirefox() && !isReactNative();\r\n }\r\n return uInt8ArraySupported;\r\n}\r\n/**\r\n * Checks if the value is a valid EventLatency.\r\n * @param value - The value that needs to be checked.\r\n * @returns True if the value is in AWTEventLatency, false otherwise.\r\n */\r\nexport function isLatency(value) {\r\n if (value && isNumber(value) && value >= 1 /* EventLatencyValue.Normal */ && value <= 4 /* EventLatencyValue.Immediate */) {\r\n return true;\r\n }\r\n return false;\r\n}\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 name - property name - The property name.\r\n * @param property - The property value or an IEventProperty containing value,\r\n * type ,pii and customer content.\r\n * @returns IEventProperty containing valid name, value, pii and type or null if invalid.\r\n */\r\nexport function sanitizeProperty(name, property, stringifyObjects) {\r\n // Check that property is valid\r\n if ((!property && !isValueAssigned(property)) || typeof name !== \"string\") {\r\n return null;\r\n }\r\n // Perf optimization -- only need to get the type once not multiple times\r\n var propType = typeof property;\r\n // If the property isn't IEventProperty (and is either string, number, boolean or array), convert it into one.\r\n if (propType === \"string\" || propType === \"number\" || propType === \"boolean\" || isArray(property)) {\r\n property = { value: property };\r\n }\r\n else if (propType === \"object\" && !ObjHasOwnProperty.call(property, \"value\")) {\r\n property = { value: stringifyObjects ? JSON.stringify(property) : property };\r\n }\r\n else if (isNullOrUndefined(property.value)\r\n || property.value === STR_EMPTY || (!isString(property.value)\r\n && !isNumber(property.value) && !isBoolean(property.value)\r\n && !isArray(property.value))) {\r\n // Since property is IEventProperty, we need to validate its value\r\n return null;\r\n }\r\n // We need to check that if the property value is an array, it is valid\r\n if (isArray(property.value) &&\r\n !isArrayValid(property.value)) {\r\n return null;\r\n }\r\n // If either pii or cc is set convert value to string (since only string pii/cc is allowed).\r\n // If the value is a complex type like an array that can't be converted to string we will drop\r\n // the property.\r\n if (!isNullOrUndefined(property.kind)) {\r\n if (isArray(property.value) || !isValueKind(property.kind)) {\r\n return null;\r\n }\r\n property.value = property.value.toString();\r\n }\r\n return property;\r\n}\r\nexport function getCommonSchemaMetaData(value, kind, type) {\r\n var encodedTypeValue = -1;\r\n if (!isUndefined(value)) {\r\n if (kind > 0) {\r\n if (kind === 32) {\r\n // encode customer content. Value can only be string. bit 13-16 are for cc\r\n encodedTypeValue = (1 << 13);\r\n }\r\n else if (kind <= 13) {\r\n // encode PII. Value can only be string. bits 5-12 are for Pii\r\n encodedTypeValue = (kind << 5);\r\n }\r\n }\r\n // isDataType checks that the \"type\" is a number so we don't need to check for undefined\r\n if (isDataType(type)) {\r\n // Data Type is provided and valid, so use that\r\n if (encodedTypeValue === -1) {\r\n // Don't return -1\r\n encodedTypeValue = 0;\r\n }\r\n encodedTypeValue |= type;\r\n }\r\n else {\r\n var propType = _fieldTypeEventPropMap[getFieldValueType(value)] || -1;\r\n if (encodedTypeValue !== -1 && propType !== -1) {\r\n // pii exists so we must return correct type\r\n encodedTypeValue |= propType;\r\n }\r\n else if (propType === 6 /* eEventPropertyType.Double */) {\r\n encodedTypeValue = propType;\r\n }\r\n }\r\n }\r\n return encodedTypeValue;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n * Overriding the applicationinsights-core version for tree-shaking\r\n */\r\nexport function disableCookies() {\r\n safeGetCookieMgr(null).setEnabled(false);\r\n}\r\n/**\r\n * @deprecated - Use the oneDs.getCookieMgr().set()\r\n * Sets the value of a cookie.\r\n * @param name - Cookie name.\r\n * @param value - Cookie value.\r\n * @param days - Expiration days.\r\n */\r\nexport function setCookie(name, value, days) {\r\n if (areCookiesSupported(null)) {\r\n safeGetCookieMgr(null).set(name, value, days * 86400, null, \"/\");\r\n }\r\n}\r\n/**\r\n * @deprecated - Use the oneDs.getCookieMgr().del()\r\n * Deletes a cookie, by setting its expiration to -1.\r\n * @param name - Cookie name to delete.\r\n */\r\nexport function deleteCookie(name) {\r\n if (areCookiesSupported(null)) {\r\n safeGetCookieMgr(null).del(name);\r\n }\r\n}\r\n/**\r\n * @deprecated - Use the oneDs.getCookieMgr().get()\r\n * Gets the cookie value for the specified cookie.\r\n * if value is k1=v1&k2==v2 then will return 'v1' for key 'k1'\r\n * @param cookieName - Cookie name.\r\n */\r\nexport function getCookie(name) {\r\n if (areCookiesSupported(null)) {\r\n return getCookieValue(safeGetCookieMgr(null), name);\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Helper to get and decode the cookie value using decodeURIComponent, this is for historical\r\n * backward compatibility where the document.cookie value was decoded before parsing.\r\n * @param cookieMgr - The cookie manager to use\r\n * @param name - The name of the cookie to get\r\n * @param decode - A flag to indicate whether the cookie value should be decoded\r\n * @returns The decoded cookie value (if available) otherwise an empty string.\r\n */\r\nexport function getCookieValue(cookieMgr, name, decode) {\r\n if (decode === void 0) { decode = true; }\r\n var cookieValue;\r\n if (cookieMgr) {\r\n cookieValue = cookieMgr.get(name);\r\n if (decode && cookieValue && decodeURIComponent) {\r\n cookieValue = decodeURIComponent(cookieValue);\r\n }\r\n }\r\n return cookieValue || STR_EMPTY;\r\n}\r\n/**\r\n * Create a new guid.\r\n * @param style - The style of guid to generated, defaults to Digits\r\n * Digits (Default) : 32 digits separated by hyphens: 00000000-0000-0000-0000-000000000000\r\n * Braces - 32 digits separated by hyphens, enclosed in braces: {00000000-0000-0000-0000-000000000000}\r\n * Parentheses - 32 digits separated by hyphens, enclosed in parentheses: (00000000-0000-0000-0000-000000000000)\r\n * Numeric - 32 digits: 00000000000000000000000000000000\r\n * @returns The formatted guid.\r\n */\r\nexport function createGuid(style) {\r\n if (style === void 0) { style = \"D\" /* GuidStyle.Digits */; }\r\n var theGuid = newGuid();\r\n if (style === \"B\" /* GuidStyle.Braces */) {\r\n theGuid = \"{\" + theGuid + \"}\";\r\n }\r\n else if (style === \"P\" /* GuidStyle.Parentheses */) {\r\n theGuid = \"(\" + theGuid + \")\";\r\n }\r\n else if (style === \"N\" /* GuidStyle.Numeric */) {\r\n theGuid = theGuid.replace(/-/g, STR_EMPTY);\r\n }\r\n return theGuid;\r\n}\r\n/**\r\n * Pass in the objects to merge as arguments.\r\n * @param obj1 - object to merge. Set this argument to 'true' for a deep extend.\r\n * @param obj2 - object to merge.\r\n * @param obj3 - object to merge.\r\n * @param obj4 - object to merge.\r\n * @param obj5 - object to merge.\r\n * @returns The extended object.\r\n */\r\nexport function extend(obj, obj2, obj3, obj4, obj5) {\r\n // Variables\r\n var extended = {};\r\n var deep = false;\r\n var i = 0;\r\n var length = arguments.length;\r\n var objProto = Object[strShimPrototype];\r\n var theArgs = arguments;\r\n // Check if a deep merge\r\n if (objProto.toString.call(theArgs[0]) === \"[object Boolean]\") {\r\n deep = theArgs[0];\r\n i++;\r\n }\r\n // Loop through each object and conduct a merge\r\n for (; i < length; i++) {\r\n var obj = theArgs[i];\r\n objForEachKey(obj, function (prop, value) {\r\n // If deep merge and property is an object, merge properties\r\n if (deep && value && isObject(value)) {\r\n if (isArray(value)) {\r\n extended[prop] = extended[prop] || [];\r\n arrForEach(value, function (arrayValue, arrayIndex) {\r\n if (arrayValue && isObject(arrayValue)) {\r\n extended[prop][arrayIndex] = extend(true, extended[prop][arrayIndex], arrayValue);\r\n }\r\n else {\r\n extended[prop][arrayIndex] = arrayValue;\r\n }\r\n });\r\n }\r\n else {\r\n extended[prop] = extend(true, extended[prop], value);\r\n }\r\n }\r\n else {\r\n extended[prop] = value;\r\n }\r\n });\r\n }\r\n return extended;\r\n}\r\nexport var getTime = perfNow;\r\nexport function isValueKind(value) {\r\n // Always assume that it's a number (no type checking) for performance as this is used during the JSON serialization\r\n if (value === 0 /* eValueKind.NotSet */ || ((value > 0 /* eValueKind.NotSet */ && value <= 13 /* eValueKind.Pii_IPV4AddressLegacy */) || value === 32 /* eValueKind.CustomerContent_GenericContent */)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isDataType(value) {\r\n // Remark: 0 returns false, but it doesn't affect encoding anyways\r\n // Always assume that it's a number (no type checking) for performance as this is used during the JSON serialization\r\n if (value >= 0 && value <= 9) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSafariOrFirefox() {\r\n var nav = getNavigator();\r\n // If non-browser navigator will be undefined\r\n if (!isUndefined(nav) && nav.userAgent) {\r\n var ua = nav.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\nexport function isArrayValid(value) {\r\n return value.length > 0;\r\n}\r\nexport function setProcessTelemetryTimings(event, identifier) {\r\n var evt = event;\r\n evt.timings = evt.timings || {};\r\n evt.timings.processTelemetryStart = evt.timings.processTelemetryStart || {};\r\n evt.timings.processTelemetryStart[identifier] = getTime();\r\n}\r\n/**\r\n * Returns a bitwise value for the FieldValueSanitizerType enum representing the decoded type of the passed value\r\n * @param value The value to determine the type\r\n */\r\nexport function getFieldValueType(value) {\r\n var theType = 0 /* FieldValueSanitizerType.NotSet */;\r\n if (value !== null && value !== undefined) {\r\n var objType = typeof value;\r\n if (objType === \"string\") {\r\n theType = 1 /* FieldValueSanitizerType.String */;\r\n }\r\n else if (objType === \"number\") {\r\n theType = 2 /* FieldValueSanitizerType.Number */;\r\n }\r\n else if (objType === \"boolean\") {\r\n theType = 3 /* FieldValueSanitizerType.Boolean */;\r\n }\r\n else if (objType === strShimObject) {\r\n theType = 4 /* FieldValueSanitizerType.Object */;\r\n if (isArray(value)) {\r\n theType = 4096 /* FieldValueSanitizerType.Array */;\r\n if (value.length > 0) {\r\n // Empty arrays are not supported and are considered to be the same as null\r\n theType |= getFieldValueType(value[0]);\r\n }\r\n }\r\n else if (ObjHasOwnProperty.call(value, \"value\")) {\r\n // Looks like an IEventProperty\r\n theType = 8192 /* FieldValueSanitizerType.EventProperty */ | getFieldValueType(value.value);\r\n }\r\n }\r\n }\r\n return theType;\r\n}\r\nexport var Utils = {\r\n Version: Version,\r\n FullVersionString: FullVersionString,\r\n strUndefined: strUndefined,\r\n strObject: strObject,\r\n Undefined: strUndefined,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n objKeys: objKeys,\r\n toISOString: toISOString,\r\n isReactNative: isReactNative,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n isFunction: isFunction,\r\n isArray: isArray,\r\n isObject: isObject,\r\n strTrim: strTrim,\r\n isDocumentObjectAvailable: isDocumentObjectAvailable,\r\n isWindowObjectAvailable: isWindowObjectAvailable,\r\n isValueAssigned: isValueAssigned,\r\n getTenantId: getTenantId,\r\n isBeaconsSupported: isBeaconsSupported,\r\n isUint8ArrayAvailable: isUint8ArrayAvailable,\r\n isLatency: isLatency,\r\n sanitizeProperty: sanitizeProperty,\r\n getISOString: toISOString,\r\n useXDomainRequest: useXDomainRequest,\r\n getCommonSchemaMetaData: getCommonSchemaMetaData,\r\n cookieAvailable: areCookiesSupported,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: setCookie,\r\n deleteCookie: deleteCookie,\r\n getCookie: getCookie,\r\n createGuid: createGuid,\r\n extend: extend,\r\n getTime: getTime,\r\n isValueKind: isValueKind,\r\n isArrayValid: isArrayValid,\r\n objDefineAccessors: objDefineAccessors,\r\n addPageUnloadEventListener: addPageUnloadEventListener,\r\n setProcessTelemetryTimings: setProcessTelemetryTimings,\r\n addEventHandler: addEventHandler,\r\n getFieldValueType: getFieldValueType,\r\n strEndsWith: strEndsWith,\r\n objForEachKey: objForEachKey\r\n};\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n * Overriding the applicationinsights-core version for tree-shaking\r\n */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\n/**\r\n * Helper to identify whether we are running in a chromium based browser environment\r\n */\r\nexport function isChromium() {\r\n return !!getGlobalInst(\"chrome\");\r\n}\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n if (disabled === void 0) { disabled = false; }\r\n if (isSync === void 0) { isSync = false; }\r\n function _wrapSetXhrProp(xhr, prop, value) {\r\n try {\r\n xhr[prop] = value;\r\n }\r\n catch (e) {\r\n // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n }\r\n }\r\n var xhr = new XMLHttpRequest();\r\n if (disabled) {\r\n // Tag the instance so it's not tracked (trackDependency)\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n }\r\n if (withCredentials) {\r\n // Some libraries require that the withCredentials flag is set \"before\" open and\r\n // - Wrapping as IE 10 has started throwing when setting before open\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n xhr.open(method, urlString, !isSync);\r\n if (withCredentials) {\r\n // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n // Only set the timeout for asynchronous requests as\r\n // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n if (!isSync && timeout) {\r\n _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n }\r\n return xhr;\r\n}\r\n//# sourceMappingURL=Utils.js.map","/*\n * 1DS JS SDK Core, 3.2.8\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* AppInsightsCore.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AppInsightsCore as InternalCore, DiagnosticLogger, _throwInternal, arrForEach, doPerf, dumpObj, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DEFAULT_ENDPOINT_URL, STR_EMPTY, STR_PROPERTIES, STR_VERSION } from \"./InternalConstants\";\r\nimport { FullVersionString, getTime, isLatency } from \"./Utils\";\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n __extends(AppInsightsCore, _super);\r\n function AppInsightsCore() {\r\n var _this = _super.call(this) || this;\r\n _this.pluginVersionStringArr = [];\r\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n if (!_self.logger || !_self.logger.queue) {\r\n // The AI Base can inject a No-Op logger so if not defined or the No-Op, change to use a default logger so initialization errors\r\n // are not dropped on the floor if one is not already defined\r\n _self.logger = new DiagnosticLogger({ loggingLevelConsole: 1 /* eLoggingSeverity.CRITICAL */ });\r\n }\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n doPerf(_self, function () { return \"AppInsightsCore.initialize\"; }, function () {\r\n var _pluginVersionStringArr = _self.pluginVersionStringArr;\r\n // Add default collector url\r\n if (config) {\r\n if (!config.endpointUrl) {\r\n config.endpointUrl = STR_DEFAULT_ENDPOINT_URL;\r\n }\r\n var propertyStorageOverride = config.propertyStorageOverride;\r\n // Validate property storage override\r\n if (propertyStorageOverride && (!propertyStorageOverride.getProperty || !propertyStorageOverride.setProperty)) {\r\n throwError(\"Invalid property storage override passed.\");\r\n }\r\n if (config.channels) {\r\n arrForEach(config.channels, function (channels) {\r\n if (channels) {\r\n arrForEach(channels, function (channel) {\r\n if (channel.identifier && channel.version) {\r\n var ver = channel.identifier + \"=\" + channel.version;\r\n _pluginVersionStringArr.push(ver);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n _self.getWParam = function () {\r\n return (typeof document !== \"undefined\" || !!config.enableWParam) ? 0 : -1;\r\n };\r\n if (extensions) {\r\n arrForEach(extensions, function (ext) {\r\n if (ext && ext.identifier && ext.version) {\r\n var ver = ext.identifier + \"=\" + ext.version;\r\n _pluginVersionStringArr.push(ver);\r\n }\r\n });\r\n }\r\n _self.pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n _self.pluginVersionStringArr = _pluginVersionStringArr;\r\n try {\r\n _base.initialize(config, extensions, logger, notificationManager);\r\n _self.pollInternalLogs(\"InternalLog\");\r\n }\r\n catch (e) {\r\n var logger_1 = _self.logger;\r\n var message = dumpObj(e);\r\n if (message.indexOf(\"channels\") !== -1) {\r\n // Add some additional context to the underlying reported error\r\n message += \"\\n - Channels must be provided through config.channels only!\";\r\n }\r\n _throwInternal(logger_1, 1 /* eLoggingSeverity.CRITICAL */, 514 /* _eExtendedInternalMessageId.FailedToInitializeSDK */, \"SDK Initialization Failed - no telemetry will be sent: \" + message);\r\n }\r\n }, function () { return ({ config: config, extensions: extensions, logger: logger, notificationManager: notificationManager }); });\r\n };\r\n _self.track = function (item) {\r\n doPerf(_self, function () { return \"AppInsightsCore.track\"; }, function () {\r\n var telemetryItem = item;\r\n if (telemetryItem) {\r\n telemetryItem.timings = telemetryItem.timings || {};\r\n telemetryItem.timings.trackStart = getTime();\r\n if (!isLatency(telemetryItem.latency)) {\r\n telemetryItem.latency = 1 /* EventLatencyValue.Normal */;\r\n }\r\n var itemExt = telemetryItem.ext = telemetryItem.ext || {};\r\n itemExt.sdk = itemExt.sdk || {};\r\n itemExt.sdk.ver = FullVersionString;\r\n var baseData = telemetryItem.baseData = telemetryItem.baseData || {};\r\n baseData[STR_PROPERTIES] = baseData[STR_PROPERTIES] || {};\r\n var itemProperties = baseData[STR_PROPERTIES];\r\n itemProperties[STR_VERSION] = itemProperties[STR_VERSION] || _self.pluginVersionString || STR_EMPTY;\r\n }\r\n _base.track(telemetryItem);\r\n }, function () { return ({ item: item }); }, !(item.sync));\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}(InternalCore));\r\nexport default AppInsightsCore;\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * 1DS JS SDK Core, 3.2.8\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* BaseCore.ts\r\n* Base Core is a subset of 1DS Web SDK Core. The purpose of Base Core is to generate a smaller bundle size while providing essential features of Core. Features that are not included in Base Core are:\r\n* 1. Internal logging\r\n* 2. Sending notifications on telemetry sent/discarded\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseCore as InternalCore, _throwInternal, dumpObj } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DEFAULT_ENDPOINT_URL } from \"./InternalConstants\";\r\nimport { FullVersionString, isDocumentObjectAvailable } from \"./Utils\";\r\nvar BaseCore = /** @class */ (function (_super) {\r\n __extends(BaseCore, _super);\r\n function BaseCore() {\r\n var _this = _super.call(this) || this;\r\n dynamicProto(BaseCore, _this, function (_self, _base) {\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n if (config && !config.endpointUrl) {\r\n config.endpointUrl = STR_DEFAULT_ENDPOINT_URL;\r\n }\r\n _self.getWParam = function () {\r\n return (isDocumentObjectAvailable || !!config.enableWParam) ? 0 : -1;\r\n };\r\n try {\r\n _base.initialize(config, extensions, logger, notificationManager);\r\n }\r\n catch (e) {\r\n _throwInternal(_self.logger, 1 /* eLoggingSeverity.CRITICAL */, 514 /* _eExtendedInternalMessageId.FailedToInitializeSDK */, \"Initialization Failed: \" + dumpObj(e) + \"\\n - Note: Channels must be provided through config.channels only\");\r\n }\r\n };\r\n _self.track = function (item) {\r\n var telemetryItem = item;\r\n if (telemetryItem) {\r\n var ext = telemetryItem.ext = telemetryItem.ext || {};\r\n ext.sdk = ext.sdk || {};\r\n ext.sdk.ver = FullVersionString;\r\n }\r\n _base.track(telemetryItem);\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for BaseCore.prototype.initialize.\r\n// Removed Stub for BaseCore.prototype.track.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n BaseCore.__ieDyn=1;\n\n return BaseCore;\r\n}(InternalCore));\r\nexport default BaseCore;\r\n//# sourceMappingURL=BaseCore.js.map","/*\n * 1DS JS SDK Core, 3.2.8\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* ESPromise.ts\r\n* @author Nev Wylie (newylie))\r\n* @copyright Microsoft 2019\r\n* Simplified wrapper to provide ES6 style Promise callback handling for older browsers\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * @ignore -- Don't include in the generated documentation\r\n * Using a local variable to assist with minfication\r\n */\r\nvar _isFunction = isFunction;\r\n/**\r\n * @ignore -- Don't include in the generated documentation\r\n * This function will be used as onFulfilled handler for any Promise found in the iterable passed to Promise.all.\r\n * The goal here is to capture in a closure the index of the current item from the iterable. If we did not create\r\n * this closure, the captured index variable would be the same one that the for loop updates and thus would always\r\n * be pointing to the last index in the iterable by the time that the onFulfilled handler is called.\r\n * However, note that for the resolvedCallback callback we want the opposite. For this one we do want to capture\r\n * the same variable that the for loop updates so that we have the full count of pending promises by the time\r\n * the onFulfilled handlers start getting called.\r\n * @param values The resolving promise values\r\n * @param index The index of this callback function\r\n * @param resolvedCallback THe callback function used to check if the \"all\" promise is complete\r\n */\r\nfunction _createPromiseAllOnResolvedFunction(values, index, resolvedCallback) {\r\n return function (value) {\r\n values[index] = value;\r\n resolvedCallback();\r\n };\r\n}\r\n/**\r\n * Simplified wrapper to provide ES6 style Promise callback handling for older browsers\r\n */\r\nvar ESPromise = /** @class */ (function () {\r\n /**\r\n * The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value.\r\n * @param resolverFunc A function that is passed with the arguments resolve and reject. The executor function is executed\r\n * immediately by the Promise implementation, passing resolve and reject functions (the executor is called before the Promise\r\n * constructor even returns the created object). The resolve and reject functions, when called, resolve or reject the promise,\r\n * respectively. The executor normally initiates some asynchronous work, and then, once that completes, either calls the resolve\r\n * function to resolve the promise or else rejects it if an error occurred. If an error is thrown in the executor function, the\r\n * promise is rejected. The return value of the executor is ignored.\r\n */\r\n function ESPromise(resolverFunc) {\r\n var _state = 0 /* PromiseState.Pending */;\r\n var _settledValue = null;\r\n var _queue = [];\r\n dynamicProto(ESPromise, this, function (_this) {\r\n _this.then = function (onResolved, onRejected) {\r\n return new ESPromise(function (resolve, reject) {\r\n // Queue the new promise returned to be resolved or rejected\r\n // when this promise settles.\r\n _enqueue(onResolved, onRejected, resolve, reject);\r\n });\r\n };\r\n _this[\"catch\"] = function (onRejected) {\r\n return _this.then(null, onRejected);\r\n };\r\n });\r\n function _enqueue(onResolved, onRejected, resolve, reject) {\r\n _queue.push(function () {\r\n var value;\r\n try {\r\n // First call the onFulfilled or onRejected handler, on the settled value\r\n // of this promise. If the corresponding handler does not exist, simply\r\n // pass through the settled value.\r\n if (_state === 1 /* PromiseState.Resolved */) {\r\n value = _isFunction(onResolved) ? onResolved(_settledValue) : _settledValue;\r\n }\r\n else {\r\n value = _isFunction(onRejected) ? onRejected(_settledValue) : _settledValue;\r\n }\r\n if (value instanceof ESPromise) {\r\n // The called handlers returned a new promise, so the chained promise\r\n // will follow the state of this promise.\r\n value.then(resolve, reject);\r\n }\r\n else if (_state === 2 /* PromiseState.Rejected */ && !_isFunction(onRejected)) {\r\n // If there wasn't an onRejected handler and this promise is rejected, then\r\n // the chained promise also rejects with the same reason.\r\n reject(value);\r\n }\r\n else {\r\n // If this promise is fulfilled, then the chained promise is also fulfilled\r\n // with either the settled value of this promise (if no onFulfilled handler\r\n // was available) or the return value of the handler. If this promise is\r\n // rejected and there was an onRejected handler, then the chained promise is\r\n // fulfilled with the return value of the handler.\r\n resolve(value);\r\n }\r\n }\r\n catch (error) {\r\n // The chained promise will reject if there is any exception thrown while\r\n // calling the onFulfilled or onRejected handlers.\r\n reject(error);\r\n return;\r\n }\r\n });\r\n // If this promise is already settled, then immediately process the callback we\r\n // just added to the queue.\r\n if (_state !== 0 /* PromiseState.Pending */) {\r\n _processQueue();\r\n }\r\n }\r\n function _processQueue() {\r\n if (_queue.length > 0) {\r\n // The onFulfilled and onRejected handlers must be called asynchronously. Thus,\r\n // we make a copy of the queue and work on it once the current call stack unwinds.\r\n var pending_1 = _queue.slice();\r\n _queue = [];\r\n setTimeout(function () {\r\n for (var i = 0, len = pending_1.length; i < len; ++i) {\r\n try {\r\n pending_1[i]();\r\n }\r\n catch (e) {\r\n // Don't let 1 failing handler break all others\r\n // TODO (newylie): Add some form of error reporting (i.e. Call any registered JS error handler so the error is reported)\r\n }\r\n }\r\n }, 0);\r\n }\r\n }\r\n function _resolve(value) {\r\n if (_state === 0 /* PromiseState.Pending */) {\r\n _settledValue = value;\r\n _state = 1 /* PromiseState.Resolved */;\r\n _processQueue();\r\n }\r\n }\r\n function _reject(reason) {\r\n if (_state === 0 /* PromiseState.Pending */) {\r\n _settledValue = reason;\r\n _state = 2 /* PromiseState.Rejected */;\r\n _processQueue();\r\n }\r\n }\r\n (function _initialize() {\r\n if (!_isFunction(resolverFunc)) {\r\n throw new TypeError(\"ESPromise: resolvedFunc argument is not a Function\");\r\n }\r\n try {\r\n resolverFunc(_resolve, _reject);\r\n }\r\n catch (error) {\r\n // This promise will immediately reject if any exception is thrown\r\n // from within the executor function.\r\n _reject(error);\r\n }\r\n })();\r\n }\r\n /**\r\n * The Promise.resolve() method returns a Promise object that is resolved with a given value. If the value is a promise, that promise is returned;\r\n * if the value is a thenable (i.e. has a \"then\" method), the returned promise will \"follow\" that thenable, adopting its eventual state; otherwise\r\n * the returned promise will be fulfilled with the value. This function flattens nested layers of promise-like objects (e.g. a promise that resolves\r\n * to a promise that resolves to something) into a single layer.\r\n * @param value Argument to be resolved by this Promise. Can also be a Promise or a thenable to resolve.\r\n */\r\n ESPromise.resolve = function (value) {\r\n if (value instanceof ESPromise) {\r\n // Value is a Promise so just return it\r\n return value;\r\n }\r\n else if (value && _isFunction(value.then)) {\r\n // Value looks like a promise or thenable (has a then function)\r\n return new ESPromise(function (resolve, reject) {\r\n try {\r\n value.then(resolve, reject);\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n }\r\n return new ESPromise(function (resolve) {\r\n resolve(value);\r\n });\r\n };\r\n /**\r\n * The Promise.reject() method returns a Promise object that is rejected with a given reason.\r\n * @param reason The reason why this Promise rejected.\r\n */\r\n ESPromise.reject = function (reason) {\r\n return new ESPromise(function (resolve, reject) {\r\n reject(reason);\r\n });\r\n };\r\n /**\r\n * The Promise.all() method returns a single Promise that resolves when all of the promises passed as an iterable\r\n * have resolved or when the iterable contains no promises. It rejects with the reason of the first promise that\r\n * rejects. There is no implied ordering in the execution of the array of Promises given. On some computers, they\r\n * may be executed in parallel, or in some sense concurrently, while on others they may be executed serially. For\r\n * this reason, there must be no dependency in any Promise on the order of execution of the Promises.\r\n * This method can be useful for aggregating the results of multiple promises.\r\n * FulfillmentSection - The returned promise is fulfilled with an array containing all the values of the iterable\r\n * passed as argument (also non-promise values).\r\n * If an empty iterable is passed, then this method returns (synchronously) an already resolved promise.\r\n * If all of the passed-in promises fulfill, or are not promises, the promise returned by Promise.all is fulfilled\r\n * asynchronously.\r\n * RejectionSection - If any of the passed-in promises reject, Promise.all asynchronously rejects with the value of\r\n * the promise that rejected, whether or not the other promises have resolved.\r\n * @param iterable\r\n */\r\n ESPromise.all = function (iterable) {\r\n if (!iterable || !iterable.length) {\r\n return;\r\n }\r\n return new ESPromise(function (resolve, reject) {\r\n try {\r\n var values_1 = [];\r\n var pending_2 = 0;\r\n for (var lp = 0; lp < iterable.length; lp++) {\r\n var item = iterable[lp];\r\n // Quick and direct check for a Promise (will also catch a thenable)\r\n if (item && _isFunction(item.then)) {\r\n pending_2++;\r\n item.then(_createPromiseAllOnResolvedFunction(values_1, lp, function () {\r\n if (--pending_2 === 0) {\r\n resolve(values_1);\r\n }\r\n }), reject);\r\n }\r\n else {\r\n values_1[lp] = item;\r\n }\r\n }\r\n if (pending_2 === 0) {\r\n // All promises were either resolved or where not a promise\r\n setTimeout(function () {\r\n resolve(values_1);\r\n }, 0);\r\n }\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n };\r\n /**\r\n * The race function returns a Promise that is settled the same way (and takes the same value) as the first promise\r\n * that settles amongst the promises of the iterable passed as an argument.\r\n * If the iterable passed is empty, the promise returned will be forever pending.\r\n * If the iterable contains one or more non-promise value and/or an already settled promise, then Promise.race will\r\n * resolve to the first of these values found in the iterable.\r\n * @param iterable\r\n */\r\n ESPromise.race = function (iterable) {\r\n return new ESPromise(function (resolve, reject) {\r\n if (!iterable || !iterable.length) {\r\n return;\r\n }\r\n try {\r\n var _loop_1 = function (lp) {\r\n var item = iterable[lp];\r\n // Quick and direct check for a Promise (will also catch a thenable)\r\n if (item && _isFunction(item.then)) {\r\n item.then(resolve, reject);\r\n }\r\n else {\r\n setTimeout(function () {\r\n resolve(item);\r\n }, 0);\r\n }\r\n };\r\n for (var lp = 0; lp < iterable.length; lp++) {\r\n _loop_1(lp);\r\n }\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n };\r\n// Removed Stub for ESPromise.prototype.then.\r\n// Removed Stub for ESPromise.prototype[\"catch\"].\r\n return ESPromise;\r\n}());\r\nexport default ESPromise;\r\n//# sourceMappingURL=ESPromise.js.map","/*\n * 1DS JS SDK Core, 3.2.8\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* ESPromiseScheduler.ts\r\n* @author Nev Wylie (newylie)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport ESPromise from \"./ESPromise\";\r\nimport { _warnToConsole, getGlobal } from \"@microsoft/applicationinsights-core-js\";\r\n/** This is a default timeout that will cause outstanding running promises to be removed/rejected to avoid filling up memory with blocked events */\r\nvar LazyRejectPeriod = 600000; // 10 Minutes\r\n// These are global variables that are shared across ALL instances of the scheduler\r\n/**\r\n * @ignore\r\n */\r\nvar _schedulerId = 0;\r\n/**\r\n * @ignore\r\n */\r\nvar _running = [];\r\n/**\r\n * @ignore\r\n */\r\nvar _waiting = [];\r\n/**\r\n * @ignore\r\n */\r\nvar _timedOut = [];\r\n/**\r\n * @ignore\r\n */\r\nfunction _getTime() {\r\n return new Date().getTime();\r\n}\r\n/**\r\n * Provides a simple mechanism queueing mechanism for scheduling events based on the ESPromise callbacks, this is used to ensure\r\n * order of async operations that are required to be executed in a specific order.\r\n */\r\nvar ESPromiseScheduler = /** @class */ (function () {\r\n function ESPromiseScheduler(name, diagLog) {\r\n var _promiseId = 0;\r\n var _scheduledName = (name || \"<unnamed>\") + \".\" + _schedulerId;\r\n _schedulerId++;\r\n dynamicProto(ESPromiseScheduler, this, function (_this) {\r\n var _lastEvent = null;\r\n var _eventCount = 0;\r\n _this.scheduleEvent = function (startEventAction, eventName, timeout) {\r\n var uniqueId = _scheduledName + \".\" + _eventCount;\r\n _eventCount++;\r\n if (eventName) {\r\n uniqueId += \"-(\" + eventName + \")\";\r\n }\r\n var uniqueEventId = uniqueId + \"{\" + _promiseId + \"}\";\r\n _promiseId++;\r\n // Create the next scheduled event details\r\n var newScheduledEvent = {\r\n evt: null,\r\n tm: _getTime(),\r\n id: uniqueEventId,\r\n isRunning: false,\r\n isAborted: false\r\n };\r\n if (!_lastEvent) {\r\n // We don't have any currently running event, so just start the next event\r\n newScheduledEvent.evt = _startWaitingEvent(newScheduledEvent);\r\n }\r\n else {\r\n // Start a new promise which will wait until all current active events are complete before starting\r\n // the new event, it does not resolve this scheduled event until after the new event is resolve to\r\n // ensure that all scheduled events are completed in the correct order\r\n newScheduledEvent.evt = _waitForPreviousEvent(newScheduledEvent, _lastEvent);\r\n }\r\n // Set this new event as the last one, so that any future events will wait for this one\r\n _lastEvent = newScheduledEvent;\r\n _lastEvent.evt._schId = uniqueEventId;\r\n return newScheduledEvent.evt;\r\n function _abortAndRemoveOldEvents(eventQueue) {\r\n var now = _getTime();\r\n var expired = now - LazyRejectPeriod;\r\n var len = eventQueue.length;\r\n var lp = 0;\r\n while (lp < len) {\r\n var evt = eventQueue[lp];\r\n if (evt && evt.tm < expired) {\r\n var message = null;\r\n if (evt.abort) {\r\n message = \"Aborting [\" + evt.id + \"] due to Excessive runtime (\" + (now - evt.tm) + \" ms)\";\r\n evt.abort(message);\r\n }\r\n else {\r\n message = \"Removing [\" + evt.id + \"] due to Excessive runtime (\" + (now - evt.tm) + \" ms)\";\r\n }\r\n _warnLog(message);\r\n eventQueue.splice(lp, 1);\r\n len--;\r\n }\r\n else {\r\n lp++;\r\n }\r\n }\r\n }\r\n function _cleanup(eventId, completed) {\r\n var toQueue = false;\r\n var removed = _removeQueuedEvent(_running, eventId);\r\n if (!removed) {\r\n removed = _removeQueuedEvent(_timedOut, eventId);\r\n toQueue = true;\r\n }\r\n if (removed) {\r\n if (removed.to) {\r\n // If there was a timeout stop it\r\n clearTimeout(removed.to);\r\n removed.to = null;\r\n }\r\n // TODO (newylie): Convert this into reportable metrics\r\n var tm = _getTime() - removed.tm;\r\n if (completed) {\r\n if (!toQueue) {\r\n _debugLog(\"Promise [\" + eventId + \"] Complete -- \" + tm + \" ms\");\r\n }\r\n else {\r\n _warnLog(\"Timed out event [\" + eventId + \"] finally complete -- \" + tm + \" ms\");\r\n }\r\n }\r\n else {\r\n _timedOut.push(removed);\r\n _warnLog(\"Event [\" + eventId + \"] Timed out and removed -- \" + tm + \" ms\");\r\n }\r\n }\r\n else {\r\n _debugLog(\"Failed to remove [\" + eventId + \"] from running queue\");\r\n }\r\n // Also if the last scheduled event was this event then clear it as we are now finished\r\n if (_lastEvent && _lastEvent.id === eventId) {\r\n _lastEvent = null;\r\n }\r\n _abortAndRemoveOldEvents(_running);\r\n _abortAndRemoveOldEvents(_waiting);\r\n _abortAndRemoveOldEvents(_timedOut);\r\n }\r\n // Return a callback function that will be called when the waiting promise is resolved or rejected to ensure\r\n // that any outer promise is also resolved or rejected\r\n function _removeScheduledEvent(eventId, callback) {\r\n return function (value) {\r\n _cleanup(eventId, true);\r\n callback && callback(value);\r\n return value;\r\n };\r\n }\r\n function _waitForFinalResult(eventId, startResult, schEventResolve, schEventReject) {\r\n startResult.then(function (value) {\r\n if (value instanceof ESPromise) {\r\n // If the result is a promise then this appears to be a chained result, so wait for this promise to complete\r\n _debugLog(\"Event [\" + eventId + \"] returned a promise -- waiting\");\r\n _waitForFinalResult(eventId, value, schEventResolve, schEventReject);\r\n return value;\r\n }\r\n else {\r\n return _removeScheduledEvent(eventId, schEventResolve)(value);\r\n }\r\n }, _removeScheduledEvent(eventId, schEventReject));\r\n }\r\n // Add the passed event to the active event list with resolve and reject callbacks that will remove\r\n // it from the active event list\r\n function _createScheduledEvent(eventDetails, startEvent) {\r\n var eventId = eventDetails.id;\r\n return new ESPromise(function (schEventResolve, schEventReject) {\r\n _debugLog(\"Event [\" + eventId + \"] Starting -- waited for \" + (eventDetails.wTm || \"--\") + \" ms\");\r\n eventDetails.isRunning = true;\r\n eventDetails.abort = function (message) {\r\n eventDetails.abort = null;\r\n eventDetails.isAborted = true;\r\n _cleanup(eventId, false);\r\n schEventReject(new Error(message));\r\n };\r\n var startResult = startEvent(eventId);\r\n if (startResult instanceof ESPromise) {\r\n if (timeout) {\r\n // Note: Only starting a timer if a timeout was specified\r\n eventDetails.to = setTimeout(function () {\r\n _cleanup(eventId, false);\r\n // Cause the listeners to reject (Note: We can't actually reject the waiting event)\r\n schEventReject(new Error(\"Timed out after [\" + timeout + \"] ms\"));\r\n }, timeout);\r\n }\r\n _waitForFinalResult(eventId, startResult, function (theResult) {\r\n _debugLog(\"Event [\" + eventId + \"] Resolving after \" + (_getTime() - eventDetails.tm) + \" ms\");\r\n schEventResolve(theResult);\r\n }, schEventReject);\r\n }\r\n else {\r\n // The startEvent didn't return a promise so just return a resolved promise\r\n _debugLog(\"Promise [\" + eventId + \"] Auto completed as the start action did not return a promise\");\r\n schEventResolve();\r\n }\r\n });\r\n }\r\n function _startWaitingEvent(eventDetails) {\r\n var now = _getTime();\r\n eventDetails.wTm = now - eventDetails.tm;\r\n eventDetails.tm = now;\r\n if (eventDetails.isAborted) {\r\n return ESPromise.reject(new Error(\"[\" + uniqueId + \"] was aborted\"));\r\n }\r\n _running.push(eventDetails);\r\n return _createScheduledEvent(eventDetails, startEventAction);\r\n }\r\n // Start a new promise which will wait until all current active events are complete before starting\r\n // the new event, it does not resolve this scheduled event until after the new event is resolve to\r\n // ensure that all scheduled events are completed in the correct order\r\n function _waitForPreviousEvent(eventDetails, waitForEvent) {\r\n var waitEvent = new ESPromise(function (waitResolve, waitReject) {\r\n var runTime = _getTime() - waitForEvent.tm;\r\n var prevId = waitForEvent.id;\r\n _debugLog(\"[\" + uniqueId + \"] is waiting for [\" + prevId + \":\" + runTime + \" ms] to complete before starting -- [\" + _waiting.length + \"] waiting and [\" + _running.length + \"] running\");\r\n eventDetails.abort = function (message) {\r\n eventDetails.abort = null;\r\n _removeQueuedEvent(_waiting, uniqueId);\r\n eventDetails.isAborted = true;\r\n waitReject(new Error(message));\r\n };\r\n // Wait for the previous event to complete\r\n waitForEvent.evt.then(function (value) {\r\n _removeQueuedEvent(_waiting, uniqueId);\r\n // Wait for the last event to complete before starting the new one, this ensures the execution\r\n // order so that we don't try and remove events that havn't been committed yet\r\n _startWaitingEvent(eventDetails).then(waitResolve, waitReject);\r\n }, function (reason) {\r\n _removeQueuedEvent(_waiting, uniqueId);\r\n // Wait for the last event to complete before starting the new one, this ensures the execution\r\n // order so that we don't try and remove events that havn't been committed yet\r\n _startWaitingEvent(eventDetails).then(waitResolve, waitReject);\r\n });\r\n });\r\n _waiting.push(eventDetails);\r\n return waitEvent;\r\n }\r\n };\r\n function _removeQueuedEvent(queue, eventId) {\r\n for (var lp = 0; lp < queue.length; lp++) {\r\n if (queue[lp].id === eventId) {\r\n return queue.splice(lp, 1)[0];\r\n }\r\n }\r\n return null;\r\n }\r\n });\r\n function _debugLog(message) {\r\n // Only log if running within test harness\r\n var global = getGlobal();\r\n if (global && global[\"QUnit\"]) {\r\n // tslint:disable-next-line:no-console\r\n console && console.log(\"ESPromiseScheduler[\" + _scheduledName + \"] \" + message);\r\n }\r\n }\r\n function _warnLog(message) {\r\n _warnToConsole(diagLog, \"ESPromiseScheduler[\" + _scheduledName + \"] \" + message);\r\n }\r\n }\r\n ESPromiseScheduler.incomplete = function () {\r\n return _running;\r\n };\r\n ESPromiseScheduler.waitingToStart = function () {\r\n return _waiting;\r\n };\r\n// Removed Stub for ESPromiseScheduler.prototype.scheduleEvent.\r\n return ESPromiseScheduler;\r\n}());\r\nexport default ESPromiseScheduler;\r\n//# sourceMappingURL=ESPromiseScheduler.js.map","/*\n * 1DS JS SDK Core, 3.2.8\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { isNullOrUndefined, isString, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { getFieldValueType, isValueAssigned, isValueKind } from \"./Utils\";\r\nvar ValueSanitizer = /** @class */ (function () {\r\n function ValueSanitizer(fieldSanitizerProvider) {\r\n var _self = this;\r\n // To aid with performance this is a lookup map to check if the field value sanitizer supports this field\r\n var _sanitizerMap = {};\r\n var _sanitizers = [];\r\n var _fieldSanitizers = [];\r\n if (fieldSanitizerProvider) {\r\n _fieldSanitizers.push(fieldSanitizerProvider);\r\n }\r\n function _getFieldSanitizer(path, name) {\r\n var result;\r\n var fieldLookup = _sanitizerMap[path];\r\n if (fieldLookup) {\r\n result = fieldLookup[name];\r\n }\r\n if (!result && result !== null) {\r\n // Null is a valid result indicating that the value sanitizer does not support this field\r\n if (isString(path) && isString(name)) {\r\n if (_fieldSanitizers.length > 0) {\r\n for (var lp = 0; lp < _fieldSanitizers.length; lp++) {\r\n if (_fieldSanitizers[lp].handleField(path, name)) {\r\n result = {\r\n canHandle: true,\r\n fieldHandler: _fieldSanitizers[lp]\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n else if (_sanitizers.length === 0) {\r\n // Special use-case where there is no sanitizer to pass on to, so just resolving the field\r\n // and returning the resulting value (same as sanitizeProperty())\r\n result = {\r\n canHandle: true\r\n };\r\n }\r\n }\r\n // We still don't have a handler so lets lookup the providers\r\n if (!result && result !== null) {\r\n // Setting the result to null -- which means we and any contained sanitizers can't handle this field\r\n result = null;\r\n for (var lp = 0; lp < _sanitizers.length; lp++) {\r\n if (_sanitizers[lp].handleField(path, name)) {\r\n result = {\r\n canHandle: true,\r\n handler: _sanitizers[lp],\r\n fieldHandler: null\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n if (!fieldLookup) {\r\n fieldLookup = _sanitizerMap[path] = {};\r\n }\r\n fieldLookup[name] = result;\r\n }\r\n return result;\r\n }\r\n _self.addSanitizer = function (newSanitizer) {\r\n if (newSanitizer) {\r\n _sanitizers.push(newSanitizer);\r\n // Invalidate any previously mapped fields\r\n _sanitizerMap = {};\r\n }\r\n };\r\n _self.addFieldSanitizer = function (fieldSanitizer) {\r\n if (fieldSanitizer) {\r\n _fieldSanitizers.push(fieldSanitizer);\r\n // Invalidate any previously mapped fields\r\n _sanitizerMap = {};\r\n }\r\n };\r\n _self.handleField = function (path, name) {\r\n var mapValue = _getFieldSanitizer(path, name);\r\n return mapValue ? mapValue.canHandle : false;\r\n };\r\n _self.value = function (path, name, value, stringifyObjects) {\r\n var mapValue = _getFieldSanitizer(path, name);\r\n if (mapValue && mapValue.canHandle) {\r\n if (!mapValue || !mapValue.canHandle) {\r\n return null;\r\n }\r\n if (mapValue.handler) {\r\n // This value sanitizer can't handle this field so pass it only the next one\r\n return mapValue.handler.value(path, name, value, stringifyObjects);\r\n }\r\n // Check that property is valid\r\n if (!isString(name) || isNullOrUndefined(value) || value === STR_EMPTY) {\r\n return null;\r\n }\r\n var property = null;\r\n var fieldType = getFieldValueType(value);\r\n if ((fieldType & 8192 /* FieldValueSanitizerType.EventProperty */) === 8192 /* FieldValueSanitizerType.EventProperty */) {\r\n var subType = fieldType & ~8192 /* FieldValueSanitizerType.EventProperty */;\r\n property = value;\r\n if (!isValueAssigned(property.value) ||\r\n (subType !== 1 /* FieldValueSanitizerType.String */ &&\r\n subType !== 2 /* FieldValueSanitizerType.Number */ &&\r\n subType !== 3 /* FieldValueSanitizerType.Boolean */ &&\r\n (subType & 4096 /* FieldValueSanitizerType.Array */) !== 4096 /* FieldValueSanitizerType.Array */)) {\r\n // Not a supported IEventProperty type to be able to sanitize\r\n return null;\r\n }\r\n }\r\n else if (fieldType === 1 /* FieldValueSanitizerType.String */ ||\r\n fieldType === 2 /* FieldValueSanitizerType.Number */ ||\r\n fieldType === 3 /* FieldValueSanitizerType.Boolean */ ||\r\n (fieldType & 4096 /* FieldValueSanitizerType.Array */) === 4096 /* FieldValueSanitizerType.Array */) {\r\n // If the property isn't IEventProperty (and is either string, number, boolean or array), convert it into one.\r\n property = _convertToProperty(path, name, value);\r\n }\r\n else if (fieldType === 4 /* FieldValueSanitizerType.Object */) {\r\n property = _convertToProperty(path, name, !!stringifyObjects ? JSON.stringify(value) : value);\r\n }\r\n if (property) {\r\n return _handleProperty(mapValue, path, name, fieldType, property, stringifyObjects);\r\n }\r\n }\r\n return null;\r\n };\r\n _self.property = function (path, name, property, stringifyObjects) {\r\n var mapValue = _getFieldSanitizer(path, name);\r\n if (!mapValue || !mapValue.canHandle) {\r\n return null;\r\n }\r\n // Check that property is valid\r\n if (!isString(name) || isNullOrUndefined(property) || !isValueAssigned(property.value)) {\r\n return null;\r\n }\r\n var fieldType = getFieldValueType(property.value);\r\n if (fieldType === 0 /* FieldValueSanitizerType.NotSet */) {\r\n // Not a supported field that we can sanitize or serialize\r\n return null;\r\n }\r\n return _handleProperty(mapValue, path, name, fieldType, property, stringifyObjects);\r\n };\r\n function _handleProperty(mapValue, path, name, fieldType, property, stringifyObjects) {\r\n if (mapValue.handler) {\r\n // This value sanitizer can't handle this field so pass it only the next one\r\n return mapValue.handler.property(path, name, property, stringifyObjects);\r\n }\r\n // If either pii or cc is set convert value to string (since only string pii/cc is allowed).\r\n // If the value is a complex type like an array that can't be converted to string we will drop\r\n // the property.\r\n if (!isNullOrUndefined(property.kind)) {\r\n if ((fieldType & 4096 /* FieldValueSanitizerType.Array */) === 4096 /* FieldValueSanitizerType.Array */ || !isValueKind(property.kind)) {\r\n return null;\r\n }\r\n // Convert the value to a string and assign back to the original value\r\n property.value = property.value.toString();\r\n }\r\n return _callFieldSanitizer(mapValue.fieldHandler, path, name, fieldType, property);\r\n }\r\n function _convertToProperty(path, name, value) {\r\n if (isValueAssigned(value)) {\r\n return { value: value };\r\n }\r\n return null;\r\n }\r\n function _callFieldSanitizer(fieldProvider, path, name, theType, property) {\r\n if (property && fieldProvider) {\r\n var sanitizer = fieldProvider.getSanitizer(path, name, theType, property.kind, property.propertyType);\r\n if (sanitizer) {\r\n // This is where we the field will call the handler to \"scrub\" the value. This the primary hook for the ClientHashing Plugin to\r\n // be able to apply the hashFunc() / Sha256 conversion of the properties value\r\n if (theType === 4 /* FieldValueSanitizerType.Object */) {\r\n // Special case of an embedded object (ext.metadata, data.properties)\r\n var newValue_1 = {};\r\n var propValue = property.value;\r\n objForEachKey(propValue, function (propKey, theValue) {\r\n var newPath = path + \".\" + name;\r\n if (isValueAssigned(theValue)) {\r\n var newProp = _convertToProperty(newPath, propKey, theValue);\r\n newProp = _callFieldSanitizer(fieldProvider, newPath, propKey, getFieldValueType(theValue), newProp);\r\n if (newProp) {\r\n newValue_1[propKey] = newProp.value;\r\n }\r\n }\r\n });\r\n property.value = newValue_1;\r\n }\r\n else {\r\n var details = {\r\n path: path,\r\n name: name,\r\n type: theType,\r\n prop: property,\r\n sanitizer: _self\r\n };\r\n property = sanitizer.call(_self, details);\r\n }\r\n }\r\n }\r\n return property;\r\n }\r\n }\r\n ValueSanitizer.getFieldType = getFieldValueType;\r\n return ValueSanitizer;\r\n}());\r\nexport { ValueSanitizer };\r\n//# sourceMappingURL=ValueSanitizer.js.map"],"names":["ValueKind","createEnumStyle","NotSet","Pii_DistinguishedName","Pii_GenericData","Pii_IPV4Address","Pii_IPv6Address","Pii_MailSubject","Pii_PhoneNumber","Pii_QueryString","Pii_SipAddress","Pii_SmtpAddress","Pii_Identity","Pii_Uri","Pii_Fqdn","Pii_IPV4AddressLegacy","CustomerContent_GenericContent","EventLatency","Normal","CostDeferred","RealTime","Immediate","EventPropertyType","Unspecified","String","Int32","UInt32","Int64","UInt64","Double","Bool","Guid","DateTime","EventPersistence","Critical","TraceLevel","NONE","ERROR","WARNING","INFORMATION","_ExtendedInternalMessageId","objFreeze","__assign","_InternalMessageId","AuthHandShakeError","AuthRedirectFail","BrowserCannotReadLocalStorage","BrowserCannotWriteLocalStorage","BrowserDoesNotSupportLocalStorage","CannotParseBiBlobValue","CannotParseDataAttribute","CVPluginNotAvailable","DroppedEvent","ErrorParsingAISessionCookie","ErrorProvidedChannels","FailedToGetCookies","FailedToInitializeCorrelationVector","FailedToInitializeSDK","InvalidContentBlob","InvalidCorrelationValue","SessionRenewalDateIsZero","SendPostOnCompleteFailure","PostResponseHandler","SDKNotInitialized","STR_EMPTY","STR_DEFAULT_ENDPOINT_URL","STR_VERSION","STR_PROPERTIES","Version","FullVersionString","strWithCredentials","_fieldTypeEventPropMap","_a","uInt8ArraySupported","isDocumentObjectAvailable","Boolean","getDocument","isWindowObjectAvailable","getWindow","isValueAssigned","value","isNullOrUndefined","getTenantId","apiKey","indexTenantId","indexOf","substring","isUint8ArrayAvailable","isUndefined","Uint8Array","nav","getNavigator","userAgent","ua","toLowerCase","isReactNative","isLatency","isNumber","sanitizeProperty","name","property","stringifyObjects","propType","isArray","ObjHasOwnProperty","call","isString","isBoolean","JSON","stringify","isArrayValid","kind","isValueKind","toString","getCommonSchemaMetaData","type","encodedTypeValue","getFieldValueType","disableCookies","safeGetCookieMgr","setEnabled","setCookie","days","areCookiesSupported","set","deleteCookie","del","getCookie","getCookieValue","cookieMgr","decode","cookieValue","get","decodeURIComponent","createGuid","style","theGuid","newGuid","replace","extend","obj","obj2","obj3","obj4","obj5","extended","deep","i","length","arguments","objProto","Object","strShimPrototype","theArgs","objForEachKey","prop","isObject","arrForEach","arrayValue","arrayIndex","getTime","perfNow","setProcessTelemetryTimings","event","identifier","evt","timings","processTelemetryStart","objType","theType","undefined","strShimObject","Utils","strUndefined","strObject","Undefined","arrIndexOf","arrMap","arrReduce","objKeys","toISOString","isFunction","strTrim","isBeaconsSupported","getISOString","useXDomainRequest","cookieAvailable","disallowsSameSiteNone","uaDisallowsSameSiteNone","objDefineAccessors","addPageUnloadEventListener","addEventHandler","strEndsWith","CoreUtils","_canUseCookies","isTypeof","hasOwnProperty","isDate","isError","objCreate","objCreateFn","dateNow","isIE","newId","randomValue","random32","mwcRandomSeed","mwcRandom32","generateW3CId","_super","InternalCore","__extends","AppInsightsCore","__ieDyn","_this","this","pluginVersionStringArr","dynamicProto","_self","_base","logger","queue","DiagnosticLogger","loggingLevelConsole","initialize","config","extensions","notificationManager","doPerf","_pluginVersionStringArr","endpointUrl","propertyStorageOverride","getProperty","setProperty","throwError","channels","channel","version","ver","push","getWParam","document","enableWParam","ext","pluginVersionString","join","pollInternalLogs","e","logger_1","message","dumpObj","_throwInternal","track","item","itemProperties","telemetryItem","trackStart","latency","itemExt","sdk","baseData","BaseCore","_isFunction","ESPromise","resolve","then","reject","error","reason","all","iterable","values_1","pending_2","lp","values","index","setTimeout","race","_loop_1","resolverFunc","_state","_settledValue","_queue","_enqueue","onResolved","onRejected","_processQueue","pending_1","slice","len","_reject","TypeError","_schedulerId","_running","_waiting","_timedOut","_getTime","Date","ESPromiseScheduler","incomplete","waitingToStart","diagLog","_promiseId","_scheduledName","_debugLog","global","getGlobal","console","log","_warnLog","_warnToConsole","_lastEvent","_eventCount","_removeQueuedEvent","eventId","id","splice","scheduleEvent","startEventAction","eventName","timeout","eventDetails","waitForEvent","waitEvent","uniqueId","uniqueEventId","newScheduledEvent","tm","isRunning","isAborted","waitResolve","waitReject","runTime","prevId","abort","Error","_startWaitingEvent","_schId","_abortAndRemoveOldEvents","eventQueue","now","expired","_cleanup","completed","toQueue","removed","to","clearTimeout","_removeScheduledEvent","callback","_createScheduledEvent","startEvent","schEventResolve","schEventReject","wTm","startResult","_waitForFinalResult","theResult","ValueSanitizer","getFieldType","fieldSanitizerProvider","_sanitizerMap","_sanitizers","_fieldSanitizers","_getFieldSanitizer","path","fieldLookup","result","handleField","canHandle","fieldHandler","handler","_handleProperty","mapValue","fieldType","_callFieldSanitizer","fieldProvider","sanitizer","newValue_1","propValue","getSanitizer","propertyType","propKey","theValue","newProp","newPath","_convertToProperty","addSanitizer","newSanitizer","addFieldSanitizer","fieldSanitizer","subType","getGlobalInst","method","urlString","withCredentials","disabled","isSync","_wrapSetXhrProp","xhr","XMLHttpRequest","open"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ms.core.min.js","sources":["../dist-esm/src/Enums.js","../dist-esm/src/InternalConstants.js","../dist-esm/src/Utils.js","../dist-esm/src/AppInsightsCore.js","../dist-esm/src/BaseCore.js","../dist-esm/src/ESPromise.js","../dist-esm/src/ESPromiseScheduler.js","../dist-esm/src/ValueSanitizer.js"],"sourcesContent":["/*\n * 1DS JS SDK Core, 3.2.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Enums.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n* File containing the enums as constants.\r\n*/\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { _InternalMessageId, createEnumStyle, objFreeze } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * The ValueKind contains a set of values that specify value kind of the property.\r\n * Either PII (Personal Identifiable Information) or customer content.\r\n */\r\nexport var ValueKind = createEnumStyle({\r\n NotSet: 0 /* eValueKind.NotSet */,\r\n Pii_DistinguishedName: 1 /* eValueKind.Pii_DistinguishedName */,\r\n Pii_GenericData: 2 /* eValueKind.Pii_GenericData */,\r\n Pii_IPV4Address: 3 /* eValueKind.Pii_IPV4Address */,\r\n Pii_IPv6Address: 4 /* eValueKind.Pii_IPv6Address */,\r\n Pii_MailSubject: 5 /* eValueKind.Pii_MailSubject */,\r\n Pii_PhoneNumber: 6 /* eValueKind.Pii_PhoneNumber */,\r\n Pii_QueryString: 7 /* eValueKind.Pii_QueryString */,\r\n Pii_SipAddress: 8 /* eValueKind.Pii_SipAddress */,\r\n Pii_SmtpAddress: 9 /* eValueKind.Pii_SmtpAddress */,\r\n Pii_Identity: 10 /* eValueKind.Pii_Identity */,\r\n Pii_Uri: 11 /* eValueKind.Pii_Uri */,\r\n Pii_Fqdn: 12 /* eValueKind.Pii_Fqdn */,\r\n Pii_IPV4AddressLegacy: 13 /* eValueKind.Pii_IPV4AddressLegacy */,\r\n CustomerContent_GenericContent: 32 /* eValueKind.CustomerContent_GenericContent */\r\n});\r\n/**\r\n * The EventLatency contains a set of values that specify the latency with which an event is sent.\r\n */\r\nexport var EventLatency = createEnumStyle({\r\n /**\r\n * Normal latency.\r\n */\r\n Normal: 1 /* EventLatencyValue.Normal */,\r\n /**\r\n * Cost deferred latency. At the moment this latency is treated as Normal latency.\r\n */\r\n CostDeferred: 2 /* EventLatencyValue.CostDeferred */,\r\n /**\r\n * Real time latency.\r\n */\r\n RealTime: 3 /* EventLatencyValue.RealTime */,\r\n /**\r\n * Bypass normal batching/timing and send as soon as possible, this will still send asynchronously.\r\n * Added in v3.1.1\r\n */\r\n Immediate: 4 /* EventLatencyValue.Immediate */\r\n});\r\n/**\r\n * Enum for property types.\r\n */\r\nexport var EventPropertyType = createEnumStyle({\r\n Unspecified: 0 /* eEventPropertyType.Unspecified */,\r\n String: 1 /* eEventPropertyType.String */,\r\n Int32: 2 /* eEventPropertyType.Int32 */,\r\n UInt32: 3 /* eEventPropertyType.UInt32 */,\r\n Int64: 4 /* eEventPropertyType.Int64 */,\r\n UInt64: 5 /* eEventPropertyType.UInt64 */,\r\n Double: 6 /* eEventPropertyType.Double */,\r\n Bool: 7 /* eEventPropertyType.Bool */,\r\n Guid: 8 /* eEventPropertyType.Guid */,\r\n DateTime: 9 /* eEventPropertyType.DateTime */\r\n});\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = createEnumStyle({\r\n /**\r\n * Normal persistence.\r\n */\r\n Normal: 1 /* EventPersistenceValue.Normal */,\r\n /**\r\n * Critical persistence.\r\n */\r\n Critical: 2 /* EventPersistenceValue.Critical */\r\n});\r\nexport var TraceLevel = createEnumStyle({\r\n NONE: 0 /* eTraceLevel.NONE */,\r\n ERROR: 1 /* eTraceLevel.ERROR */,\r\n WARNING: 2 /* eTraceLevel.WARNING */,\r\n INFORMATION: 3 /* eTraceLevel.INFORMATION */\r\n});\r\nexport var _ExtendedInternalMessageId = objFreeze(__assign(__assign({}, _InternalMessageId), createEnumStyle({\r\n AuthHandShakeError: 501 /* _eExtendedInternalMessageId.AuthHandShakeError */,\r\n AuthRedirectFail: 502 /* _eExtendedInternalMessageId.AuthRedirectFail */,\r\n BrowserCannotReadLocalStorage: 503 /* _eExtendedInternalMessageId.BrowserCannotReadLocalStorage */,\r\n BrowserCannotWriteLocalStorage: 504 /* _eExtendedInternalMessageId.BrowserCannotWriteLocalStorage */,\r\n BrowserDoesNotSupportLocalStorage: 505 /* _eExtendedInternalMessageId.BrowserDoesNotSupportLocalStorage */,\r\n CannotParseBiBlobValue: 506 /* _eExtendedInternalMessageId.CannotParseBiBlobValue */,\r\n CannotParseDataAttribute: 507 /* _eExtendedInternalMessageId.CannotParseDataAttribute */,\r\n CVPluginNotAvailable: 508 /* _eExtendedInternalMessageId.CVPluginNotAvailable */,\r\n DroppedEvent: 509 /* _eExtendedInternalMessageId.DroppedEvent */,\r\n ErrorParsingAISessionCookie: 510 /* _eExtendedInternalMessageId.ErrorParsingAISessionCookie */,\r\n ErrorProvidedChannels: 511 /* _eExtendedInternalMessageId.ErrorProvidedChannels */,\r\n FailedToGetCookies: 512 /* _eExtendedInternalMessageId.FailedToGetCookies */,\r\n FailedToInitializeCorrelationVector: 513 /* _eExtendedInternalMessageId.FailedToInitializeCorrelationVector */,\r\n FailedToInitializeSDK: 514 /* _eExtendedInternalMessageId.FailedToInitializeSDK */,\r\n InvalidContentBlob: 515 /* _eExtendedInternalMessageId.InvalidContentBlob */,\r\n InvalidCorrelationValue: 516 /* _eExtendedInternalMessageId.InvalidCorrelationValue */,\r\n SessionRenewalDateIsZero: 517 /* _eExtendedInternalMessageId.SessionRenewalDateIsZero */,\r\n SendPostOnCompleteFailure: 518 /* _eExtendedInternalMessageId.SendPostOnCompleteFailure */,\r\n PostResponseHandler: 519 /* _eExtendedInternalMessageId.PostResponseHandler */,\r\n SDKNotInitialized: 520 /* _eExtendedInternalMessageId.SDKNotInitialized */\r\n})));\r\n//# sourceMappingURL=Enums.js.map","/*\n * 1DS JS SDK Core, 3.2.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n\r\n// Licensed under the MIT License.\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_DEFAULT_ENDPOINT_URL = \"https://browser.events.data.microsoft.com/OneCollector/1.0/\";\r\nexport var STR_PLUGIN_VERSION_STRING = \"pluginVersionString\";\r\nexport var STR_PLUGIN_VERSION_STRING_ARR = STR_PLUGIN_VERSION_STRING + \"Arr\";\r\nexport var STR_VERSION = \"version\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * 1DS JS SDK Core, 3.2.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nvar _a;\r\n/**\r\n* Utils.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n* File containing utility functions.\r\n*/\r\nimport { addEventHandler, addPageUnloadEventListener, areCookiesSupported, arrForEach, arrIndexOf, arrMap, arrReduce, dateNow, generateW3CId, getDocument, getGlobalInst, getNavigator, getWindow, hasOwnProperty, isArray, isBeaconsSupported, isBoolean, isDate, isError, isFunction, isIE, isNullOrUndefined, isNumber, isObject, isReactNative, isString, isTypeof, isUndefined, mwcRandom32, mwcRandomSeed, newGuid, newId, objDefineAccessors, objForEachKey, objKeys, perfNow, random32, randomValue, safeGetCookieMgr, strEndsWith, strObject, strTrim, strUndefined, toISOString, uaDisallowsSameSiteNone, useXDomainRequest } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ObjHasOwnProperty, objCreateFn, strShimObject, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nexport var Version = '3.2.9';\r\nexport var FullVersionString = \"1DS-Web-JS-\" + Version;\r\n// Defining here so we don't need to take (import) the ApplicationInsights Common module\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n// If value is array just get the type for the first element\r\nvar _fieldTypeEventPropMap = (_a = {},\r\n _a[0 /* FieldValueSanitizerType.NotSet */] = 0 /* eEventPropertyType.Unspecified */,\r\n _a[2 /* FieldValueSanitizerType.Number */] = 6 /* eEventPropertyType.Double */,\r\n _a[1 /* FieldValueSanitizerType.String */] = 1 /* eEventPropertyType.String */,\r\n _a[3 /* FieldValueSanitizerType.Boolean */] = 7 /* eEventPropertyType.Bool */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 2 /* FieldValueSanitizerType.Number */] = 6 /* eEventPropertyType.Double */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 1 /* FieldValueSanitizerType.String */] = 1 /* eEventPropertyType.String */,\r\n _a[4096 /* FieldValueSanitizerType.Array */ | 3 /* FieldValueSanitizerType.Boolean */] = 7 /* eEventPropertyType.Bool */,\r\n _a);\r\n/**\r\n * @ignore\r\n */\r\n// let _uaDisallowsSameSiteNone = null;\r\nvar uInt8ArraySupported = null;\r\n// var _areCookiesAvailable: boolean | undefined;\r\n/**\r\n * Checks if document object is available\r\n */\r\nexport var isDocumentObjectAvailable = Boolean(getDocument());\r\n/**\r\n * Checks if window object is available\r\n */\r\nexport var isWindowObjectAvailable = Boolean(getWindow());\r\n/**\r\n * Checks if value is assigned to the given param.\r\n * @param value - The token from which the tenant id is to be extracted.\r\n * @returns True/false denoting if value is assigned to the param.\r\n */\r\nexport function isValueAssigned(value) {\r\n /// <summary> takes a value and checks for undefined, null and empty string </summary>\r\n /// <param type=\"any\"> value to be tested </param>\r\n /// <returns> true if value is null undefined or emptyString </returns>\r\n return !(value === STR_EMPTY || isNullOrUndefined(value));\r\n}\r\n/**\r\n * Gets the tenant id from the tenant token.\r\n * @param apiKey - The token from which the tenant id is to be extracted.\r\n * @returns The tenant id.\r\n */\r\nexport function getTenantId(apiKey) {\r\n if (apiKey) {\r\n var indexTenantId = apiKey.indexOf(\"-\");\r\n if (indexTenantId > -1) {\r\n return apiKey.substring(0, indexTenantId);\r\n }\r\n }\r\n return STR_EMPTY;\r\n}\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 * @returns True if available, false otherwise.\r\n */\r\nexport function isUint8ArrayAvailable() {\r\n if (uInt8ArraySupported === null) {\r\n uInt8ArraySupported = !isUndefined(Uint8Array) && !isSafariOrFirefox() && !isReactNative();\r\n }\r\n return uInt8ArraySupported;\r\n}\r\n/**\r\n * Checks if the value is a valid EventLatency.\r\n * @param value - The value that needs to be checked.\r\n * @returns True if the value is in AWTEventLatency, false otherwise.\r\n */\r\nexport function isLatency(value) {\r\n if (value && isNumber(value) && value >= 1 /* EventLatencyValue.Normal */ && value <= 4 /* EventLatencyValue.Immediate */) {\r\n return true;\r\n }\r\n return false;\r\n}\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 name - property name - The property name.\r\n * @param property - The property value or an IEventProperty containing value,\r\n * type ,pii and customer content.\r\n * @returns IEventProperty containing valid name, value, pii and type or null if invalid.\r\n */\r\nexport function sanitizeProperty(name, property, stringifyObjects) {\r\n // Check that property is valid\r\n if ((!property && !isValueAssigned(property)) || typeof name !== \"string\") {\r\n return null;\r\n }\r\n // Perf optimization -- only need to get the type once not multiple times\r\n var propType = typeof property;\r\n // If the property isn't IEventProperty (and is either string, number, boolean or array), convert it into one.\r\n if (propType === \"string\" || propType === \"number\" || propType === \"boolean\" || isArray(property)) {\r\n property = { value: property };\r\n }\r\n else if (propType === \"object\" && !ObjHasOwnProperty.call(property, \"value\")) {\r\n property = { value: stringifyObjects ? JSON.stringify(property) : property };\r\n }\r\n else if (isNullOrUndefined(property.value)\r\n || property.value === STR_EMPTY || (!isString(property.value)\r\n && !isNumber(property.value) && !isBoolean(property.value)\r\n && !isArray(property.value))) {\r\n // Since property is IEventProperty, we need to validate its value\r\n return null;\r\n }\r\n // We need to check that if the property value is an array, it is valid\r\n if (isArray(property.value) &&\r\n !isArrayValid(property.value)) {\r\n return null;\r\n }\r\n // If either pii or cc is set convert value to string (since only string pii/cc is allowed).\r\n // If the value is a complex type like an array that can't be converted to string we will drop\r\n // the property.\r\n if (!isNullOrUndefined(property.kind)) {\r\n if (isArray(property.value) || !isValueKind(property.kind)) {\r\n return null;\r\n }\r\n property.value = property.value.toString();\r\n }\r\n return property;\r\n}\r\nexport function getCommonSchemaMetaData(value, kind, type) {\r\n var encodedTypeValue = -1;\r\n if (!isUndefined(value)) {\r\n if (kind > 0) {\r\n if (kind === 32) {\r\n // encode customer content. Value can only be string. bit 13-16 are for cc\r\n encodedTypeValue = (1 << 13);\r\n }\r\n else if (kind <= 13) {\r\n // encode PII. Value can only be string. bits 5-12 are for Pii\r\n encodedTypeValue = (kind << 5);\r\n }\r\n }\r\n // isDataType checks that the \"type\" is a number so we don't need to check for undefined\r\n if (isDataType(type)) {\r\n // Data Type is provided and valid, so use that\r\n if (encodedTypeValue === -1) {\r\n // Don't return -1\r\n encodedTypeValue = 0;\r\n }\r\n encodedTypeValue |= type;\r\n }\r\n else {\r\n var propType = _fieldTypeEventPropMap[getFieldValueType(value)] || -1;\r\n if (encodedTypeValue !== -1 && propType !== -1) {\r\n // pii exists so we must return correct type\r\n encodedTypeValue |= propType;\r\n }\r\n else if (propType === 6 /* eEventPropertyType.Double */) {\r\n encodedTypeValue = propType;\r\n }\r\n }\r\n }\r\n return encodedTypeValue;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n * Overriding the applicationinsights-core version for tree-shaking\r\n */\r\nexport function disableCookies() {\r\n safeGetCookieMgr(null).setEnabled(false);\r\n}\r\n/**\r\n * @deprecated - Use the oneDs.getCookieMgr().set()\r\n * Sets the value of a cookie.\r\n * @param name - Cookie name.\r\n * @param value - Cookie value.\r\n * @param days - Expiration days.\r\n */\r\nexport function setCookie(name, value, days) {\r\n if (areCookiesSupported(null)) {\r\n safeGetCookieMgr(null).set(name, value, days * 86400, null, \"/\");\r\n }\r\n}\r\n/**\r\n * @deprecated - Use the oneDs.getCookieMgr().del()\r\n * Deletes a cookie, by setting its expiration to -1.\r\n * @param name - Cookie name to delete.\r\n */\r\nexport function deleteCookie(name) {\r\n if (areCookiesSupported(null)) {\r\n safeGetCookieMgr(null).del(name);\r\n }\r\n}\r\n/**\r\n * @deprecated - Use the oneDs.getCookieMgr().get()\r\n * Gets the cookie value for the specified cookie.\r\n * if value is k1=v1&k2==v2 then will return 'v1' for key 'k1'\r\n * @param cookieName - Cookie name.\r\n */\r\nexport function getCookie(name) {\r\n if (areCookiesSupported(null)) {\r\n return getCookieValue(safeGetCookieMgr(null), name);\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Helper to get and decode the cookie value using decodeURIComponent, this is for historical\r\n * backward compatibility where the document.cookie value was decoded before parsing.\r\n * @param cookieMgr - The cookie manager to use\r\n * @param name - The name of the cookie to get\r\n * @param decode - A flag to indicate whether the cookie value should be decoded\r\n * @returns The decoded cookie value (if available) otherwise an empty string.\r\n */\r\nexport function getCookieValue(cookieMgr, name, decode) {\r\n if (decode === void 0) { decode = true; }\r\n var cookieValue;\r\n if (cookieMgr) {\r\n cookieValue = cookieMgr.get(name);\r\n if (decode && cookieValue && decodeURIComponent) {\r\n cookieValue = decodeURIComponent(cookieValue);\r\n }\r\n }\r\n return cookieValue || STR_EMPTY;\r\n}\r\n/**\r\n * Create a new guid.\r\n * @param style - The style of guid to generated, defaults to Digits\r\n * Digits (Default) : 32 digits separated by hyphens: 00000000-0000-0000-0000-000000000000\r\n * Braces - 32 digits separated by hyphens, enclosed in braces: {00000000-0000-0000-0000-000000000000}\r\n * Parentheses - 32 digits separated by hyphens, enclosed in parentheses: (00000000-0000-0000-0000-000000000000)\r\n * Numeric - 32 digits: 00000000000000000000000000000000\r\n * @returns The formatted guid.\r\n */\r\nexport function createGuid(style) {\r\n if (style === void 0) { style = \"D\" /* GuidStyle.Digits */; }\r\n var theGuid = newGuid();\r\n if (style === \"B\" /* GuidStyle.Braces */) {\r\n theGuid = \"{\" + theGuid + \"}\";\r\n }\r\n else if (style === \"P\" /* GuidStyle.Parentheses */) {\r\n theGuid = \"(\" + theGuid + \")\";\r\n }\r\n else if (style === \"N\" /* GuidStyle.Numeric */) {\r\n theGuid = theGuid.replace(/-/g, STR_EMPTY);\r\n }\r\n return theGuid;\r\n}\r\n/**\r\n * Pass in the objects to merge as arguments.\r\n * @param obj1 - object to merge. Set this argument to 'true' for a deep extend.\r\n * @param obj2 - object to merge.\r\n * @param obj3 - object to merge.\r\n * @param obj4 - object to merge.\r\n * @param obj5 - object to merge.\r\n * @returns The extended object.\r\n */\r\nexport function extend(obj, obj2, obj3, obj4, obj5) {\r\n // Variables\r\n var extended = {};\r\n var deep = false;\r\n var i = 0;\r\n var length = arguments.length;\r\n var objProto = Object[strShimPrototype];\r\n var theArgs = arguments;\r\n // Check if a deep merge\r\n if (objProto.toString.call(theArgs[0]) === \"[object Boolean]\") {\r\n deep = theArgs[0];\r\n i++;\r\n }\r\n // Loop through each object and conduct a merge\r\n for (; i < length; i++) {\r\n var obj = theArgs[i];\r\n objForEachKey(obj, function (prop, value) {\r\n // If deep merge and property is an object, merge properties\r\n if (deep && value && isObject(value)) {\r\n if (isArray(value)) {\r\n extended[prop] = extended[prop] || [];\r\n arrForEach(value, function (arrayValue, arrayIndex) {\r\n if (arrayValue && isObject(arrayValue)) {\r\n extended[prop][arrayIndex] = extend(true, extended[prop][arrayIndex], arrayValue);\r\n }\r\n else {\r\n extended[prop][arrayIndex] = arrayValue;\r\n }\r\n });\r\n }\r\n else {\r\n extended[prop] = extend(true, extended[prop], value);\r\n }\r\n }\r\n else {\r\n extended[prop] = value;\r\n }\r\n });\r\n }\r\n return extended;\r\n}\r\nexport var getTime = perfNow;\r\nexport function isValueKind(value) {\r\n // Always assume that it's a number (no type checking) for performance as this is used during the JSON serialization\r\n if (value === 0 /* eValueKind.NotSet */ || ((value > 0 /* eValueKind.NotSet */ && value <= 13 /* eValueKind.Pii_IPV4AddressLegacy */) || value === 32 /* eValueKind.CustomerContent_GenericContent */)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isDataType(value) {\r\n // Remark: 0 returns false, but it doesn't affect encoding anyways\r\n // Always assume that it's a number (no type checking) for performance as this is used during the JSON serialization\r\n if (value >= 0 && value <= 9) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSafariOrFirefox() {\r\n var nav = getNavigator();\r\n // If non-browser navigator will be undefined\r\n if (!isUndefined(nav) && nav.userAgent) {\r\n var ua = nav.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\nexport function isArrayValid(value) {\r\n return value.length > 0;\r\n}\r\nexport function setProcessTelemetryTimings(event, identifier) {\r\n var evt = event;\r\n evt.timings = evt.timings || {};\r\n evt.timings.processTelemetryStart = evt.timings.processTelemetryStart || {};\r\n evt.timings.processTelemetryStart[identifier] = getTime();\r\n}\r\n/**\r\n * Returns a bitwise value for the FieldValueSanitizerType enum representing the decoded type of the passed value\r\n * @param value The value to determine the type\r\n */\r\nexport function getFieldValueType(value) {\r\n var theType = 0 /* FieldValueSanitizerType.NotSet */;\r\n if (value !== null && value !== undefined) {\r\n var objType = typeof value;\r\n if (objType === \"string\") {\r\n theType = 1 /* FieldValueSanitizerType.String */;\r\n }\r\n else if (objType === \"number\") {\r\n theType = 2 /* FieldValueSanitizerType.Number */;\r\n }\r\n else if (objType === \"boolean\") {\r\n theType = 3 /* FieldValueSanitizerType.Boolean */;\r\n }\r\n else if (objType === strShimObject) {\r\n theType = 4 /* FieldValueSanitizerType.Object */;\r\n if (isArray(value)) {\r\n theType = 4096 /* FieldValueSanitizerType.Array */;\r\n if (value.length > 0) {\r\n // Empty arrays are not supported and are considered to be the same as null\r\n theType |= getFieldValueType(value[0]);\r\n }\r\n }\r\n else if (ObjHasOwnProperty.call(value, \"value\")) {\r\n // Looks like an IEventProperty\r\n theType = 8192 /* FieldValueSanitizerType.EventProperty */ | getFieldValueType(value.value);\r\n }\r\n }\r\n }\r\n return theType;\r\n}\r\nexport var Utils = {\r\n Version: Version,\r\n FullVersionString: FullVersionString,\r\n strUndefined: strUndefined,\r\n strObject: strObject,\r\n Undefined: strUndefined,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n objKeys: objKeys,\r\n toISOString: toISOString,\r\n isReactNative: isReactNative,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n isFunction: isFunction,\r\n isArray: isArray,\r\n isObject: isObject,\r\n strTrim: strTrim,\r\n isDocumentObjectAvailable: isDocumentObjectAvailable,\r\n isWindowObjectAvailable: isWindowObjectAvailable,\r\n isValueAssigned: isValueAssigned,\r\n getTenantId: getTenantId,\r\n isBeaconsSupported: isBeaconsSupported,\r\n isUint8ArrayAvailable: isUint8ArrayAvailable,\r\n isLatency: isLatency,\r\n sanitizeProperty: sanitizeProperty,\r\n getISOString: toISOString,\r\n useXDomainRequest: useXDomainRequest,\r\n getCommonSchemaMetaData: getCommonSchemaMetaData,\r\n cookieAvailable: areCookiesSupported,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: setCookie,\r\n deleteCookie: deleteCookie,\r\n getCookie: getCookie,\r\n createGuid: createGuid,\r\n extend: extend,\r\n getTime: getTime,\r\n isValueKind: isValueKind,\r\n isArrayValid: isArrayValid,\r\n objDefineAccessors: objDefineAccessors,\r\n addPageUnloadEventListener: addPageUnloadEventListener,\r\n setProcessTelemetryTimings: setProcessTelemetryTimings,\r\n addEventHandler: addEventHandler,\r\n getFieldValueType: getFieldValueType,\r\n strEndsWith: strEndsWith,\r\n objForEachKey: objForEachKey\r\n};\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n * Overriding the applicationinsights-core version for tree-shaking\r\n */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\n/**\r\n * Helper to identify whether we are running in a chromium based browser environment\r\n */\r\nexport function isChromium() {\r\n return !!getGlobalInst(\"chrome\");\r\n}\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n if (disabled === void 0) { disabled = false; }\r\n if (isSync === void 0) { isSync = false; }\r\n function _wrapSetXhrProp(xhr, prop, value) {\r\n try {\r\n xhr[prop] = value;\r\n }\r\n catch (e) {\r\n // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n }\r\n }\r\n var xhr = new XMLHttpRequest();\r\n if (disabled) {\r\n // Tag the instance so it's not tracked (trackDependency)\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n }\r\n if (withCredentials) {\r\n // Some libraries require that the withCredentials flag is set \"before\" open and\r\n // - Wrapping as IE 10 has started throwing when setting before open\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n xhr.open(method, urlString, !isSync);\r\n if (withCredentials) {\r\n // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n // Only set the timeout for asynchronous requests as\r\n // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n if (!isSync && timeout) {\r\n _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n }\r\n return xhr;\r\n}\r\n//# sourceMappingURL=Utils.js.map","/*\n * 1DS JS SDK Core, 3.2.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* AppInsightsCore.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AppInsightsCore as InternalCore, DiagnosticLogger, _throwInternal, arrForEach, doPerf, dumpObj, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DEFAULT_ENDPOINT_URL, STR_EMPTY, STR_PROPERTIES, STR_VERSION } from \"./InternalConstants\";\r\nimport { FullVersionString, getTime, isLatency } from \"./Utils\";\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n __extends(AppInsightsCore, _super);\r\n function AppInsightsCore() {\r\n var _this = _super.call(this) || this;\r\n _this.pluginVersionStringArr = [];\r\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n if (!_self.logger || !_self.logger.queue) {\r\n // The AI Base can inject a No-Op logger so if not defined or the No-Op, change to use a default logger so initialization errors\r\n // are not dropped on the floor if one is not already defined\r\n _self.logger = new DiagnosticLogger({ loggingLevelConsole: 1 /* eLoggingSeverity.CRITICAL */ });\r\n }\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n doPerf(_self, function () { return \"AppInsightsCore.initialize\"; }, function () {\r\n var _pluginVersionStringArr = _self.pluginVersionStringArr;\r\n // Add default collector url\r\n if (config) {\r\n if (!config.endpointUrl) {\r\n config.endpointUrl = STR_DEFAULT_ENDPOINT_URL;\r\n }\r\n var propertyStorageOverride = config.propertyStorageOverride;\r\n // Validate property storage override\r\n if (propertyStorageOverride && (!propertyStorageOverride.getProperty || !propertyStorageOverride.setProperty)) {\r\n throwError(\"Invalid property storage override passed.\");\r\n }\r\n if (config.channels) {\r\n arrForEach(config.channels, function (channels) {\r\n if (channels) {\r\n arrForEach(channels, function (channel) {\r\n if (channel.identifier && channel.version) {\r\n var ver = channel.identifier + \"=\" + channel.version;\r\n _pluginVersionStringArr.push(ver);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n _self.getWParam = function () {\r\n return (typeof document !== \"undefined\" || !!config.enableWParam) ? 0 : -1;\r\n };\r\n if (extensions) {\r\n arrForEach(extensions, function (ext) {\r\n if (ext && ext.identifier && ext.version) {\r\n var ver = ext.identifier + \"=\" + ext.version;\r\n _pluginVersionStringArr.push(ver);\r\n }\r\n });\r\n }\r\n _self.pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n _self.pluginVersionStringArr = _pluginVersionStringArr;\r\n try {\r\n _base.initialize(config, extensions, logger, notificationManager);\r\n _self.pollInternalLogs(\"InternalLog\");\r\n }\r\n catch (e) {\r\n var logger_1 = _self.logger;\r\n var message = dumpObj(e);\r\n if (message.indexOf(\"channels\") !== -1) {\r\n // Add some additional context to the underlying reported error\r\n message += \"\\n - Channels must be provided through config.channels only!\";\r\n }\r\n _throwInternal(logger_1, 1 /* eLoggingSeverity.CRITICAL */, 514 /* _eExtendedInternalMessageId.FailedToInitializeSDK */, \"SDK Initialization Failed - no telemetry will be sent: \" + message);\r\n }\r\n }, function () { return ({ config: config, extensions: extensions, logger: logger, notificationManager: notificationManager }); });\r\n };\r\n _self.track = function (item) {\r\n doPerf(_self, function () { return \"AppInsightsCore.track\"; }, function () {\r\n var telemetryItem = item;\r\n if (telemetryItem) {\r\n telemetryItem.timings = telemetryItem.timings || {};\r\n telemetryItem.timings.trackStart = getTime();\r\n if (!isLatency(telemetryItem.latency)) {\r\n telemetryItem.latency = 1 /* EventLatencyValue.Normal */;\r\n }\r\n var itemExt = telemetryItem.ext = telemetryItem.ext || {};\r\n itemExt.sdk = itemExt.sdk || {};\r\n itemExt.sdk.ver = FullVersionString;\r\n var baseData = telemetryItem.baseData = telemetryItem.baseData || {};\r\n baseData[STR_PROPERTIES] = baseData[STR_PROPERTIES] || {};\r\n var itemProperties = baseData[STR_PROPERTIES];\r\n itemProperties[STR_VERSION] = itemProperties[STR_VERSION] || _self.pluginVersionString || STR_EMPTY;\r\n }\r\n _base.track(telemetryItem);\r\n }, function () { return ({ item: item }); }, !(item.sync));\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}(InternalCore));\r\nexport default AppInsightsCore;\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * 1DS JS SDK Core, 3.2.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* BaseCore.ts\r\n* Base Core is a subset of 1DS Web SDK Core. The purpose of Base Core is to generate a smaller bundle size while providing essential features of Core. Features that are not included in Base Core are:\r\n* 1. Internal logging\r\n* 2. Sending notifications on telemetry sent/discarded\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseCore as InternalCore, _throwInternal, dumpObj } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DEFAULT_ENDPOINT_URL } from \"./InternalConstants\";\r\nimport { FullVersionString, isDocumentObjectAvailable } from \"./Utils\";\r\nvar BaseCore = /** @class */ (function (_super) {\r\n __extends(BaseCore, _super);\r\n function BaseCore() {\r\n var _this = _super.call(this) || this;\r\n dynamicProto(BaseCore, _this, function (_self, _base) {\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n if (config && !config.endpointUrl) {\r\n config.endpointUrl = STR_DEFAULT_ENDPOINT_URL;\r\n }\r\n _self.getWParam = function () {\r\n return (isDocumentObjectAvailable || !!config.enableWParam) ? 0 : -1;\r\n };\r\n try {\r\n _base.initialize(config, extensions, logger, notificationManager);\r\n }\r\n catch (e) {\r\n _throwInternal(_self.logger, 1 /* eLoggingSeverity.CRITICAL */, 514 /* _eExtendedInternalMessageId.FailedToInitializeSDK */, \"Initialization Failed: \" + dumpObj(e) + \"\\n - Note: Channels must be provided through config.channels only\");\r\n }\r\n };\r\n _self.track = function (item) {\r\n var telemetryItem = item;\r\n if (telemetryItem) {\r\n var ext = telemetryItem.ext = telemetryItem.ext || {};\r\n ext.sdk = ext.sdk || {};\r\n ext.sdk.ver = FullVersionString;\r\n }\r\n _base.track(telemetryItem);\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for BaseCore.prototype.initialize.\r\n// Removed Stub for BaseCore.prototype.track.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n BaseCore.__ieDyn=1;\n\n return BaseCore;\r\n}(InternalCore));\r\nexport default BaseCore;\r\n//# sourceMappingURL=BaseCore.js.map","/*\n * 1DS JS SDK Core, 3.2.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* ESPromise.ts\r\n* @author Nev Wylie (newylie))\r\n* @copyright Microsoft 2019\r\n* Simplified wrapper to provide ES6 style Promise callback handling for older browsers\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * @ignore -- Don't include in the generated documentation\r\n * Using a local variable to assist with minfication\r\n */\r\nvar _isFunction = isFunction;\r\n/**\r\n * @ignore -- Don't include in the generated documentation\r\n * This function will be used as onFulfilled handler for any Promise found in the iterable passed to Promise.all.\r\n * The goal here is to capture in a closure the index of the current item from the iterable. If we did not create\r\n * this closure, the captured index variable would be the same one that the for loop updates and thus would always\r\n * be pointing to the last index in the iterable by the time that the onFulfilled handler is called.\r\n * However, note that for the resolvedCallback callback we want the opposite. For this one we do want to capture\r\n * the same variable that the for loop updates so that we have the full count of pending promises by the time\r\n * the onFulfilled handlers start getting called.\r\n * @param values The resolving promise values\r\n * @param index The index of this callback function\r\n * @param resolvedCallback THe callback function used to check if the \"all\" promise is complete\r\n */\r\nfunction _createPromiseAllOnResolvedFunction(values, index, resolvedCallback) {\r\n return function (value) {\r\n values[index] = value;\r\n resolvedCallback();\r\n };\r\n}\r\n/**\r\n * Simplified wrapper to provide ES6 style Promise callback handling for older browsers\r\n */\r\nvar ESPromise = /** @class */ (function () {\r\n /**\r\n * The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value.\r\n * @param resolverFunc A function that is passed with the arguments resolve and reject. The executor function is executed\r\n * immediately by the Promise implementation, passing resolve and reject functions (the executor is called before the Promise\r\n * constructor even returns the created object). The resolve and reject functions, when called, resolve or reject the promise,\r\n * respectively. The executor normally initiates some asynchronous work, and then, once that completes, either calls the resolve\r\n * function to resolve the promise or else rejects it if an error occurred. If an error is thrown in the executor function, the\r\n * promise is rejected. The return value of the executor is ignored.\r\n */\r\n function ESPromise(resolverFunc) {\r\n var _state = 0 /* PromiseState.Pending */;\r\n var _settledValue = null;\r\n var _queue = [];\r\n dynamicProto(ESPromise, this, function (_this) {\r\n _this.then = function (onResolved, onRejected) {\r\n return new ESPromise(function (resolve, reject) {\r\n // Queue the new promise returned to be resolved or rejected\r\n // when this promise settles.\r\n _enqueue(onResolved, onRejected, resolve, reject);\r\n });\r\n };\r\n _this[\"catch\"] = function (onRejected) {\r\n return _this.then(null, onRejected);\r\n };\r\n });\r\n function _enqueue(onResolved, onRejected, resolve, reject) {\r\n _queue.push(function () {\r\n var value;\r\n try {\r\n // First call the onFulfilled or onRejected handler, on the settled value\r\n // of this promise. If the corresponding handler does not exist, simply\r\n // pass through the settled value.\r\n if (_state === 1 /* PromiseState.Resolved */) {\r\n value = _isFunction(onResolved) ? onResolved(_settledValue) : _settledValue;\r\n }\r\n else {\r\n value = _isFunction(onRejected) ? onRejected(_settledValue) : _settledValue;\r\n }\r\n if (value instanceof ESPromise) {\r\n // The called handlers returned a new promise, so the chained promise\r\n // will follow the state of this promise.\r\n value.then(resolve, reject);\r\n }\r\n else if (_state === 2 /* PromiseState.Rejected */ && !_isFunction(onRejected)) {\r\n // If there wasn't an onRejected handler and this promise is rejected, then\r\n // the chained promise also rejects with the same reason.\r\n reject(value);\r\n }\r\n else {\r\n // If this promise is fulfilled, then the chained promise is also fulfilled\r\n // with either the settled value of this promise (if no onFulfilled handler\r\n // was available) or the return value of the handler. If this promise is\r\n // rejected and there was an onRejected handler, then the chained promise is\r\n // fulfilled with the return value of the handler.\r\n resolve(value);\r\n }\r\n }\r\n catch (error) {\r\n // The chained promise will reject if there is any exception thrown while\r\n // calling the onFulfilled or onRejected handlers.\r\n reject(error);\r\n return;\r\n }\r\n });\r\n // If this promise is already settled, then immediately process the callback we\r\n // just added to the queue.\r\n if (_state !== 0 /* PromiseState.Pending */) {\r\n _processQueue();\r\n }\r\n }\r\n function _processQueue() {\r\n if (_queue.length > 0) {\r\n // The onFulfilled and onRejected handlers must be called asynchronously. Thus,\r\n // we make a copy of the queue and work on it once the current call stack unwinds.\r\n var pending_1 = _queue.slice();\r\n _queue = [];\r\n setTimeout(function () {\r\n for (var i = 0, len = pending_1.length; i < len; ++i) {\r\n try {\r\n pending_1[i]();\r\n }\r\n catch (e) {\r\n // Don't let 1 failing handler break all others\r\n // TODO (newylie): Add some form of error reporting (i.e. Call any registered JS error handler so the error is reported)\r\n }\r\n }\r\n }, 0);\r\n }\r\n }\r\n function _resolve(value) {\r\n if (_state === 0 /* PromiseState.Pending */) {\r\n _settledValue = value;\r\n _state = 1 /* PromiseState.Resolved */;\r\n _processQueue();\r\n }\r\n }\r\n function _reject(reason) {\r\n if (_state === 0 /* PromiseState.Pending */) {\r\n _settledValue = reason;\r\n _state = 2 /* PromiseState.Rejected */;\r\n _processQueue();\r\n }\r\n }\r\n (function _initialize() {\r\n if (!_isFunction(resolverFunc)) {\r\n throw new TypeError(\"ESPromise: resolvedFunc argument is not a Function\");\r\n }\r\n try {\r\n resolverFunc(_resolve, _reject);\r\n }\r\n catch (error) {\r\n // This promise will immediately reject if any exception is thrown\r\n // from within the executor function.\r\n _reject(error);\r\n }\r\n })();\r\n }\r\n /**\r\n * The Promise.resolve() method returns a Promise object that is resolved with a given value. If the value is a promise, that promise is returned;\r\n * if the value is a thenable (i.e. has a \"then\" method), the returned promise will \"follow\" that thenable, adopting its eventual state; otherwise\r\n * the returned promise will be fulfilled with the value. This function flattens nested layers of promise-like objects (e.g. a promise that resolves\r\n * to a promise that resolves to something) into a single layer.\r\n * @param value Argument to be resolved by this Promise. Can also be a Promise or a thenable to resolve.\r\n */\r\n ESPromise.resolve = function (value) {\r\n if (value instanceof ESPromise) {\r\n // Value is a Promise so just return it\r\n return value;\r\n }\r\n else if (value && _isFunction(value.then)) {\r\n // Value looks like a promise or thenable (has a then function)\r\n return new ESPromise(function (resolve, reject) {\r\n try {\r\n value.then(resolve, reject);\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n }\r\n return new ESPromise(function (resolve) {\r\n resolve(value);\r\n });\r\n };\r\n /**\r\n * The Promise.reject() method returns a Promise object that is rejected with a given reason.\r\n * @param reason The reason why this Promise rejected.\r\n */\r\n ESPromise.reject = function (reason) {\r\n return new ESPromise(function (resolve, reject) {\r\n reject(reason);\r\n });\r\n };\r\n /**\r\n * The Promise.all() method returns a single Promise that resolves when all of the promises passed as an iterable\r\n * have resolved or when the iterable contains no promises. It rejects with the reason of the first promise that\r\n * rejects. There is no implied ordering in the execution of the array of Promises given. On some computers, they\r\n * may be executed in parallel, or in some sense concurrently, while on others they may be executed serially. For\r\n * this reason, there must be no dependency in any Promise on the order of execution of the Promises.\r\n * This method can be useful for aggregating the results of multiple promises.\r\n * FulfillmentSection - The returned promise is fulfilled with an array containing all the values of the iterable\r\n * passed as argument (also non-promise values).\r\n * If an empty iterable is passed, then this method returns (synchronously) an already resolved promise.\r\n * If all of the passed-in promises fulfill, or are not promises, the promise returned by Promise.all is fulfilled\r\n * asynchronously.\r\n * RejectionSection - If any of the passed-in promises reject, Promise.all asynchronously rejects with the value of\r\n * the promise that rejected, whether or not the other promises have resolved.\r\n * @param iterable\r\n */\r\n ESPromise.all = function (iterable) {\r\n if (!iterable || !iterable.length) {\r\n return;\r\n }\r\n return new ESPromise(function (resolve, reject) {\r\n try {\r\n var values_1 = [];\r\n var pending_2 = 0;\r\n for (var lp = 0; lp < iterable.length; lp++) {\r\n var item = iterable[lp];\r\n // Quick and direct check for a Promise (will also catch a thenable)\r\n if (item && _isFunction(item.then)) {\r\n pending_2++;\r\n item.then(_createPromiseAllOnResolvedFunction(values_1, lp, function () {\r\n if (--pending_2 === 0) {\r\n resolve(values_1);\r\n }\r\n }), reject);\r\n }\r\n else {\r\n values_1[lp] = item;\r\n }\r\n }\r\n if (pending_2 === 0) {\r\n // All promises were either resolved or where not a promise\r\n setTimeout(function () {\r\n resolve(values_1);\r\n }, 0);\r\n }\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n };\r\n /**\r\n * The race function returns a Promise that is settled the same way (and takes the same value) as the first promise\r\n * that settles amongst the promises of the iterable passed as an argument.\r\n * If the iterable passed is empty, the promise returned will be forever pending.\r\n * If the iterable contains one or more non-promise value and/or an already settled promise, then Promise.race will\r\n * resolve to the first of these values found in the iterable.\r\n * @param iterable\r\n */\r\n ESPromise.race = function (iterable) {\r\n return new ESPromise(function (resolve, reject) {\r\n if (!iterable || !iterable.length) {\r\n return;\r\n }\r\n try {\r\n var _loop_1 = function (lp) {\r\n var item = iterable[lp];\r\n // Quick and direct check for a Promise (will also catch a thenable)\r\n if (item && _isFunction(item.then)) {\r\n item.then(resolve, reject);\r\n }\r\n else {\r\n setTimeout(function () {\r\n resolve(item);\r\n }, 0);\r\n }\r\n };\r\n for (var lp = 0; lp < iterable.length; lp++) {\r\n _loop_1(lp);\r\n }\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n };\r\n// Removed Stub for ESPromise.prototype.then.\r\n// Removed Stub for ESPromise.prototype[\"catch\"].\r\n return ESPromise;\r\n}());\r\nexport default ESPromise;\r\n//# sourceMappingURL=ESPromise.js.map","/*\n * 1DS JS SDK Core, 3.2.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* ESPromiseScheduler.ts\r\n* @author Nev Wylie (newylie)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport ESPromise from \"./ESPromise\";\r\nimport { _warnToConsole, getGlobal } from \"@microsoft/applicationinsights-core-js\";\r\n/** This is a default timeout that will cause outstanding running promises to be removed/rejected to avoid filling up memory with blocked events */\r\nvar LazyRejectPeriod = 600000; // 10 Minutes\r\n// These are global variables that are shared across ALL instances of the scheduler\r\n/**\r\n * @ignore\r\n */\r\nvar _schedulerId = 0;\r\n/**\r\n * @ignore\r\n */\r\nvar _running = [];\r\n/**\r\n * @ignore\r\n */\r\nvar _waiting = [];\r\n/**\r\n * @ignore\r\n */\r\nvar _timedOut = [];\r\n/**\r\n * @ignore\r\n */\r\nfunction _getTime() {\r\n return new Date().getTime();\r\n}\r\n/**\r\n * Provides a simple mechanism queueing mechanism for scheduling events based on the ESPromise callbacks, this is used to ensure\r\n * order of async operations that are required to be executed in a specific order.\r\n */\r\nvar ESPromiseScheduler = /** @class */ (function () {\r\n function ESPromiseScheduler(name, diagLog) {\r\n var _promiseId = 0;\r\n var _scheduledName = (name || \"<unnamed>\") + \".\" + _schedulerId;\r\n _schedulerId++;\r\n dynamicProto(ESPromiseScheduler, this, function (_this) {\r\n var _lastEvent = null;\r\n var _eventCount = 0;\r\n _this.scheduleEvent = function (startEventAction, eventName, timeout) {\r\n var uniqueId = _scheduledName + \".\" + _eventCount;\r\n _eventCount++;\r\n if (eventName) {\r\n uniqueId += \"-(\" + eventName + \")\";\r\n }\r\n var uniqueEventId = uniqueId + \"{\" + _promiseId + \"}\";\r\n _promiseId++;\r\n // Create the next scheduled event details\r\n var newScheduledEvent = {\r\n evt: null,\r\n tm: _getTime(),\r\n id: uniqueEventId,\r\n isRunning: false,\r\n isAborted: false\r\n };\r\n if (!_lastEvent) {\r\n // We don't have any currently running event, so just start the next event\r\n newScheduledEvent.evt = _startWaitingEvent(newScheduledEvent);\r\n }\r\n else {\r\n // Start a new promise which will wait until all current active events are complete before starting\r\n // the new event, it does not resolve this scheduled event until after the new event is resolve to\r\n // ensure that all scheduled events are completed in the correct order\r\n newScheduledEvent.evt = _waitForPreviousEvent(newScheduledEvent, _lastEvent);\r\n }\r\n // Set this new event as the last one, so that any future events will wait for this one\r\n _lastEvent = newScheduledEvent;\r\n _lastEvent.evt._schId = uniqueEventId;\r\n return newScheduledEvent.evt;\r\n function _abortAndRemoveOldEvents(eventQueue) {\r\n var now = _getTime();\r\n var expired = now - LazyRejectPeriod;\r\n var len = eventQueue.length;\r\n var lp = 0;\r\n while (lp < len) {\r\n var evt = eventQueue[lp];\r\n if (evt && evt.tm < expired) {\r\n var message = null;\r\n if (evt.abort) {\r\n message = \"Aborting [\" + evt.id + \"] due to Excessive runtime (\" + (now - evt.tm) + \" ms)\";\r\n evt.abort(message);\r\n }\r\n else {\r\n message = \"Removing [\" + evt.id + \"] due to Excessive runtime (\" + (now - evt.tm) + \" ms)\";\r\n }\r\n _warnLog(message);\r\n eventQueue.splice(lp, 1);\r\n len--;\r\n }\r\n else {\r\n lp++;\r\n }\r\n }\r\n }\r\n function _cleanup(eventId, completed) {\r\n var toQueue = false;\r\n var removed = _removeQueuedEvent(_running, eventId);\r\n if (!removed) {\r\n removed = _removeQueuedEvent(_timedOut, eventId);\r\n toQueue = true;\r\n }\r\n if (removed) {\r\n if (removed.to) {\r\n // If there was a timeout stop it\r\n clearTimeout(removed.to);\r\n removed.to = null;\r\n }\r\n // TODO (newylie): Convert this into reportable metrics\r\n var tm = _getTime() - removed.tm;\r\n if (completed) {\r\n if (!toQueue) {\r\n _debugLog(\"Promise [\" + eventId + \"] Complete -- \" + tm + \" ms\");\r\n }\r\n else {\r\n _warnLog(\"Timed out event [\" + eventId + \"] finally complete -- \" + tm + \" ms\");\r\n }\r\n }\r\n else {\r\n _timedOut.push(removed);\r\n _warnLog(\"Event [\" + eventId + \"] Timed out and removed -- \" + tm + \" ms\");\r\n }\r\n }\r\n else {\r\n _debugLog(\"Failed to remove [\" + eventId + \"] from running queue\");\r\n }\r\n // Also if the last scheduled event was this event then clear it as we are now finished\r\n if (_lastEvent && _lastEvent.id === eventId) {\r\n _lastEvent = null;\r\n }\r\n _abortAndRemoveOldEvents(_running);\r\n _abortAndRemoveOldEvents(_waiting);\r\n _abortAndRemoveOldEvents(_timedOut);\r\n }\r\n // Return a callback function that will be called when the waiting promise is resolved or rejected to ensure\r\n // that any outer promise is also resolved or rejected\r\n function _removeScheduledEvent(eventId, callback) {\r\n return function (value) {\r\n _cleanup(eventId, true);\r\n callback && callback(value);\r\n return value;\r\n };\r\n }\r\n function _waitForFinalResult(eventId, startResult, schEventResolve, schEventReject) {\r\n startResult.then(function (value) {\r\n if (value instanceof ESPromise) {\r\n // If the result is a promise then this appears to be a chained result, so wait for this promise to complete\r\n _debugLog(\"Event [\" + eventId + \"] returned a promise -- waiting\");\r\n _waitForFinalResult(eventId, value, schEventResolve, schEventReject);\r\n return value;\r\n }\r\n else {\r\n return _removeScheduledEvent(eventId, schEventResolve)(value);\r\n }\r\n }, _removeScheduledEvent(eventId, schEventReject));\r\n }\r\n // Add the passed event to the active event list with resolve and reject callbacks that will remove\r\n // it from the active event list\r\n function _createScheduledEvent(eventDetails, startEvent) {\r\n var eventId = eventDetails.id;\r\n return new ESPromise(function (schEventResolve, schEventReject) {\r\n _debugLog(\"Event [\" + eventId + \"] Starting -- waited for \" + (eventDetails.wTm || \"--\") + \" ms\");\r\n eventDetails.isRunning = true;\r\n eventDetails.abort = function (message) {\r\n eventDetails.abort = null;\r\n eventDetails.isAborted = true;\r\n _cleanup(eventId, false);\r\n schEventReject(new Error(message));\r\n };\r\n var startResult = startEvent(eventId);\r\n if (startResult instanceof ESPromise) {\r\n if (timeout) {\r\n // Note: Only starting a timer if a timeout was specified\r\n eventDetails.to = setTimeout(function () {\r\n _cleanup(eventId, false);\r\n // Cause the listeners to reject (Note: We can't actually reject the waiting event)\r\n schEventReject(new Error(\"Timed out after [\" + timeout + \"] ms\"));\r\n }, timeout);\r\n }\r\n _waitForFinalResult(eventId, startResult, function (theResult) {\r\n _debugLog(\"Event [\" + eventId + \"] Resolving after \" + (_getTime() - eventDetails.tm) + \" ms\");\r\n schEventResolve(theResult);\r\n }, schEventReject);\r\n }\r\n else {\r\n // The startEvent didn't return a promise so just return a resolved promise\r\n _debugLog(\"Promise [\" + eventId + \"] Auto completed as the start action did not return a promise\");\r\n schEventResolve();\r\n }\r\n });\r\n }\r\n function _startWaitingEvent(eventDetails) {\r\n var now = _getTime();\r\n eventDetails.wTm = now - eventDetails.tm;\r\n eventDetails.tm = now;\r\n if (eventDetails.isAborted) {\r\n return ESPromise.reject(new Error(\"[\" + uniqueId + \"] was aborted\"));\r\n }\r\n _running.push(eventDetails);\r\n return _createScheduledEvent(eventDetails, startEventAction);\r\n }\r\n // Start a new promise which will wait until all current active events are complete before starting\r\n // the new event, it does not resolve this scheduled event until after the new event is resolve to\r\n // ensure that all scheduled events are completed in the correct order\r\n function _waitForPreviousEvent(eventDetails, waitForEvent) {\r\n var waitEvent = new ESPromise(function (waitResolve, waitReject) {\r\n var runTime = _getTime() - waitForEvent.tm;\r\n var prevId = waitForEvent.id;\r\n _debugLog(\"[\" + uniqueId + \"] is waiting for [\" + prevId + \":\" + runTime + \" ms] to complete before starting -- [\" + _waiting.length + \"] waiting and [\" + _running.length + \"] running\");\r\n eventDetails.abort = function (message) {\r\n eventDetails.abort = null;\r\n _removeQueuedEvent(_waiting, uniqueId);\r\n eventDetails.isAborted = true;\r\n waitReject(new Error(message));\r\n };\r\n // Wait for the previous event to complete\r\n waitForEvent.evt.then(function (value) {\r\n _removeQueuedEvent(_waiting, uniqueId);\r\n // Wait for the last event to complete before starting the new one, this ensures the execution\r\n // order so that we don't try and remove events that havn't been committed yet\r\n _startWaitingEvent(eventDetails).then(waitResolve, waitReject);\r\n }, function (reason) {\r\n _removeQueuedEvent(_waiting, uniqueId);\r\n // Wait for the last event to complete before starting the new one, this ensures the execution\r\n // order so that we don't try and remove events that havn't been committed yet\r\n _startWaitingEvent(eventDetails).then(waitResolve, waitReject);\r\n });\r\n });\r\n _waiting.push(eventDetails);\r\n return waitEvent;\r\n }\r\n };\r\n function _removeQueuedEvent(queue, eventId) {\r\n for (var lp = 0; lp < queue.length; lp++) {\r\n if (queue[lp].id === eventId) {\r\n return queue.splice(lp, 1)[0];\r\n }\r\n }\r\n return null;\r\n }\r\n });\r\n function _debugLog(message) {\r\n // Only log if running within test harness\r\n var global = getGlobal();\r\n if (global && global[\"QUnit\"]) {\r\n // tslint:disable-next-line:no-console\r\n console && console.log(\"ESPromiseScheduler[\" + _scheduledName + \"] \" + message);\r\n }\r\n }\r\n function _warnLog(message) {\r\n _warnToConsole(diagLog, \"ESPromiseScheduler[\" + _scheduledName + \"] \" + message);\r\n }\r\n }\r\n ESPromiseScheduler.incomplete = function () {\r\n return _running;\r\n };\r\n ESPromiseScheduler.waitingToStart = function () {\r\n return _waiting;\r\n };\r\n// Removed Stub for ESPromiseScheduler.prototype.scheduleEvent.\r\n return ESPromiseScheduler;\r\n}());\r\nexport default ESPromiseScheduler;\r\n//# sourceMappingURL=ESPromiseScheduler.js.map","/*\n * 1DS JS SDK Core, 3.2.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { isNullOrUndefined, isString, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { getFieldValueType, isValueAssigned, isValueKind } from \"./Utils\";\r\nvar ValueSanitizer = /** @class */ (function () {\r\n function ValueSanitizer(fieldSanitizerProvider) {\r\n var _self = this;\r\n // To aid with performance this is a lookup map to check if the field value sanitizer supports this field\r\n var _sanitizerMap = {};\r\n var _sanitizers = [];\r\n var _fieldSanitizers = [];\r\n if (fieldSanitizerProvider) {\r\n _fieldSanitizers.push(fieldSanitizerProvider);\r\n }\r\n function _getFieldSanitizer(path, name) {\r\n var result;\r\n var fieldLookup = _sanitizerMap[path];\r\n if (fieldLookup) {\r\n result = fieldLookup[name];\r\n }\r\n if (!result && result !== null) {\r\n // Null is a valid result indicating that the value sanitizer does not support this field\r\n if (isString(path) && isString(name)) {\r\n if (_fieldSanitizers.length > 0) {\r\n for (var lp = 0; lp < _fieldSanitizers.length; lp++) {\r\n if (_fieldSanitizers[lp].handleField(path, name)) {\r\n result = {\r\n canHandle: true,\r\n fieldHandler: _fieldSanitizers[lp]\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n else if (_sanitizers.length === 0) {\r\n // Special use-case where there is no sanitizer to pass on to, so just resolving the field\r\n // and returning the resulting value (same as sanitizeProperty())\r\n result = {\r\n canHandle: true\r\n };\r\n }\r\n }\r\n // We still don't have a handler so lets lookup the providers\r\n if (!result && result !== null) {\r\n // Setting the result to null -- which means we and any contained sanitizers can't handle this field\r\n result = null;\r\n for (var lp = 0; lp < _sanitizers.length; lp++) {\r\n if (_sanitizers[lp].handleField(path, name)) {\r\n result = {\r\n canHandle: true,\r\n handler: _sanitizers[lp],\r\n fieldHandler: null\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n if (!fieldLookup) {\r\n fieldLookup = _sanitizerMap[path] = {};\r\n }\r\n fieldLookup[name] = result;\r\n }\r\n return result;\r\n }\r\n _self.addSanitizer = function (newSanitizer) {\r\n if (newSanitizer) {\r\n _sanitizers.push(newSanitizer);\r\n // Invalidate any previously mapped fields\r\n _sanitizerMap = {};\r\n }\r\n };\r\n _self.addFieldSanitizer = function (fieldSanitizer) {\r\n if (fieldSanitizer) {\r\n _fieldSanitizers.push(fieldSanitizer);\r\n // Invalidate any previously mapped fields\r\n _sanitizerMap = {};\r\n }\r\n };\r\n _self.handleField = function (path, name) {\r\n var mapValue = _getFieldSanitizer(path, name);\r\n return mapValue ? mapValue.canHandle : false;\r\n };\r\n _self.value = function (path, name, value, stringifyObjects) {\r\n var mapValue = _getFieldSanitizer(path, name);\r\n if (mapValue && mapValue.canHandle) {\r\n if (!mapValue || !mapValue.canHandle) {\r\n return null;\r\n }\r\n if (mapValue.handler) {\r\n // This value sanitizer can't handle this field so pass it only the next one\r\n return mapValue.handler.value(path, name, value, stringifyObjects);\r\n }\r\n // Check that property is valid\r\n if (!isString(name) || isNullOrUndefined(value) || value === STR_EMPTY) {\r\n return null;\r\n }\r\n var property = null;\r\n var fieldType = getFieldValueType(value);\r\n if ((fieldType & 8192 /* FieldValueSanitizerType.EventProperty */) === 8192 /* FieldValueSanitizerType.EventProperty */) {\r\n var subType = fieldType & ~8192 /* FieldValueSanitizerType.EventProperty */;\r\n property = value;\r\n if (!isValueAssigned(property.value) ||\r\n (subType !== 1 /* FieldValueSanitizerType.String */ &&\r\n subType !== 2 /* FieldValueSanitizerType.Number */ &&\r\n subType !== 3 /* FieldValueSanitizerType.Boolean */ &&\r\n (subType & 4096 /* FieldValueSanitizerType.Array */) !== 4096 /* FieldValueSanitizerType.Array */)) {\r\n // Not a supported IEventProperty type to be able to sanitize\r\n return null;\r\n }\r\n }\r\n else if (fieldType === 1 /* FieldValueSanitizerType.String */ ||\r\n fieldType === 2 /* FieldValueSanitizerType.Number */ ||\r\n fieldType === 3 /* FieldValueSanitizerType.Boolean */ ||\r\n (fieldType & 4096 /* FieldValueSanitizerType.Array */) === 4096 /* FieldValueSanitizerType.Array */) {\r\n // If the property isn't IEventProperty (and is either string, number, boolean or array), convert it into one.\r\n property = _convertToProperty(path, name, value);\r\n }\r\n else if (fieldType === 4 /* FieldValueSanitizerType.Object */) {\r\n property = _convertToProperty(path, name, !!stringifyObjects ? JSON.stringify(value) : value);\r\n }\r\n if (property) {\r\n return _handleProperty(mapValue, path, name, fieldType, property, stringifyObjects);\r\n }\r\n }\r\n return null;\r\n };\r\n _self.property = function (path, name, property, stringifyObjects) {\r\n var mapValue = _getFieldSanitizer(path, name);\r\n if (!mapValue || !mapValue.canHandle) {\r\n return null;\r\n }\r\n // Check that property is valid\r\n if (!isString(name) || isNullOrUndefined(property) || !isValueAssigned(property.value)) {\r\n return null;\r\n }\r\n var fieldType = getFieldValueType(property.value);\r\n if (fieldType === 0 /* FieldValueSanitizerType.NotSet */) {\r\n // Not a supported field that we can sanitize or serialize\r\n return null;\r\n }\r\n return _handleProperty(mapValue, path, name, fieldType, property, stringifyObjects);\r\n };\r\n function _handleProperty(mapValue, path, name, fieldType, property, stringifyObjects) {\r\n if (mapValue.handler) {\r\n // This value sanitizer can't handle this field so pass it only the next one\r\n return mapValue.handler.property(path, name, property, stringifyObjects);\r\n }\r\n // If either pii or cc is set convert value to string (since only string pii/cc is allowed).\r\n // If the value is a complex type like an array that can't be converted to string we will drop\r\n // the property.\r\n if (!isNullOrUndefined(property.kind)) {\r\n if ((fieldType & 4096 /* FieldValueSanitizerType.Array */) === 4096 /* FieldValueSanitizerType.Array */ || !isValueKind(property.kind)) {\r\n return null;\r\n }\r\n // Convert the value to a string and assign back to the original value\r\n property.value = property.value.toString();\r\n }\r\n return _callFieldSanitizer(mapValue.fieldHandler, path, name, fieldType, property);\r\n }\r\n function _convertToProperty(path, name, value) {\r\n if (isValueAssigned(value)) {\r\n return { value: value };\r\n }\r\n return null;\r\n }\r\n function _callFieldSanitizer(fieldProvider, path, name, theType, property) {\r\n if (property && fieldProvider) {\r\n var sanitizer = fieldProvider.getSanitizer(path, name, theType, property.kind, property.propertyType);\r\n if (sanitizer) {\r\n // This is where we the field will call the handler to \"scrub\" the value. This the primary hook for the ClientHashing Plugin to\r\n // be able to apply the hashFunc() / Sha256 conversion of the properties value\r\n if (theType === 4 /* FieldValueSanitizerType.Object */) {\r\n // Special case of an embedded object (ext.metadata, data.properties)\r\n var newValue_1 = {};\r\n var propValue = property.value;\r\n objForEachKey(propValue, function (propKey, theValue) {\r\n var newPath = path + \".\" + name;\r\n if (isValueAssigned(theValue)) {\r\n var newProp = _convertToProperty(newPath, propKey, theValue);\r\n newProp = _callFieldSanitizer(fieldProvider, newPath, propKey, getFieldValueType(theValue), newProp);\r\n if (newProp) {\r\n newValue_1[propKey] = newProp.value;\r\n }\r\n }\r\n });\r\n property.value = newValue_1;\r\n }\r\n else {\r\n var details = {\r\n path: path,\r\n name: name,\r\n type: theType,\r\n prop: property,\r\n sanitizer: _self\r\n };\r\n property = sanitizer.call(_self, details);\r\n }\r\n }\r\n }\r\n return property;\r\n }\r\n }\r\n ValueSanitizer.getFieldType = getFieldValueType;\r\n return ValueSanitizer;\r\n}());\r\nexport { ValueSanitizer };\r\n//# sourceMappingURL=ValueSanitizer.js.map"],"names":["ValueKind","createEnumStyle","NotSet","Pii_DistinguishedName","Pii_GenericData","Pii_IPV4Address","Pii_IPv6Address","Pii_MailSubject","Pii_PhoneNumber","Pii_QueryString","Pii_SipAddress","Pii_SmtpAddress","Pii_Identity","Pii_Uri","Pii_Fqdn","Pii_IPV4AddressLegacy","CustomerContent_GenericContent","EventLatency","Normal","CostDeferred","RealTime","Immediate","EventPropertyType","Unspecified","String","Int32","UInt32","Int64","UInt64","Double","Bool","Guid","DateTime","EventPersistence","Critical","TraceLevel","NONE","ERROR","WARNING","INFORMATION","_ExtendedInternalMessageId","objFreeze","__assign","_InternalMessageId","AuthHandShakeError","AuthRedirectFail","BrowserCannotReadLocalStorage","BrowserCannotWriteLocalStorage","BrowserDoesNotSupportLocalStorage","CannotParseBiBlobValue","CannotParseDataAttribute","CVPluginNotAvailable","DroppedEvent","ErrorParsingAISessionCookie","ErrorProvidedChannels","FailedToGetCookies","FailedToInitializeCorrelationVector","FailedToInitializeSDK","InvalidContentBlob","InvalidCorrelationValue","SessionRenewalDateIsZero","SendPostOnCompleteFailure","PostResponseHandler","SDKNotInitialized","STR_EMPTY","STR_DEFAULT_ENDPOINT_URL","STR_VERSION","STR_PROPERTIES","Version","FullVersionString","strWithCredentials","_fieldTypeEventPropMap","_a","uInt8ArraySupported","isDocumentObjectAvailable","Boolean","getDocument","isWindowObjectAvailable","getWindow","isValueAssigned","value","isNullOrUndefined","getTenantId","apiKey","indexTenantId","indexOf","substring","isUint8ArrayAvailable","isUndefined","Uint8Array","nav","getNavigator","userAgent","ua","toLowerCase","isReactNative","isLatency","isNumber","sanitizeProperty","name","property","stringifyObjects","propType","isArray","ObjHasOwnProperty","call","isString","isBoolean","JSON","stringify","isArrayValid","kind","isValueKind","toString","getCommonSchemaMetaData","type","encodedTypeValue","getFieldValueType","disableCookies","safeGetCookieMgr","setEnabled","setCookie","days","areCookiesSupported","set","deleteCookie","del","getCookie","getCookieValue","cookieMgr","decode","cookieValue","get","decodeURIComponent","createGuid","style","theGuid","newGuid","replace","extend","obj","obj2","obj3","obj4","obj5","extended","deep","i","length","arguments","objProto","Object","strShimPrototype","theArgs","objForEachKey","prop","isObject","arrForEach","arrayValue","arrayIndex","getTime","perfNow","setProcessTelemetryTimings","event","identifier","evt","timings","processTelemetryStart","objType","theType","undefined","strShimObject","Utils","strUndefined","strObject","Undefined","arrIndexOf","arrMap","arrReduce","objKeys","toISOString","isFunction","strTrim","isBeaconsSupported","getISOString","useXDomainRequest","cookieAvailable","disallowsSameSiteNone","uaDisallowsSameSiteNone","objDefineAccessors","addPageUnloadEventListener","addEventHandler","strEndsWith","CoreUtils","_canUseCookies","isTypeof","hasOwnProperty","isDate","isError","objCreate","objCreateFn","dateNow","isIE","newId","randomValue","random32","mwcRandomSeed","mwcRandom32","generateW3CId","_super","InternalCore","__extends","AppInsightsCore","__ieDyn","_this","this","pluginVersionStringArr","dynamicProto","_self","_base","logger","queue","DiagnosticLogger","loggingLevelConsole","initialize","config","extensions","notificationManager","doPerf","_pluginVersionStringArr","endpointUrl","propertyStorageOverride","getProperty","setProperty","throwError","channels","channel","version","ver","push","getWParam","document","enableWParam","ext","pluginVersionString","join","pollInternalLogs","e","logger_1","message","dumpObj","_throwInternal","track","item","itemProperties","telemetryItem","trackStart","latency","itemExt","sdk","baseData","BaseCore","_isFunction","ESPromise","resolve","then","reject","error","reason","all","iterable","values_1","pending_2","lp","values","index","setTimeout","race","_loop_1","resolverFunc","_state","_settledValue","_queue","_enqueue","onResolved","onRejected","_processQueue","pending_1","slice","len","_reject","TypeError","_schedulerId","_running","_waiting","_timedOut","_getTime","Date","ESPromiseScheduler","incomplete","waitingToStart","diagLog","_promiseId","_scheduledName","_debugLog","global","getGlobal","console","log","_warnLog","_warnToConsole","_lastEvent","_eventCount","_removeQueuedEvent","eventId","id","splice","scheduleEvent","startEventAction","eventName","timeout","eventDetails","waitForEvent","waitEvent","uniqueId","uniqueEventId","newScheduledEvent","tm","isRunning","isAborted","waitResolve","waitReject","runTime","prevId","abort","Error","_startWaitingEvent","_schId","_abortAndRemoveOldEvents","eventQueue","now","expired","_cleanup","completed","toQueue","removed","to","clearTimeout","_removeScheduledEvent","callback","_createScheduledEvent","startEvent","schEventResolve","schEventReject","wTm","startResult","_waitForFinalResult","theResult","ValueSanitizer","getFieldType","fieldSanitizerProvider","_sanitizerMap","_sanitizers","_fieldSanitizers","_getFieldSanitizer","path","fieldLookup","result","handleField","canHandle","fieldHandler","handler","_handleProperty","mapValue","fieldType","_callFieldSanitizer","fieldProvider","sanitizer","newValue_1","propValue","getSanitizer","propertyType","propKey","theValue","newProp","newPath","_convertToProperty","addSanitizer","newSanitizer","addFieldSanitizer","fieldSanitizer","subType","getGlobalInst","method","urlString","withCredentials","disabled","isSync","_wrapSetXhrProp","xhr","XMLHttpRequest","open"],"mappings":";;;;;gIAiBWA,EAAYC,EAAAA,gBAAgB,CACnCC,OAAQ,EACRC,sBAAuB,EACvBC,gBAAiB,EACjBC,gBAAiB,EACjBC,gBAAiB,EACjBC,gBAAiB,EACjBC,gBAAiB,EACjBC,gBAAiB,EACjBC,eAAgB,EAChBC,gBAAiB,EACjBC,aAAc,GACdC,QAAS,GACTC,SAAU,GACVC,sBAAuB,GACvBC,+BAAgC,EACpC,CAAC,EAIUC,EAAehB,EAAAA,gBAAgB,CAItCiB,OAAQ,EAIRC,aAAc,EAIdC,SAAU,EAKVC,UAAW,CACf,CAAC,EAIUC,EAAoBrB,EAAAA,gBAAgB,CAC3CsB,YAAa,EACbC,OAAQ,EACRC,MAAO,EACPC,OAAQ,EACRC,MAAO,EACPC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,KAAM,EACNC,SAAU,CACd,CAAC,EAIUC,EAAmBhC,EAAAA,gBAAgB,CAI1CiB,OAAQ,EAIRgB,SAAU,CACd,CAAC,EACUC,EAAalC,EAAAA,gBAAgB,CACpCmC,KAAM,EACNC,MAAO,EACPC,QAAS,EACTC,YAAa,CACjB,CAAC,EACUC,EAA6BC,EAASA,UAACC,aAASA,EAAAA,WAAS,GAAIC,EAAAA,kBAAkB,EAAG1C,kBAAgB,CACzG2C,mBAAoB,IACpBC,iBAAkB,IAClBC,8BAA+B,IAC/BC,+BAAgC,IAChCC,kCAAmC,IACnCC,uBAAwB,IACxBC,yBAA0B,IAC1BC,qBAAsB,IACtBC,aAAc,IACdC,4BAA6B,IAC7BC,sBAAuB,IACvBC,mBAAoB,IACpBC,oCAAqC,IACrCC,sBAAuB,IACvBC,mBAAoB,IACpBC,wBAAyB,IACzBC,yBAA0B,IAC1BC,0BAA2B,IAC3BC,oBAAqB,IACrBC,kBAAmB,GACvB,CAAC,CAAC,CAAC,ECnGQC,EAAY,GACZC,EAA2B,8DAG3BC,EAAc,UACdC,EAAiB,aCFjBC,EAAU,QACVC,EAAoB,cAAgBD,EAG3CE,EAAqB,kBAGrBC,IAA0BC,EAAK,IAC5B,GAA0C,EAC7CA,EAAG,GAA0C,EAC7CA,EAAG,GAA0C,EAC7CA,EAAG,GAA2C,EAC9CA,EAAG,MAAqF,EACxFA,EAAG,MAAqF,EACxFA,EAAG,MAAsF,EACzFA,GAKAC,EAAsB,KAKfC,EAA4BC,CAAAA,CAAQC,EAAAA,cAIpCC,EAA0BF,CAAAA,CAAQG,EAAAA,YAMtC,SAASC,EAAgBC,GAI5B,MAAO,EAAEA,IAAUhB,GAAaiB,EAAAA,kBAAkBD,CAAK,EAC3D,CAMO,SAASE,EAAYC,GACxB,GAAIA,EAAQ,CACR,IAAIC,EAAgBD,EAAOE,QAAQ,GAAG,EACtC,GAAoB,CAAC,EAAjBD,EACA,OAAOD,EAAOG,UAAU,EAAGF,CAAa,CAE/C,CACD,OAAOpB,CACX,CAMO,SAASuB,IAIZ,OAFId,EADwB,OAAxBA,EACsB,EAACe,EAAAA,YAAYC,UAAU,IAsP7CC,EAAMC,EAAAA,eAELH,EAAAA,YAAYE,CAAG,GAAKA,CAAAA,EAAIE,WAEpBC,CAAAA,EADDA,EAAKH,EAAIE,UAAUE,YAAW,GAC1BT,QAAQ,QAAQ,GAAUQ,CAAAA,CAAAA,EAAGR,QAAQ,SAAS,GAAWQ,CAAAA,EAAGR,QAAQ,QAAQ,EAFxF,KAAA,EAGe,IA3PgEU,EAAAA,iBAExEtB,EAmPX,IACQiB,CAnPR,CAMO,SAASM,EAAUhB,GACtB,MAAIA,CAAAA,EAAAA,GAASiB,EAAAA,SAASjB,CAAK,GAAc,GAATA,GAA6CA,GAAS,EAI1F,CASO,SAASkB,EAAiBC,EAAMC,EAAUC,GAE7C,GAAK,CAACD,GAAY,CAACrB,EAAgBqB,CAAQ,GAAsB,UAAhB,OAAOD,EACpD,OAAO,KAGPG,EAAW,OAAOF,EAEtB,GAAiB,UAAbE,GAAsC,UAAbA,GAAsC,WAAbA,GAA0BC,UAAQH,CAAQ,EAC5FA,EAAW,CAAEpB,MAAOoB,QAEnB,GAAiB,UAAbE,GAA0BE,EAAAA,kBAAkBC,KAAKL,EAAU,OAAO,GAGtE,GAAInB,EAAiBA,kBAACmB,EAASpB,KAAK,GAClCoB,EAASpB,QAAUhB,GAAc,CAAC0C,EAAAA,SAASN,EAASpB,KAAK,GACzD,CAACiB,EAAAA,SAASG,EAASpB,KAAK,GAAK,CAAC2B,EAASA,UAACP,EAASpB,KAAK,GACtD,CAACuB,UAAQH,EAASpB,KAAK,EAE1B,OAAO,IACV,MARGoB,EAAW,CAAEpB,MAAOqB,EAAmBO,KAAKC,UAAUT,CAAQ,EAAIA,GAUtE,GAAIG,EAAOA,QAACH,EAASpB,KAAK,GACtB,CAAC8B,EAAaV,EAASpB,KAAK,EAC5B,OAAO,KAKX,GAAI,CAACC,EAAiBA,kBAACmB,EAASW,IAAI,EAAG,CACnC,GAAIR,EAAAA,QAAQH,EAASpB,KAAK,GAAK,CAACgC,EAAYZ,EAASW,IAAI,EACrD,OAAO,KAEXX,EAASpB,MAAQoB,EAASpB,MAAMiC,SAAQ,CAC3C,CACD,OAAOb,CACX,CACO,SAASc,EAAwBlC,EAAO+B,EAAMI,GACjD,IAAIC,EAAmB,CAAC,EAgCxB,OA/BK5B,EAAAA,YAAYR,CAAK,IACP,EAAP+B,IACa,KAATA,EAEAK,EAAoB,KAEfL,GAAQ,KAEbK,EAAoBL,GAAQ,IA0K3B,GAtKMI,GAAAA,GAsKQ,GApKM,CAAC,IAAtBC,IAEAA,EAAmB,GAEvBA,GAAoBD,IAGhBb,EAAW/B,EAAuB8C,EAAkBrC,CAAK,IAAM,CAAC,EAC3C,CAAC,IAAtBoC,GAAwC,CAAC,IAAdd,EAE3Bc,GAAoBd,EAEF,IAAbA,IACLc,EAAmBd,KAIxBc,CACX,CAMO,SAASE,IACZC,EAAAA,iBAAiB,IAAI,EAAEC,WAAW,CAAA,CAAK,CAC3C,CAQO,SAASC,EAAUtB,EAAMnB,EAAO0C,GAC/BC,EAAAA,oBAAoB,IAAI,GACxBJ,mBAAiB,IAAI,EAAEK,IAAIzB,EAAMnB,EAAc,MAAP0C,EAAc,KAAM,GAAG,CAEvE,CAMO,SAASG,EAAa1B,GACrBwB,EAAAA,oBAAoB,IAAI,GACxBJ,EAAAA,iBAAiB,IAAI,EAAEO,IAAI3B,CAAI,CAEvC,CAOO,SAAS4B,EAAU5B,GACtB,OAAIwB,EAAAA,oBAAoB,IAAI,EACjBK,EAAeT,EAAgBA,iBAAC,IAAI,EAAGpB,CAAI,EAE/CnC,CACX,CASO,SAASgE,EAAeC,EAAW9B,EAAM+B,GAE5C,IAAIC,EAOJ,OARe,KAAA,IAAXD,IAAqBA,EAAS,CAAA,IAK1BC,EAHJF,IACAE,EAAcF,EAAUG,IAAIjC,CAAI,EAC5B+B,IAAUC,GAAeE,mBACXA,mBAAmBF,CAAW,EAG7CA,IAAenE,CAC1B,CAUO,SAASsE,EAAWC,GACT,KAAA,IAAVA,IAAoBA,EAAQ,KAChC,IAAIC,EAAUC,EAAAA,UAUd,MATc,MAAVF,EACAC,EAAU,IAAMA,EAAU,IAEX,MAAVD,EACLC,EAAU,IAAMA,EAAU,IAEX,MAAVD,IACLC,EAAUA,EAAQE,QAAQ,KAAM1E,CAAS,GAEtCwE,CACX,CAUO,SAASG,EAAOC,EAAKC,EAAMC,EAAMC,EAAMC,GAE1C,IAAIC,EAAW,GACXC,EAAO,CAAA,EACPC,EAAI,EACJC,EAASC,UAAUD,OACnBE,EAAWC,OAAOC,EAAAA,kBAClBC,EAAUJ,UAOd,IAL2C,qBAAvCC,EAASrC,SAASR,KAAKgD,EAAQ,EAAE,IACjCP,EAAOO,EAAQ,GACfN,CAAC,IAGEA,EAAIC,EAAQD,CAAC,GAEhBO,EAAAA,cADUD,EAAQN,GACC,SAAUQ,EAAM3E,GAE3BkE,GAAQlE,GAAS4E,EAAQA,SAAC5E,CAAK,EAC3BuB,EAAAA,QAAQvB,CAAK,GACbiE,EAASU,GAAQV,EAASU,IAAS,GACnCE,EAAAA,WAAW7E,EAAO,SAAU8E,EAAYC,GAChCD,GAAcF,WAASE,CAAU,EACjCb,EAASU,GAAMI,GAAcpB,EAAO,CAAA,EAAMM,EAASU,GAAMI,GAAaD,CAAU,EAGhFb,EAASU,GAAMI,GAAcD,CAEzD,CAAqB,GAGDb,EAASU,GAAQhB,EAAO,CAAA,EAAMM,EAASU,GAAO3E,CAAK,EAIvDiE,EAASU,GAAQ3E,CAEjC,CAAS,EAEL,OAAOiE,CACX,CACW,IAAAe,EAAUC,EAAQA,QACtB,SAASjD,EAAYhC,GAExB,OAAc,IAAVA,GAAiD,EAARA,GAAqCA,GAAS,IAAwD,KAAVA,CAI7I,CAoBO,SAAS8B,EAAa9B,GACzB,OAAsB,EAAfA,EAAMoE,MACjB,CACO,SAASc,GAA2BC,EAAOC,GAE9CC,EAAIC,QAAUD,EAAIC,SAAW,GAC7BD,EAAIC,QAAQC,sBAAwBF,EAAIC,QAAQC,uBAAyB,GACzEF,EAAIC,QAAQC,sBAAsBH,GAAcJ,EAAO,CAC3D,CAKO,SAAS3C,EAAkBrC,GAC9B,IAEQwF,EAFJC,EAAU,EA2Bd,OA1Bc,OAAVzF,GAAkBA,IAAU0F,YAEZ,WADZF,EAAU,OAAOxF,GAEjByF,EAAU,EAEO,UAAZD,EACLC,EAAU,EAEO,WAAZD,EACLC,EAAU,EAELD,IAAYG,EAAAA,gBACjBF,EAAU,EACNlE,EAAAA,QAAQvB,CAAK,GACbyF,EAAU,KACS,EAAfzF,EAAMoE,SAENqB,GAAWpD,EAAkBrC,EAAM,EAAE,IAGpCwB,oBAAkBC,KAAKzB,EAAO,OAAO,IAE1CyF,EAAU,KAAmDpD,EAAkBrC,EAAMA,KAAK,KAI/FyF,CACX,CACU,IAACG,GAAQ,CACfxG,QAASA,EACTC,kBAAmBA,EACnBwG,aAAcA,EAAYA,aAC1BC,UAAWA,EAASA,UACpBC,UAAWF,EAAYA,aACvBhB,WAAYA,EAAUA,WACtBmB,WAAYA,EAAUA,WACtBC,OAAQA,EAAMA,OACdC,UAAWA,EAASA,UACpBC,QAASA,EAAOA,QAChBC,YAAaA,EAAWA,YACxBrF,cAAeA,EAAaA,cAC5BW,SAAUA,EAAQA,SAClBT,SAAUA,EAAQA,SAClBU,UAAWA,EAASA,UACpB0E,WAAYA,EAAUA,WACtB9E,QAASA,EAAOA,QAChBqD,SAAUA,EAAQA,SAClB0B,QAASA,EAAOA,QAChB5G,0BAA2BA,EAC3BG,wBAAyBA,EACzBE,gBAAiBA,EACjBG,YAAaA,EACbqG,mBAAoBA,EAAkBA,mBACtChG,sBAAuBA,EACvBS,UAAWA,EACXE,iBAAkBA,EAClBsF,aAAcJ,EAAWA,YACzBK,kBAAmBA,EAAiBA,kBACpCvE,wBAAyBA,EACzBwE,gBAAiB/D,EAAmBA,oBACpCgE,sBAAuBC,EAAuBA,wBAC9CnE,UAAWA,EACXI,aAAcA,EACdE,UAAWA,EACXO,WAAYA,EACZK,OAAQA,EACRqB,QAASA,EACThD,YAAaA,EACbF,aAAcA,EACd+E,mBAAoBA,EAAkBA,mBACtCC,2BAA4BA,EAA0BA,2BACtD5B,2BAA4BA,GAC5B6B,gBAAiBA,EAAeA,gBAChC1E,kBAAmBA,EACnB2E,YAAaA,EAAWA,YACxBtC,cAAeA,EAAaA,aAChC,EAQWuC,EAAY,CACnBC,eAAgBxB,UAChByB,SAAUA,EAAQA,SAClB3G,YAAaA,EAAWA,YACxBP,kBAAmBA,EAAiBA,kBACpCmH,eAAgBA,EAAcA,eAC9Bf,WAAYA,EAAUA,WACtBzB,SAAUA,EAAQA,SAClByC,OAAQA,EAAMA,OACd9F,QAASA,EAAOA,QAChB+F,QAASA,EAAOA,QAChB5F,SAAUA,EAAQA,SAClBT,SAAUA,EAAQA,SAClBU,UAAWA,EAASA,UACpByE,YAAaA,EAAWA,YACxBvB,WAAYA,EAAUA,WACtBmB,WAAYA,EAAUA,WACtBC,OAAQA,EAAMA,OACdC,UAAWA,EAASA,UACpBI,QAASA,EAAOA,QAChBiB,UAAWC,EAAWA,YACtBrB,QAASA,EAAOA,QAChBU,mBAAoBA,EAAkBA,mBACtCE,gBAAiBA,EAAeA,gBAChCU,QAASA,EAAOA,QAChBC,KAAMA,EAAIA,KACVpF,eAAgBA,EAChBmB,QAASA,EAAOA,QAChBwB,QAASA,EAAOA,QAChB0C,MAAOA,EAAKA,MACZC,YAAaA,EAAWA,YACxBC,SAAUA,EAAQA,SAClBC,cAAeA,EAAaA,cAC5BC,YAAaA,EAAWA,YACxBC,cAAeA,EAAaA,aAChC,ECpc+CC,GAgG7CC,kBA/FEC,cAAUC,EAAiBH,EAAM,EA4FjCG,EAAgBC,QAAQ,EA7FzB,IAACD,EA+FOA,EA7FP,SAASA,IACL,IAAIE,EAAQL,GAAOxG,KAAK8G,IAAI,GAAKA,KAmFjC,OAlFAD,EAAME,uBAAyB,GAC/BC,EAAaL,EAAiBE,EAAO,SAAUI,EAAOC,GAC7CD,EAAME,QAAWF,EAAME,OAAOC,QAG/BH,EAAME,OAAS,IAAIE,EAAAA,iBAAiB,CAAEC,oBAAqB,CAAC,CAAkC,GAElGL,EAAMM,WAAa,SAAUC,EAAQC,EAAYN,EAAQO,GACrDC,EAAAA,OAAOV,EAAO,WAAc,MAAO,4BAA+B,EAAE,WAChE,IAAIW,EAA0BX,EAAMF,uBAEhCS,IACKA,EAAOK,cACRL,EAAOK,YAAcrK,GAIrBsK,EAFAA,EAA0BN,EAAOM,0BAEJA,EAAwBC,aAAgBD,EAAwBE,aAC7FC,EAAUA,WAAC,2CAA2C,EAEtDT,EAAOU,WACP9E,EAAAA,WAAWoE,EAAOU,SAAU,SAAUA,GAC9BA,GACA9E,aAAW8E,EAAU,SAAUC,GACvBA,EAAQxE,YAAcwE,EAAQC,UAC1BC,EAAMF,EAAQxE,WAAa,IAAMwE,EAAQC,QAC7CR,EAAwBU,KAAKD,CAAG,EAE5E,CAAqC,CAErC,CAA6B,EAGTpB,EAAMsB,UAAY,WACd,MAA4B,aAApB,OAAOC,UAA8BhB,EAAOiB,aAAgB,EAAI,CAAC,CACjG,EACwBhB,GACArE,aAAWqE,EAAY,SAAUiB,GACzBA,GAAOA,EAAI/E,YAAc+E,EAAIN,UACzBC,EAAMK,EAAI/E,WAAa,IAAM+E,EAAIN,QACrCR,EAAwBU,KAAKD,CAAG,EAEhE,CAAyB,EAELpB,EAAM0B,oBAAsBf,EAAwBgB,KAAK,GAAG,EAC5D3B,EAAMF,uBAAyBa,EAC/B,IACIV,EAAMK,WAAWC,EAAQC,EAAYN,EAAQO,CAAmB,EAChET,EAAM4B,iBAAiB,aAAa,CAUvC,CARD,MAAOC,GACH,IAAIC,EAAW9B,EAAME,OACjB6B,EAAUC,UAAQH,CAAC,EACnBE,CAAAA,EAAQpK,QAAQ,UAAU,IAE1BoK,GAAW,gEAEfE,EAAcA,eAACH,EAAU,EAAmC,IAA6D,0DAA4DC,CAAO,CAC/L,CACJ,EAAE,WAAc,MAAQ,CAAExB,OAAQA,EAAQC,WAAYA,EAAYN,OAAQA,EAAQO,oBAAqBA,CAAqB,CAAI,CAAA,CACjJ,EACYT,EAAMkC,MAAQ,SAAUC,GACpBzB,EAAAA,OAAOV,EAAO,WAAc,MAAO,uBAA0B,EAAE,WAC3D,IAYQoC,EAZJC,EAAgBF,EAChBE,IACAA,EAAczF,QAAUyF,EAAczF,SAAW,GACjDyF,EAAczF,QAAQ0F,WAAahG,IAC9BhE,EAAU+J,EAAcE,OAAO,IAChCF,EAAcE,QAAU,IAExBC,EAAUH,EAAcZ,IAAMY,EAAcZ,KAAO,IAC/CgB,IAAMD,EAAQC,KAAO,GAC7BD,EAAQC,IAAIrB,IAAMzK,GACd+L,EAAWL,EAAcK,SAAWL,EAAcK,UAAY,IACzDjM,GAAkBiM,EAASjM,IAAmB,IACnD2L,EAAiBM,EAASjM,IACfD,GAAe4L,EAAe5L,IAAgBwJ,EAAM0B,qBAAuBpL,GAE9F2J,EAAMiC,MAAMG,CAAa,CAC7C,EAAmB,WAAc,OAAUF,KAAMA,CAAM,CAAE,EAAI,CAAEA,EAAS,IAAC,CACzE,CACA,CAAS,EACMvC,CACV,CCpFmCL,EAuCtCC,WAtCEC,cAAUkD,EAAUpD,CAAM,EAmC1BoD,EAAShD,QAAQ,EApClB,IAAqCJ,EAApCoD,EAsCOA,EApCP,SAASA,IACL,IAAI/C,EAAQL,EAAOxG,KAAK8G,IAAI,GAAKA,KA0BjC,OAzBAE,EAAa4C,EAAU/C,EAAO,SAAUI,EAAOC,GAC3CD,EAAMM,WAAa,SAAUC,EAAQC,EAAYN,EAAQO,GACjDF,GAAU,CAACA,EAAOK,cAClBL,EAAOK,YAAcrK,GAEzByJ,EAAMsB,UAAY,WACd,OAAQtK,GAA+BuJ,EAAOiB,aAAgB,EAAI,CAAC,CACvF,EACgB,IACIvB,EAAMK,WAAWC,EAAQC,EAAYN,EAAQO,CAAmB,CAInE,CAFD,MAAOoB,GACHI,iBAAejC,EAAME,OAAQ,EAAmC,IAA6D,0BAA4B8B,UAAQH,CAAC,EAAI,mEAAmE,CAC5O,CACjB,EACY7B,EAAMkC,MAAQ,SAAUC,GACpB,IAEQV,EADJY,KACIZ,EAAMY,EAAcZ,IAAMY,EAAcZ,KAAO,IAC/CgB,IAAMhB,EAAIgB,KAAO,GACrBhB,EAAIgB,IAAIrB,IAAMzK,GAElBsJ,EAAMiC,MAAMG,CAAa,CACzC,CACA,CAAS,EACMzC,CACV,CC/BL,IAAIgD,EAAcjF,EAAAA,WAuBdkF,GA6HAA,EAAUC,QAAU,SAAUxL,GAC1B,OAAIA,aAAiBuL,EAEVvL,EAEFA,GAASsL,EAAYtL,EAAMyL,IAAI,EAE7B,IAAIF,EAAU,SAAUC,EAASE,GACpC,IACI1L,EAAMyL,KAAKD,EAASE,CAAM,CAI7B,CAFD,MAAOC,GACHD,EAAOC,CAAK,CACf,CACjB,CAAa,EAEE,IAAIJ,EAAU,SAAUC,GAC3BA,EAAQxL,CAAK,CACzB,CAAS,CACT,EAKIuL,EAAUG,OAAS,SAAUE,GACzB,OAAO,IAAIL,EAAU,SAAUC,EAASE,GACpCA,EAAOE,CAAM,CACzB,CAAS,CACT,EAiBIL,EAAUM,IAAM,SAAUC,GACtB,GAAKA,GAAaA,EAAS1H,OAG3B,OAAO,IAAImH,EAAU,SAAUC,EAASE,GACpC,IAGI,IAFA,IAAIK,EAAW,GACXC,EAAY,EACPC,EAAK,EAAGA,EAAKH,EAAS1H,OAAQ6H,CAAE,GAAI,CACzC,IAAIpB,EAAOiB,EAASG,GAEhBpB,GAAQS,EAAYT,EAAKY,IAAI,GAC7BO,CAAS,GACTnB,EAAKY,KAhM7B,SAA6CS,EAAQC,GACjD,OAAO,SAAUnM,GACbkM,EAAOC,GAASnM,EA+LwB,GAAhB,EAAEgM,GACFR,EAAQO,CAAQ,CA9LhD,CACA,EA2LsEA,EAAUE,CAIvD,EAAGP,CAAM,GAGVK,EAASE,GAAMpB,CAEtB,CACiB,IAAdmB,GAEAI,WAAW,WACPZ,EAAQO,CAAQ,CACnB,EAAE,CAAC,CAKX,CAFD,MAAOJ,GACHD,EAAOC,CAAK,CACf,CACb,CAAS,CACT,EASIJ,EAAUc,KAAO,SAAUP,GACvB,OAAO,IAAIP,EAAU,SAAUC,EAASE,GACpC,GAAKI,GAAaA,EAAS1H,OAG3B,IAaI,IAZA,IAYS6H,EAAK,EAAGA,EAAKH,EAAS1H,OAAQ6H,CAAE,GACrCK,CAbU,WACV,IAAIzB,EAAOiB,EAYHG,GAVJpB,GAAQS,EAAYT,EAAKY,IAAI,EAC7BZ,EAAKY,KAAKD,EAASE,CAAM,EAGzBU,WAAW,WACPZ,EAAQX,CAAI,CACf,EAAE,CAAC,CAE5B,EAE8B,CAKjB,CAFD,MAAOc,GACHD,EAAOC,CAAK,CACf,CACb,CAAS,CACT,EAGWJ,GAxOP,SAASA,EAAUgB,GACf,IAAIC,EAAS,EACTC,EAAgB,KAChBC,EAAS,GAab,SAASC,EAASC,EAAYC,EAAYrB,EAASE,GAC/CgB,EAAO3C,KAAK,WACR,IAAI/J,EACJ,KAKQA,EADW,IAAXwM,EACQlB,EAAYsB,CAAU,EAAIA,EAAWH,CAAa,EAAIA,EAGtDnB,EAAYuB,CAAU,EAAIA,EAAWJ,CAAa,EAAIA,aAE7ClB,EAGjBvL,EAAMyL,KAAKD,EAASE,CAAM,GAEV,IAAXc,GAA6ClB,EAAYuB,CAAU,EAWxErB,EARAE,GAQQ1L,CAAK,CAQpB,CALD,MAAO2L,GAGHD,EAAOC,CAAK,CAEf,CACjB,CAAa,EAGc,IAAXa,GACAM,GAEP,CACD,SAASA,IACL,IAGQC,EAHY,EAAhBL,EAAOtI,SAGH2I,EAAYL,EAAOM,QACvBN,EAAS,GACTN,WAAW,WACP,IAAK,IAAIjI,EAAI,EAAG8I,EAAMF,EAAU3I,OAAQD,EAAI8I,EAAK,EAAE9I,EAC/C,IACI4I,EAAU5I,IAKb,CAHD,MAAOoG,IAKd,EAAE,CAAC,EAEX,CAQD,SAAS2C,EAAQtB,GACE,IAAXY,IACAC,EAAgBb,EAChBY,EAAS,EACTM,IAEP,CAEG,GA3FJrE,EAAa8C,EAAWhD,KAAM,SAAUD,GACpCA,EAAMmD,KAAO,SAAUmB,EAAYC,GAC/B,OAAO,IAAItB,EAAU,SAAUC,EAASE,GAGpCiB,EAASC,EAAYC,EAAYrB,EAASE,CAAM,CACpE,CAAiB,CACjB,EACYpD,EAAa,SAAI,SAAUuE,GACvB,OAAOvE,EAAMmD,KAAK,KAAMoB,CAAU,CAClD,CACA,CAAS,EAgFO,CAACvB,EAAYiB,CAAY,EACzB,MAAM,IAAIY,UAAU,oDAAoD,EAE5E,IACIZ,EAnBR,SAAkBvM,GACC,IAAXwM,IACAC,EAAgBzM,EAChBwM,EAAS,EACTM,IAEP,EAa8BI,CAAO,CAMjC,CAJD,MAAOvB,GAGHuB,EAAQvB,CAAK,CAChB,CAER,CC/IL,IAKIyB,GAAe,EAIfC,EAAW,GAIXC,EAAW,GAIXC,EAAY,GAIhB,SAASC,IACL,OAAO,IAAIC,MAAOzI,SACtB,CAkOI0I,EAAmBC,WAAa,WAC5B,OAAON,CACf,EACIK,EAAmBE,eAAiB,WAChC,OAAON,CACf,EAlOI,IAAAI,EAoOOA,EAnOP,SAASA,EAAmBvM,EAAM0M,GAC9B,IAAIC,EAAa,EACbC,GAAkB5M,GAAQ,aAAe,IAAMiM,GA8MnD,SAASY,EAAUvD,GAEf,IAAIwD,EAASC,EAAAA,YACTD,GAAUA,EAAc,OAExBE,SAAWA,QAAQC,IAAI,sBAAwBL,EAAiB,KAAOtD,CAAO,CAErF,CACD,SAAS4D,EAAS5D,GACd6D,EAAcA,eAACT,EAAS,sBAAwBE,EAAiB,KAAOtD,CAAO,CAClF,CAvND2C,EAAY,GACZ3E,EAAaiF,EAAoBnF,KAAM,SAAUD,GAC7C,IAAIiG,EAAa,KACbC,EAAc,EAiMlB,SAASC,EAAmB5F,EAAO6F,GAC/B,IAAK,IAAIzC,EAAK,EAAGA,EAAKpD,EAAMzE,OAAQ6H,CAAE,GAClC,GAAIpD,EAAMoD,GAAI0C,KAAOD,EACjB,OAAO7F,EAAM+F,OAAO3C,EAAI,CAAC,EAAE,GAGnC,OAAO,IACV,CAvMD3D,EAAMuG,cAAgB,SAAUC,EAAkBC,EAAWC,GACzD,IAmK+BC,EAAcC,EACrCC,EApKJC,EAAWrB,EAAiB,IAAMS,EAKlCa,GAJJb,CAAW,GACPO,IACAK,GAAY,KAAOL,EAAY,KAEfK,EAAW,IAAMtB,EAAa,KAG9CwB,GAFJxB,CAAU,GAEc,CACpBzI,IAAK,KACLkK,GAAI/B,EAAU,EACdmB,GAAIU,EACJG,UAAW,CAAA,EACXC,UAAW,CAAA,CAC/B,GAcgB,OALIH,EAAkBjK,IARjBkJ,GAoJ0BU,EA5ImBK,EA4ILJ,EA5IwBX,EA6I7DY,EAAY,IAAI5D,EAAU,SAAUmE,EAAaC,GACjD,IAAIC,EAAUpC,IAAa0B,EAAaK,GACpCM,EAASX,EAAaP,GAC1BX,EAAU,IAAMoB,EAAW,qBAAuBS,EAAS,IAAMD,EAAU,wCAA0CtC,EAASlJ,OAAS,kBAAoBiJ,EAASjJ,OAAS,WAAW,EACxL6K,EAAaa,MAAQ,SAAUrF,GAC3BwE,EAAaa,MAAQ,KACrBrB,EAAmBnB,EAAU8B,CAAQ,EACrCH,EAAaQ,UAAY,CAAA,EACzBE,EAAeI,MAAMtF,CAAO,CAAC,CACzD,EAEwByE,EAAa7J,IAAIoG,KAAK,SAAUzL,GAC5ByO,EAAmBnB,EAAU8B,CAAQ,EAGrCY,EAAmBf,CAAY,EAAExD,KAAKiE,EAAaC,CAAU,CAChE,EAAE,SAAU/D,GACT6C,EAAmBnB,EAAU8B,CAAQ,EAGrCY,EAAmBf,CAAY,EAAExD,KAAKiE,EAAaC,CAAU,CACzF,CAAyB,CACzB,CAAqB,EACDrC,EAASvD,KAAKkF,CAAY,EACnBE,GA3KiBa,EAAmBV,CAAiB,GAShEf,EAAae,GACFjK,IAAI4K,OAASZ,EACjBC,EAAkBjK,IACzB,SAAS6K,EAAyBC,GAK9B,IAJA,IAAIC,EAAM5C,IACN6C,EAAUD,EApEX,IAqECnD,EAAMkD,EAAW/L,OACjB6H,EAAK,EACFA,EAAKgB,GAAK,CACb,IAEQxC,EAFJpF,EAAM8K,EAAWlE,GACjB5G,GAAOA,EAAIkK,GAAKc,GACZ5F,EAAU,KACVpF,EAAIyK,OACJrF,EAAU,aAAepF,EAAIsJ,GAAK,gCAAkCyB,EAAM/K,EAAIkK,IAAM,OACpFlK,EAAIyK,MAAMrF,CAAO,GAGjBA,EAAU,aAAepF,EAAIsJ,GAAK,gCAAkCyB,EAAM/K,EAAIkK,IAAM,OAExFlB,EAAS5D,CAAO,EAChB0F,EAAWvB,OAAO3C,EAAI,CAAC,EACvBgB,CAAG,IAGHhB,CAAE,EAET,CACJ,CACD,SAASqE,EAAS5B,EAAS6B,GACvB,IAaQhB,EAbJiB,EAAU,CAAA,EACVC,EAAUhC,EAAmBpB,EAAUqB,CAAO,EAC7C+B,IACDA,EAAUhC,EAAmBlB,EAAWmB,CAAO,EAC/C8B,EAAU,CAAA,GAEVC,GACIA,EAAQC,KAERC,aAAaF,EAAQC,EAAE,EACvBD,EAAQC,GAAK,MAGbnB,EAAK/B,IAAaiD,EAAQlB,GAC1BgB,EACKC,EAIDnC,EAAS,oBAAsBK,EAAU,yBAA2Ba,EAAK,KAAK,EAH9EvB,EAAU,YAAcU,EAAU,iBAAmBa,EAAK,KAAK,GAOnEhC,EAAUxD,KAAK0G,CAAO,EACtBpC,EAAS,UAAYK,EAAU,8BAAgCa,EAAK,KAAK,IAI7EvB,EAAU,qBAAuBU,EAAU,sBAAsB,EAGjEH,GAAcA,EAAWI,KAAOD,IAChCH,EAAa,MAEjB2B,EAAyB7C,CAAQ,EACjC6C,EAAyB5C,CAAQ,EACjC4C,EAAyB3C,CAAS,CACrC,CAGD,SAASqD,EAAsBlC,EAASmC,GACpC,OAAO,SAAU7Q,GAGb,OAFAsQ,EAAS5B,EAAS,CAAA,CAAI,EACtBmC,GAAYA,EAAS7Q,CAAK,EACnBA,CAC/B,CACiB,CAgBD,SAAS8Q,EAAsB7B,EAAc8B,GACzC,IAAIrC,EAAUO,EAAaN,GAC3B,OAAO,IAAIpD,EAAU,SAAUyF,EAAiBC,GAC5CjD,EAAU,UAAYU,EAAU,6BAA+BO,EAAaiC,KAAO,MAAQ,KAAK,EAChGjC,EAAaO,UAAY,CAAA,EACzBP,EAAaa,MAAQ,SAAUrF,GAC3BwE,EAAaa,MAAQ,KACrBb,EAAaQ,UAAY,CAAA,EACzBa,EAAS5B,EAAS,CAAA,CAAK,EACvBuC,EAAmBlB,MAAMtF,CAAO,CAAC,CAC7D,EACwB,IAAI0G,EAAcJ,EAAWrC,CAAO,EAChCyC,aAAuB5F,GACnByD,IAEAC,EAAayB,GAAKtE,WAAW,WACzBkE,EAAS5B,EAAS,CAAA,CAAK,EAEvBuC,EAAmBlB,MAAM,oBAAsBf,EAAU,MAAM,CAAC,CACnE,EAAEA,CAAO,GAlC1B,SAASoC,EAAoB1C,EAASyC,EAAaH,EAAiBC,GAChEE,EAAY1F,KAAK,SAAUzL,GACvB,OAAIA,aAAiBuL,GAEjByC,EAAU,UAAYU,EAAU,iCAAiC,EACjE0C,EAAoB1C,EAAS1O,EAAOgR,EAAiBC,CAAc,EAC5DjR,GAGA4Q,EAAsBlC,EAASsC,CAAe,EAAEhR,CAAK,CAEnE,EAAE4Q,EAAsBlC,EAASuC,CAAc,CAAC,CACpD,EAwB+BvC,EAASyC,EAAa,SAAUE,GAChDrD,EAAU,UAAYU,EAAU,sBAAwBlB,EAAU,EAAGyB,EAAaM,IAAM,KAAK,EAC7FyB,EAAgBK,CAAS,CAC5B,EAAEJ,CAAc,IAIjBjD,EAAU,YAAcU,EAAU,+DAA+D,EACjGsC,IAE5B,CAAqB,CACJ,CACD,SAAShB,EAAmBf,GACxB,IAAImB,EAAM5C,IAGV,OAFAyB,EAAaiC,IAAMd,EAAMnB,EAAaM,GACtCN,EAAaM,GAAKa,EACdnB,EAAaQ,UACNlE,EAAUG,OAAWqE,MAAM,IAAMX,EAAW,eAAe,CAAC,GAEvE/B,EAAStD,KAAKkF,CAAY,EACnB6B,EAAsB7B,EAAcH,CAAgB,EAC9D,CA+BjB,CASA,CAAS,CAYJ,CCxDDwC,GAAeC,aAAelP,EAtM9B,IAAAiP,GAuMOA,GAtMP,SAASA,GAAeE,GACpB,IAAI9I,EAAQH,KAERkJ,EAAgB,GAChBC,EAAc,GACdC,EAAmB,GAIvB,SAASC,EAAmBC,EAAM1Q,GAC9B,IACI2Q,EAAcL,EAAcI,GAIhC,GAAI,EAFAE,EADAD,EACSA,EAAY3Q,GAEpB4Q,IAAqB,OAAXA,EAAiB,CAE5B,GAAIrQ,EAAQA,SAACmQ,CAAI,GAAKnQ,EAAQA,SAACP,CAAI,EAC/B,GAA8B,EAA1BwQ,EAAiBvN,QACjB,IAAK,IAAI6H,EAAK,EAAGA,EAAK0F,EAAiBvN,OAAQ6H,CAAE,GAC7C,GAAI0F,EAAiB1F,GAAI+F,YAAYH,EAAM1Q,CAAI,EAAG,CAC9C4Q,EAAS,CACLE,UAAW,CAAA,EACXC,aAAcP,EAAiB1F,EACnE,EACgC,KACH,CACJ,MAE2B,IAAvByF,EAAYtN,SAGjB2N,EAAS,CACLE,UAAW,CAAA,CACvC,GAIgB,GAAI,CAACF,GAAqB,OAAXA,EAGX,IAAK,IADLA,EAAS,KACA9F,EAAK,EAAGA,EAAKyF,EAAYtN,OAAQ6H,CAAE,GACxC,GAAIyF,EAAYzF,GAAI+F,YAAYH,EAAM1Q,CAAI,EAAG,CACzC4Q,EAAS,CACLE,UAAW,CAAA,EACXE,QAAST,EAAYzF,GACrBiG,aAAc,IAC9C,EAC4B,KACH,EAGJJ,EAAAA,IACaL,EAAcI,GAAQ,KAE5B1Q,GAAQ4Q,CACvB,CACD,OAAOA,CACV,CA+ED,SAASK,EAAgBC,EAAUR,EAAM1Q,EAAMmR,EAAWlR,EAAUC,GAChE,GAAIgR,EAASF,QAET,OAAOE,EAASF,QAAQ/Q,SAASyQ,EAAM1Q,EAAMC,EAAUC,CAAgB,EAK3E,GAAI,CAACpB,EAAiBA,kBAACmB,EAASW,IAAI,EAAG,CACnC,GAA+D,OAA9C,KAAZuQ,IAAsG,CAACtQ,EAAYZ,EAASW,IAAI,EACjI,OAAO,KAGXX,EAASpB,MAAQoB,EAASpB,MAAMiC,SAAQ,CAC3C,CACD,OAQJ,SAASsQ,EAAoBC,EAAeX,EAAM1Q,EAAMsE,EAASrE,GAC7D,IACQqR,EAMQC,EACAC,EAyBhB,OAjCIvR,GAAYoR,IACRC,EAAYD,EAAcI,aAAaf,EAAM1Q,EAAMsE,EAASrE,EAASW,KAAMX,EAASyR,YAAY,KAIhF,IAAZpN,GAEIiN,EAAa,GACbC,EAAYvR,EAASpB,MACzB0E,EAAAA,cAAciO,EAAW,SAAUG,EAASC,GACxC,IAEQC,EAFJC,EAAUpB,EAAO,IAAM1Q,EACvBpB,EAAgBgT,CAAQ,IACpBC,EAAUE,EAAmBD,EAASH,EAASC,CAAQ,EAC3DC,EAAUT,EAAoBC,EAAeS,EAASH,EAASzQ,EAAkB0Q,CAAQ,EAAGC,CAAO,KAE/FN,EAAWI,GAAWE,EAAQhT,MAGlE,CAAyB,EACDoB,EAASpB,MAAQ0S,GAUjBtR,EAAWqR,EAAUhR,KAAKiH,EAPZ,CACVmJ,KAAMA,EACN1Q,KAAMA,EACNgB,KAAMsD,EACNd,KAAMvD,EACNqR,UAAW/J,CACvC,CACgE,GAI7CtH,CACV,EA3C8BiR,EAASH,aAAcL,EAAM1Q,EAAMmR,EAAWlR,CAAQ,CACpF,CACD,SAAS8R,EAAmBrB,EAAM1Q,EAAMnB,GACpC,OAAID,EAAgBC,CAAK,EACd,CAAEA,MAAOA,GAEb,IACV,CAzJGwR,GACAG,EAAiB5H,KAAKyH,CAAsB,EAoDhD9I,EAAMyK,aAAe,SAAUC,GACvBA,IACA1B,EAAY3H,KAAKqJ,CAAY,EAE7B3B,EAAgB,GAEhC,EACQ/I,EAAM2K,kBAAoB,SAAUC,GAC5BA,IACA3B,EAAiB5H,KAAKuJ,CAAc,EAEpC7B,EAAgB,GAEhC,EACQ/I,EAAMsJ,YAAc,SAAUH,EAAM1Q,GAC5BkR,EAAWT,EAAmBC,EAAM1Q,CAAI,EAC5C,MAAOkR,CAAAA,CAAAA,GAAWA,EAASJ,SACvC,EACQvJ,EAAM1I,MAAQ,SAAU6R,EAAM1Q,EAAMnB,EAAOqB,GACvC,IAAIgR,EAAWT,EAAmBC,EAAM1Q,CAAI,EAC5C,GAAIkR,GAAYA,EAASJ,UAAW,CAChC,GAAI,CAACI,GAAY,CAACA,EAASJ,UACvB,OAAO,KAEX,GAAII,EAASF,QAET,OAAOE,EAASF,QAAQnS,MAAM6R,EAAM1Q,EAAMnB,EAAOqB,CAAgB,EAGrE,GAAI,CAACK,EAAQA,SAACP,CAAI,GAAKlB,EAAiBA,kBAACD,CAAK,GAAKA,IAAUhB,EACzD,OAAO,KAEX,IAAIoC,EAAW,KACXkR,EAAYjQ,EAAkBrC,CAAK,EACvC,GAAuE,OAAtD,KAAZsS,GAAoH,CACrH,IAAIiB,EAAsB,CAAA,KAAZjB,EAEd,GAAI,CAACvS,GAAgBqB,EADVpB,GACmBA,KAAK,GAClB,GAAZuT,GACe,GAAZA,GACY,GAAZA,GACyD,OAA9C,KAAVA,GAEL,OAAO,IAEd,MACsB,IAAdjB,GACS,IAAdA,GACc,IAAdA,GAC2D,OAA9C,KAAZA,GAEDlR,EAAW8R,EAAmBrB,EAAM1Q,EAAMnB,CAAK,EAE5B,IAAdsS,IACLlR,EAAW8R,EAAmBrB,EAAM1Q,EAAQE,EAAmBO,KAAKC,UAAU7B,CAAK,EAAIA,CAAK,GAEhG,GAAIoB,EACA,OAAOgR,EAAgBC,EAAUR,EAAM1Q,EAAMmR,EAAWlR,EAAUC,CAAgB,CAEzF,CACD,OAAO,IACnB,EACQqH,EAAMtH,SAAW,SAAUyQ,EAAM1Q,EAAMC,EAAUC,GAC7C,IAQIiR,EARAD,EAAWT,EAAmBC,EAAM1Q,CAAI,EAC5C,OAAKkR,GAAaA,EAASJ,WAItBvQ,EAAAA,SAASP,CAAI,GAAKlB,CAAAA,EAAiBA,kBAACmB,CAAQ,GAAMrB,EAAgBqB,EAASpB,KAAK,GAInE,KADdsS,EAAYjQ,EAAkBjB,EAASpB,KAAK,GAKzCoS,EAAgBC,EAAUR,EAAM1Q,EAAMmR,EAAWlR,EAAUC,CAAgB,EAXvE,IAYvB,CA4DK,6kJL0QE,WACH,MAAO,CAAC,CAACmS,gBAAc,QAAQ,CACnC,kJAWO,SAAiBC,EAAQC,EAAWC,EAAiBC,EAAUC,EAAQ7E,GAG1E,SAAS8E,EAAgBC,EAAKpP,EAAM3E,GAChC,IACI+T,EAAIpP,GAAQ3E,CAIf,CAFD,MAAOuK,IAGV,CATgB,KAAA,IAAbqJ,IAAuBA,EAAW,CAAA,GACvB,KAAA,IAAXC,IAAqBA,EAAS,CAAA,GASlC,IAAIE,EAAM,IAAIC,eAwBd,OAvBIJ,GAIAE,EAAgBC,EAleM,0DAkewBH,CAAQ,EAEtDD,GAGAG,EAAgBC,EAAKzU,EAAoBqU,CAAe,EAE5DI,EAAIE,KAAKR,EAAQC,EAAW,CAACG,CAAM,EAC/BF,GAGAG,EAAgBC,EAAKzU,EAAoBqU,CAAe,EAKxD,CAACE,GAAU7E,GACX8E,EAAgBC,EAjfP,UAifwB/E,CAAO,EAErC+E,CACX"}
|
package/dist-esm/src/BaseCore.js
CHANGED
|
@@ -179,8 +179,8 @@ export interface IExtendedAppInsightsCore extends IAppInsightsCore {
|
|
|
179
179
|
*/
|
|
180
180
|
getWParam?: () => number;
|
|
181
181
|
}
|
|
182
|
-
export
|
|
183
|
-
export
|
|
182
|
+
export type FieldValueSanitizerFunc = (details: IFieldSanitizerDetails) => IEventProperty | null;
|
|
183
|
+
export type FieldValueSanitizerTypes = string | number | boolean | object | string[] | number[] | boolean[] | IEventProperty;
|
|
184
184
|
/**
|
|
185
185
|
* This interface defines the object that is passed to any provided FieldValueSanitizerFunc, it provides not only the value to be sanitized but also
|
|
186
186
|
* some context about the value like it's location within the envelope (serialized object), the format is defined via the
|