{"version":3,"file":"app-78f4ad1919f66fb2b775.js","mappings":"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","sources":["webpack://imi-webstore/./node_modules/base64-js/index.js","webpack://imi-webstore/./node_modules/buffer/index.js","webpack://imi-webstore/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://imi-webstore/./node_modules/gatsby-react-router-scroll/index.js","webpack://imi-webstore/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://imi-webstore/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://imi-webstore/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://imi-webstore/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://imi-webstore/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://imi-webstore/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://imi-webstore/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://imi-webstore/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://imi-webstore/./.cache/api-runner-browser-plugins.js","webpack://imi-webstore/./.cache/api-runner-browser.js","webpack://imi-webstore/./.cache/emitter.js","webpack://imi-webstore/./node_modules/mitt/dist/mitt.es.js","webpack://imi-webstore/./.cache/normalize-page-path.js","webpack://imi-webstore/./.cache/find-path.js","webpack://imi-webstore/./.cache/gatsby-browser-entry.js","webpack://imi-webstore/./.cache/prefetch.js","webpack://imi-webstore/./.cache/loader.js","webpack://imi-webstore/./.cache/head/components/fire-callback-in-effect.js","webpack://imi-webstore/./.cache/head/constants.js","webpack://imi-webstore/./.cache/head/utils.js","webpack://imi-webstore/./.cache/head/head-export-handler-for-browser.js","webpack://imi-webstore/./.cache/page-renderer.js","webpack://imi-webstore/./.cache/route-announcer-props.js","webpack://imi-webstore/./.cache/navigation.js","webpack://imi-webstore/./node_modules/shallow-compare/es/index.js","webpack://imi-webstore/./.cache/ensure-resources.js","webpack://imi-webstore/./.cache/production-app.js","webpack://imi-webstore/./.cache/public-page-renderer-prod.js","webpack://imi-webstore/./.cache/public-page-renderer.js","webpack://imi-webstore/./.cache/react-dom-utils.js","webpack://imi-webstore/./.cache/redirect-utils.js","webpack://imi-webstore/./.cache/register-service-worker.js","webpack://imi-webstore/./.cache/slice/context.js","webpack://imi-webstore/./.cache/static-query.js","webpack://imi-webstore/./.cache/context-utils.js","webpack://imi-webstore/./.cache/strip-prefix.js","webpack://imi-webstore/./gatsby-browser.js","webpack://imi-webstore/./node_modules/gatsby-plugin-react-helmet-canonical-urls/gatsby-browser.js","webpack://imi-webstore/./node_modules/gatsby-plugin-react-helmet-canonical-urls/wrap-page.js","webpack://imi-webstore/./src/contexts/basketContext.js","webpack://imi-webstore/./src/contexts/currencyContext.js","webpack://imi-webstore/./src/contexts/dataLayerContext.js","webpack://imi-webstore/./src/contexts/geolocationContext.js","webpack://imi-webstore/./src/contexts/jobContext.js","webpack://imi-webstore/./src/contexts/languageContext.js","webpack://imi-webstore/./src/contexts/liveChatContext.js","webpack://imi-webstore/./src/contexts/mobileNavContext.js","webpack://imi-webstore/./src/contexts/newConfiguratorContext.js","webpack://imi-webstore/./src/contexts/notificationsContext.js","webpack://imi-webstore/./src/contexts/searchContext.js","webpack://imi-webstore/./src/contexts/userContext.js","webpack://imi-webstore/./src/hooks/i18n/useLanguageI18n.js","webpack://imi-webstore/./src/hooks/useLanguages.js","webpack://imi-webstore/./src/services/backendApiService.js","webpack://imi-webstore/./src/services/baseApiService.js","webpack://imi-webstore/./src/services/basketService.js","webpack://imi-webstore/./src/services/configuratorApiService.js","webpack://imi-webstore/./src/services/configuratorService.js","webpack://imi-webstore/./src/services/constantsService.js","webpack://imi-webstore/./src/services/cookieService.js","webpack://imi-webstore/./src/services/geolocationService.js","webpack://imi-webstore/./src/services/i18nService.js","webpack://imi-webstore/./src/services/insecureStore.js","webpack://imi-webstore/./src/services/languageService.js","webpack://imi-webstore/./node_modules/@nevware21/ts-utils/dist/es5/mod/ts-utils.js","webpack://imi-webstore/./node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","webpack://imi-webstore/./node_modules/@nevware21/ts-async/dist/es5/mod/ts-async.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/__DynamicConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncHelperFuncs.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncPlugin.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Offline.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/SenderPostManager.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ResponseHelpers.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/ThrottleMgr.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-react-js/dist-esm/ReactPlugin.js","webpack://imi-webstore/./src/services/appInsightsService.js","webpack://imi-webstore/./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/SeverityLevel.js","webpack://imi-webstore/./src/services/loggingService.js","webpack://imi-webstore/./src/services/microcopyService.js","webpack://imi-webstore/./node_modules/gatsby/node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://imi-webstore/./node_modules/gatsby/node_modules/react-server-dom-webpack/index.js","webpack://imi-webstore/./node_modules/ieee754/index.js","webpack://imi-webstore/./node_modules/invariant/browser.js","webpack://imi-webstore/./node_modules/react-device-detect/dist/lib.js","webpack://imi-webstore/./node_modules/react-fast-compare/index.js","webpack://imi-webstore/./node_modules/react-helmet/es/Helmet.js","webpack://imi-webstore/./node_modules/react-side-effect/lib/index.js","webpack://imi-webstore/./node_modules/ua-parser-js/dist/ua-parser.min.js","webpack://imi-webstore/./node_modules/uuid/dist/esm-browser/native.js","webpack://imi-webstore/./node_modules/uuid/dist/esm-browser/rng.js","webpack://imi-webstore/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://imi-webstore/./node_modules/uuid/dist/esm-browser/v4.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://imi-webstore/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://imi-webstore/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://imi-webstore/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://imi-webstore/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://imi-webstore/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-500-js\": () => import(\"./../../../src/pages/500.js\" /* webpackChunkName: \"component---src-pages-500-js\" */),\n \"component---src-pages-cs-vyrobky-extrabase-product-id-js\": () => import(\"./../../../src/pages/cs/vyrobky/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-cs-vyrobky-extrabase-product-id-js\" */),\n \"component---src-pages-de-produkte-extrabase-product-id-js\": () => import(\"./../../../src/pages/de/produkte/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-de-produkte-extrabase-product-id-js\" */),\n \"component---src-pages-en-job-test-js\": () => import(\"./../../../src/pages/en/jobTest.js\" /* webpackChunkName: \"component---src-pages-en-job-test-js\" */),\n \"component---src-pages-en-products-extrabase-product-id-js\": () => import(\"./../../../src/pages/en/products/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-en-products-extrabase-product-id-js\" */),\n \"component---src-pages-en-us-products-extrabase-product-id-js\": () => import(\"./../../../src/pages/en-us/products/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-en-us-products-extrabase-product-id-js\" */),\n \"component---src-pages-es-productos-extrabase-product-id-js\": () => import(\"./../../../src/pages/es/productos/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-es-productos-extrabase-product-id-js\" */),\n \"component---src-pages-fr-produits-extrabase-product-id-js\": () => import(\"./../../../src/pages/fr/produits/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-fr-produits-extrabase-product-id-js\" */),\n \"component---src-pages-it-prodotti-extrabase-product-id-js\": () => import(\"./../../../src/pages/it/prodotti/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-it-prodotti-extrabase-product-id-js\" */),\n \"component---src-pages-nl-producten-extrabase-product-id-js\": () => import(\"./../../../src/pages/nl/producten/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-nl-producten-extrabase-product-id-js\" */),\n \"component---src-pages-pl-produkty-extrabase-product-id-js\": () => import(\"./../../../src/pages/pl/produkty/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-pl-produkty-extrabase-product-id-js\" */),\n \"component---src-pages-pt-produtos-extrabase-product-id-js\": () => import(\"./../../../src/pages/pt/produtos/extrabase/[productId].js\" /* webpackChunkName: \"component---src-pages-pt-produtos-extrabase-product-id-js\" */),\n \"component---src-templates-account-page-js\": () => import(\"./../../../src/templates/accountPage.js\" /* webpackChunkName: \"component---src-templates-account-page-js\" */),\n \"component---src-templates-basket-page-js\": () => import(\"./../../../src/templates/basketPage.js\" /* webpackChunkName: \"component---src-templates-basket-page-js\" */),\n \"component---src-templates-blog-home-page-js\": () => import(\"./../../../src/templates/blogHomePage.js\" /* webpackChunkName: \"component---src-templates-blog-home-page-js\" */),\n \"component---src-templates-blog-page-js\": () => import(\"./../../../src/templates/blogPage.js\" /* webpackChunkName: \"component---src-templates-blog-page-js\" */),\n \"component---src-templates-checkout-complete-page-js\": () => import(\"./../../../src/templates/checkoutCompletePage.js\" /* webpackChunkName: \"component---src-templates-checkout-complete-page-js\" */),\n \"component---src-templates-checkout-page-js\": () => import(\"./../../../src/templates/checkoutPage.js\" /* webpackChunkName: \"component---src-templates-checkout-page-js\" */),\n \"component---src-templates-checkout-payment-failed-page-js\": () => import(\"./../../../src/templates/checkoutPaymentFailedPage.js\" /* webpackChunkName: \"component---src-templates-checkout-payment-failed-page-js\" */),\n \"component---src-templates-checkout-payment-page-js\": () => import(\"./../../../src/templates/checkoutPaymentPage.js\" /* webpackChunkName: \"component---src-templates-checkout-payment-page-js\" */),\n \"component---src-templates-contact-page-js\": () => import(\"./../../../src/templates/contactPage.js\" /* webpackChunkName: \"component---src-templates-contact-page-js\" */),\n \"component---src-templates-datasheets-page-js\": () => import(\"./../../../src/templates/datasheetsPage.js\" /* webpackChunkName: \"component---src-templates-datasheets-page-js\" */),\n \"component---src-templates-distributor-page-js\": () => import(\"./../../../src/templates/distributorPage.js\" /* webpackChunkName: \"component---src-templates-distributor-page-js\" */),\n \"component---src-templates-elion-configurator-page-js\": () => import(\"./../../../src/templates/elionConfiguratorPage.js\" /* webpackChunkName: \"component---src-templates-elion-configurator-page-js\" */),\n \"component---src-templates-expertise-page-js\": () => import(\"./../../../src/templates/expertisePage.js\" /* webpackChunkName: \"component---src-templates-expertise-page-js\" */),\n \"component---src-templates-frl-configurator-page-js\": () => import(\"./../../../src/templates/frlConfiguratorPage.js\" /* webpackChunkName: \"component---src-templates-frl-configurator-page-js\" */),\n \"component---src-templates-generic-configurator-page-js\": () => import(\"./../../../src/templates/genericConfiguratorPage.js\" /* webpackChunkName: \"component---src-templates-generic-configurator-page-js\" */),\n \"component---src-templates-home-page-js\": () => import(\"./../../../src/templates/homePage.js\" /* webpackChunkName: \"component---src-templates-home-page-js\" */),\n \"component---src-templates-ivac-calculator-page-js\": () => import(\"./../../../src/templates/ivacCalculatorPage.js\" /* webpackChunkName: \"component---src-templates-ivac-calculator-page-js\" */),\n \"component---src-templates-landing-page-js\": () => import(\"./../../../src/templates/landingPage.js\" /* webpackChunkName: \"component---src-templates-landing-page-js\" */),\n \"component---src-templates-login-failed-page-js\": () => import(\"./../../../src/templates/loginFailedPage.js\" /* webpackChunkName: \"component---src-templates-login-failed-page-js\" */),\n \"component---src-templates-order-detail-page-js\": () => import(\"./../../../src/templates/orderDetailPage.js\" /* webpackChunkName: \"component---src-templates-order-detail-page-js\" */),\n \"component---src-templates-order-history-page-js\": () => import(\"./../../../src/templates/orderHistoryPage.js\" /* webpackChunkName: \"component---src-templates-order-history-page-js\" */),\n \"component---src-templates-product-category-js\": () => import(\"./../../../src/templates/productCategory.js\" /* webpackChunkName: \"component---src-templates-product-category-js\" */),\n \"component---src-templates-product-page-js\": () => import(\"./../../../src/templates/productPage.js\" /* webpackChunkName: \"component---src-templates-product-page-js\" */),\n \"component---src-templates-quote-detail-page-js\": () => import(\"./../../../src/templates/quoteDetailPage.js\" /* webpackChunkName: \"component---src-templates-quote-detail-page-js\" */),\n \"component---src-templates-register-page-js\": () => import(\"./../../../src/templates/registerPage.js\" /* webpackChunkName: \"component---src-templates-register-page-js\" */),\n \"component---src-templates-registration-complete-page-js\": () => import(\"./../../../src/templates/registrationCompletePage.js\" /* webpackChunkName: \"component---src-templates-registration-complete-page-js\" */),\n \"component---src-templates-root-page-js\": () => import(\"./../../../src/templates/rootPage.js\" /* webpackChunkName: \"component---src-templates-root-page-js\" */),\n \"component---src-templates-root-register-page-js\": () => import(\"./../../../src/templates/rootRegisterPage.js\" /* webpackChunkName: \"component---src-templates-root-register-page-js\" */),\n \"component---src-templates-saved-baskets-js\": () => import(\"./../../../src/templates/savedBaskets.js\" /* webpackChunkName: \"component---src-templates-saved-baskets-js\" */),\n \"component---src-templates-saved-configurations-js\": () => import(\"./../../../src/templates/savedConfigurations.js\" /* webpackChunkName: \"component---src-templates-saved-configurations-js\" */),\n \"component---src-templates-search-page-js\": () => import(\"./../../../src/templates/searchPage.js\" /* webpackChunkName: \"component---src-templates-search-page-js\" */),\n \"component---src-templates-standard-page-js\": () => import(\"./../../../src/templates/standardPage.js\" /* webpackChunkName: \"component---src-templates-standard-page-js\" */),\n \"component---src-templates-valve-island-configurator-page-js\": () => import(\"./../../../src/templates/valveIslandConfiguratorPage.js\" /* webpackChunkName: \"component---src-templates-valve-island-configurator-page-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-react-helmet-canonical-urls/gatsby-browser.js'),\n options: {\"plugins\":[],\"siteUrl\":\"https://www.norgren.com\",\"noTrailingSlash\":true},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // <html> and <body> tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... <html> and <body> elements are not valid descedents of <div> (our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to <div>, and just silence warnings for <html> and <body> elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `<html>` || args[1] === `<body>`)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate <head> after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n <pageComponent.Head {...filterHeadProps(pageComponentProps)} />\n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n <FireCallbackInEffect callback={onHeadRendered}>\n <StaticQueryContext.Provider value={staticQueryResults}>\n <LocationProvider>{WrapHeadElement}</LocationProvider>\n </StaticQueryContext.Provider>\n </FireCallbackInEffect>,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return <div {...RouteAnnouncerProps} ref={this.announcementRef}></div>\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n <React.Fragment>\n {this.props.children}\n <RouteAnnouncer location={location} />\n </React.Fragment>\n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n <BaseContext.Provider\n value={{\n baseuri: `/`,\n basepath: `/`,\n }}\n >\n <PageRenderer {...props} />\n </BaseContext.Provider>\n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n <Location>\n {({ location }) => (\n <EnsureResources location={location}>\n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n <StaticQueryContext.Provider value={staticQueryResults}>\n <SlicesContext.Provider value={slicesContext}>\n <SlicesResultsContext.Provider value={sliceResults}>\n <SlicesMapContext.Provider\n value={pageResources.page.slicesMap}\n >\n <DataContext.Provider\n value={{ pageResources, location }}\n >\n {children}\n </DataContext.Provider>\n </SlicesMapContext.Provider>\n </SlicesResultsContext.Provider>\n </SlicesContext.Provider>\n </StaticQueryContext.Provider>\n )\n }}\n </EnsureResources>\n )}\n </Location>\n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n <DataContext.Consumer>\n {({ pageResources, location }) => (\n <RouteUpdates location={location}>\n <ScrollContext\n location={location}\n shouldUpdateScroll={shouldUpdateScroll}\n >\n <Router\n basepath={__BASE_PATH__}\n location={location}\n id=\"gatsby-focus-wrapper\"\n >\n <RouteHandler\n path={\n pageResources.page.path === `/404.html` ||\n pageResources.page.path === `/500.html`\n ? stripPrefix(location.pathname, __BASE_PATH__)\n : encodeURI(\n (\n pageResources.page.matchPath ||\n pageResources.page.path\n ).split(`?`)[0]\n )\n }\n {...this.props}\n location={location}\n pageResources={pageResources}\n {...pageResources.json}\n />\n </Router>\n </ScrollContext>\n </RouteUpdates>\n )}\n </DataContext.Consumer>\n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: <LocationHandler /> },\n <LocationHandler />,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return <GatsbyRoot>{SiteRoot}</GatsbyRoot>\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(<App />, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n <React.Fragment>\n {finalData && render(finalData)}\n {!finalData && <div>Loading (StaticQuery)</div>}\n </React.Fragment>\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The <StaticQuery /> component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n <StaticQueryContext.Consumer>\n {staticQueryData => (\n <StaticQueryDataRenderer\n data={data}\n query={query}\n render={render || children}\n staticQueryData={staticQueryData}\n />\n )}\n </StaticQueryContext.Consumer>\n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import React from 'react'\r\nimport 'bootstrap/dist/css/bootstrap.min.css'\r\nimport './src/components/global.css'\r\nimport { BasketProvider } from './src/contexts/basketContext'\r\nimport { GeolocationProvider } from './src/contexts/geolocationContext'\r\nimport { LanguageProvider } from './src/contexts/languageContext'\r\nimport { UserProvider } from './src/contexts/userContext'\r\nimport { SearchProvider } from './src/contexts/searchContext'\r\nimport { NotificationsProvider } from './src/contexts/notificationsContext'\r\nimport { LiveChatProvider } from './src/contexts/liveChatContext'\r\nimport { MobileNavProvider } from './src/contexts/mobileNavContext'\r\nimport { CurrencyProvider } from './src/contexts/currencyContext'\r\nimport { JobProvider } from './src/contexts/jobContext'\r\nimport { ConfiguratorProvider } from './src/contexts/newConfiguratorContext'\r\nimport { DataLayerProvider } from './src/contexts/dataLayerContext'\r\n\r\nexport const wrapRootElement = ({ element }) => (\r\n <NotificationsProvider>\r\n <GeolocationProvider>\r\n <LanguageProvider>\r\n <UserProvider>\r\n <BasketProvider>\r\n <SearchProvider>\r\n <CurrencyProvider>\r\n <JobProvider>\r\n <LiveChatProvider>\r\n <DataLayerProvider>\r\n <ConfiguratorProvider>\r\n <MobileNavProvider>{element}</MobileNavProvider>\r\n </ConfiguratorProvider>\r\n </DataLayerProvider>\r\n </LiveChatProvider>\r\n </JobProvider>\r\n </CurrencyProvider>\r\n </SearchProvider>\r\n </BasketProvider>\r\n </UserProvider>\r\n </LanguageProvider>\r\n </GeolocationProvider>\r\n </NotificationsProvider>\r\n)\r\n\r\nexport const onClientEntry = () => {\r\n const { ___loader: loader, pagePathOverride } = window\r\n\r\n if (!loader) {\r\n return\r\n }\r\n\r\n if (pagePathOverride) {\r\n const originalLoadPage = loader.loadPage\r\n const originalLoadPageSync = loader.loadPageSync\r\n\r\n // here we send window.pagePathOverride to loadPage / loadPageSync instead of window.location.pathname, which lets us override the page resources to use\r\n // and sets matchPath so the page hydrates correctly (https://github.com/gatsbyjs/gatsby/blob/6d8f0bfdcc1a2fe2d07f03583b19ea7934b0ccf4/packages/gatsby/cache-dir/production-app.js#L109-L117)\r\n loader.loadPage = async () => {\r\n const pageResources = await originalLoadPage(pagePathOverride)\r\n pageResources.page.matchPath = '*'\r\n return pageResources\r\n }\r\n loader.loadPageSync = () => {\r\n const pageResources = originalLoadPageSync(pagePathOverride)\r\n pageResources.page.matchPath = '*'\r\n return pageResources\r\n }\r\n }\r\n\r\n // We need to catch the GclId on initial load as this will be lost if the user navigates within the application. We'll hold on\r\n // to this for the lifetime of the session.\r\n const urlParams = new URLSearchParams(window.location.search)\r\n const gclId = urlParams.get('gclid')\r\n if (gclId) {\r\n sessionStorage.setItem('gclid', gclId)\r\n }\r\n}\r\n","\"use strict\";\n\nexports.wrapPageElement = require('./wrap-page');","\"use strict\";\n\nvar React = require('react');\n\nvar _require = require('react-helmet'),\n Helmet = _require.Helmet;\n\nvar defaultPluginOptions = {\n noTrailingSlash: false,\n nopQueryString: false,\n nopHash: false\n};\n\nvar isExcluded = function isExcluded(excludes, element) {\n if (!Array.isArray(excludes)) return false;\n element = element.replace(/\\/+$/, '');\n return excludes.some(function (exclude) {\n if (exclude instanceof RegExp) return element.match(exclude);\n return exclude.includes(element);\n });\n};\n\nmodule.exports = function (_ref, pluginOptions) {\n var element = _ref.element,\n location = _ref.props.location;\n\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n var options = Object.assign({}, defaultPluginOptions, pluginOptions);\n\n if (options.siteUrl && !isExcluded(options.exclude, location.pathname)) {\n var pathname = location.pathname || '/';\n if (options.noTrailingSlash && pathname.endsWith('/')) pathname = pathname.substring(0, pathname.length - 1);\n var myUrl = \"\" + options.siteUrl + pathname;\n if (!options.noQueryString) myUrl += location.search;\n if (!options.noHash) myUrl += location.hash;\n return React.createElement(React.Fragment, null, React.createElement(Helmet, {\n link: [{\n rel: 'canonical',\n key: myUrl,\n href: myUrl\n }]\n }), element);\n }\n\n return element;\n};","import React from 'react'\r\nimport {\r\n countBasketItems,\r\n myCurrentBasket,\r\n removeMyBasket,\r\n setMyBasket,\r\n} from '../services/basketService'\r\n\r\nconst initialState = {\r\n basketId: myCurrentBasket() ? myCurrentBasket().id : null,\r\n basketCurrency: myCurrentBasket() ? myCurrentBasket().currency : null,\r\n basketItems: null,\r\n basketWithTaxPrice: null,\r\n basketWithoutTaxPrice: null,\r\n basketTaxPrice: null,\r\n basketDiscountPrice: null,\r\n basketItemsCount: myCurrentBasket() ? myCurrentBasket().itemCount : 0,\r\n basketFeatureAvailable: true,\r\n basketExpires: myCurrentBasket() ? myCurrentBasket().expires : null,\r\n basketCertificateOfConformity: null,\r\n basketDeliveryCharge: null,\r\n warningMessages: [],\r\n basketIsReadonly: false,\r\n}\r\n\r\nconst actions = {\r\n SET_ID: 'SET_ID',\r\n SET_CURRENCY: 'SET_CURRENCY',\r\n SET_ITEMS: 'SET_ITEMS',\r\n SET_BASKET: 'SET_BASKET',\r\n SET_WITHTAXPRICE: 'SET_WITHTAXPRICE',\r\n SET_WITHOUTTAXPRICE: 'SET_WITHOUTTAXPRICE',\r\n SET_TAXPRICE: 'SET_TAXPRICE',\r\n SET_DISCOUNTPRICE: 'SET_DISCOUNTPRICE',\r\n SET_FEATUREAVAILABILITY: 'SET_FEATUREAVAILABILITY',\r\n SET_EXPIRES: 'SET_EXPIRES',\r\n SET_CERTIFICATEOFCONFORMITY: 'SET_CERTIFICATEOFCONFORMITY',\r\n SET_DELIVERYCHARGE: 'SET_DELIVERYCHARGE',\r\n DELETE_BASKET: 'DELETE_BASKET',\r\n SET_WARNINGMESSAGES: 'SET_WARNINGMESSAGES',\r\n SET_ISREADONLY: 'SET_ISREADONLY',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_ID: {\r\n const localStorageBasket = setMyBasket(action.value, null, 0)\r\n let newState = {\r\n ...state,\r\n basketId: action.value,\r\n basketCurrency: null,\r\n basketItems: null,\r\n basketWithTaxPrice: null,\r\n basketWithoutTaxPrice: null,\r\n basketTaxPrice: null,\r\n basketDiscountPrice: null,\r\n basketItemsCount: 0,\r\n basketExpires: null,\r\n basketCertificateOfConformity: null,\r\n basketDeliveryCharge: null,\r\n basketIsReadonly: false,\r\n }\r\n return newState\r\n }\r\n case actions.SET_CURRENCY: {\r\n let newState = { ...state, basketCurrency: action.value }\r\n return newState\r\n }\r\n case actions.SET_ITEMS: {\r\n let newState = {\r\n ...state,\r\n basketItems: action.value,\r\n basketItemsCount: countBasketItems(action.value),\r\n }\r\n return newState\r\n }\r\n case actions.SET_WITHTAXPRICE: {\r\n let newState = { ...state, basketWithTaxPrice: action.value }\r\n return newState\r\n }\r\n case actions.SET_WITHOUTTAXPRICE: {\r\n let newState = { ...state, basketWithoutTaxPrice: action.value }\r\n return newState\r\n }\r\n case actions.SET_TAXPRICE: {\r\n let newState = { ...state, basketTaxPrice: action.value }\r\n return newState\r\n }\r\n case actions.SET_DISCOUNTPRICE: {\r\n let newState = { ...state, basketDiscountPrice: action.value }\r\n return newState\r\n }\r\n case actions.SET_BASKET:\r\n const itemsCount = countBasketItems(action.value.items)\r\n const localStorageBasket = setMyBasket(action.value.id, action.value.currency, itemsCount)\r\n return {\r\n ...state,\r\n basketId: action.value.id,\r\n basketCurrency: action.value.currency,\r\n basketItems: action.value.items,\r\n basketWithTaxPrice: action.value.withTax,\r\n basketWithoutTaxPrice: action.value.withoutTax,\r\n basketTaxPrice: action.value.tax,\r\n basketDiscountPrice: action.value.discount,\r\n basketItemsCount: itemsCount,\r\n basketExpires: localStorageBasket.expires,\r\n basketCertificateOfConformity: action.value.certificateOfConformity,\r\n basketDeliveryCharge: action.value.deliveryCharge,\r\n basketIsReadonly: action.value.isReadonly,\r\n }\r\n case actions.SET_FEATUREAVAILABILITY: {\r\n let newState = { ...state, basketFeatureAvailable: action.value }\r\n return newState\r\n }\r\n case actions.DELETE_BASKET: {\r\n removeMyBasket()\r\n let newState = {\r\n ...state,\r\n basketId: null,\r\n basketCurrency: null,\r\n basketItems: null,\r\n basketWithTaxPrice: null,\r\n basketWithoutTaxPrice: null,\r\n basketTaxPrice: null,\r\n basketDiscountPrice: null,\r\n basketItemsCount: 0,\r\n basketExpires: null,\r\n basketCertificateOfConformity: null,\r\n basketDeliveryCharge: null,\r\n basketIsReadonly: false\r\n }\r\n return newState\r\n }\r\n case actions.SET_EXPIRES: {\r\n let newState = { ...state, basketExpires: action.value }\r\n return newState\r\n }\r\n case actions.SET_CERTIFICATEOFCONFORMITY: {\r\n let newState = { ...state, basketCertificateOfConformity: action.value }\r\n return newState\r\n }\r\n case actions.SET_DELIVERYCHARGE: {\r\n let newState = { ...state, basketDeliveryCharge: action.value }\r\n return newState\r\n }\r\n case actions.SET_WARNINGMESSAGES: {\r\n let newState = { ...state, warningMessages: action.value }\r\n return newState\r\n }\r\n case actions.SET_ISREADONLY: {\r\n let newState = { ...state, basketIsReadonly: action.value }\r\n return newState\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst BasketContext = React.createContext(initialState)\r\n\r\nexport const BasketProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n basketId: state.basketId,\r\n basketCurrency: state.basketCurrency,\r\n basketItems: state.basketItems,\r\n basketItemsCount: state.basketItemsCount,\r\n basketFeatureAvailable: state.basketFeatureAvailable,\r\n basketWithTaxPrice: state.basketWithTaxPrice,\r\n basketWithoutTaxPrice: state.basketWithoutTaxPrice,\r\n basketTaxPrice: state.basketTaxPrice,\r\n basketDiscountPrice: state.basketDiscountPrice,\r\n basketExpires: state.basketExpires,\r\n basketCertificateOfConformity: state.basketCertificateOfConformity,\r\n basketDeliveryCharge: state.basketDeliveryCharge,\r\n warningMessages: state.warningMessages,\r\n basketIsReadonly: state.basketIsReadonly,\r\n setBasketId: (value) => {\r\n dispatch({ type: actions.SET_ID, value })\r\n },\r\n setBasketCurrency: (value) => {\r\n dispatch({ type: actions.SET_CURRENCY, value })\r\n },\r\n setBasketItems: (value) => {\r\n dispatch({ type: actions.SET_ITEMS, value })\r\n },\r\n setBasketWithTaxPrice: (value) => {\r\n dispatch({ type: actions.SET_WITHTAXPRICE, value })\r\n },\r\n setBasketWithoutTaxPrice: (value) => {\r\n dispatch({ type: actions.SET_WITHOUTTAXPRICE, value })\r\n },\r\n setBasketTaxPrice: (value) => {\r\n dispatch({ type: actions.SET_TAXPRICE, value })\r\n },\r\n setBasketDiscountPrice: (value) => {\r\n dispatch({ type: actions.SET_DISCOUNTPRICE, value })\r\n },\r\n setBasket: (value) => {\r\n dispatch({ type: actions.SET_BASKET, value })\r\n },\r\n setBasketFeatureAvailability: (value) => {\r\n dispatch({ type: actions.SET_FEATUREAVAILABILITY, value })\r\n },\r\n deleteBasket: () => {\r\n dispatch({ type: actions.DELETE_BASKET })\r\n },\r\n setBasketExpires: (value) => {\r\n dispatch({ type: actions.SET_EXPIRES, value })\r\n },\r\n setBasketCertificateOfConformity: (value) => {\r\n dispatch({ type: actions.SET_CERTIFICATEOFCONFORMITY, value })\r\n },\r\n setBasketDeliveryCharge: (value) => {\r\n dispatch({ type: actions.SET_DELIVERYCHARGE, value })\r\n },\r\n setWarningMessages: (value) => {\r\n dispatch({ type: actions.SET_WARNINGMESSAGES, value })\r\n },\r\n setIsReadonly: (value) => {\r\n dispatch({ type: actions.SET_ISREADONLY, value })\r\n },\r\n }\r\n\r\n return <BasketContext.Provider value={value}>{children}</BasketContext.Provider>\r\n}\r\n\r\nexport default BasketContext\r\n","import React from 'react'\r\n\r\nconst initialState = {\r\n validCurrencies: undefined,\r\n}\r\n\r\nconst actions = {\r\n SET_VALID_CURRENCIES: 'SET_VALID_CURRENCIES',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_VALID_CURRENCIES: {\r\n let newState = { ...state, validCurrencies: action.value }\r\n\r\n return newState\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst CurrencyContext = React.createContext(initialState)\r\n\r\nexport const CurrencyProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n validCurrencies: state.validCurrencies,\r\n setValidCurrencies: (value) => {\r\n dispatch({ type: actions.SET_VALID_CURRENCIES, value })\r\n },\r\n }\r\n\r\n return <CurrencyContext.Provider value={value}>{children}</CurrencyContext.Provider>\r\n}\r\n\r\nexport default CurrencyContext\r\n","import React from 'react'\r\n\r\nconst initialState = {\r\n eventApi: null,\r\n}\r\n\r\nconst actions = {\r\n SET_EVENTAPI: 'SET_EVENTAPI',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_EVENTAPI:\r\n return { ...state, eventApi: action.value }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst DataLayerContext = React.createContext(initialState)\r\n\r\nexport const DataLayerProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState) \r\n\r\n const value = {\r\n eventApi: state.eventApi,\r\n setEventApi: (value) => {\r\n dispatch({ type: actions.SET_EVENTAPI, value })\r\n },\r\n }\r\n\r\n return <DataLayerContext.Provider value={value}>{children}</DataLayerContext.Provider>\r\n}\r\n\r\nexport default DataLayerContext\r\n","import React from 'react'\r\nimport { currentGeolocation } from '../services/geolocationService'\r\n\r\nconst initialState = {\r\n country: currentGeolocation ? currentGeolocation.country : undefined,\r\n callingCountry: currentGeolocation ? currentGeolocation.callingCountry : undefined,\r\n expires: currentGeolocation ? currentGeolocation.expires : undefined,\r\n}\r\n\r\nconst actions = {\r\n SET_COUNTRY: 'SET_COUNTRY',\r\n SET_CALLINGCOUNTRY: 'SET_CALLINGCOUNTRY',\r\n SET_EXPIRES: 'SET_EXPIRES',\r\n SET_GEOLOCATION: 'SET_GEOLOCATION',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_COUNTRY: {\r\n let newState = { ...state, country: action.value }\r\n return newState\r\n }\r\n case actions.SET_CALLINGCOUNTRY: {\r\n let newState = { ...state, callingCountry: action.value }\r\n return newState\r\n }\r\n case actions.SET_EXPIRES: {\r\n let newState = { ...state, expires: action.value }\r\n return newState\r\n }\r\n case actions.SET_GEOLOCATION:\r\n return {\r\n ...state,\r\n country: action.value.country,\r\n callingCountry: action.value.callingCountry,\r\n expires: action.value.expires,\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst GeolocationContext = React.createContext(initialState)\r\n\r\nexport const GeolocationProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n country: state.country,\r\n callingCountry: state.callingCountry,\r\n expires: state.expires,\r\n setCountry: (value) => {\r\n dispatch({ type: actions.SET_COUNTRY, value })\r\n },\r\n setCallingCountry: (value) => {\r\n dispatch({ type: actions.SET_CALLINGCOUNTRY, value })\r\n },\r\n setExpires: (value) => {\r\n dispatch({ type: actions.SET_EXPIRES, value })\r\n },\r\n setGeolocation: (value) => {\r\n dispatch({ type: actions.SET_GEOLOCATION, value })\r\n },\r\n }\r\n\r\n return <GeolocationContext.Provider value={value}>{children}</GeolocationContext.Provider>\r\n}\r\n\r\nexport default GeolocationContext\r\n","import React from 'react'\r\n\r\nconst initialState = {\r\n jobSubjects: {},\r\n}\r\n\r\nconst actions = {\r\n ADD_JOB_SUBJECT: 'ADD_JOB_SUBJECT',\r\n REMOVE_JOB_SUBJECT: 'REMOVE_JOB_SUBJECT',\r\n REMOVE_ALL_JOB_SUBJECTS: 'REMOVE_ALL_JOB_SUBJECTS',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.ADD_JOB_SUBJECT: {\r\n let jobSubjects = state.jobSubjects\r\n let existing = jobSubjects[action.value.jobId]\r\n\r\n if (existing === undefined) {\r\n jobSubjects[action.value.jobId] = action.value\r\n }\r\n\r\n return { ...state, jobSubjects: { ...jobSubjects } }\r\n }\r\n case actions.REMOVE_JOB_SUBJECT: {\r\n let jobSubjects = state.jobSubjects\r\n let existing = state.jobSubjects[action.value.jobId]\r\n\r\n if (existing !== undefined) {\r\n delete state.jobSubjects[existing.jobId]\r\n existing.teardown()\r\n }\r\n\r\n return { ...state, jobSubjects: { ...jobSubjects } }\r\n }\r\n case actions.REMOVE_ALL_JOB_SUBJECTS: {\r\n for (const [key, value] of Object.entries(state.jobSubjects)) {\r\n value.teardown()\r\n }\r\n\r\n return { ...state, jobSubjects: {} }\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst JobContext = React.createContext(initialState)\r\n\r\nexport const JobProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n jobSubjects: state.jobSubjects,\r\n addSubject: (value) => {\r\n dispatch({ type: actions.ADD_JOB_SUBJECT, value })\r\n },\r\n removeSubject: (value) => {\r\n dispatch({ type: actions.REMOVE_JOB_SUBJECT, value })\r\n },\r\n removeAllSubjects: (value) => {\r\n dispatch({ type: actions.REMOVE_ALL_JOB_SUBJECTS, value })\r\n },\r\n }\r\n\r\n return <JobContext.Provider value={value}>{children}</JobContext.Provider>\r\n}\r\n\r\nexport default JobContext\r\n\r\nexport function getSubjectForJob(jobSubjects, jobId) {\r\n for (const [key, value] of Object.entries(jobSubjects)) {\r\n if (jobId === key) {\r\n return value\r\n }\r\n }\r\n\r\n return undefined\r\n}\r\n\r\nexport function detachFromJobs(jobSubjects, observer) {\r\n for (const [key, value] of Object.entries(jobSubjects)) {\r\n value.detach(observer)\r\n }\r\n}\r\n","import React from 'react'\r\nimport { useLanguages } from '../hooks/useLanguages'\r\nimport { getInsecureValue } from '../services/insecureStore'\r\nimport { defaultLanguageCode, getLanguage, languageKey, setLanguage } from '../services/languageService'\r\n\r\nconst initialState = {\r\n language: getInsecureValue(languageKey),\r\n}\r\n\r\nconst actions = {\r\n SET_LANGUAGE: 'SET_LANGUAGE',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_LANGUAGE:\r\n return { ...state, language: action.value }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst LanguageContext = React.createContext(initialState)\r\n\r\nexport const LanguageProvider = ({ children }) => {\r\n const validLanguageCodes = useLanguages(defaultLanguageCode).reduce((a, x) => ({ ...a, ['' + x.slug + '']: x.slug }), {})\r\n let language = getLanguage(validLanguageCodes)\r\n setLanguage(language)\r\n const [state, dispatch] = React.useReducer(reducer, {\r\n language: language,\r\n }) \r\n\r\n const value = {\r\n language: state.language,\r\n setLanguage: (value) => {\r\n dispatch({ type: actions.SET_LANGUAGE, value })\r\n setLanguage(value)\r\n },\r\n }\r\n\r\n return <LanguageContext.Provider value={value}>{children}</LanguageContext.Provider>\r\n}\r\n\r\nexport default LanguageContext\r\n","import React from 'react'\r\n\r\nconst initialState = {\r\n liveChatApi: null,\r\n liveChatAvailable: false,\r\n}\r\n\r\nconst actions = {\r\n SET_LIVECHATAPI: 'SET_LIVECHATAPI',\r\n SET_LIVECHATAVAILABLE: 'SET_LIVECHATAVAILABLE',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_LIVECHATAPI:\r\n return { ...state, liveChatApi: action.value }\r\n case actions.SET_LIVECHATAVAILABLE:\r\n return { ...state, liveChatAvailable: action.value }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst LiveChatContext = React.createContext(initialState)\r\n\r\nexport const LiveChatProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState) \r\n\r\n const value = {\r\n liveChatApi: state.liveChatApi,\r\n liveChatAvailable: state.liveChatAvailable,\r\n setLiveChatApi: (value) => {\r\n dispatch({ type: actions.SET_LIVECHATAPI, value })\r\n },\r\n setLiveChatAvailable: (value) => {\r\n dispatch({ type: actions.SET_LIVECHATAVAILABLE, value })\r\n },\r\n }\r\n\r\n return <LiveChatContext.Provider value={value}>{children}</LiveChatContext.Provider>\r\n}\r\n\r\nexport default LiveChatContext\r\n","import React, { createContext } from 'react'\r\n\r\nconst initialState = {\r\n subNavId: undefined,\r\n isMobileNavOpen: false,\r\n contextTimeout: undefined\r\n}\r\n\r\nconst actions = {\r\n SET_SUBNAVID: 'SET_SUBNAVID',\r\n SET_ISMOBILENAVOPEN: 'SET_ISMOBILENAVOPEN',\r\n SET_CONTEXTTIMEOUT: \"SET_CONTEXTTIMEOUT\"\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_ISMOBILENAVOPEN:\r\n return { ...state, isMobileNavOpen: action.value }\r\n case actions.SET_SUBNAVID:\r\n return { ...state, subNavId: action.value }\r\n case actions.SET_CONTEXTTIMEOUT:\r\n return { ...state, contextTimeout: action.value }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst MobileNavContext = createContext(initialState)\r\n\r\nexport const MobileNavProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n isMobileNavOpen: state.isMobileNavOpen,\r\n subNavId: state.subNavId,\r\n contextTimeout: state.contextTimeout,\r\n setIsMobileNavOpen: (value) => {\r\n dispatch({ type: actions.SET_ISMOBILENAVOPEN, value })\r\n },\r\n setSubNavId: (value) => {\r\n dispatch({ type: actions.SET_SUBNAVID, value })\r\n },\r\n setContextTimeout: (value) => { \r\n dispatch({ type: actions.SET_CONTEXTTIMEOUT, value })\r\n },\r\n }\r\n\r\n return <MobileNavContext.Provider value={value}>{children}</MobileNavContext.Provider>\r\n}\r\n\r\nexport default MobileNavContext\r\n","import React from 'react'\r\nimport { v4 as uuid } from 'uuid'\r\nimport {\r\n accept,\r\n commit,\r\n commitMultiple,\r\n moveStep,\r\n repeatValuesForAllStations,\r\n start,\r\n startGeneric,\r\n} from '../services/configuratorApiService'\r\nimport { getConfiguratorState, setConfiguratorState } from '../services/configuratorService'\r\n\r\nconst initialState = {\r\n loading: true,\r\n responseModel: null,\r\n currentStep: null,\r\n configuratorType: null,\r\n version: null,\r\n product: null,\r\n unavailable: false\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_LOADING: {\r\n let newState = { ...state, loading: action.value }\r\n return newState\r\n }\r\n case actions.SET_RESPONSEMODEL: {\r\n let newState = { ...state, responseModel: action.value }\r\n return newState\r\n }\r\n case actions.SET_CURRENTSTEP: {\r\n let newState = { ...state, currentStep: action.value }\r\n return newState\r\n }\r\n case actions.SET_CONFIGURATORTYPE: {\r\n let newState = { ...state, configuratorType: action.value }\r\n return newState\r\n }\r\n case actions.SET_VERSION: {\r\n let newState = { ...state, version: action.value }\r\n return newState\r\n }\r\n case actions.SET_PRODUCT: {\r\n let newState = { ...state, product: action.value }\r\n return newState\r\n }\r\n case actions.SET_UNAVAILABLE: {\r\n let newState = { ...state, unavailable: action.value }\r\n return newState\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst actions = {\r\n SET_LOADING: 'SET_LOADING',\r\n SET_RESPONSEMODEL: 'SET_RESPONSEMODEL',\r\n SET_CURRENTSTEP: 'SET_CURRENTSTEP',\r\n SET_CONFIGURATORTYPE: 'SET_CONFIGURATORTYPE',\r\n SET_VERSION: 'SET_VERSION',\r\n SET_PRODUCT: 'SET_PRODUCT',\r\n SET_UNAVAILABLE: 'SET_UNAVAILABLE',\r\n}\r\n\r\nconst ConfiguratorContext = React.createContext(initialState)\r\n\r\nexport const ConfiguratorProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n loading: state.loading,\r\n responseModel: state.responseModel,\r\n currentStep: state.currentStep,\r\n configuratorType: state.configuratorType,\r\n version: state.version,\r\n product: state.product,\r\n unavailable: state.unavailable,\r\n setLoading: (value) => {\r\n dispatch({ type: actions.SET_LOADING, value })\r\n },\r\n setResponseModel: (value) => {\r\n dispatch({ type: actions.SET_RESPONSEMODEL, value })\r\n },\r\n setCurrentStep: (value) => {\r\n dispatch({ type: actions.SET_CURRENTSTEP, value })\r\n },\r\n setConfiguratorType: (value) => {\r\n dispatch({ type: actions.SET_CONFIGURATORTYPE, value })\r\n },\r\n setVersion: (value) => {\r\n dispatch({ type: actions.SET_VERSION, value })\r\n },\r\n setProduct: (value) => {\r\n dispatch({ type: actions.SET_PRODUCT, value })\r\n },\r\n setUnavailable: (value) => {\r\n dispatch({ type: actions.SET_UNAVAILABLE, value })\r\n },\r\n }\r\n\r\n return <ConfiguratorContext.Provider value={value}>{children}</ConfiguratorContext.Provider>\r\n}\r\n\r\nexport function commitValue(context, name, value, locale, currency) {\r\n const requestId = uuid()\r\n context.setLoading(true)\r\n\r\n return new Promise((resolve, reject) => {\r\n commit(\r\n name,\r\n value,\r\n context.responseModel.configState,\r\n locale,\r\n context.configuratorType,\r\n context.currentStep,\r\n currency,\r\n requestId\r\n )\r\n .then((data) => {\r\n const state = getConfiguratorState(context.configuratorType, context.version)\r\n const myConfiguratorType = context.configuratorType?.startsWith(data.type)\r\n ? context.configuratorType\r\n : data.type\r\n \r\n setConfiguratorState(\r\n myConfiguratorType,\r\n data.configState,\r\n data,\r\n context.version,\r\n data.range ?? state?.range,\r\n null,\r\n locale\r\n )\r\n \r\n context.setResponseModel(data)\r\n context.setCurrentStep(data.currentStep)\r\n context.setUnavailable(false)\r\n context.setLoading(false)\r\n resolve()\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n context.setLoading(false)\r\n reject()\r\n })\r\n })\r\n}\r\n\r\nexport function commitValues(context, valuePairs, locale, currency) {\r\n const requestId = uuid()\r\n context.setLoading(true)\r\n\r\n return new Promise((resolve, reject) => {\r\n commitMultiple(\r\n valuePairs,\r\n context.responseModel.configState,\r\n locale,\r\n context.configuratorType,\r\n context.currentStep,\r\n currency,\r\n requestId\r\n )\r\n .then((data) => {\r\n const state = getConfiguratorState(context.configuratorType, context.version)\r\n const myConfiguratorType = context.configuratorType?.startsWith(data.type)\r\n ? context.configuratorType\r\n : data.type\r\n \r\n setConfiguratorState(\r\n myConfiguratorType,\r\n data.configState,\r\n data,\r\n context.version,\r\n data.range ?? state?.range,\r\n null,\r\n locale\r\n )\r\n \r\n context.setResponseModel(data)\r\n context.setCurrentStep(data.currentStep)\r\n context.setUnavailable(false)\r\n context.setLoading(false)\r\n resolve()\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n context.setLoading(false)\r\n reject()\r\n })\r\n })\r\n}\r\n\r\nexport function startConfigurator(context, configuratorType, locale, currency) {\r\n const requestId = uuid()\r\n context.setLoading(true)\r\n\r\n start(configuratorType, locale, currency, requestId)\r\n .then((data) => {\r\n context.setResponseModel(data)\r\n context.setCurrentStep(data.currentStep)\r\n context.setUnavailable(false)\r\n context.setLoading(false)\r\n context.setConfiguratorType(configuratorType)\r\n\r\n const state = getConfiguratorState(context.configuratorType, context.version)\r\n const myConfiguratorType = context.configuratorType?.startsWith(data.type)\r\n ? context.configuratorType\r\n : data.type\r\n\r\n setConfiguratorState(\r\n myConfiguratorType,\r\n data.configState,\r\n data,\r\n context.version,\r\n data.range ?? state?.range,\r\n null,\r\n locale\r\n )\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n context.setLoading(false)\r\n context.setUnavailable(true)\r\n })\r\n}\r\n\r\nexport function startGenericConfigurator(\r\n context,\r\n configuratorType,\r\n productCode,\r\n configState,\r\n locale,\r\n currency\r\n) {\r\n const requestId = uuid()\r\n context.setLoading(true)\r\n\r\n startGeneric(productCode, locale, configState, currency, requestId)\r\n .then((data) => {\r\n const myConfiguratorType = configuratorType.startsWith(data.type)\r\n ? configuratorType\r\n : data.type\r\n\r\n context.setResponseModel(data)\r\n context.setCurrentStep(data.currentStep)\r\n context.setUnavailable(false)\r\n context.setLoading(false)\r\n context.setConfiguratorType(configuratorType)\r\n\r\n const state = getConfiguratorState(myConfiguratorType, context.version)\r\n\r\n setConfiguratorState(\r\n myConfiguratorType,\r\n data.configState,\r\n data,\r\n context.version,\r\n data.range ?? state?.range,\r\n null,\r\n locale\r\n )\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n context.setLoading(false)\r\n context.setUnavailable(true)\r\n })\r\n}\r\n\r\nexport function step(context, amountOfStepsToMove, locale, currency) {\r\n const requestId = uuid()\r\n context.setLoading(true)\r\n\r\n moveStep(\r\n context.responseModel.configState,\r\n context.currentStep,\r\n amountOfStepsToMove,\r\n locale,\r\n context.configuratorType,\r\n currency,\r\n requestId\r\n )\r\n .then((data) => {\r\n context.setResponseModel(data)\r\n context.setCurrentStep(data.currentStep)\r\n context.setUnavailable(false)\r\n context.setLoading(false)\r\n\r\n let product = null\r\n if (data.currentStep === 'SummaryStep') {\r\n product = data.productResponse.product\r\n context.setProduct(product)\r\n }\r\n\r\n const state = getConfiguratorState(context.configuratorType, context.version)\r\n const myConfiguratorType = context.configuratorType?.startsWith(data.type)\r\n ? context.configuratorType\r\n : data.type\r\n\r\n setConfiguratorState(\r\n myConfiguratorType,\r\n data.configState,\r\n data,\r\n context.version,\r\n data.range ?? state?.range,\r\n product,\r\n locale\r\n )\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n context.setLoading(false)\r\n })\r\n}\r\n\r\n// used when context has not updated to contain configState etc and needs to be passed in directly\r\nexport function stepUsingConfigState(\r\n context,\r\n configState,\r\n currentStep,\r\n configuratorType,\r\n amountOfStepsToMove,\r\n locale,\r\n currency\r\n) {\r\n const requestId = uuid()\r\n context.setLoading(true)\r\n\r\n moveStep(\r\n configState,\r\n currentStep,\r\n amountOfStepsToMove,\r\n locale,\r\n configuratorType,\r\n currency,\r\n requestId\r\n )\r\n .then((data) => {\r\n context.setResponseModel(data)\r\n context.setCurrentStep(data.currentStep)\r\n context.setUnavailable(false)\r\n context.setLoading(false)\r\n\r\n let product = null\r\n if (data.currentStep === 'SummaryStep') {\r\n product = data.productResponse.product\r\n context.setProduct(product)\r\n }\r\n\r\n const state = getConfiguratorState(context.configuratorType, context.version)\r\n const myConfiguratorType = context.configuratorType?.startsWith(data.type)\r\n ? context.configuratorType\r\n : data.type\r\n\r\n setConfiguratorState(\r\n myConfiguratorType,\r\n data.configState,\r\n data,\r\n context.version,\r\n data.range ?? state?.range,\r\n product,\r\n locale\r\n )\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n context.setLoading(false)\r\n })\r\n}\r\n\r\nexport function repeatForStations(context, stationName, locale, currency) {\r\n const requestId = uuid()\r\n context.setLoading(true)\r\n\r\n repeatValuesForAllStations(\r\n context.responseModel.configState,\r\n context.currentStep,\r\n stationName,\r\n locale,\r\n context.configuratorType,\r\n currency,\r\n requestId\r\n )\r\n .then((data) => {\r\n context.setResponseModel(data)\r\n context.setCurrentStep(data.currentStep)\r\n context.setUnavailable(false)\r\n context.setLoading(false)\r\n\r\n const state = getConfiguratorState(context.configuratorType, context.version)\r\n const myConfiguratorType = context.configuratorType?.startsWith(data.type)\r\n ? context.configuratorType\r\n : data.type\r\n\r\n setConfiguratorState(\r\n myConfiguratorType,\r\n data.configState,\r\n data,\r\n context.version,\r\n data.range ?? state?.range,\r\n null,\r\n locale\r\n )\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n context.setLoading(false)\r\n })\r\n}\r\n\r\nexport function acceptConflict(context, name, value, locale, currency) {\r\n const requestId = uuid()\r\n context.setLoading(true)\r\n\r\n accept(\r\n name,\r\n value,\r\n context.responseModel.configState,\r\n locale,\r\n context.configuratorType,\r\n context.currentStep,\r\n currency,\r\n requestId\r\n )\r\n .then((data) => {\r\n context.setResponseModel(data)\r\n context.setCurrentStep(data.currentStep)\r\n context.setUnavailable(false)\r\n context.setLoading(false)\r\n\r\n const state = getConfiguratorState(context.configuratorType, context.version)\r\n const myConfiguratorType = context.configuratorType?.startsWith(data.type)\r\n ? context.configuratorType\r\n : data.type\r\n\r\n setConfiguratorState(\r\n myConfiguratorType,\r\n data.configState,\r\n data,\r\n context.version,\r\n data.range ?? state?.range,\r\n null,\r\n locale\r\n )\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n context.setLoading(false)\r\n })\r\n}\r\n\r\nexport function getConfiguratorProductImageBaseUrl(productCode) {\r\n switch (productCode) {\r\n case 'VR':\r\n case 'VRQ':\r\n case 'VM':\r\n case 'VS':\r\n return 'vic'\r\n case 'FRL':\r\n return 'frlc'\r\n default:\r\n break\r\n }\r\n}\r\n\r\nexport default ConfiguratorContext\r\n","import React from 'react'\r\nimport { v4 as uuid } from 'uuid'\r\n\r\nconst initialState = {\r\n notifications: [],\r\n}\r\n\r\nconst actions = {\r\n SET: 'SET',\r\n DELETE: 'DELETE',\r\n CLEAR: 'CLEAR',\r\n}\r\n\r\nexport const NotificationLevel = {\r\n ERROR: 'ERROR',\r\n WARNING: 'WARNING',\r\n SUCCESS: 'SUCCESS',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET: {\r\n return { ...state, notifications: [...state.notifications, action.value] }\r\n }\r\n case actions.DELETE: {\r\n let update = false\r\n let notifications = []\r\n\r\n for (var index = 0; index < state.notifications.length; index++) {\r\n const notification = state.notifications[index]\r\n if (notification.id === action.value) {\r\n update = true\r\n } else {\r\n notifications.push(notification)\r\n }\r\n }\r\n\r\n if (update === true) {\r\n return { ...state, notifications: notifications }\r\n } else {\r\n return state\r\n }\r\n }\r\n case actions.CLEAR:\r\n return { ...state, notifications: [] }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst NotificationsContext = React.createContext(initialState)\r\n\r\nexport const NotificationsProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n notifications: state.notifications,\r\n setNotification: (value) => {\r\n dispatch({ type: actions.SET, value })\r\n },\r\n deleteNotification: (value) => {\r\n dispatch({ type: actions.DELETE, value })\r\n },\r\n clearNotifications: (value) => {\r\n dispatch({ type: actions.CLEAR, value })\r\n },\r\n }\r\n\r\n return <NotificationsContext.Provider value={value}>{children}</NotificationsContext.Provider>\r\n}\r\n\r\nexport default NotificationsContext\r\n\r\nconst defaultTTL = 6000\r\nconst defaultTTLWithLink = 10000\r\n\r\nexport const publishDismissableError = (id, error, setNotificationCallback) =>\r\n publishError(id, error, defaultTTL, setNotificationCallback, null)\r\nexport const publishDismissableWarning = (id, warning, setNotificationCallback) =>\r\n publishWarning(id, warning, defaultTTL, setNotificationCallback, null)\r\nexport const publishDismissableSuccess = (id, success, setNotificationCallback) =>\r\n publishSuccess(id, success, defaultTTL, setNotificationCallback, null)\r\nexport const publishPermanentDismissableError = (id, error, setNotificationCallback) =>\r\n publishError(id, error, null, setNotificationCallback, null)\r\nexport const publishPermanentDismissableWarning = (id, warning, setNotificationCallback) =>\r\n publishWarning(id, warning, null, setNotificationCallback, null)\r\nexport const publishPermanentDismissableSuccess = (id, success, setNotificationCallback) =>\r\n publishSuccess(id, success, null, setNotificationCallback, null)\r\n\r\nexport const publishDismissableWarningWithLink = (id, warning, setNotificationCallback, link) =>\r\n publishWarning(id, warning, defaultTTLWithLink, setNotificationCallback, link)\r\nexport const publishDismissableSuccessWithLink = (id, success, setNotificationCallback, link) =>\r\n publishSuccess(id, success, defaultTTLWithLink, setNotificationCallback, link)\r\n\r\nexport const publishError = (id, error, dismissAfter, setNotificationCallback, link) => {\r\n const idToUse = id !== undefined && id !== null ? id : uuid()\r\n setNotificationCallback({\r\n id: idToUse,\r\n message: error,\r\n dismissAfter: dismissAfter,\r\n level: NotificationLevel.ERROR,\r\n expireOn: getExpiryDateTime(dismissAfter),\r\n link: link\r\n })\r\n return idToUse\r\n}\r\n\r\nexport const publishWarning = (id, warning, dismissAfter, setNotificationCallback, link) => {\r\n const idToUse = id !== undefined && id !== null ? id : uuid()\r\n setNotificationCallback({\r\n id: idToUse,\r\n message: warning,\r\n dismissAfter: dismissAfter,\r\n level: NotificationLevel.WARNING,\r\n expireOn: getExpiryDateTime(dismissAfter),\r\n link: link\r\n })\r\n return idToUse\r\n}\r\n\r\nexport const publishSuccess = (id, success, dismissAfter, setNotificationCallback, link) => {\r\n const idToUse = id !== undefined && id !== null ? id : uuid()\r\n setNotificationCallback({\r\n id: idToUse,\r\n message: success,\r\n dismissAfter: dismissAfter,\r\n level: NotificationLevel.SUCCESS,\r\n expireOn: getExpiryDateTime(dismissAfter),\r\n link: link\r\n })\r\n return idToUse\r\n}\r\n\r\nexport const unpublishNotification = (id, deleteNotificationCallback) => {\r\n deleteNotificationCallback(id)\r\n}\r\n\r\nfunction getExpiryDateTime(milliseconds) {\r\n if (milliseconds !== null) {\r\n let date = new Date()\r\n date.setTime(date.getTime() + milliseconds)\r\n return date\r\n } else {\r\n return null\r\n }\r\n}\r\n","import React, { createContext } from 'react'\r\n\r\nconst initialState = {\r\n productSuggestions: undefined,\r\n datasheetSuggestions: undefined,\r\n partNumberSuggestions: undefined,\r\n categoriesSuggestions: undefined,\r\n contentSuggestions: undefined,\r\n showSuggestions: false,\r\n suggestionsOpen: false,\r\n searchValue: ''\r\n}\r\n\r\nconst actions = {\r\n SETPRODUCTSUGGESTIONS: 'SESETPRODUCTSUGGESTIONST',\r\n SETDATASHEETSUGGESTIONS: 'SETDATASHEETSUGGESTIONS',\r\n SETPARTNUMBERSUGGESTIONS: 'SETPARTNUMBERSUGGESTIONS',\r\n SETCATEGORIESSUGGESTIONS: 'SETCATEGORIESSUGGESTIONS',\r\n SETCONTENTSUGGESTIONS: 'SETCONTENTSUGGESTIONS',\r\n SETSHOWSUGGESTIONS: 'SETSHOWSUGGESTIONS',\r\n SETSUGGESTIONSOPEN: 'SETSUGGESTIONSOPEN',\r\n SETSEARCHVALUE: 'SETSEARCHVALUE',\r\n CLOSESUGGESTIONS: 'CLOSESUGGESTIONS',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SETPRODUCTSUGGESTIONS:\r\n return { ...state, productSuggestions: action.value }\r\n case actions.SETDATASHEETSUGGESTIONS:\r\n return { ...state, datasheetSuggestions: action.value }\r\n case actions.SETPARTNUMBERSUGGESTIONS:\r\n return { ...state, partNumberSuggestions: action.value }\r\n case actions.SETCATEGORIESSUGGESTIONS:\r\n return { ...state, categoriesSuggestions: action.value }\r\n case actions.SETCONTENTSUGGESTIONS:\r\n return { ...state, contentSuggestions: action.value }\r\n case actions.SETSHOWSUGGESTIONS:\r\n return { ...state, showSuggestions: action.value }\r\n case actions.SETSUGGESTIONSOPEN:\r\n return { ...state, suggestionsOpen: action.value }\r\n case actions.SETSEARCHVALUE:\r\n return { ...state, searchValue: action.value }\r\n case actions.CLOSESUGGESTIONS:\r\n return { ...state, productSuggestions: [],\r\n datasheetSuggestions: [],\r\n partNumberSuggestions: [],\r\n categoriesSuggestions: [],\r\n contentSuggestions: [],\r\n showSuggestions: false,\r\n suggestionsOpen: false }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst SearchContext = createContext(initialState)\r\n\r\nexport const SearchProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n productSuggestions: state.productSuggestions,\r\n datasheetSuggestions: state.datasheetSuggestions,\r\n partNumberSuggestions: state.partNumberSuggestions,\r\n categoriesSuggestions: state.categoriesSuggestions,\r\n contentSuggestions: state.contentSuggestions,\r\n showSuggestions: state.showSuggestions,\r\n suggestionsOpen: state.suggestionsOpen,\r\n searchValue: state.searchValue,\r\n setProductSuggestions: (value) => {\r\n dispatch({ type: actions.SETPRODUCTSUGGESTIONS, value })\r\n },\r\n setDatasheetSuggestions: (value) => {\r\n dispatch({ type: actions.SETDATASHEETSUGGESTIONS, value })\r\n },\r\n setPartNumberSuggestions: (value) => {\r\n dispatch({ type: actions.SETPARTNUMBERSUGGESTIONS, value })\r\n },\r\n setCategoriesSuggestions: (value) => {\r\n dispatch({ type: actions.SETCATEGORIESSUGGESTIONS, value })\r\n },\r\n setContentSuggestions: (value) => {\r\n dispatch({ type: actions.SETCONTENTSUGGESTIONS, value })\r\n },\r\n setShowSuggestions: (value) => {\r\n dispatch({ type: actions.SETSHOWSUGGESTIONS, value })\r\n },\r\n setSuggestionsOpen: (value) => {\r\n dispatch({ type: actions.SETSUGGESTIONSOPEN, value })\r\n },\r\n setSearchValue: (value) => {\r\n dispatch({ type: actions.SETSEARCHVALUE, value })\r\n },\r\n closeSuggestions: () => {\r\n dispatch({ type: actions.CLOSESUGGESTIONS, undefined })\r\n }\r\n }\r\n\r\n return (<SearchContext.Provider value={value}>{children}</SearchContext.Provider>)\r\n}\r\n\r\nexport default SearchContext\r\n","import React from 'react'\r\n\r\nconst initialState = {\r\n email: undefined,\r\n firstName: undefined,\r\n lastName: undefined,\r\n accountType: undefined,\r\n country: undefined,\r\n queryingUser: true,\r\n canCheckout: false,\r\n pAndASearchFeatureEnabled: false,\r\n isDistributor: false,\r\n organisationId: undefined,\r\n accountNumber: undefined,\r\n allowPromoCodes: false,\r\n allowCertificateOfConformity: false,\r\n invoicesFeatureEnabled: false,\r\n quotesFeatureEnabled: false,\r\n}\r\n\r\nconst actions = {\r\n SET_EMAIL: 'SET_EMAIL',\r\n SET_FIRSTNAME: 'SET_FIRSTNAME',\r\n SET_LASTNAME: 'SET_LASTNAME',\r\n SET_ACCOUNT_TYPE: 'SET_ACCOUNT_TYPE',\r\n SET_COUNTRY: 'SET_COUNTRY',\r\n SET_QUERYINGUSER: 'SET_QUERYINGUSER',\r\n SET_CANCHECKOUT: 'SET_CANCHECKOUT',\r\n SET_PANDASEARCHFEATUREENABLED: 'SET_PANDASEARCHFEATUREENABLED',\r\n SET_ISDISTRIBUTOR: 'SET_ISDISTRIBUTOR',\r\n SET_ORGANISATONID: 'SET_ORGANISATIONID',\r\n SET_ACCOUNT_NUMBER: 'SET_ACCOUNT_NUMBER',\r\n SET_ALLOWPROMOCODES: 'SET_ALLOWPROMOCODES',\r\n SET_ALLOWCERTIFICATEOFCONFORMITY: 'SET_ALLOWCERTIFICATEOFCONFORMITY',\r\n SET_INVOICESFEATUREENABLED: 'SET_INVOICESFEATUREENABLED',\r\n SET_QUOTESFEATUREENABLED: 'SET_QUOTESFEATUREENABLED',\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actions.SET_EMAIL:\r\n return { ...state, email: action.value }\r\n case actions.SET_FIRSTNAME:\r\n return { ...state, firstName: action.value }\r\n case actions.SET_LASTNAME:\r\n return { ...state, lastName: action.value }\r\n case actions.SET_ACCOUNT_TYPE:\r\n return { ...state, accountType: action.value }\r\n case actions.SET_COUNTRY:\r\n return { ...state, country: action.value }\r\n case actions.SET_QUERYINGUSER:\r\n return { ...state, queryingUser: action.value }\r\n case actions.SET_CANCHECKOUT:\r\n return { ...state, canCheckout: action.value }\r\n case actions.SET_PANDASEARCHFEATUREENABLED:\r\n return { ...state, pAndASearchFeatureEnabled: action.value }\r\n case actions.SET_ISDISTRIBUTOR:\r\n return { ...state, isDistributor: action.value }\r\n case actions.SET_ORGANISATONID:\r\n return { ...state, organisationId: action.value }\r\n case actions.SET_ACCOUNT_NUMBER:\r\n return { ...state, accountNumber: action.value }\r\n case actions.SET_ALLOWPROMOCODES:\r\n return { ...state, allowPromoCodes: action.value }\r\n case actions.SET_ALLOWCERTIFICATEOFCONFORMITY:\r\n return { ...state, allowCertificateOfConformity: action.value }\r\n case actions.SET_INVOICESFEATUREENABLED:\r\n return { ...state, invoicesFeatureEnabled: action.value }\r\n case actions.SET_QUOTESFEATUREENABLED:\r\n return { ...state, quotesFeatureEnabled: action.value }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst UserContext = React.createContext(initialState)\r\n\r\nexport const UserProvider = ({ children }) => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState)\r\n\r\n const value = {\r\n email: state.email,\r\n firstName: state.firstName,\r\n lastName: state.lastName,\r\n accountType: state.accountType,\r\n country: state.country,\r\n queryingUser: state.queryingUser,\r\n canCheckout: state.canCheckout,\r\n pAndASearchFeatureEnabled: state.pAndASearchFeatureEnabled,\r\n isDistributor: state.isDistributor,\r\n organisationId: state.organisationId,\r\n accountNumber: state.accountNumber,\r\n allowPromoCodes: state.allowPromoCodes,\r\n allowCertificateOfConformity: state.allowCertificateOfConformity,\r\n invoicesFeatureEnabled: state.invoicesFeatureEnabled,\r\n quotesFeatureEnabled: state.quotesFeatureEnabled,\r\n setEmail: (value) => {\r\n dispatch({ type: actions.SET_EMAIL, value })\r\n },\r\n setFirstName: (value) => {\r\n dispatch({ type: actions.SET_FIRSTNAME, value })\r\n },\r\n setLastName: (value) => {\r\n dispatch({ type: actions.SET_LASTNAME, value })\r\n },\r\n setAccountType: (value) => {\r\n dispatch({ type: actions.SET_ACCOUNT_TYPE, value })\r\n },\r\n setCountry: (value) => {\r\n dispatch({ type: actions.SET_COUNTRY, value })\r\n },\r\n setQueryingUser: (value) => {\r\n dispatch({ type: actions.SET_QUERYINGUSER, value })\r\n },\r\n setCanCheckout: (value) => {\r\n dispatch({ type: actions.SET_CANCHECKOUT, value })\r\n },\r\n setPAndASearchFeatureEnabled: (value) => {\r\n dispatch({ type: actions.SET_PANDASEARCHFEATUREENABLED, value })\r\n },\r\n setIsDistributor: (value) => {\r\n dispatch({ type: actions.SET_ISDISTRIBUTOR, value })\r\n },\r\n setOrganisationId: (value) => {\r\n dispatch({ type: actions.SET_ORGANISATONID, value })\r\n },\r\n setAccountNumber: (value) => {\r\n dispatch({ type: actions.SET_ACCOUNT_NUMBER, value })\r\n },\r\n setAllowPromoCodes: (value) => {\r\n dispatch({ type: actions.SET_ALLOWPROMOCODES, value })\r\n },\r\n setAllowCertificateOfConformity: (value) => {\r\n dispatch({ type: actions.SET_ALLOWCERTIFICATEOFCONFORMITY, value })\r\n },\r\n setInvoicesFeatureEnabled: (value) => {\r\n dispatch({ type: actions.SET_INVOICESFEATUREENABLED, value })\r\n },\r\n setQuotesFeatureEnabled: (value) => {\r\n dispatch({ type: actions.SET_QUOTESFEATUREENABLED, value })\r\n },\r\n }\r\n\r\n return <UserContext.Provider value={value}>{children}</UserContext.Provider>\r\n}\r\n\r\nexport default UserContext\r\n","import { useStaticQuery, graphql } from 'gatsby'\r\nimport { resolveMicrocopyFromResourcesQueryResultForLocale } from '../../services/microcopyService'\r\n\r\nconst resourcesQuery = graphql`\r\n query {\r\n en: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"en\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n de: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"de\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n nl: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"nl\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n fr: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"fr\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n it: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"it\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n es: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"es\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n enUS: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"en-US\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n cs: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"cs\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n pl: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"pl\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n pt: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"pt\" }, key: { eq: \"language\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const useLanguageI18n = (locale) => {\r\n return resolveMicrocopyFromResourcesQueryResultForLocale(useStaticQuery(resourcesQuery), locale)\r\n}\r\n","import { useStaticQuery, graphql } from 'gatsby'\r\nimport { supportedLocales } from '../services/constantsService'\r\nimport { useLanguageI18n } from './i18n/useLanguageI18n'\r\nimport { convertToMicrocopyKey } from '../services/i18nService'\r\n\r\nconst resourcesQuery = graphql`\r\n query {\r\n allContentfulNavigationElement(filter: { navigation_id: { eq: \"Home\" } }) {\r\n nodes {\r\n ...CoreNavigationFields\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const useLanguages = (locale) => {\r\n const locales = JSON.parse(supportedLocales)\r\n const microcopy = useLanguageI18n(locale)\r\n const { allContentfulNavigationElement } = useStaticQuery(resourcesQuery)\r\n let availableLocales = []\r\n\r\n for (\r\n let index = 0, length = allContentfulNavigationElement.nodes.length;\r\n index < length;\r\n index++\r\n ) {\r\n let currentNode = allContentfulNavigationElement.nodes[index]\r\n\r\n if (locales.includes(currentNode.node_locale) && microcopy) {\r\n availableLocales.push({\r\n slug: currentNode.slug,\r\n title: microcopy[`language.${convertToMicrocopyKey(currentNode.slug)}`]?.value,\r\n })\r\n }\r\n }\r\n\r\n return availableLocales\r\n}\r\n\r\nexport const useOrderedLanguages = (locale) => {\r\n const languages = useLanguages(locale)\r\n\r\n let ordered = []\r\n let english = languages.find((element) => element.slug === 'en')\r\n ordered.push(english)\r\n\r\n languages.sort((a, b) =>\r\n convertLanguageText(a.title) > convertLanguageText(b.title)\r\n ? 1\r\n : convertLanguageText(b.title) > convertLanguageText(a.title)\r\n ? -1\r\n : 0\r\n )\r\n\r\n languages.forEach((element) => {\r\n if (ordered.some((searchElement) => searchElement.slug === element.slug)) {\r\n } else {\r\n ordered.push(element)\r\n }\r\n })\r\n\r\n return ordered\r\n}\r\n\r\nfunction convertLanguageText(title) {\r\n title = title?.replaceAll('Č', 'C')\r\n return title\r\n}\r\n","import { isMobile } from 'react-device-detect'\r\nimport { BaseApiRoute, BaseRoute, jsonApiPostRequest } from './baseApiService'\r\n\r\nexport const BasketContextBrowsing = 0\r\nexport const BasketContextCheckout = 1\r\nexport const CertificateOfComformitySku = 'COC'\r\nexport const StandardOrderOrigin = 0\r\nexport const DataWarehouseOrderOrigin = 1\r\nexport const MaxBasketItemQuantity = 100000\r\n\r\nexport const defaultPricingDisplayOptions = {\r\n showDeliveryOnRequest: false,\r\n showLoginForPrice: false,\r\n showStockLevelIndicator: false,\r\n showRequestAQuote: true,\r\n showListPrice: false,\r\n showNetPrice: false,\r\n showDeliveryDate: false,\r\n showIsFallbackMessage: false,\r\n showPricingTiers: false,\r\n showDiscardConfiguration: false,\r\n showFindDistributor: false,\r\n}\r\n\r\nexport function whoAmI(requestId) {\r\n //logTrace('Sending WhoAmI request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/whoami`, {\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getGeolocationCountry(requestId) {\r\n //logTrace('Sending getGeolocation request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/getGeolocation`, {\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getProducts(\r\n urlParams,\r\n friendlyFilterParams,\r\n callingCountry,\r\n viewSize,\r\n requestId,\r\n currentQueryParams,\r\n locale\r\n) {\r\n //logTrace('Sending getProducts request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}products/getProducts`, {\r\n friendlyFilterParams: friendlyFilterParams,\r\n urlParams: urlParams,\r\n callingCountry: callingCountry,\r\n isoLocalDateTime: new Date().toISOString(),\r\n device: isMobile ? 'mobile' : 'desktop',\r\n viewSize: viewSize,\r\n requestId: requestId,\r\n currentQueryParams: currentQueryParams,\r\n language: locale,\r\n })\r\n}\r\n\r\nexport function register(registerModel, recaptchaCode, requestId) {\r\n //logTrace('Sending Register request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/register`, {\r\n firstName: registerModel.firstname,\r\n lastName: registerModel.lastname,\r\n companyName: registerModel.companyname,\r\n countryCode: registerModel.country,\r\n currency: registerModel.currency,\r\n email: registerModel.email,\r\n confirmEmail: registerModel.confirmemail,\r\n telephone: registerModel.telephone,\r\n recaptchaCode: recaptchaCode,\r\n country: registerModel.country,\r\n language: registerModel.language,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function search(\r\n urlParams,\r\n extrabaseUrlParams,\r\n friendlyFilterParams,\r\n callingCountry,\r\n viewSize,\r\n requestId,\r\n currentQueryParams,\r\n locale\r\n) {\r\n //logTrace('Sending Search request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}search`, {\r\n urlParams: urlParams,\r\n extrabaseUrlParams: extrabaseUrlParams,\r\n friendlyFilterParams: friendlyFilterParams,\r\n callingCountry: callingCountry,\r\n isoLocalDateTime: new Date().toISOString(),\r\n device: isMobile ? 'mobile' : 'desktop',\r\n viewSize: viewSize,\r\n requestId: requestId,\r\n currentQueryParams: currentQueryParams,\r\n language: locale,\r\n })\r\n}\r\n\r\nexport function suggest(term, locale, callingCountry, requestId) {\r\n //logTrace('Sending Suggest request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}suggest`, {\r\n suggestTerm: term,\r\n language: locale,\r\n callingCountry: callingCountry,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function createBasket(currency, country, language, requestId) {\r\n //logTrace('Sending createBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/create`, {\r\n currency: currency,\r\n requestId: requestId,\r\n country: country,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function getBasket(basketId, currency, country, requestId, basketContext, language) {\r\n //logTrace('Sending getBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/get`, {\r\n basketId: basketId,\r\n currency: currency,\r\n country: country,\r\n requestId: requestId,\r\n basketContext: basketContext,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function addProductToBasket(\r\n basketId,\r\n itemSku,\r\n quantity,\r\n country,\r\n currency,\r\n requestId,\r\n basketContext,\r\n address,\r\n name,\r\n language\r\n) {\r\n //logTrace('Sending AddProductToBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/addProduct`, {\r\n basketId: basketId,\r\n itemSku: itemSku,\r\n quantity: quantity,\r\n country: country,\r\n currency: currency,\r\n requestId: requestId,\r\n basketContext: basketContext,\r\n address: address,\r\n name: name,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function addMultipleProductsToBasketJob(products, country, currency, requestId, language) {\r\n //logTrace('Sending MultipleProductsToBasketJob request')\r\n return jsonApiPostRequest(`${BaseApiRoute}job/createAddMultipleProductsToBasketJob`, {\r\n basketProducts: products,\r\n country: country,\r\n currency: currency,\r\n requestId: requestId,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function addMultipleProductsToBasket(\r\n basketId,\r\n basketProducts,\r\n country,\r\n currency,\r\n requestId,\r\n basketContext,\r\n address,\r\n name,\r\n language\r\n) {\r\n //logTrace('Sending AddProductToBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/addMultipleProducts`, {\r\n basketId: basketId,\r\n basketProducts: basketProducts,\r\n country: country,\r\n currency: currency,\r\n requestId: requestId,\r\n basketContext: basketContext,\r\n address: address,\r\n name: name,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function removeProductFromBasket(\r\n basketId,\r\n itemId,\r\n country,\r\n currency,\r\n requestId,\r\n basketContext,\r\n address,\r\n language\r\n) {\r\n //logTrace('Sending RemoveProductFromBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/removeProduct`, {\r\n basketId: basketId,\r\n itemId: itemId,\r\n country: country,\r\n currency: currency,\r\n requestId: requestId,\r\n basketContext: basketContext,\r\n address: address,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function emptyBasket(basketId, country, currency, language, requestId) {\r\n //logTrace('Sending EmptyBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/emptyBasket`, {\r\n basketId: basketId,\r\n country: country,\r\n currency: currency,\r\n requestId: requestId,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function updateProduct(basketId, itemId, quantity, country, currency, language, requestId) {\r\n //logTrace('Sending UpdateProduct request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/updateProduct`, {\r\n basketId: basketId,\r\n itemId: itemId,\r\n quantity: quantity,\r\n country: country,\r\n currency: currency,\r\n requestId: requestId,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function applyPromoCode(basketId, promoCode, country, currency, language, requestId) {\r\n //logTrace('Sending ApplyPromoCode request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/applyPromoCode`, {\r\n basketId: basketId,\r\n promoCode: promoCode,\r\n country: country,\r\n currency: currency,\r\n requestId: requestId,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function applyDeliveryCharge(\r\n basketId,\r\n address,\r\n country,\r\n currency,\r\n deliveryChargeId,\r\n modeOfTransport,\r\n language,\r\n requestId\r\n) {\r\n //logTrace('Sending ApplyDeliveryCharge request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/applyDeliveryCharge`, {\r\n basketId: basketId,\r\n address: address,\r\n country: country,\r\n currency: currency,\r\n deliveryChargeId: deliveryChargeId,\r\n deliveryModeOfTransport: modeOfTransport,\r\n language: language,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getAdditionalDeliveryOptions(basketId, address, country, currency, requestId) {\r\n //logTrace('Sending getAdditionalDeliveryOptions request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/getAdditionalDeliveryOptions`, {\r\n basketId: basketId,\r\n address: address,\r\n country: country,\r\n currency: currency,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function removeDeliveryCharge(basketId, country, currency, language, requestId) {\r\n //logTrace('Sending RemoveDeliveryCharge request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/removeDeliveryCharge`, {\r\n basketId: basketId,\r\n country: country,\r\n currency: currency,\r\n language: language,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function checkoutBasket(\r\n basketId,\r\n contact,\r\n billingAddress,\r\n shippingAddress,\r\n payment,\r\n delivery,\r\n requestId\r\n) {\r\n //logTrace('Sending CheckoutBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}basket/checkout`, {\r\n basketId: basketId,\r\n contact: contact,\r\n billingAddress: billingAddress,\r\n shippingAddress: shippingAddress,\r\n payment: payment,\r\n delivery: delivery,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function preparePayment(\r\n basketId,\r\n contact,\r\n billingAddress,\r\n shippingAddress,\r\n payment,\r\n delivery,\r\n successUrl,\r\n errorUrl,\r\n language,\r\n requestId\r\n) {\r\n //logTrace('Sending Payment Prepare request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseRoute}payment/prepare`, {\r\n basketId: basketId,\r\n contact: contact,\r\n billingAddress: billingAddress,\r\n shippingAddress: shippingAddress,\r\n payment: payment,\r\n delivery: delivery,\r\n successUrl: successUrl,\r\n errorUrl: errorUrl,\r\n language: language,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getProduct(productCode, country, currency, requestId) {\r\n //logTrace('Sending GetProduct request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}product/getProduct`, {\r\n productCode: productCode,\r\n currency: currency,\r\n country: country,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getCertificateOfConformityProduct(country, currency, requestId) {\r\n //logTrace('Sending GetCertificateOfConformityProduct request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}product/getCertificateOfConformityProduct`, {\r\n currency: currency,\r\n country: country,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getPriceForDetailPage(productCode, country, currency, language, requestId) {\r\n //logTrace('Sending getPriceForDetailPage request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}product/getPriceForDetailPage`, {\r\n productCode: productCode,\r\n currency: currency,\r\n country: country,\r\n language: language,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getPriceForListerPage(productCode, country, currency, language, requestId) {\r\n //logTrace('Sending getPriceForListerPage request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}product/getPriceForListerPage`, {\r\n productCode: productCode,\r\n currency: currency,\r\n country: country,\r\n language: language,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getPriceForAccessoriesPage(productCode, country, currency, language, requestId) {\r\n //logTrace('Sending getPriceForAccessoriesPage request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}product/getPriceForAccessoriesPage`, {\r\n productCode: productCode,\r\n currency: currency,\r\n country: country,\r\n language: language,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getAccountAddresses(requestId) {\r\n //logTrace('Sending GetAccountAddresses request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/getAccountAddresses`, {\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getAccountCheckoutInformation(basketId, requestId) {\r\n //logTrace('Sending GetAccountCheckoutInformation request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/getAccountCheckoutInformation`, {\r\n basketId: basketId,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function addAccountAddress(address, requestId) {\r\n //logTrace('Sending AddAccountAddress request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/saveAccountAddress`, {\r\n address: address,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function deleteAccountAddress(addressId, requestId) {\r\n //logTrace('Sending deleteAccountAddress request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/deleteAccountAddress`, {\r\n addressId: addressId,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function changePassword(requestId) {\r\n //logTrace('Sending ChangePassword request. RequestId:' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/changePassword`, {\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getAllUserAccounts(requestId) {\r\n //logTrace('Sending GetAllUserAccounts request. RequestId:' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/getAllUserAccounts`, {\r\n requestId: requestId,\r\n })\r\n}\r\nexport function getOrders(skip, take, orderOrigin, requestId) {\r\n //logTrace('Sending GetOrders request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}order/getPaged`, {\r\n skip: skip,\r\n take: take,\r\n orderOrigin: orderOrigin,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function changeAccount(accountId, requestId) {\r\n //logTrace('Sending ChangeAccount request. RequestId:' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/changeAccount`, {\r\n requestId: requestId,\r\n accountId: accountId,\r\n })\r\n}\r\n\r\nexport function getOrder(orderId, orderOrigin, requestId) {\r\n //logTrace('Sending GetOrders request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}order/get`, {\r\n orderId: orderId,\r\n orderOrigin: orderOrigin,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function getOrderForCheckout(orderId, orderOrigin, requestId) {\r\n //logTrace('Sending GetOrders request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}order/getForCheckout`, {\r\n orderId: orderId,\r\n orderOrigin: orderOrigin,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function findAddress(text, container, country, requestId) {\r\n //logTrace('Sending FindAddress request. RequestID: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/findaddress`, {\r\n text: text,\r\n container: container,\r\n country: country,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function retrieveAddress(id, requestId) {\r\n //logTrace('Sending FindAddress request. RequestID: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}account/retrieveAddress`, {\r\n id: id,\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function submitFormToSalesForce(data, submitUrl, requestId) {\r\n //logTrace('Sending submitFormToSalesForce request. Request: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}form/submitForm`, {\r\n requestId: requestId,\r\n formData: data,\r\n submitUrl: submitUrl,\r\n })\r\n}\r\n\r\nexport function getSavedBasekts(requestId, country, currency, language) {\r\n //logTrace('Sending GetSavedBaskestsRequest. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}savedbasket/getSavedBaskets`, {\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n country: country,\r\n })\r\n}\r\n\r\nexport function saveCurrentBasket(requestId, country, currency, language, basketId, basketName) {\r\n //logTrace('Sending SaveCurrentBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}savedbasket/saveCurrentBasket`, {\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n country: country,\r\n basketId: basketId,\r\n basketName: basketName,\r\n })\r\n}\r\n\r\nexport function replaceCurrentBasketWithSavedBasket(\r\n requestId,\r\n country,\r\n currency,\r\n language,\r\n savedBasketId\r\n) {\r\n //logTrace('Sending SaveCurrentBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}savedbasket/replaceCurrentBasketWithSavedBasket`, {\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n country: country,\r\n savedBasketId: savedBasketId,\r\n })\r\n}\r\n\r\nexport function mergeCurrentBasketWithSavedBasket(\r\n requestId,\r\n country,\r\n currency,\r\n language,\r\n savedBasketId\r\n) {\r\n //logTrace('Sending SaveCurrentBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}savedbasket/mergeCurrentBasketWithSavedBasketJob`, {\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n country: country,\r\n savedBasketId: savedBasketId,\r\n })\r\n}\r\n\r\nexport function addOrderItemsToBasketJob(requestId, country, currency, language, orderId) {\r\n //logTrace('Sending addOrderItemsToBasketJob request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}savedbasket/addOrderItemsToBasketJob`, {\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n country: country,\r\n orderId: orderId,\r\n })\r\n}\r\n\r\nexport function deleteSavedBasket(requestId, country, currency, language, basketId) {\r\n //logTrace('Sending DeleteSavedBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}savedbasket/deleteSavedBasket`, {\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n country: country,\r\n basketId: basketId,\r\n })\r\n}\r\n\r\nexport function submitForm(data, url) {\r\n const formBody = Object.keys(data)\r\n .map((key) => encodeURIComponent(key) + '=' + encodeURIComponent(data[key]))\r\n .join('&')\r\n\r\n return new Promise((resolve, reject) => {\r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body: formBody,\r\n })\r\n .then((response) => {\r\n switch (response.status) {\r\n case 200:\r\n resolve({ status: response.status })\r\n break\r\n default:\r\n reject({ status: response.status })\r\n break\r\n }\r\n })\r\n .catch((error) => reject({ error: error }))\r\n })\r\n}\r\n\r\nexport function getValidCurrencies(requestId) {\r\n //logTrace('Sending GetValidCurrencies request: Request Id: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}currency/getValidCurrencies`, {\r\n requestId: requestId,\r\n })\r\n}\r\n\r\nexport function saveConfiguration(\r\n requestId,\r\n country,\r\n currency,\r\n language,\r\n shortCode,\r\n protocol,\r\n range,\r\n numberOfStations,\r\n description\r\n) {\r\n //logTrace('Sending SaveConfiguration requeset: Request Id: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/saveConfiguration`, {\r\n country: country,\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n shortCode: shortCode,\r\n protocol: protocol,\r\n range: range,\r\n numberOfStations: numberOfStations,\r\n description: description,\r\n })\r\n}\r\n\r\nexport function getSavedConfigurations(requestId, country, currency, language) {\r\n //logTrace('Sending GetSavedConfigurations. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/getSavedConfigurations`, {\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n country: country,\r\n })\r\n}\r\n\r\nexport function deleteSavedConfiguration(requestId, country, currency, language, configurationId) {\r\n //logTrace('Sending DeleteSavedConfigurations. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/deleteSavedConfiguration`, {\r\n requestId: requestId,\r\n currency: currency,\r\n language: language,\r\n country: country,\r\n savedConfigurationId: configurationId,\r\n })\r\n}\r\n\r\nexport function downloadInvoice(requestId, invoiceNumber, invoiceDate) {\r\n return jsonApiPostRequest(`${BaseApiRoute}order/downloadInvoice`, {\r\n requestId: requestId,\r\n invoiceNumber: invoiceNumber,\r\n invoiceDate: invoiceDate\r\n }, true)\r\n}\r\n","import getBaseUrl from './baseUrlService'\r\nimport { getCookie, xsrfTokenKey } from './cookieService'\r\n\r\nconst xsrfType = 0 // 0 = per session, 1 = per request\r\n\r\nexport const BaseRoute = '/v2/'\r\nexport const BaseApiRoute = '/v2/api/'\r\n\r\nexport function getApiBaseUrl() {\r\n return new Promise((resolve, reject) => {\r\n if (process.env.GATSBY_DEV_OVERRIDE_BACKEND_URL === undefined) {\r\n getBaseUrl()\r\n .then((url) => resolve(url))\r\n .catch((error) => reject(400))\r\n } else {\r\n resolve(process.env.GATSBY_DEV_OVERRIDE_BACKEND_URL)\r\n }\r\n })\r\n}\r\n\r\nexport function jsonApiPostRequest(urlPath, bodyObj, isBlob = false) {\r\n if (xsrfType === 1) {\r\n return jsonApiPostRequestWithXSRFPerRequest(urlPath, bodyObj, isBlob)\r\n } else {\r\n return jsonApiPostRequestWithXSRFPerSession(urlPath, bodyObj, isBlob)\r\n }\r\n}\r\n\r\nfunction createDefaultHeaders(xsrf) {\r\n return {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'X-XSRF-TOKEN': xsrf,\r\n }\r\n}\r\n\r\n/* Per Request XSRF - Begin */\r\nlet getXSRFPerRequestPromise = undefined\r\n\r\nfunction jsonApiPostRequestWithXSRFPerRequest(urlPath, bodyObj, isBlob) {\r\n return new Promise((resolve, reject) => {\r\n getApiBaseUrl()\r\n .then((baseUrl) => {\r\n getXSRFPerRequest(baseUrl)\r\n .then((xsrf) => {\r\n const url = `${baseUrl}${urlPath}`\r\n fetch(url, {\r\n credentials: 'include',\r\n headers: createDefaultHeaders(xsrf),\r\n method: 'POST',\r\n body: JSON.stringify(bodyObj),\r\n })\r\n .then((response) => {\r\n switch (response.status) {\r\n case 200:\r\n if (isBlob === true) {\r\n response.blob().then((blob) => resolve(blob))\r\n } else {\r\n response.json().then((data) => resolve(data))\r\n }\r\n break\r\n case 204:\r\n resolve(null)\r\n break\r\n default:\r\n response\r\n .json()\r\n .then((errorData) => {\r\n const data = JSON.parse(errorData)\r\n reject({ ...data, status: response.status, requestId: bodyObj.requestId })\r\n })\r\n .catch(() =>\r\n reject({ status: response.status, requestId: bodyObj.requestId })\r\n )\r\n\r\n break\r\n }\r\n })\r\n .catch((error) => reject({ error: error, requestId: bodyObj.requestId }))\r\n })\r\n .catch((error) => reject({ error: error, requestId: bodyObj.requestId }))\r\n })\r\n .catch((error) => reject({ error: error, requestId: bodyObj.requestId }))\r\n })\r\n}\r\n\r\nfunction getXSRFPerRequest(baseUrl) {\r\n if (getXSRFPerRequestPromise === undefined) {\r\n getXSRFPerRequestPromise = new Promise((resolve, reject) => {\r\n const url = `${baseUrl}${BaseApiRoute}secure`\r\n fetch(url, { credentials: 'include' })\r\n .then((response) => {\r\n switch (response.status) {\r\n case 200:\r\n response.json().then((data) => {\r\n const xsrf = getCookie(xsrfTokenKey)\r\n if (xsrf === undefined) {\r\n reject('failed to get xsrf')\r\n } else {\r\n resolve(xsrf)\r\n }\r\n })\r\n break\r\n default:\r\n reject(response.status)\r\n break\r\n }\r\n })\r\n .catch((error) => reject(error))\r\n .finally(() => {\r\n getXSRFPerRequestPromise = undefined\r\n })\r\n })\r\n }\r\n\r\n return getXSRFPerRequestPromise\r\n}\r\n/* Per Request XSRF - End */\r\n\r\n/* Per Session XSRF - Begin */\r\nfunction jsonApiPostRequestWithXSRFPerSession(urlPath, bodyObj, isBlob) {\r\n return new Promise((resolve, reject) => {\r\n jsonApiPostRequestWithSessionXSRF(urlPath, bodyObj, false, isBlob)\r\n .then((data) => {\r\n resolve(data)\r\n })\r\n .catch((error) => {\r\n if (error.status === 400 && error.state === undefined) {\r\n // try again, this time request a new xsrf token\r\n jsonApiPostRequestWithSessionXSRF(urlPath, bodyObj, true, isBlob)\r\n .then((data) => resolve(data))\r\n .catch((error) => reject(error))\r\n } else {\r\n reject(error)\r\n }\r\n })\r\n })\r\n}\r\n\r\nfunction jsonApiPostRequestWithSessionXSRF(urlPath, bodyObj, forceNewXSRF, isBlob) {\r\n return new Promise((resolve, reject) => {\r\n getApiBaseUrl()\r\n .then((baseUrl) => {\r\n getXSRFPerSession(baseUrl, forceNewXSRF)\r\n .then((xsrf) => {\r\n const url = `${baseUrl}${urlPath}`\r\n fetch(url, {\r\n credentials: 'include',\r\n headers: createDefaultHeaders(xsrf),\r\n method: 'POST',\r\n body: JSON.stringify(bodyObj),\r\n })\r\n .then((response) => {\r\n switch (response.status) {\r\n case 200:\r\n if (isBlob === true) {\r\n response.blob().then((blob) => resolve(blob))\r\n } else {\r\n response.json().then((data) => resolve(data))\r\n }\r\n break\r\n case 204:\r\n resolve(null)\r\n break\r\n default:\r\n response\r\n .json()\r\n .then((errorData) => {\r\n reject({ ...errorData, status: response.status, requestId: bodyObj.requestId })\r\n })\r\n .catch((error) => {\r\n reject({ status: response.status, requestId: bodyObj.requestId })\r\n })\r\n\r\n break\r\n }\r\n })\r\n .catch((error) => reject({ error: error, requestId: bodyObj.requestId }))\r\n })\r\n .catch((error) => reject({ error: error, requestId: bodyObj.requestId }))\r\n })\r\n .catch((error) => reject({ error: error, requestId: bodyObj.requestId }))\r\n })\r\n}\r\n\r\nfunction getXSRFPerSession(baseUrl, forceNewXSRF) {\r\n return new Promise((resolve, reject) => {\r\n const url = `${baseUrl}${BaseApiRoute}secure`\r\n const existingXSRF = getCookie(xsrfTokenKey)\r\n\r\n if (existingXSRF === undefined || forceNewXSRF === true) {\r\n fetch(url, { credentials: 'include' })\r\n .then((response) => {\r\n switch (response.status) {\r\n case 200:\r\n response.json().then((data) => {\r\n const xsrf = getCookie(xsrfTokenKey)\r\n if (xsrf === undefined) {\r\n reject('failed to get xsrf')\r\n } else {\r\n resolve(xsrf)\r\n }\r\n })\r\n break\r\n default:\r\n reject(response.status)\r\n break\r\n }\r\n })\r\n .catch((error) => reject(error))\r\n } else {\r\n resolve(existingXSRF)\r\n }\r\n })\r\n}\r\n/* Per Session XSRF - End */\r\n","import { createBasket, getBasket } from './backendApiService'\r\nimport { getInsecureValue, removeInsecureValue, setInsecureValue } from './insecureStore'\r\nimport { logException } from './loggingService'\r\n\r\nconst BasketKey = 'basket'\r\n\r\nexport function myCurrentBasket() {\r\n return getInsecureValue(BasketKey)\r\n}\r\n\r\nexport function getMyBasket(id, currency, locale, requestId, basketContext, language) {\r\n return new Promise((resolve, reject) => {\r\n if (id) {\r\n getBasket(id, currency, locale, requestId, basketContext, language)\r\n .then((data) => {\r\n if (data.basket) {\r\n const localStorageBasket = setMyBasket(\r\n data.basket.id,\r\n data.basket.currency,\r\n countBasketItems(data.basket.items)\r\n )\r\n resolve({\r\n basket: data.basket,\r\n basketAvailable: true,\r\n expires: localStorageBasket.expires,\r\n hasCertificateOfConformity: data.basket.hasCertificateOfConformity,\r\n requestId: requestId,\r\n })\r\n } else {\r\n reject({ error: 'basket unavailable', basketAvailable: false, requestId: requestId })\r\n }\r\n })\r\n .catch((error) => reject({ error: error, basketAvailable: false, requestId: requestId }))\r\n } else {\r\n createBasket(currency, locale, language, requestId)\r\n .then((data) => {\r\n if (data.basket) {\r\n const localStorageBasket = setMyBasket(data.basket.id, data.basket.currency, 0)\r\n resolve({\r\n basket: data.basket,\r\n basketAvailable: true,\r\n expires: localStorageBasket.expires,\r\n hasCertificateOfConformity: data.basket.hasCertificateOfConformity,\r\n requestId: requestId,\r\n })\r\n } else {\r\n reject({ error: 'basket unavailable', basketAvailable: false, requestId: requestId })\r\n }\r\n })\r\n .catch((error) => reject({ error: error, basketAvailable: false, requestId: requestId }))\r\n }\r\n })\r\n}\r\n\r\nexport function removeMyBasket() {\r\n removeInsecureValue(BasketKey)\r\n}\r\n\r\nexport function setMyBasket(id, currency, itemCount) {\r\n try {\r\n const basket = {\r\n id: id,\r\n currency: currency,\r\n itemCount: itemCount,\r\n expires: getExpiryDateTime(5),\r\n }\r\n setInsecureValue(BasketKey, basket)\r\n return basket\r\n } catch (error) {\r\n logException('Error when trying to set insecureValue', error)\r\n }\r\n}\r\n\r\nexport function countBasketItems(basketItems) {\r\n try {\r\n let count = 0\r\n if (basketItems !== null && basketItems !== undefined) {\r\n for (let index = 0; index < basketItems.length; index++) {\r\n count += basketItems[index].quantity\r\n }\r\n }\r\n return count\r\n } catch (error) {\r\n logException('Error when trying to get basket item count', error)\r\n }\r\n}\r\n\r\nexport function isBasketEmpty(basket) {\r\n return (\r\n basket['basketItems'] === null ||\r\n basket['basketItems'] === undefined ||\r\n basket['basketItems'].length === 0\r\n )\r\n}\r\n\r\nfunction getExpiryDateTime(minutes) {\r\n let date = new Date()\r\n date.setTime(date.getTime() + minutes * 60 * 1000)\r\n return date\r\n}\r\n","import { BaseApiRoute, jsonApiPostRequest } from './baseApiService'\r\nimport { logTrace } from './loggingService'\r\n\r\nexport function start(configuratorType, language, currency, requestId) {\r\n //logTrace('Sending Configurator Start request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/start`, {\r\n configuratorType: configuratorType,\r\n requestId: requestId,\r\n language: language,\r\n currency: currency,\r\n })\r\n}\r\n\r\nexport function startGeneric(product, language, configState, currency, requestId) {\r\n //logTrace('Sending Configurator Start request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/startGeneric`, {\r\n product: product,\r\n requestId: requestId,\r\n configState: configState,\r\n language: language,\r\n currency: currency,\r\n })\r\n}\r\n\r\nexport function startValveIslandConfiguratorFromPartNumber(\r\n partNumber,\r\n language,\r\n configuratorType,\r\n currency,\r\n requestId\r\n) {\r\n //logTrace('Sending Configurator Start From PartNumber request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/startFromPartNumber`, {\r\n partNumber: partNumber,\r\n configuratorType: configuratorType,\r\n requestId: requestId,\r\n language: language,\r\n currency: currency\r\n })\r\n}\r\n\r\nexport function commit(\r\n name,\r\n value,\r\n configState,\r\n language,\r\n configuratorType,\r\n currentStep,\r\n currency,\r\n requestId\r\n) {\r\n //logTrace('Sending Configurator Commit request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/commit`, {\r\n name: name,\r\n value: value,\r\n configState: configState,\r\n requestId: requestId,\r\n language: language,\r\n configuratorType: configuratorType,\r\n currentStep: currentStep,\r\n currency: currency,\r\n })\r\n}\r\n\r\nexport function commitMultiple(\r\n parameterValuePairs,\r\n configState,\r\n language,\r\n configuratorType,\r\n currentStep,\r\n currency,\r\n requestId\r\n) {\r\n //logTrace('Sending Configurator Commit request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/commitMultiple`, {\r\n parameterValuePairs: parameterValuePairs,\r\n configState: configState,\r\n requestId: requestId,\r\n language: language,\r\n configuratorType: configuratorType,\r\n currentStep: currentStep,\r\n currency: currency,\r\n })\r\n}\r\n\r\nexport function uncommit(name, configState, language, requestId) {\r\n //logTrace('Sending Configurator Uncommit request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/uncommit`, {\r\n name: name,\r\n configState: configState,\r\n requestId: requestId,\r\n language: language,\r\n })\r\n}\r\n\r\nexport function accept(\r\n name,\r\n value,\r\n configState,\r\n language,\r\n configuratorType,\r\n currentStep,\r\n currency,\r\n requestId\r\n) {\r\n //logTrace('Sending Configurator Accept request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/accept`, {\r\n name: name,\r\n value: value,\r\n configState: configState,\r\n requestId: requestId,\r\n language: language,\r\n configuratorType: configuratorType,\r\n currentStep: currentStep,\r\n currency: currency,\r\n })\r\n}\r\n\r\nexport function moveStep(\r\n configState,\r\n currentStep,\r\n amountOfStepsToMove,\r\n language,\r\n configuratorType,\r\n currency,\r\n requestId\r\n) {\r\n //logTrace('Sending Step request. Request ID: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/step`, {\r\n currentStep: currentStep,\r\n amountOfStepsToMove: amountOfStepsToMove,\r\n configState: configState,\r\n requestId: requestId,\r\n language: language,\r\n currency: currency,\r\n configuratorType: configuratorType,\r\n })\r\n}\r\n\r\nexport function repeatValuesForAllStations(\r\n configState,\r\n currentStep,\r\n stationName,\r\n language,\r\n configuratorType,\r\n currency,\r\n requestId\r\n) {\r\n //logTrace('Sending RepeatForAllStations request. Request ID: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/repeatForAllStations`, {\r\n configState: configState,\r\n currentStep: currentStep,\r\n stationName: stationName,\r\n language: language,\r\n configuratorType: configuratorType,\r\n requestId: requestId,\r\n currency: currency,\r\n })\r\n}\r\n\r\nexport function getBOMSummary(configState, configuratorType, language, currency, omitUnits, requestId) {\r\n //logTrace('Sending Configurator BOM request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/bomsummary`, {\r\n configState: configState,\r\n configuratorType: configuratorType,\r\n requestId: requestId,\r\n language: language,\r\n currency: currency,\r\n omitUnits: omitUnits,\r\n })\r\n}\r\n\r\nexport function requestAQuote(configState, requestId, key, requestAQuoteObject) {\r\n //logTrace('Sending Request A Quote Request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/requestAQuote`, {\r\n configState: configState,\r\n requestId: requestId,\r\n requestAQuote: requestAQuoteObject,\r\n })\r\n}\r\n\r\nexport function addConfiguredProductToBasket(\r\n basketId,\r\n configState,\r\n quantity,\r\n country,\r\n currency,\r\n requestId,\r\n basketContext,\r\n address,\r\n name,\r\n configuratorType,\r\n language\r\n) {\r\n //logTrace('Sending AddProductToBasket request. RequestId: ' + requestId)\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/addToBasket`, {\r\n basketId: basketId,\r\n configState: configState,\r\n quantity: quantity,\r\n locale: country,\r\n currency: currency,\r\n requestId: requestId,\r\n basketContext: basketContext,\r\n address: address,\r\n name: name,\r\n configuratorType: configuratorType,\r\n language,\r\n })\r\n}\r\n\r\nexport function getConfiguratorVersion(requestId) {\r\n return jsonApiPostRequest(`${BaseApiRoute}configurator/version`, {\r\n requestId: requestId,\r\n })\r\n}\r\n","import { getInsecureValue, setInsecureValue } from './insecureStore'\r\n\r\nexport const DefaultChartLineColour = '#B8182C'\r\nexport const ProductCodeQueryParamName = 'productCode'\r\n\r\nexport const getConfiguratorState = (configuratorType, version) => {\r\n let configuratorState = getInsecureValue(configuratorType)\r\n\r\n if (configuratorState !== undefined && configuratorState !== null) {\r\n if (configuratorState.version !== version) {\r\n configuratorState = null\r\n }\r\n }\r\n\r\n return configuratorState\r\n}\r\n\r\nexport const setConfiguratorState = (\r\n configuratorType,\r\n configState,\r\n responseModel,\r\n version,\r\n range,\r\n product,\r\n locale\r\n) => {\r\n setInsecureValue(configuratorType, {\r\n configState: configState,\r\n responseModel: responseModel,\r\n range: range,\r\n version: version,\r\n product: product,\r\n locale: locale\r\n })\r\n}\r\n\r\nexport const updateWarningMessages = (warningMessages, data) => {\r\n data.steps.forEach((element) => {\r\n if (element.current === true) {\r\n element.rootGroup.members[0].members.forEach((member) => {\r\n if (\r\n member.properties &&\r\n member.properties.tc_gui_type &&\r\n member.properties.tc_gui_type === 'static_message'\r\n ) {\r\n if (member.properties.hidden === 'no') {\r\n warningMessages[member.name] = member.description\r\n } else if (member.properties.hidden === 'yes') {\r\n delete warningMessages[member.name]\r\n }\r\n }\r\n })\r\n }\r\n })\r\n\r\n return warningMessages\r\n}\r\n\r\nexport const ConvertToBackendShortCodeType = (configuratorType) => {\r\n switch (configuratorType) {\r\n case 'FRL':\r\n return 1\r\n case 'VS':\r\n case 'VM':\r\n case 'VRQ':\r\n case 'VR':\r\n return 0\r\n\r\n case 'Generic':\r\n return 2\r\n\r\n case 'Elion':\r\n return 3\r\n\r\n default:\r\n break\r\n }\r\n}\r\n","exports.supportedLocales = getLanguages()\r\n\r\nfunction getLanguages() {\r\n switch (process.env.GATSBY_FEATURE_ENVIRONMENT) {\r\n case 'dev':\r\n return JSON.stringify(['en', 'de', 'nl', 'fr', 'it', 'es', 'en-US', 'pl', 'cs', 'pt'])\r\n\r\n case 'pentest':\r\n return JSON.stringify(['en'])\r\n\r\n case 'test':\r\n return JSON.stringify(['en', 'de', 'nl', 'fr', 'it', 'es', 'en-US', 'pl', 'cs', 'pt'])\r\n\r\n case 'prod':\r\n\r\n default:\r\n return JSON.stringify(['en', 'de', 'nl', 'fr', 'it', 'es', 'en-US', 'pl', 'cs', 'pt'])\r\n }\r\n}","export const xsrfTokenKey = 'XSRF-TOKEN'\r\n\r\nexport function getCookie(key) {\r\n if (typeof document !== 'undefined') {\r\n var b = document.cookie.match('(^|;)\\\\s*' + key + '\\\\s*=\\\\s*([^;]+)')\r\n return b ? b.pop() : undefined\r\n }\r\n}\r\n\r\nexport function setCookie(key, value) {\r\n if (typeof document !== 'undefined') {\r\n const cookie = `${key}=${value};`\r\n document.cookie = cookie\r\n }\r\n}\r\n\r\nexport function deleteCookie(key) {\r\n if (typeof document !== 'undefined') {\r\n const cookie = `${key}=;`\r\n document.cookie = cookie\r\n }\r\n}\r\n","import { v4 as uuid } from 'uuid'\r\nimport { getGeolocationCountry } from './backendApiService'\r\nimport { getInsecureValue, setInsecureValue } from './insecureStore'\r\n\r\nlet getGeolocationPromise = undefined\r\n\r\nexport const geolocationKey = 'geolocation'\r\nconst defaultCountry = 'GB'\r\n\r\nexport function currentGeolocation() {\r\n return getInsecureValue(geolocationKey)\r\n}\r\n\r\nexport function getGeolocation(callingCountries) {\r\n if (getGeolocationPromise === undefined) {\r\n getGeolocationPromise = new Promise((resolve) => {\r\n const currentGeolocation = getInsecureValue(geolocationKey)\r\n if (hasGeolocationExpired(currentGeolocation)) {\r\n getGeolocationCountry(uuid())\r\n .then((data) => {\r\n setGeolocation(callingCountries, data)\r\n resolve(getInsecureValue(geolocationKey))\r\n })\r\n .catch((error) => {\r\n setGeolocation(callingCountries, undefined)\r\n resolve(getInsecureValue(geolocationKey))\r\n })\r\n .finally(() => {\r\n getGeolocationPromise = undefined\r\n })\r\n } else {\r\n resolve(currentGeolocation)\r\n getGeolocationPromise = undefined\r\n }\r\n })\r\n }\r\n\r\n return getGeolocationPromise\r\n}\r\n\r\nfunction hasGeolocationExpired(geolocation) {\r\n if (\r\n geolocation === null ||\r\n geolocation === undefined ||\r\n geolocation['country'] === undefined ||\r\n geolocation['expires'] === undefined\r\n ) {\r\n return true\r\n }\r\n\r\n const date = new Date()\r\n const expiryDate = new Date(geolocation['expires'])\r\n\r\n return expiryDate < date\r\n}\r\n\r\nexport function setGeolocation(callingCountries, data) {\r\n if (data === undefined) {\r\n const country = resolveCountryFromBrowserOrDefault()\r\n setInsecureValue(geolocationKey, {\r\n country: country,\r\n callingCountry: resolveCallingCountry(callingCountries, country),\r\n expires: getExpiryDateTime(24),\r\n })\r\n } else {\r\n setInsecureValue(geolocationKey, {\r\n country: data.country,\r\n callingCountry: resolveCallingCountry(callingCountries, data.country),\r\n expires: getExpiryDateTime(24),\r\n })\r\n }\r\n}\r\n\r\nfunction getExpiryDateTime(hours) {\r\n let date = new Date()\r\n date.setTime(date.getTime() + hours * 60 * 60 * 1000)\r\n return date\r\n}\r\n\r\nfunction resolveCallingCountry(callingCountries, country) {\r\n let callingCountry = callingCountries[country]\r\n\r\n if (callingCountry === undefined) {\r\n callingCountry = 'uk'\r\n }\r\n\r\n return callingCountry\r\n}\r\n\r\nfunction resolveCountryFromBrowserOrDefault() {\r\n const languages = typeof navigator !== 'undefined' ? navigator.languages : undefined\r\n let country = defaultCountry\r\n\r\n try {\r\n if (languages !== null && languages !== undefined && languages.length > 0) {\r\n const browserCountry = languages[0].substring(3)\r\n\r\n if (browserCountry && browserCountry.length === 2) {\r\n country = browserCountry\r\n }\r\n }\r\n } catch (error) {}\r\n\r\n return country\r\n}\r\n\r\nexport const usStatesArray = [\r\n { key: 'AK', value: 'Alaska' },\r\n { key: 'AL', value: 'Alabama' },\r\n { key: 'AR', value: 'Arkansas' },\r\n { key: 'AZ', value: 'Arizona' },\r\n { key: 'CA', value: 'California' },\r\n { key: 'CO', value: 'Colorado' },\r\n { key: 'CT', value: 'Connecticut' },\r\n { key: 'DC', value: 'District of Columbia' },\r\n { key: 'DE', value: 'Delaware' },\r\n { key: 'FL', value: 'Florida' },\r\n { key: 'GA', value: 'Georgia' },\r\n { key: 'HI', value: 'Hawaii' },\r\n { key: 'IA', value: 'Iowa' },\r\n { key: 'ID', value: 'Idaho' },\r\n { key: 'IL', value: 'Illinois' },\r\n { key: 'IN', value: 'Indiana' },\r\n { key: 'KS', value: 'Kansas' },\r\n { key: 'KY', value: 'Kentucky' },\r\n { key: 'LA', value: 'Louisiana' },\r\n { key: 'MA', value: 'Massachusetts' },\r\n { key: 'MD', value: 'Maryland' },\r\n { key: 'ME', value: 'Maine' },\r\n { key: 'MI', value: 'Michigan' },\r\n { key: 'MN', value: 'Minnesota' },\r\n { key: 'MO', value: 'Missouri' },\r\n { key: 'MS', value: 'Mississippi' },\r\n { key: 'MT', value: 'Montana' },\r\n { key: 'NC', value: 'North Carolina' },\r\n { key: 'ND', value: 'North Dakota' },\r\n { key: 'NE', value: 'Nebraska' },\r\n { key: 'NH', value: 'New Hampshire' },\r\n { key: 'NJ', value: 'New Jersey' },\r\n { key: 'NM', value: 'New Mexico' },\r\n { key: 'NV', value: 'Nevada' },\r\n { key: 'NY', value: 'New York' },\r\n { key: 'OH', value: 'Ohio' },\r\n { key: 'OK', value: 'Oklahoma' },\r\n { key: 'OR', value: 'Oregon' },\r\n { key: 'PA', value: 'Pennsylvania' },\r\n { key: 'RI', value: 'Rhode Island' },\r\n { key: 'SC', value: 'South Carolina' },\r\n { key: 'SD', value: 'South Dakota' },\r\n { key: 'TN', value: 'Tennessee' },\r\n { key: 'TX', value: 'Texas' },\r\n { key: 'UT', value: 'Utah' },\r\n { key: 'VA', value: 'Virginia' },\r\n { key: 'VT', value: 'Vermont' },\r\n { key: 'WA', value: 'Washington' },\r\n { key: 'WI', value: 'Wisconsin' },\r\n { key: 'WV', value: 'West Virginia' },\r\n { key: 'WY', value: 'Wyoming' },\r\n]\r\n","import React from 'react'\r\n\r\nexport function getI18nText(microcopy, id) {\r\n try {\r\n if (\r\n process.env.GATSBY_SHOW_I18N_ID !== undefined &&\r\n process.env.GATSBY_SHOW_I18N_ID !== null &&\r\n process.env.GATSBY_SHOW_I18N_ID === 'true'\r\n ) {\r\n return (\r\n <abbr style={{ textDecoration: 'none' }} title={id}>\r\n {microcopy[id].value}\r\n </abbr>\r\n )\r\n } else {\r\n return microcopy[id].value\r\n }\r\n } catch (error) {\r\n return id\r\n }\r\n}\r\n\r\nexport function getI18nTextWithFallback(microcopy, id, fallback) {\r\n let text = getI18nText(microcopy, id)\r\n\r\n if (text === '' || (text === id && fallback)) {\r\n text = fallback\r\n }\r\n\r\n return text\r\n}\r\n\r\nexport function getI18nTextWithFallbackId(microcopy, id, fallbackId) {\r\n let text = getI18nText(microcopy, id)\r\n\r\n if (text === '' || (text === id && fallbackId)) {\r\n const fallbackText = getI18nText(microcopy, fallbackId)\r\n\r\n if (fallbackText && fallbackText !== '' && fallbackText !== fallbackId) {\r\n text = fallbackText\r\n }\r\n }\r\n\r\n return text\r\n}\r\n\r\nexport function convertToMicrocopyKey(value) {\r\n if (value) {\r\n value = formatSpecificMicrocopyKeys(value)\r\n value = value.replaceAll(' ', '')\r\n value = value.replaceAll('/', '')\r\n value = value.replaceAll('\"', '')\r\n value = value.replaceAll('-', '')\r\n value = value.replaceAll('_', '')\r\n value = value.replaceAll('(', '')\r\n value = value.replaceAll(')', '')\r\n value = value.replaceAll(',', '')\r\n value = value.replaceAll('µ', '')\r\n value = value.replaceAll('⌀', '')\r\n value = value.replaceAll('°', '')\r\n value = value.replaceAll(\"'\", '')\r\n value = value.replaceAll('+', '')\r\n value = value.replaceAll('/', '')\r\n value = value.replaceAll(',', '')\r\n value = value.replaceAll('&', '')\r\n // value = value.replaceAll('.', '')\r\n value = value.toLowerCase()\r\n }\r\n return value\r\n}\r\n\r\nfunction formatSpecificMicrocopyKeys(value) {\r\n if (value) {\r\n switch (value) {\r\n case '1/4\"':\r\n value = value.concat('inch')\r\n break\r\n case '1/2\"':\r\n value = value.concat('inch')\r\n break\r\n\r\n default:\r\n break\r\n }\r\n }\r\n return value\r\n}\r\n\r\nexport function doesMicrocopyTextExist(microcopy, id) {\r\n if (microcopy[id] !== null && microcopy[id] !== undefined) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n","import { Buffer } from 'buffer';\r\nimport { deleteCookie, getCookie, setCookie } from './cookieService'\r\n\r\nconst checkLocalStorageAvailable = () => {\r\n var testLocalStorage = 'testLocalStorage'\r\n try {\r\n localStorage.setItem(testLocalStorage, testLocalStorage)\r\n localStorage.removeItem(testLocalStorage)\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\nconst localStorageAvailable = checkLocalStorageAvailable()\r\nconst isLocalStorageAvailable = function () {\r\n return localStorageAvailable\r\n}\r\nexport const setInsecureValue = (key, value) => {\r\n if (isLocalStorageAvailable()) {\r\n const jsonValue = JSON.stringify(value)\r\n localStorage.setItem(key, jsonValue)\r\n } else {\r\n const base64Json = Buffer.from(JSON.stringify(value)).toString('base64')\r\n setCookie(key, base64Json)\r\n }\r\n}\r\nexport const getInsecureValue = (key) => {\r\n if (isLocalStorageAvailable()) {\r\n const temp1 = localStorage.getItem(key)\r\n if (temp1) {\r\n return JSON.parse(temp1)\r\n } else {\r\n return null\r\n }\r\n } else {\r\n const temp2 = getCookie(key)\r\n if (temp2) {\r\n const json = Buffer.from(temp2, 'base64')\r\n return JSON.parse(json)\r\n } else {\r\n return null\r\n }\r\n }\r\n}\r\nexport const removeInsecureValue = (key) => {\r\n if (isLocalStorageAvailable()) {\r\n localStorage.removeItem(key)\r\n } else {\r\n const temp2 = getCookie(key) \r\n if (temp2) {\r\n deleteCookie(key)\r\n }\r\n }\r\n}","import { getInsecureValue, setInsecureValue } from './insecureStore'\r\n\r\nexport const languageKey = 'language'\r\nexport const defaultLanguageCode = 'en'\r\n\r\nexport function getLanguage(validLanguageCodes) {\r\n let language = getLanguageFromUrl(validLanguageCodes)\r\n\r\n if (language === undefined || language === null) {\r\n language = getInsecureValue(languageKey)\r\n\r\n if (language === undefined || language === null) {\r\n language = getBrowserLanguage(validLanguageCodes)\r\n }\r\n\r\n if (language === undefined || language === null) {\r\n language = defaultLanguageCode\r\n }\r\n }\r\n\r\n return language\r\n}\r\n\r\nexport function setLanguage(language) {\r\n return setInsecureValue(languageKey, language)\r\n}\r\n\r\nfunction getLanguageFromUrl(validLanguageCodes) {\r\n const languageInUrl =\r\n typeof window !== 'undefined' ? window.location.pathname.substring(0, 4) : ''\r\n let language = undefined\r\n\r\n if (languageInUrl.startsWith('/') && languageInUrl.endsWith('/')) {\r\n language = languageInUrl.substring(1, 3)\r\n if (isLangaugeValid(validLanguageCodes, language) === false) {\r\n language = undefined\r\n }\r\n }\r\n\r\n return language\r\n}\r\n\r\nfunction getBrowserLanguage(validLanguageCodes) {\r\n const languages = typeof navigator !== 'undefined' ? navigator.languages : undefined\r\n let language = undefined\r\n\r\n if (languages !== null && languages !== undefined && languages.length > 0) {\r\n language = languages[0].substring(0, 2)\r\n if (isLangaugeValid(validLanguageCodes, language) === false) {\r\n language = undefined\r\n }\r\n }\r\n\r\n return language\r\n}\r\n\r\nfunction isLangaugeValid(validLanguageCodes, language) {\r\n return validLanguageCodes[language] !== undefined\r\n}\r\n","/*! https://github.com/nevware21/ts-utils v0.11.2 */\n/*\n * Copyright (c) NevWare21 and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureAssign(func1, func2) {\n return func1 || func2;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureRef(value, name) {\n return value[name];\n}\n\nvar UNDEF_VALUE = undefined;\nvar NULL_VALUE = null;\nvar EMPTY = \"\";\nvar FUNCTION = \"function\";\nvar OBJECT = \"object\";\nvar PROTOTYPE = \"prototype\";\nvar __PROTO__ = \"__proto__\";\nvar UNDEFINED = \"undefined\";\nvar CONSTRUCTOR = \"constructor\";\nvar SYMBOL = \"Symbol\";\nvar POLYFILL_TAG = \"_polyfill\";\nvar LENGTH = \"length\";\nvar NAME = \"name\";\nvar CALL = \"call\";\nvar TO_STRING = \"toString\";\nvar ObjClass = ( /*#__PURE__*/_pureAssign(Object));\nvar ObjProto = ( /*#__PURE__*/_pureRef(ObjClass, PROTOTYPE));\nvar StrCls = ( /*#__PURE__*/_pureAssign(String));\nvar StrProto = ( /*#__PURE__*/_pureRef(StrCls, PROTOTYPE));\nvar MathCls = ( /*#__PURE__*/_pureAssign(Math));\nvar ArrCls = ( /*#__PURE__*/_pureAssign(Array));\nvar ArrProto = ( /*#__PURE__*/_pureRef(ArrCls, PROTOTYPE));\nvar ArrSlice = ( /*#__PURE__*/_pureRef(ArrProto, \"slice\"));\n\nfunction safe(func, argArray) {\n try {\n return {\n v: func.apply(this, argArray)\n };\n }\n catch (e) {\n return { e: e };\n }\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGet(cb, defValue) {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n}\n\nvar _primitiveTypes;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createIs(theType) {\n return function (value) {\n return typeof value === theType;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createObjIs(theName) {\n var theType = \"[object \" + theName + \"]\";\n return function (value) {\n return !!(value && objToString(value) === theType);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objToString(value) {\n return ObjProto[TO_STRING].call(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTypeof(value, theType) {\n return typeof value === theType;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isUndefined(value) {\n return typeof value === UNDEFINED || value === UNDEFINED;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictUndefined(arg) {\n return !isDefined(arg);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNullOrUndefined(value) {\n return value === NULL_VALUE || isUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictNullOrUndefined(value) {\n return value === NULL_VALUE || !isDefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isDefined(arg) {\n return !!arg || arg !== UNDEF_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitive(value) {\n return value === NULL_VALUE || isPrimitiveType(typeof value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitiveType(theType) {\n !_primitiveTypes && (_primitiveTypes = [\"string\", \"number\", \"boolean\", UNDEFINED, \"symbol\", \"bigint\"]);\n return theType !== OBJECT && _primitiveTypes.indexOf(theType) !== -1;\n}\nvar isString = ( /*#__PURE__*/_createIs(\"string\"));\nvar isFunction = ( /*#__PURE__*/_createIs(FUNCTION));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isObject(value) {\n if (!value && isNullOrUndefined(value)) {\n return false;\n }\n return !!value && typeof value === OBJECT;\n}\nvar isArray = ( /* #__PURE__*/_pureRef(ArrCls, \"isArray\"));\nvar isDate = ( /*#__PURE__*/_createObjIs(\"Date\"));\nvar isNumber = ( /*#__PURE__*/_createIs(\"number\"));\nvar isBoolean = ( /*#__PURE__*/_createIs(\"boolean\"));\nvar isRegExp = ( /*#__PURE__*/_createObjIs(\"RegExp\"));\nvar isFile = ( /*#__PURE__*/_createObjIs(\"File\"));\nvar isFormData = ( /*#__PURE__*/_createObjIs(\"FormData\"));\nvar isBlob = ( /*#__PURE__*/_createObjIs(\"Blob\"));\nvar isArrayBuffer = ( /*#__PURE__*/_createObjIs(\"ArrayBuffer\"));\nvar isError = ( /*#__PURE__*/_createObjIs(\"Error\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromiseLike(value) {\n return !!(value && value.then && isFunction(value.then));\n}\nvar isThenable = isPromiseLike;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromise(value) {\n return !!(value && value.then && value.catch && isFunction(value.then) && isFunction(value.catch));\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNotTruthy(value) {\n return !value || !isTruthy(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTruthy(value) {\n return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));\n}\n\nvar objGetOwnPropertyDescriptor = ( /* #__PURE__ */_pureRef(ObjClass, \"getOwnPropertyDescriptor\"));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction objHasOwnProperty(obj, prop) {\n return !!obj && ObjProto.hasOwnProperty[CALL](obj, prop);\n}\n\nvar objHasOwn = ( /*#__PURE__*/_pureAssign(( /* #__PURE__ */_pureRef(ObjClass, \"hasOwn\")), polyObjHasOwn));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjHasOwn(obj, prop) {\n return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);\n}\n\nfunction objForEachKey(theObject, callbackfn, thisArg) {\n if (theObject && isObject(theObject)) {\n for (var prop in theObject) {\n if (objHasOwn(theObject, prop)) {\n if (callbackfn[CALL](thisArg || theObject, prop, theObject[prop]) === -1) {\n break;\n }\n }\n }\n }\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createKeyValueMap(values, keyType, valueType, completeFn) {\n var theMap = {};\n objForEachKey(values, function (key, value) {\n theMap[key] = keyType ? value : key;\n theMap[value] = valueType ? value : key;\n });\n return completeFn(theMap);\n}\n\nvar asString = ( /* #__PURE__ */_pureAssign(StrCls));\n\nvar ERROR_TYPE = \"[object Error]\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction dumpObj(object, format) {\n var propertyValueDump = EMPTY;\n var objType = ObjProto[TO_STRING][CALL](object);\n if (objType === ERROR_TYPE) {\n object = { stack: asString(object.stack), message: asString(object.message), name: asString(object.name) };\n }\n try {\n propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? ((typeof format === \"number\") ? format : 4) : UNDEF_VALUE);\n propertyValueDump = (propertyValueDump && propertyValueDump.replace(/\"(\\w+)\"\\s*:\\s{0,1}/g, \"$1: \")) || asString(object);\n }\n catch (e) {\n propertyValueDump = \" - \" + dumpObj(e, format);\n }\n return objType + \": \" + propertyValueDump;\n}\n\nfunction throwError(message) {\n throw new Error(message);\n}\nfunction throwTypeError(message) {\n throw new TypeError(message);\n}\nfunction throwRangeError(message) {\n throw new RangeError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjKeys(obj) {\n if (!isObject(obj) || obj === NULL_VALUE) {\n throwTypeError(\"non-object \" + dumpObj(obj));\n }\n var result = [];\n for (var prop in obj) {\n if (objHasOwn(obj, prop)) {\n result.push(prop);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjEntries(value) {\n var result = [];\n objForEachKey(value, function (key, value) {\n result.push([key, value]);\n });\n return result;\n}\n\nvar _objFreeze = ( /* #__PURE__ */_pureRef(ObjClass, \"freeze\"));\nfunction _doNothing(value) {\n return value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getProto(value) {\n return value[__PROTO__] || NULL_VALUE;\n}\nvar objAssign = ( /*#__PURE__*/_pureRef(ObjClass, \"assign\"));\nvar objKeys = ( /*#__PURE__*/_pureRef(ObjClass, \"keys\"));\nfunction objDeepFreeze(value) {\n if (_objFreeze) {\n objForEachKey(value, function (key, value) {\n if (isArray(value) || isObject(value)) {\n _objFreeze(value);\n }\n });\n }\n return objFreeze(value);\n}\nvar objFreeze = ( /* #__PURE__*/_pureAssign(_objFreeze, _doNothing));\nvar objSeal = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"seal\")), _doNothing));\nvar objGetPrototypeOf = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"getPrototypeOf\")), _getProto));\nvar objEntries = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"entries\")), polyObjEntries));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnum(values) {\n return _createKeyValueMap(values, 1 , 0 , objDeepFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumKeyMap(values) {\n return _createKeyValueMap(values, 0 , 0 , objDeepFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumValueMap(values) {\n return _createKeyValueMap(values, 1 , 1 , objDeepFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createSimpleMap(values) {\n var mapClass = {};\n objForEachKey(values, function (key, value) {\n mapClass[key] = value[1];\n mapClass[value[0]] = value[1];\n });\n return objDeepFreeze(mapClass);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createTypeMap(values) {\n return createSimpleMap(values);\n}\n\nvar _wellKnownSymbolMap = /*#__PURE__*/ createEnumKeyMap({\n asyncIterator: 0 ,\n hasInstance: 1 ,\n isConcatSpreadable: 2 ,\n iterator: 3 ,\n match: 4 ,\n matchAll: 5 ,\n replace: 6 ,\n search: 7 ,\n species: 8 ,\n split: 9 ,\n toPrimitive: 10 ,\n toStringTag: 11 ,\n unscopables: 12\n});\n\nvar GLOBAL_CONFIG_KEY = \"__tsUtils$gblCfg\";\nvar _globalCfg;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalValue() {\n var result;\n if (typeof globalThis !== UNDEFINED) {\n result = globalThis;\n }\n if (!result && typeof self !== UNDEFINED) {\n result = self;\n }\n if (!result && typeof window !== UNDEFINED) {\n result = window;\n }\n if (!result && typeof global !== UNDEFINED) {\n result = global;\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalConfig() {\n if (!_globalCfg) {\n var gbl = safe(_getGlobalValue).v || {};\n _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};\n }\n return _globalCfg;\n}\n\nvar _unwrapFunction = ( _unwrapFunctionWithPoly);\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapFunctionWithPoly(funcName, clsProto, polyFunc) {\n var clsFn = clsProto && clsProto[funcName];\n return function (thisArg) {\n var theFunc = (thisArg && thisArg[funcName]) || clsFn;\n if (theFunc || polyFunc) {\n var theArgs = arguments;\n return (theFunc || polyFunc).apply(thisArg, theFunc ? ArrSlice[CALL](theArgs, 1) : theArgs);\n }\n throwTypeError(\"\\\"\" + asString(funcName) + \"\\\" not defined for \" + dumpObj(thisArg));\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapProp(propName) {\n return function (thisArg) {\n return thisArg[propName];\n };\n}\n\nvar mathMin = ( /*#__PURE__*/_pureRef(MathCls, \"min\"));\nvar mathMax = ( /*#__PURE__*/_pureRef(MathCls, \"max\"));\n\nvar strSlice = ( /*#__PURE__*/_unwrapFunction(\"slice\", StrProto));\n\nvar strSubstring = ( /*#__PURE__*/_unwrapFunction(\"substring\", StrProto));\nvar strSubstr = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"substr\", StrProto, polyStrSubstr));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSubstr(value, start, length) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"Invalid \" + dumpObj(value));\n }\n if (length < 0) {\n return EMPTY;\n }\n start = start || 0;\n if (start < 0) {\n start = mathMax(start + value[LENGTH], 0);\n }\n if (isUndefined(length)) {\n return strSlice(value, start);\n }\n return strSlice(value, start, start + length);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLeft(value, count) {\n return strSubstring(value, 0, count);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strRight(value, count) {\n return count <= 0 ? EMPTY : (value[LENGTH] > count ? strSlice(value, -count) : value);\n}\n\nvar UNIQUE_REGISTRY_ID = \"_urid\";\nvar _polySymbols;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _globalSymbolRegistry() {\n if (!_polySymbols) {\n var gblCfg = _getGlobalConfig();\n _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s: {} };\n }\n return _polySymbols;\n}\nvar _wellKnownSymbolCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyNewSymbol(description) {\n var theSymbol = {\n description: asString(description),\n toString: function () { return SYMBOL + \"(\" + description + \")\"; }\n };\n theSymbol[POLYFILL_TAG] = true;\n return theSymbol;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolFor(key) {\n var registry = _globalSymbolRegistry();\n if (!objHasOwn(registry.k, key)) {\n var newSymbol_1 = polyNewSymbol(key);\n var regId_1 = objKeys(registry.s).length;\n newSymbol_1[UNIQUE_REGISTRY_ID] = function () { return regId_1 + \"_\" + newSymbol_1[TO_STRING](); };\n registry.k[key] = newSymbol_1;\n registry.s[newSymbol_1[UNIQUE_REGISTRY_ID]()] = asString(key);\n }\n return registry.k[key];\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolKeyFor(sym) {\n if (!sym || !sym[TO_STRING] || strSubstring(sym[TO_STRING](), 0, 6) != SYMBOL) {\n throwTypeError(sym + \" is not a symbol\");\n }\n var regId = sym[POLYFILL_TAG] && sym[UNIQUE_REGISTRY_ID] && sym[UNIQUE_REGISTRY_ID]();\n return regId ? _globalSymbolRegistry().s[regId] : undefined;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyGetKnownSymbol(name) {\n !_wellKnownSymbolCache && (_wellKnownSymbolCache = {});\n var result;\n var knownName = _wellKnownSymbolMap[name];\n if (knownName) {\n result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + \".\" + knownName);\n }\n return result;\n}\n\nvar propMap = {\n e: \"enumerable\",\n c: \"configurable\",\n v: \"value\",\n w: \"writable\",\n g: \"get\",\n s: \"set\"\n};\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createProp(value) {\n var prop = {};\n prop[propMap[\"c\"]] = true;\n prop[propMap[\"e\"]] = true;\n if (value.l) {\n prop.get = function () { return value.l.v; };\n var desc = objGetOwnPropertyDescriptor(value.l, \"v\");\n if (desc && desc.set) {\n prop.set = function (newValue) {\n value.l.v = newValue;\n };\n }\n }\n objForEachKey(value, function (key, value) {\n prop[propMap[key]] = isUndefined(value) ? prop[propMap[key]] : value;\n });\n return prop;\n}\nvar objDefineProp = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperty\"));\nvar objDefineProperties = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperties\"));\nfunction objDefineGet(target, key, value, configurable, enumerable) {\n var _a;\n return objDefineProp(target, key, _createProp((_a = {\n e: enumerable,\n c: configurable\n },\n _a[isFunction(value) ? \"g\" : \"v\"] = value,\n _a)));\n}\nfunction objDefineAccessors(target, prop, getProp, setProp, configurable, enumerable) {\n var desc = {\n e: enumerable,\n c: configurable\n };\n if (getProp) {\n desc.g = getProp;\n }\n if (setProp) {\n desc.s = setProp;\n }\n return objDefineProp(target, prop, _createProp(desc));\n}\nfunction objDefine(target, key, propDesc) {\n return objDefineProp(target, key, _createProp(propDesc));\n}\nfunction objDefineProps(target, propDescMap) {\n var props = {};\n objForEachKey(propDescMap, function (key, value) {\n props[key] = _createProp(value);\n });\n return objDefineProperties(target, props);\n}\n\nvar _globalLazyTestHooks;\nfunction _initTestHooks() {\n _globalLazyTestHooks = _getGlobalConfig();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getLazy(cb) {\n var lazyValue = {};\n !_globalLazyTestHooks && _initTestHooks();\n lazyValue.b = _globalLazyTestHooks.lzy;\n objDefineProp(lazyValue, \"v\", {\n configurable: true,\n get: function () {\n var result = cb();\n if (!_globalLazyTestHooks.lzy) {\n objDefineProp(lazyValue, \"v\", {\n value: result\n });\n }\n lazyValue.b = _globalLazyTestHooks.lzy;\n return result;\n }\n });\n return lazyValue;\n}\nfunction setBypassLazyCache(newValue) {\n !_globalLazyTestHooks && _initTestHooks();\n _globalLazyTestHooks.lzy = newValue;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCachedValue(value) {\n return objDefineProp({\n toJSON: function () { return value; }\n }, \"v\", { value: value });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createDeferredCachedValue(cb) {\n var theValue = {\n toJSON: function () { return theValue.v; }\n };\n return objDefineProp(theValue, \"v\", {\n get: function () {\n var result = cb();\n cb = NULL_VALUE;\n objDefineProp(theValue, \"v\", { value: result });\n return result;\n },\n configurable: true\n });\n}\n\nvar WINDOW = \"window\";\nvar _cachedGlobal;\nfunction _getGlobalInstFn(getFn, theArgs) {\n var cachedValue;\n return function () {\n !_globalLazyTestHooks && _initTestHooks();\n (!cachedValue || _globalLazyTestHooks.lzy) && (cachedValue = createCachedValue(safe(getFn, theArgs).v));\n return cachedValue.v;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction lazySafeGetInst(name) {\n return getLazy(function () { return safe((getInst), [name]).v || UNDEF_VALUE; });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getGlobal(useCached) {\n !_globalLazyTestHooks && _initTestHooks();\n (!_cachedGlobal || useCached === false || _globalLazyTestHooks.lzy) && (_cachedGlobal = createCachedValue(safe(_getGlobalValue).v || NULL_VALUE));\n return _cachedGlobal.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getInst(name, useCached) {\n var gbl = (!_cachedGlobal || useCached === false) ? getGlobal(useCached) : _cachedGlobal.v;\n if (gbl && gbl[name]) {\n return gbl[name];\n }\n if (name === WINDOW) {\n return getWindow();\n }\n return NULL_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasDocument() {\n return !!( /*#__PURE__*/getDocument());\n}\nvar getDocument = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"document\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasWindow() {\n return !!( /*#__PURE__*/getWindow());\n}\nvar getWindow = ( /*#__PURE__*/_getGlobalInstFn(getInst, [WINDOW]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasNavigator() {\n return !!( /*#__PURE__*/getNavigator());\n}\nvar getNavigator = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"navigator\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasHistory() {\n return !!( /*#__PURE__*/getHistory());\n}\nvar getHistory = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"history\"]));\nvar isNode = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return (process && (process.versions || {}).node); }).v);\n}));\nvar isWebWorker = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return self && self instanceof WorkerGlobalScope; }).v);\n}));\n\nvar _symbol;\nvar _symbolFor;\nvar _symbolKeyFor;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _initSymbol() {\n _symbol = ( /*#__PURE__*/createCachedValue(safe((getInst), [SYMBOL]).v));\n return _symbol;\n}\nfunction _getSymbolKey(key) {\n var gblSym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return (gblSym.v ? gblSym.v[key] : UNDEF_VALUE);\n}\nvar isSymbol = ( /*#__PURE__*/_createIs(\"symbol\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasSymbol() {\n return !!( /*#__PURE__*/getSymbol());\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getSymbol() {\n !_globalLazyTestHooks && _initTestHooks();\n return ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol()).v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getKnownSymbol(name, noPoly) {\n var knownName = _wellKnownSymbolMap[name];\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction newSymbol(description, noPoly) {\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v(description) : (!noPoly ? polyNewSymbol(description) : NULL_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolFor(key) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolFor = ((!_globalLazyTestHooks.lzy ? _symbolFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"for\"]).v)));\n return (_symbolFor.v || polySymbolFor)(key);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolKeyFor(sym) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolKeyFor = ((!_globalLazyTestHooks.lzy ? _symbolKeyFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"keyFor\"]).v)));\n return (_symbolKeyFor.v || polySymbolKeyFor)(sym);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterator(value) {\n return !!value && isFunction(value.next);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterable(value) {\n return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(3 )]);\n}\n\nvar _iterSymbol$1;\nfunction iterForOf(iter, callbackfn, thisArg) {\n if (iter) {\n if (!isIterator(iter)) {\n !_iterSymbol$1 && (_iterSymbol$1 = createCachedValue(getKnownSymbol(3 )));\n iter = iter[_iterSymbol$1.v] ? iter[_iterSymbol$1.v]() : null;\n }\n if (isIterator(iter)) {\n var err = UNDEF_VALUE;\n var iterResult = UNDEF_VALUE;\n try {\n var count = 0;\n while (!(iterResult = iter.next()).done) {\n if (callbackfn[CALL](thisArg || iter, iterResult.value, count, iter) === -1) {\n break;\n }\n count++;\n }\n }\n catch (failed) {\n err = { e: failed };\n if (iter.throw) {\n iterResult = NULL_VALUE;\n iter.throw(err);\n }\n }\n finally {\n try {\n if (iterResult && !iterResult.done) {\n iter.return && iter.return(iterResult);\n }\n }\n finally {\n if (err) {\n // eslint-disable-next-line no-unsafe-finally\n throw err.e;\n }\n }\n }\n }\n }\n}\n\nfunction fnApply(fn, thisArg, argArray) {\n return fn.apply(thisArg, argArray);\n}\nfunction fnCall(fn, thisArg) {\n return fn.apply(thisArg, ArrSlice[CALL](arguments, 2));\n}\nfunction fnBind(fn, thisArg) {\n return fn.bind.apply(fn, ArrSlice[CALL](arguments, 1));\n}\n\nfunction arrAppend(target, elms) {\n if (!isUndefined(elms) && target) {\n if (isArray(elms)) {\n fnApply(target.push, target, elms);\n }\n else if (isIterator(elms) || isIterable(elms)) {\n iterForOf(elms, function (elm) {\n target.push(elm);\n });\n }\n else {\n target.push(elms);\n }\n }\n return target;\n}\n\nvar arrEvery = /*#__PURE__*/ _unwrapFunction(\"every\", ArrProto);\nvar arrFilter = /*#__PURE__*/ _unwrapFunction(\"filter\", ArrProto);\n\nfunction arrForEach(theArray, callbackfn, thisArg) {\n if (theArray) {\n var len = theArray[LENGTH] >>> 0;\n for (var idx = 0; idx < len; idx++) {\n if (idx in theArray) {\n if (callbackfn[CALL](thisArg || theArray, theArray[idx], idx, theArray) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar arrIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", ArrProto));\nvar arrLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", ArrProto));\n\nvar arrMap = ( /*#__PURE__*/_unwrapFunction(\"map\", ArrProto));\n\nfunction arrSlice(theArray, start, end) {\n return ((theArray && theArray[\"slice\"]) || ArrSlice).apply(theArray, ArrSlice[CALL](arguments, 1));\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyIsArray(value) {\n if (isNullOrUndefined(value)) {\n return false;\n }\n return objToString(value) === \"[object Array]\";\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyArrIncludes(theArray, searchElement, fromIndex) {\n return arrIndexOf(theArray, searchElement, fromIndex) !== -1;\n}\nfunction polyArrFind(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n arrForEach(theArray, function (value, index) {\n if (callbackFn[CALL](thisArg | theArray, value, index, theArray)) {\n result = index;\n return -1;\n }\n });\n return result;\n}\nfunction polyArrFindLast(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindLastIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindLastIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n var len = theArray[LENGTH] >>> 0;\n for (var idx = len - 1; idx >= 0; idx--) {\n if (idx in theArray && callbackFn[CALL](thisArg | theArray, theArray[idx], idx, theArray)) {\n result = idx;\n break;\n }\n }\n return result;\n}\nfunction polyArrFrom(theValue, mapFn, thisArg) {\n if (isArray(theValue)) {\n var result_1 = arrSlice(theValue);\n return mapFn ? arrMap(result_1, mapFn, thisArg) : result_1;\n }\n var result = [];\n iterForOf(theValue, function (value, cnt) {\n return result.push(mapFn ? mapFn[CALL](thisArg, value, cnt) : value);\n });\n return result;\n}\n\nvar arrFind = /*#__PURE__*/ _unwrapFunctionWithPoly(\"find\", ArrProto, polyArrFind);\nvar arrFindIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findIndex\", ArrProto, polyArrFindIndex);\nvar arrFindLast = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLast\", ArrProto, polyArrFindLast);\nvar arrFindLastIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLastIndex\", ArrProto, polyArrFindLastIndex);\n\nvar arrFrom = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ArrCls, \"from\")), polyArrFrom));\n\nvar arrIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", ArrProto, polyArrIncludes));\nvar arrContains = arrIncludes;\n\nvar arrReduce = ( /*#__PURE__*/_unwrapFunction(\"reduce\", ArrProto));\n\nvar arrSome = ( /*#__PURE__*/_unwrapFunction(\"some\", ArrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFnDeferredProxy(hostFn, funcName) {\n return function () {\n var theArgs = ArrSlice[CALL](arguments);\n var theHost = hostFn();\n return fnApply(theHost[funcName], theHost, theArgs);\n };\n}\nfunction createProxyFuncs(target, host, funcDefs) {\n if (target && host && isArray(funcDefs)) {\n var isDeferred_1 = isFunction(host);\n arrForEach(funcDefs, function (funcDef) {\n var targetName = (funcDef.as || funcDef.n);\n if (funcDef.rp === false && target[targetName]) {\n return;\n }\n target[targetName] = isDeferred_1 ?\n createFnDeferredProxy(host, funcDef.n) :\n fnBind(host[funcDef.n], host);\n });\n }\n return target;\n}\n\nvar _iterSymbol;\n/*#__NO_SIDE_EFFECTS__*/\nfunction readArgs(theArgs, start, end) {\n if (!objHasOwn(theArgs, LENGTH)) {\n !_iterSymbol && (_iterSymbol = createCachedValue(hasSymbol() && getKnownSymbol(3 )));\n var iterFn = _iterSymbol.v && theArgs[_iterSymbol.v];\n if (iterFn) {\n var values_1 = [];\n var from_1 = (start === UNDEF_VALUE || start < 0) ? 0 : start;\n var to_1 = end < 0 || start < 0 ? UNDEF_VALUE : end;\n iterForOf(iterFn[CALL](theArgs), function (value, cnt) {\n if (to_1 !== UNDEF_VALUE && cnt >= to_1) {\n return -1;\n }\n if (cnt >= from_1) {\n values_1.push(value);\n }\n });\n if ((start === UNDEF_VALUE || start >= 0) && (end === UNDEF_VALUE || end >= 0)) {\n return values_1;\n }\n theArgs = values_1;\n }\n }\n return arrSlice(theArgs, start, end);\n}\n\nvar objCreate = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"create\")), polyObjCreate));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjCreate(obj) {\n if (!obj) {\n return {};\n }\n var type = typeof obj;\n if (type !== OBJECT && type !== FUNCTION) {\n throwTypeError(\"Prototype must be an Object or function: \" + dumpObj(obj));\n }\n function tempFunc() { }\n tempFunc[PROTOTYPE] = obj;\n return new tempFunc();\n}\n\nvar _isProtoArray;\nfunction objSetPrototypeOf(obj, proto) {\n var fn = ObjClass[\"setPrototypeOf\"] ||\n function (d, b) {\n var _a;\n !_isProtoArray && (_isProtoArray = createCachedValue((_a = {}, _a[__PROTO__] = [], _a) instanceof Array));\n _isProtoArray.v ? d[__PROTO__] = b : objForEachKey(b, function (key, value) { return d[key] = value; });\n };\n return fn(obj, proto);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createCustomError(name, d, b) {\n safe(objDefine, [d, NAME, { v: name, c: true, e: false }]);\n d = objSetPrototypeOf(d, b);\n function __() {\n this[CONSTRUCTOR] = d;\n safe(objDefine, [this, NAME, { v: name, c: true, e: false }]);\n }\n d[PROTOTYPE] = b === NULL_VALUE ? objCreate(b) : (__[PROTOTYPE] = b[PROTOTYPE], new __());\n return d;\n}\nfunction _setName(baseClass, name) {\n name && (baseClass[NAME] = name);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCustomError(name, constructCb, errorBase) {\n var theBaseClass = errorBase || Error;\n var orgName = theBaseClass[PROTOTYPE][NAME];\n var captureFn = Error.captureStackTrace;\n return _createCustomError(name, function () {\n var _this = this;\n var theArgs = arguments;\n try {\n safe(_setName, [theBaseClass, name]);\n var _self = fnApply(theBaseClass, _this, ArrSlice[CALL](theArgs)) || _this;\n if (_self !== _this) {\n var orgProto = objGetPrototypeOf(_this);\n if (orgProto !== objGetPrototypeOf(_self)) {\n objSetPrototypeOf(_self, orgProto);\n }\n }\n captureFn && captureFn(_self, _this[CONSTRUCTOR]);\n constructCb && constructCb(_self, theArgs);\n return _self;\n }\n finally {\n safe(_setName, [theBaseClass, orgName]);\n }\n }, theBaseClass);\n}\nvar _unsupportedError;\nfunction throwUnsupported(message) {\n if (!_unsupportedError) {\n _unsupportedError = createCustomError(\"UnsupportedError\");\n }\n throw new _unsupportedError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction utcNow() {\n return (Date.now || polyUtcNow)();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyUtcNow() {\n return new Date().getTime();\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTrimFn(exp) {\n return function _doTrim(value) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"strTrim called [\" + dumpObj(value) + \"]\");\n }\n if (value && value.replace) {\n value = value.replace(exp, EMPTY);\n }\n return value;\n };\n}\nvar polyStrTrim = ( /*#__PURE__*/_createTrimFn(/^\\s+|(?=\\s)\\s+$/g));\nvar polyStrTrimStart = ( /*#__PURE__*/_createTrimFn(/^\\s+/g));\nvar polyStrTrimEnd = ( /*#__PURE__*/_createTrimFn(/(?=\\s)\\s+$/g));\n\nvar strTrim = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trim\", StrProto, polyStrTrim));\nvar strTrimStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimStart\", StrProto, polyStrTrimStart));\nvar strTrimLeft = ( /*#__PURE__*/_pureAssign(strTrimStart));\nvar strTrimEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimEnd\", StrProto, polyStrTrimEnd));\nvar strTrimRight = ( /*#__PURE__*/_pureAssign(strTrimEnd));\n\nvar strUpper = ( /*#__PURE__*/_unwrapFunction(\"toUpperCase\", StrProto));\nvar strLower = ( /*#__PURE__*/_unwrapFunction(\"toLowerCase\", StrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _convertCase(value, newPrefix, upperWord) {\n return strTrim(asString(value)).replace(/((_|\\W)+(\\w){0,1}|([a-z])([A-Z]))/g, function (_match, _g1, _g2, wordStart, upperPrefix, upperLetter) {\n var convertMatch = wordStart || upperLetter || EMPTY;\n if (upperWord) {\n convertMatch = strUpper(convertMatch);\n }\n return (upperPrefix || EMPTY) + newPrefix + convertMatch;\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLetterCase(value) {\n return asString(value).replace(/(_|\\b)\\w/g, strUpper);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strCamelCase(value, upperFirst) {\n var result = _convertCase(value, \"\", true);\n return result.replace(/^\\w/, upperFirst ? strUpper : strLower);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strKebabCase(value, scream) {\n var result = _convertCase(value, \"-\");\n return (scream ? strUpper : strLower)(result);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strSnakeCase(value, scream) {\n var result = _convertCase(value, \"_\");\n return (scream ? strUpper : strLower)(result);\n}\n\nvar mathFloor = ( /*#__PURE__*/_pureRef(MathCls, \"floor\"));\nvar mathCeil = ( /*#__PURE__*/_pureRef(MathCls, \"ceil\"));\n\nvar mathTrunc = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(MathCls, \"trunc\")), polyMathTrunc));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyMathTrunc(value) {\n var theValue = +value;\n return (theValue > 0 ? mathFloor : mathCeil)(theValue);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction mathToInt(value, throwInfinity) {\n var result = +value;\n if (result == Infinity && throwInfinity) {\n throwRangeError(\"invalid value [\" + dumpObj(value) + \"]\");\n }\n return result !== result || result === 0 ? 0 : mathTrunc(result);\n}\n\nvar strRepeat = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"repeat\", StrProto, polyStrRepeat));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrRepeat(value, count) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"can't convert [\" + dumpObj(value) + \"]\");\n }\n count = mathToInt(count, true);\n if (count < 0) {\n throwRangeError(\"invalid count must be >= 0 && < Infinity\");\n }\n var pad = isString(value) ? value : asString(value);\n var result = EMPTY;\n for (; count > 0; (count >>>= 1) && (pad += pad)) {\n if (count & 1) {\n result += pad;\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _padValue(value, targetLength, padString) {\n var result = EMPTY;\n targetLength = mathToInt(targetLength, true);\n targetLength >>= 0;\n var len = value[LENGTH];\n if (len < targetLength) {\n result = isNullOrUndefined(padString) ? \" \" : asString(padString);\n targetLength = targetLength - len;\n if (targetLength > result[LENGTH]) {\n result = strRepeat(result, mathCeil(targetLength / result[LENGTH]));\n }\n if (result[LENGTH] > targetLength) {\n result = strSubstring(result, 0, targetLength);\n }\n }\n return result;\n}\nvar strPadStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padStart\", StrProto, polyStrPadStart));\nvar strPadEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padEnd\", StrProto, polyStrPadEnd));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadStart(value, targetLength, padString) {\n return _padValue(value, targetLength, padString) + value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadEnd(value, targetLength, padString) {\n return value + _padValue(value, targetLength, padString);\n}\n\nvar DBL_QUOTE = \"\\\"\";\nvar INVALID_JS_NAME = /([^\\w\\d_$])/g;\nvar _htmlEntityCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction normalizeJsName(jsName, camelCase) {\n var result = asString(jsName).replace(INVALID_JS_NAME, \"_\");\n return !isUndefined(camelCase) ? strCamelCase(result, !camelCase) : result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsJson(value, format) {\n var result;\n if (isString(value)) {\n result = DBL_QUOTE + value.replace(/[^\\w .,\\-!@#$%\\^&*\\(\\)_+={}\\[\\]:;|<>?]/g, function (match) {\n if (match === DBL_QUOTE || match === \"\\\\\") {\n return \"\\\\\" + match;\n }\n var hex = match.charCodeAt(0)[TO_STRING](16);\n return \"\\\\u\" + strPadStart(strUpper(hex), 4, \"0\");\n }) + DBL_QUOTE;\n }\n else {\n try {\n result = JSON.stringify(value, NULL_VALUE, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);\n }\n catch (e) {\n result = DBL_QUOTE + dumpObj(e) + DBL_QUOTE;\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsHtml(value) {\n !_htmlEntityCache && (_htmlEntityCache = {\n \"&\": \"amp\",\n \"<\": \"lt\",\n \">\": \"gt\",\n \"\\\"\": \"quot\",\n \"'\": \"#39\"\n });\n return asString(value).replace(/[&<>\"']/g, function (match) { return \"&\" + _htmlEntityCache[match] + \";\"; });\n}\n\nvar _fnToString;\nvar _objCtrFnString;\nvar _gblWindow;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPlainObject(value) {\n if (!value || typeof value !== OBJECT) {\n return false;\n }\n if (!_gblWindow) {\n _gblWindow = hasWindow() ? getWindow() : true;\n }\n var result = false;\n if (value !== _gblWindow) {\n if (!_objCtrFnString) {\n _fnToString = Function[PROTOTYPE][TO_STRING];\n _objCtrFnString = _fnToString[CALL](ObjClass);\n }\n try {\n var proto = objGetPrototypeOf(value);\n result = !proto;\n if (!result) {\n if (objHasOwnProperty(proto, CONSTRUCTOR)) {\n proto = proto[CONSTRUCTOR];\n }\n result = proto && typeof proto === FUNCTION && _fnToString[CALL](proto) === _objCtrFnString;\n }\n }\n catch (ex) {\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _defaultDeepCopyHandler(details) {\n details.value && plainObjDeepCopyHandler(details);\n return true;\n}\nvar defaultDeepCopyHandlers = [\n arrayDeepCopyHandler,\n plainObjDeepCopyHandler,\n functionDeepCopyHandler,\n dateDeepCopyHandler\n];\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getSetVisited(visitMap, source, newPath, cb) {\n var theEntry;\n arrForEach(visitMap, function (entry) {\n if (entry.k === source) {\n theEntry = entry;\n return -1;\n }\n });\n if (!theEntry) {\n theEntry = { k: source, v: source };\n visitMap.push(theEntry);\n cb(theEntry);\n }\n return theEntry.v;\n}\nfunction _deepCopy(visitMap, value, ctx, key) {\n var userHandler = ctx.handler;\n var newPath = ctx.path ? (key ? ctx.path.concat(key) : ctx.path) : [];\n var newCtx = {\n handler: ctx.handler,\n src: ctx.src,\n path: newPath\n };\n var theType = typeof value;\n var isPlain = false;\n var isPrim = false;\n if (value && theType === OBJECT) {\n isPlain = isPlainObject(value);\n }\n else {\n isPrim = value === NULL_VALUE || isPrimitiveType(theType);\n }\n var details = {\n type: theType,\n isPrim: isPrim,\n isPlain: isPlain,\n value: value,\n result: value,\n path: newPath,\n origin: ctx.src,\n copy: function (source, newKey) {\n return _deepCopy(visitMap, source, newKey ? newCtx : ctx, newKey);\n },\n copyTo: function (target, source) {\n return _copyProps(visitMap, target, source, newCtx);\n }\n };\n if (!details.isPrim) {\n return _getSetVisited(visitMap, value, newPath, function (newEntry) {\n objDefine(details, \"result\", {\n g: function () {\n return newEntry.v;\n },\n s: function (newValue) {\n newEntry.v = newValue;\n }\n });\n var idx = 0;\n var handler = userHandler;\n while (!(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler))[CALL](ctx, details)) {\n handler = NULL_VALUE;\n }\n });\n }\n if (userHandler && userHandler[CALL](ctx, details)) {\n return details.result;\n }\n return value;\n}\nfunction _copyProps(visitMap, target, source, ctx) {\n if (!isNullOrUndefined(source)) {\n for (var key in source) {\n target[key] = _deepCopy(visitMap, source[key], ctx, key);\n }\n }\n return target;\n}\nfunction objCopyProps(target, source, handler) {\n var ctx = {\n handler: handler,\n src: source,\n path: []\n };\n return _copyProps([], target, source, ctx);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objDeepCopy(source, handler) {\n var ctx = {\n handler: handler,\n src: source\n };\n return _deepCopy([], source, ctx);\n}\nfunction arrayDeepCopyHandler(details) {\n var value = details.value;\n if (isArray(value)) {\n var target = details.result = [];\n target.length = value.length;\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\nfunction dateDeepCopyHandler(details) {\n var value = details.value;\n if (isDate(value)) {\n details.result = new Date(value.getTime());\n return true;\n }\n return false;\n}\nfunction functionDeepCopyHandler(details) {\n if (details.type === FUNCTION) {\n return true;\n }\n return false;\n}\nfunction plainObjDeepCopyHandler(details) {\n var value = details.value;\n if (value && details.isPlain) {\n var target = details.result = {};\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\n\nfunction _doExtend(target, theArgs) {\n arrForEach(theArgs, function (theArg) {\n objCopyProps(target, theArg);\n });\n return target;\n}\nfunction deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(objDeepCopy(target) || {}, ArrSlice[CALL](arguments));\n}\nfunction objExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(target || {}, ArrSlice[CALL](arguments));\n}\n\nvar getLength = ( /*#__PURE__*/_unwrapProp(LENGTH));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getIntValue(value, defValue) {\n if (!isNullOrUndefined(value)) {\n if (isNumber(value)) {\n return value;\n }\n var theValue = parseInt(value, 10);\n return isNaN(theValue) ? defValue : theValue;\n }\n return defValue;\n}\n\nvar _perf;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasPerformance() {\n return !!getPerformance();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getPerformance() {\n !_globalLazyTestHooks && _initTestHooks();\n (!_perf || _globalLazyTestHooks.lzy) && (_perf = createCachedValue(safe((getInst), [\"performance\"]).v));\n return _perf.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction perfNow() {\n var perf = getPerformance();\n if (perf && perf.now) {\n return perf.now();\n }\n return utcNow();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction elapsedTime(startTime) {\n return perfNow() - startTime;\n}\n\nvar MATCH_ANY = \"(.*)\";\nvar MATCH_SINGLE = \"(.)\";\nfunction _createRegExp(value, escapeRgx, replaceFn, ignoreCase, fullMatch) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n return new RegExp((fullMatch ? \"^\" : EMPTY) + replaceFn(value.replace(escapeRgx, \"\\\\$1\")) + (fullMatch ? \"$\" : EMPTY), ignoreCase ? \"i\" : \"\");\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createWildcardRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.\\?{}()\\[\\]\\\\/\\\"\\'])/g, function (value) {\n return value.replace(/\\*/g, MATCH_ANY);\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFilenameRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\\\\\\\|\\\\\\/|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n return g1 == \"*\" ? MATCH_ANY : MATCH_SINGLE;\n });\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction makeGlobRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\*\\*\\\\[\\\\\\/]|\\\\\\\\|\\\\\\/|\\*\\*|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"**\\\\/\" || g1 == \"**\\\\\\\\\") {\n return \"(.*[\\\\\\\\\\\\/])*\";\n }\n if (g1 === \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n if (g1 === \"**\") {\n return MATCH_ANY;\n }\n return g1 === \"*\" ? \"([^\\\\\\\\\\\\/]*)\" : \"([^\\\\\\\\\\\\/]{1})\";\n });\n }, !!ignoreCase, fullMatch);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGetLazy(cb, defValue) {\n return getLazy(function () {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n });\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _checkLength(value, props) {\n var result;\n arrForEach(props, function (prop) {\n if (prop in value) {\n var propValue = value[prop];\n result = (isFunction(propValue) ? propValue() : propValue) > 0;\n return -1;\n }\n });\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _hasValue(value, depth) {\n var result = value === false || value === 0;\n if (!result && !isNullOrUndefined(value)) {\n if (isArray(value)) {\n result = value[LENGTH] > 0;\n }\n else if (isDate(value)) {\n result = !isNaN(value.getTime());\n }\n else if (isBoolean(value)) {\n return true;\n }\n else if (isObject(value)) {\n try {\n var chkValue = _checkLength(value, [LENGTH, \"byteLength\", \"size\", \"count\"]);\n if (isBoolean(chkValue)) {\n return chkValue;\n }\n if (isFunction(value.valueOf) && depth < 5) {\n return _hasValue(value.valueOf(), ++depth);\n }\n }\n catch (e) {\n }\n return !!objKeys(value)[LENGTH];\n }\n else {\n result = isTruthy(value);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasValue(value) {\n return _hasValue(value, 0);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterable(ctx) {\n return makeIterable({}, ctx);\n}\nfunction makeIterable(target, ctx) {\n var itSymbol = getKnownSymbol(3 );\n function _createIterator() {\n return createIterator(ctx);\n }\n target[itSymbol] = _createIterator;\n return target;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterator(ctx) {\n var isDone = false;\n function _value() {\n return ctx.v;\n }\n function _next() {\n isDone = isDone || (ctx.n ? ctx.n(arguments) : true);\n var result = {\n done: isDone\n };\n if (!isDone) {\n objDefine(result, \"value\", { g: _value });\n }\n return result;\n }\n function _return(value) {\n isDone = true;\n return {\n done: true,\n value: ctx.r && ctx.r(value)\n };\n }\n function _throw(e) {\n isDone = true;\n return {\n done: true,\n value: ctx.t && ctx.t(e)\n };\n }\n var theIterator = {\n next: _next\n };\n if (ctx.r) {\n theIterator.return = _return;\n }\n if (ctx.t) {\n theIterator.throw = _throw;\n }\n return theIterator;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createArrayIterator(values) {\n var idx = -1;\n var theValues = values ? values.slice() : [];\n var len = theValues[LENGTH];\n function _value() {\n if (idx >= 0 && idx < len) {\n return theValues[idx];\n }\n }\n function _getNext() {\n idx++;\n return idx >= len;\n }\n var ctx = {\n n: _getNext\n };\n objDefine(ctx, \"v\", { g: _value });\n return createIterator(ctx);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createRangeIterator(start, end, step) {\n var nextValue = start;\n var theValue = UNDEF_VALUE;\n if (isNullOrUndefined(end)) {\n end = start;\n }\n var theStep = step || ((start <= end) ? 1 : -1);\n function _value() {\n return theValue;\n }\n function _getNext() {\n var isDone = false;\n if (theStep > 0) {\n isDone = nextValue > end;\n }\n else {\n isDone = nextValue < end;\n }\n if (!isDone) {\n theValue = nextValue;\n nextValue += theStep;\n }\n return isDone;\n }\n var ctx = {\n n: _getNext\n };\n objDefine(ctx, \"v\", { g: _value });\n return createIterator(ctx);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSymSplit(value, splitter, limit) {\n var splitFn = splitter && splitter[getKnownSymbol(9 )];\n return splitFn ? splitFn(value, limit) : [value];\n}\n\nvar strSplit = ( /*#__PURE__*/_unwrapFunction(\"split\", StrProto));\nvar strSymSplit = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"split\", StrProto, !hasSymbol() ? polyStrSymSplit : null));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByKey(target, path, defValue) {\n if (!path || !target) {\n return defValue;\n }\n var parts = strSplit(path, \".\");\n var cnt = parts.length;\n for (var lp = 0; lp < cnt && !isNullOrUndefined(target); lp++) {\n target = target[parts[lp]];\n }\n return (!isNullOrUndefined(target) ? target : defValue);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByIter(target, iter, defValue) {\n if (!iter || !target) {\n return defValue;\n }\n iterForOf(iter, function (value) {\n if (isNullOrUndefined(target)) {\n return -1;\n }\n target = target[value];\n });\n return (!isNullOrUndefined(target) ? target : defValue);\n}\nfunction setValueByKey(target, path, value) {\n if (target && path) {\n var parts = strSplit(path, \".\");\n var lastKey = parts.pop();\n arrForEach(parts, function (key) {\n if (isNullOrUndefined(target[key])) {\n target[key] = {};\n }\n target = target[key];\n });\n target[lastKey] = value;\n }\n}\nfunction setValueByIter(target, iter, value) {\n if (target && iter) {\n var lastKey_1;\n iterForOf(iter, function (key) {\n if (lastKey_1) {\n if (isNullOrUndefined(target[lastKey_1])) {\n target[lastKey_1] = {};\n }\n target = target[lastKey_1];\n }\n lastKey_1 = key;\n });\n target[lastKey_1] = value;\n }\n}\n\nvar strEndsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"endsWith\", StrProto, polyStrEndsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrEndsWith(value, searchString, length) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var end = !isUndefined(length) && length < value[LENGTH] ? length : value[LENGTH];\n return strSubstring(value, end - searchValue[LENGTH], end) === searchValue;\n}\n\nvar strIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", StrProto));\nvar strLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", StrProto));\n\nvar strIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", StrProto, polyStrIncludes));\nvar strContains = ( /*#__PURE__*/_pureAssign(strIncludes));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrIncludes(value, searchString, position) {\n if (isRegExp(searchString)) {\n throwTypeError(\"'searchString' must not be a regular expression\" + dumpObj(searchString));\n }\n return strIndexOf(value, asString(searchString), position) !== -1;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrWhiteSpace(value) {\n if (isString(value)) {\n return value.replace(/[\\s\\t\\r\\n\\f]+/g, EMPTY) === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrEmpty(value) {\n if (isString(value)) {\n return value === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n\nvar strStartsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"startsWith\", StrProto, polyStrStartsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrStartsWith(value, searchString, position) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var pos = position > 0 ? position : 0;\n return strSubstring(value, pos, pos + searchValue[LENGTH]) === searchValue;\n}\n\nvar REF = \"ref\";\nvar UNREF = \"unref\";\nvar HAS_REF = \"hasRef\";\nvar ENABLED = \"enabled\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTimerHandler(startTimer, refreshFn, cancelFn) {\n var ref = true;\n var timerId = startTimer ? refreshFn(NULL_VALUE) : NULL_VALUE;\n var theTimerHandler;\n function _unref() {\n ref = false;\n timerId && timerId[UNREF] && timerId[UNREF]();\n return theTimerHandler;\n }\n function _cancel() {\n timerId && cancelFn(timerId);\n timerId = NULL_VALUE;\n }\n function _refresh() {\n timerId = refreshFn(timerId);\n if (!ref) {\n _unref();\n }\n return theTimerHandler;\n }\n function _setEnabled(value) {\n !value && timerId && _cancel();\n value && !timerId && _refresh();\n }\n theTimerHandler = {\n cancel: _cancel,\n refresh: _refresh\n };\n theTimerHandler[HAS_REF] = function () {\n if (timerId && timerId[HAS_REF]) {\n return timerId[HAS_REF]();\n }\n return ref;\n };\n theTimerHandler[REF] = function () {\n ref = true;\n timerId && timerId[REF] && timerId[REF]();\n return theTimerHandler;\n };\n theTimerHandler[UNREF] = _unref;\n theTimerHandler = objDefineProp(theTimerHandler, ENABLED, {\n get: function () { return !!timerId; },\n set: _setEnabled\n });\n return {\n h: theTimerHandler,\n dn: function () {\n timerId = NULL_VALUE;\n }\n };\n}\n\nfunction _createTimeoutWith(startTimer, overrideFn, theArgs) {\n var isArr = isArray(overrideFn);\n var len = isArr ? overrideFn.length : 0;\n var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;\n var clearFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;\n var timerFn = theArgs[0];\n theArgs[0] = function () {\n handler.dn();\n fnApply(timerFn, UNDEF_VALUE, ArrSlice[CALL](arguments));\n };\n var handler = _createTimerHandler(startTimer, function (timerId) {\n if (timerId) {\n if (timerId.refresh) {\n timerId.refresh();\n return timerId;\n }\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n }\n return fnApply(setFn, UNDEF_VALUE, theArgs);\n }, function (timerId) {\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n });\n return handler.h;\n}\nfunction scheduleTimeout(callback, timeout) {\n return _createTimeoutWith(true, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction scheduleTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(true, overrideFn, ArrSlice[CALL](arguments, 1));\n}\nfunction createTimeout(callback, timeout) {\n return _createTimeoutWith(false, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction createTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(false, overrideFn, ArrSlice[CALL](arguments, 1));\n}\n\nvar _defaultIdleTimeout = 100;\nvar _maxExecutionTime = 50;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasIdleCallback() {\n return !!( /*#__PURE__*/getIdleCallback());\n}\nvar getIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"requestIdleCallback\"]));\nvar getCancelIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"cancelIdleCallback\"]));\nfunction setDefaultIdleTimeout(timeout) {\n _defaultIdleTimeout = timeout;\n}\nfunction setDefaultMaxExecutionTime(maxTime) {\n _maxExecutionTime = maxTime;\n}\nfunction scheduleIdleCallback(callback, options) {\n function _createDeadline(timedOut) {\n var startTime = perfNow();\n return {\n didTimeout: timedOut,\n timeRemaining: function () {\n return _maxExecutionTime - elapsedTime(startTime);\n }\n };\n }\n if (hasIdleCallback()) {\n var handler_1 = _createTimerHandler(true, function (idleId) {\n idleId && getCancelIdleCallback()(idleId);\n return getIdleCallback()(function (deadline) {\n handler_1.dn();\n callback(deadline || _createDeadline(false));\n }, options);\n }, function (idleId) {\n getCancelIdleCallback()(idleId);\n });\n return handler_1.h;\n }\n var timeout = (options || {}).timeout;\n if (isUndefined(timeout)) {\n timeout = _defaultIdleTimeout;\n }\n return scheduleTimeout(function () {\n callback(_createDeadline(true));\n }, timeout);\n}\n\nfunction scheduleInterval(callback, timeout) {\n var theArguments = ArrSlice[CALL](arguments);\n var handler = _createTimerHandler(true, function (intervalId) {\n intervalId && clearInterval(intervalId);\n return fnApply(setInterval, UNDEF_VALUE, theArguments);\n }, function (intervalId) {\n fnApply(clearInterval, UNDEF_VALUE, [intervalId]);\n });\n return handler.h;\n}\n\nexport { arrAppend, arrContains, arrEvery, arrFilter, arrFind, arrFindIndex, arrFindLast, arrFindLastIndex, arrForEach, arrFrom, arrIncludes, arrIndexOf, arrLastIndexOf, arrMap, arrReduce, arrSlice, arrSome, arrayDeepCopyHandler, asString, createArrayIterator, createCachedValue, createCustomError, createDeferredCachedValue, createEnum, createEnumKeyMap, createEnumValueMap, createFilenameRegex, createFnDeferredProxy, createIterable, createIterator, createProxyFuncs, createRangeIterator, createSimpleMap, createTimeout, createTimeoutWith, createTypeMap, createWildcardRegex, dateDeepCopyHandler, deepExtend, dumpObj, elapsedTime, encodeAsHtml, encodeAsJson, fnApply, fnBind, fnCall, functionDeepCopyHandler, getCancelIdleCallback, getDocument, getGlobal, getHistory, getIdleCallback, getInst, getIntValue, getKnownSymbol, getLazy, getLength, getNavigator, getPerformance, getSymbol, getValueByIter, getValueByKey, getWindow, hasDocument, hasHistory, hasIdleCallback, hasNavigator, hasPerformance, hasSymbol, hasValue, hasWindow, isArray, isArrayBuffer, isBlob, isBoolean, isDate, isDefined, isError, isFile, isFormData, isFunction, isIterable, isIterator, isNode, isNotTruthy, isNullOrUndefined, isNumber, isObject, isPlainObject, isPrimitive, isPrimitiveType, isPromise, isPromiseLike, isRegExp, isStrictNullOrUndefined, isStrictUndefined, isString, isSymbol, isThenable, isTruthy, isTypeof, isUndefined, isWebWorker, iterForOf, lazySafeGetInst, makeGlobRegex, makeIterable, mathCeil, mathFloor, mathMax, mathMin, mathToInt, mathTrunc, newSymbol, normalizeJsName, objAssign, objCopyProps, objCreate, objDeepCopy, objDeepFreeze, objDefine, objDefineAccessors, objDefineGet, objDefineProp, objDefineProperties, objDefineProps, objEntries, objExtend, objForEachKey, objFreeze, objGetOwnPropertyDescriptor, objGetPrototypeOf, objHasOwn, objHasOwnProperty, objKeys, objSeal, objSetPrototypeOf, objToString, perfNow, plainObjDeepCopyHandler, polyArrFind, polyArrFindIndex, polyArrFindLast, polyArrFindLastIndex, polyArrFrom, polyArrIncludes, polyGetKnownSymbol, polyIsArray, polyNewSymbol, polyObjEntries, polyObjHasOwn, polyObjKeys, polyStrIncludes, polyStrSubstr, polyStrSymSplit, polyStrTrim, polyStrTrimEnd, polyStrTrimStart, polySymbolFor, polySymbolKeyFor, polyUtcNow, readArgs, safe, safeGet, safeGetLazy, scheduleIdleCallback, scheduleInterval, scheduleTimeout, scheduleTimeoutWith, setBypassLazyCache, setDefaultIdleTimeout, setDefaultMaxExecutionTime, setValueByIter, setValueByKey, strCamelCase, strContains, strEndsWith, strIncludes, strIndexOf, strIsNullOrEmpty, strIsNullOrWhiteSpace, strKebabCase, strLastIndexOf, strLeft, strLetterCase, strLower, strPadEnd, strPadStart, strRepeat, strRight, strSlice, strSnakeCase, strSplit, strStartsWith, strSubstr, strSubstring, strSymSplit, strTrim, strTrimEnd, strTrimLeft, strTrimRight, strTrimStart, strUpper, symbolFor, symbolKeyFor, throwError, throwRangeError, throwTypeError, throwUnsupported, utcNow };\n//# sourceMappingURL=ts-utils.js.map\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { getGlobal, objCreate, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && objHasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = objCreate(null);\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = objCreate(null);\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && objHasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || objCreate(null);\r\n instFunc = (instFuncTable[proto[DynClassName]] || objCreate(null))[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !objHasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || objCreate(null);\r\n if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || objCreate(null)); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n if (!_isObjectOrArrayPrototype(instFuncs_1)) {\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!objHasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (objHasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { ObjClass, ObjProto, strDefault, strShimFunction, strShimPrototype } from \"./Constants\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = objAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 11\r\nexport var _DYN_BLK_VAL = \"blkVal\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 51\r\nexport var _DYN_RD_ONLY = \"rdOnly\"; // Count: 4\r\nexport var _DYN_NOTIFY = \"notify\"; // Count: 4\r\nexport var _DYN_WARN_TO_CONSOLE = \"warnToConsole\"; // Count: 4\r\nexport var _DYN_THROW_INTERNAL = \"throwInternal\"; // Count: 5\r\nexport var _DYN_SET_DF = \"setDf\"; // Count: 6\r\nexport var _DYN_WATCH = \"watch\"; // Count: 8\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 21\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 32\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_HDLR = \"hdlr\"; // Count: 6\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 6\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 5\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_REMOVE_NOTIFICATION_0 = \"removeNotificationListener\"; // Count: 4\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 6\r\nexport var _DYN_POLL_INTERNAL_LOGS = \"pollInternalLogs\"; // Count: 2\r\nexport var _DYN_NAME = \"name\"; // Count: 12\r\nexport var _DYN_TIME = \"time\"; // Count: 6\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT2 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_ENABLED = \"enabled\"; // Count: 6\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_UNLOAD = \"unload\"; // Count: 9\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_LOGGING_LEVEL_CONSOL4 = \"loggingLevelConsole\"; // Count: 2\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 7\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 9\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 7\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 10\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 5\r\nexport var _DYN_UPDATE = \"update\"; // Count: 6\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_PROTOCOL = \"protocol\"; // Count: 3\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 7\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 9\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_STATUS = \"status\"; // Count: 5\r\nexport var _DYN_GET_RESPONSE_HEADER = \"getResponseHeader\"; // Count: 2\r\nexport var _DYN_GET_ALL_RESPONSE_HEA5 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 7\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_URL_STRING = \"urlString\"; // Count: 5\r\nexport var _DYN_SEND_POST = \"sendPOST\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 5\r\nexport var _DYN_TIMEOUT = \"timeout\"; // Count: 6\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 2\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_OFFLINE_STORE = \"offlineEventsStored\";\r\nexport var STR_OFFLINE_SENT = \"offlineBatchSent\";\r\nexport var STR_OFFLINE_DROP = \"offlineBatchDrop\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isNumber, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_GET_ALL_RESPONSE_HEA5, _DYN_GET_RESPONSE_HEADER, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE, _DYN_SPLIT, _DYN_STATUS, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\nexport function isFeatureEnabled(feature, cfg) {\r\n var rlt = false;\r\n var ft = cfg && cfg.featureOptIn && cfg.featureOptIn[feature];\r\n if (feature && ft) {\r\n var mode = ft.mode;\r\n // NOTE: None will be considered as true\r\n rlt = (mode == 3 /* FeatureOptInMode.enable */) || (mode == 1 /* FeatureOptInMode.none */);\r\n }\r\n return rlt;\r\n}\r\nexport function getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nexport function formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n}\r\nexport function formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr[_DYN_STATUS /* @min:%2estatus */] + \",Response:\" + getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n}\r\nexport function prependTransports(theTransports, newTransports) {\r\n if (newTransports) {\r\n if (isNumber(newTransports)) {\r\n theTransports = [newTransports].concat(theTransports);\r\n }\r\n else if (isArray(newTransports)) {\r\n theTransports = newTransports.concat(theTransports);\r\n }\r\n }\r\n return theTransports;\r\n}\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\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/**\r\n* Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n* @internal\r\n*/\r\n// tslint:disable-next-line: align\r\nexport function convertAllHeadersToMap(headersString) {\r\n var headers = {};\r\n if (isString(headersString)) {\r\n var headersArray = strTrim(headersString)[_DYN_SPLIT /* @min:%2esplit */](/[\\r\\n]+/);\r\n arrForEach(headersArray, function (headerEntry) {\r\n if (headerEntry) {\r\n var idx = headerEntry.indexOf(\": \");\r\n if (idx !== -1) {\r\n // The new spec has the headers returning all as lowercase -- but not all browsers do this yet\r\n var header = strTrim(headerEntry.substring(0, idx))[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = strTrim(headerEntry.substring(idx + 1));\r\n headers[header] = value;\r\n }\r\n else {\r\n headers[strTrim(headerEntry)] = 1;\r\n }\r\n }\r\n });\r\n }\r\n return headers;\r\n}\r\n/**\r\n* append the XHR headers.\r\n* @internal\r\n*/\r\nexport function _appendHeader(theHeaders, xhr, name) {\r\n if (!theHeaders[name] && xhr && xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */]) {\r\n var value = xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */](name);\r\n if (value) {\r\n theHeaders[name] = strTrim(value);\r\n }\r\n }\r\n return theHeaders;\r\n}\r\nvar STR_KILL_DURATION_HEADER = \"kill-duration\";\r\nvar STR_KILL_DURATION_SECONDS_HEADER = \"kill-duration-seconds\";\r\nvar STR_TIME_DELTA_HEADER = \"time-delta-millis\";\r\n/**\r\n* get the XHR getAllResponseHeaders.\r\n* @internal\r\n*/\r\nexport function _getAllResponseHeaders(xhr, isOneDs) {\r\n var theHeaders = {};\r\n if (!xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]) {\r\n // Firefox 2-63 doesn't have getAllResponseHeaders function but it does have getResponseHeader\r\n // Only call these if getAllResponseHeaders doesn't exist, otherwise we can get invalid response errors\r\n // as collector is not currently returning the correct header to allow JS to access these headers\r\n if (!!isOneDs) {\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);\r\n }\r\n }\r\n else {\r\n theHeaders = convertAllHeadersToMap(xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]());\r\n }\r\n return theHeaders;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isFunction, isString, isUndefined, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getInst(strConsole);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (strIndexOf(ua, \"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported(useCached) {\r\n if (_beaconsSupported === null || useCached === false) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getInst(\"fetch\");\r\n var request = getInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n var event = null;\r\n var detail = { detail: details || null };\r\n if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n event = new CustomEvent(eventName, detail);\r\n }\r\n else { // CustomEvent has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventName, true, true, detail);\r\n }\r\n }\r\n return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n var global = getGlobal();\r\n if (global && global.CustomEvent) {\r\n try {\r\n var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\nvar SEED1 = 123456789;\r\nvar SEED2 = 987654321;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = SEED1;\r\nvar _mwcZ = SEED2;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (SEED1 + seedValue) & MaxUInt32;\r\n _mwcZ = (SEED2 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = utcNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.2.1';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n objDefine(target, data.id, {\r\n e: false,\r\n v: theCache\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BLK_VAL, _DYN_LENGTH, _DYN_RD_ONLY } from \"../__DynamicConstants\";\r\nfunction _isConfigDefaults(value) {\r\n return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, \"v\") || objHasOwn(value, \"mrg\") || objHasOwn(value, \"ref\") || value.set));\r\n}\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else if (dynamicHandler) {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Recursively resolve the default value\r\n * @param dynamicHandler\r\n * @param theConfig\r\n * @param cfgDefaults\r\n * @returns\r\n */\r\nfunction _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {\r\n var theValue = cfgDefaults;\r\n if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {\r\n theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n if (theValue) {\r\n if (_isConfigDefaults(theValue)) {\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);\r\n }\r\n var newValue_1;\r\n if (isArray(theValue)) {\r\n newValue_1 = [];\r\n newValue_1[_DYN_LENGTH /* @min:%2elength */] = theValue[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(theValue)) {\r\n newValue_1 = {};\r\n }\r\n if (newValue_1) {\r\n objForEachKey(theValue, function (key, value) {\r\n if (value && _isConfigDefaults(value)) {\r\n value = _resolveDefaultValue(dynamicHandler, theConfig, value);\r\n }\r\n newValue_1[key] = value;\r\n });\r\n theValue = newValue_1;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n var mergeDf;\r\n var reference;\r\n var readOnly;\r\n var blkDynamicValue;\r\n if (_isConfigDefaults(cfgDefaults)) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n readOnly = cfgDefaults[_DYN_RD_ONLY /* @min:%2erdOnly */];\r\n blkDynamicValue = cfgDefaults[_DYN_BLK_VAL /* @min:%2eblkVal */];\r\n mergeDf = cfgDefaults.mrg;\r\n reference = cfgDefaults.ref;\r\n if (!reference && isUndefined(reference)) {\r\n reference = !!mergeDf;\r\n }\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n if (blkDynamicValue) {\r\n // Mark the property so that any value assigned will be blocked from conversion, we need to do this\r\n // before assigning or fetching the value to ensure it's not converted\r\n dynamicHandler[_DYN_BLK_VAL /* @min:%2eblkVal */](theConfig, name);\r\n }\r\n // Set the value to the default value;\r\n var theValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (!usingDefault) {\r\n if (isPlainObject(theValue) || isArray(defValue)) {\r\n // we are using the user supplied value and it's an object\r\n if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defValue, function (dfName, dfValue) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);\r\n });\r\n }\r\n }\r\n }\r\n else if (defValue) {\r\n // Just resolve the default\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);\r\n }\r\n else {\r\n theValue = defValue;\r\n }\r\n // if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n // theValue = _cfgDeepCopy(theValue);\r\n // }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n if (reference) {\r\n dynamicHandler.ref(theConfig, name);\r\n }\r\n if (readOnly) {\r\n dynamicHandler[_DYN_RD_ONLY /* @min:%2erdOnly */](theConfig, name);\r\n }\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Mark the provided value so that if it's included into the configuration it will NOT have\r\n * its properties converted into a dynamic (reactive) object. If the object is not a plain object\r\n * or an array (ie. a class) this function has not affect as only Objects and Arrays are converted\r\n * into dynamic objects in the dynamic configuration.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * You should only need to use this function, if you are creating dynamic \"classes\" from objects\r\n * which confirm to the require interface. A common case for this is during unit testing where it's\r\n * easier to create mock extensions.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed\r\n *\r\n * @example\r\n * ```ts\r\n * // This is a valid \"extension\", but it is technically an object\r\n * // So when included in the config.extensions it WILL be cloned and then\r\n * // converted into a dynamic object, where all of its properties will become\r\n * // get/set object properties and will be tracked. While this WILL still\r\n * // function, when attempt to use a mocking framework on top of this the\r\n * // functions are now technically get accessors which return a function\r\n * // and this can cause some mocking frameworks to fail.\r\n * let mockChannel = {\r\n * pause: () => { },\r\n* resume: () => { },\r\n* teardown: () => { },\r\n* flush: (async: any, callBack: any) => { },\r\n* processTelemetry: (env: any) => { },\r\n* setNextPlugin: (next: any) => { },\r\n* initialize: (config: any, core: any, extensions: any) => { },\r\n* identifier: \"testChannel\",\r\n* priority: 1003\r\n* };\r\n * ```\r\n * @param value - The object that you want to block from being converted into a\r\n * trackable dynamic object\r\n * @returns The original value\r\n */\r\nexport function blockDynamicConversion(value) {\r\n if (value && (isPlainObject(value) || isArray(value))) {\r\n try {\r\n value[BLOCK_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is the reverse case of {@link blockDynamicConversion} in that this will tag an\r\n * object to indicate that it should always be converted into a dynamic trackable object\r\n * even when not an object or array. So all properties of this object will become\r\n * get / set accessor functions.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed.\r\n * @param value - The object that should be tagged and converted if included into a dynamic\r\n * configuration.\r\n * @returns The original value\r\n */\r\nexport function forceDynamicConversion(value) {\r\n if (value) {\r\n try {\r\n value[FORCE_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to check whether an object can or should be converted into a dynamic\r\n * object.\r\n * @param value - The object to check whether it should be converted\r\n * @returns `true` if the value should be converted otherwise `false`.\r\n */\r\nexport function _canMakeDynamic(getFunc, state, value) {\r\n var result = false;\r\n // Object must exist and be truthy\r\n if (value && !getFunc[state.blkVal]) {\r\n // Tagged as always convert\r\n result = value[FORCE_DYNAMIC];\r\n // Check that it's not explicitly tagged as blocked\r\n if (!result && !value[BLOCK_DYNAMIC]) {\r\n // Only convert plain objects or arrays by default\r\n result = isPlainObject(value) || isArray(value);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n//# sourceMappingURL=DynamicSupport.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_HDLR, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, _canMakeDynamic, blockDynamicConversion, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nexport var _throwDynamicError = function (logger, name, desc, e) {\r\n logger && logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](3 /* eLoggingSeverity.DEBUG */, 108 /* _eInternalMessageId.DynamicConfigException */, \"\".concat(desc, \" [\").concat(name, \"] failed - \") + dumpObj(e));\r\n};\r\nfunction _patchArray(state, target, name) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target, name, \"Patching\");\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _getOwnPropGetter(target, name) {\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n return propDesc && propDesc.get;\r\n}\r\nfunction _createDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n trk: function (handler) {\r\n if (handler && handler.fn) {\r\n if (arrIndexOf(detail.h, handler) === -1) {\r\n // Add this handler to the collection that should be notified when the value changes\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n state.trk(handler, detail);\r\n }\r\n },\r\n clr: function (handler) {\r\n var idx = arrIndexOf(detail.h, handler);\r\n if (idx !== -1) {\r\n detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n var isObjectOrArray = false;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n // Make sure that if it's an object that we make it dynamic\r\n if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value, name, \"Converting\");\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.trk(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n _getProperty[state.prop] = {\r\n chng: function () {\r\n state.add(detail);\r\n }\r\n };\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_getProperty[state.ro] && !state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is read-only:\" + dumpObj(theConfig));\r\n }\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n checkDynamic = false;\r\n }\r\n // The value must be a plain object or an array to enforce the reference (in-place updates)\r\n var isReferenced = isObjectOrArray && _getProperty[state.rf];\r\n if (isObjectOrArray) {\r\n // We are about to replace a plain object or an array\r\n if (isReferenced) {\r\n // Reassign the properties from the current value to the same properties from the newValue\r\n // This will set properties not in the newValue to undefined\r\n objForEachKey(value, function (key) {\r\n value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;\r\n });\r\n // Now assign / re-assign value with all of the keys from newValue\r\n try {\r\n objForEachKey(newValue, function (key, theValue) {\r\n _setDynamicProperty(state, value, key, theValue);\r\n });\r\n // Now drop newValue so when we assign value later it keeps the existing reference\r\n newValue = value;\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Assigning\", e);\r\n // Mark as not an object or array so we don't try and do this again\r\n isObjectOrArray = false;\r\n }\r\n }\r\n else if (value && value[CFG_HANDLER_LINK]) {\r\n // As we are replacing the value, if it's already dynamic then we need to notify the listeners\r\n // for every property it has already\r\n objForEachKey(value, function (key) {\r\n // Check if the value is dynamic\r\n var getter = _getOwnPropGetter(value, key);\r\n if (getter) {\r\n // And if it is tell it's listeners that the value has changed\r\n var valueState = getter[state.prop];\r\n valueState && valueState.chng();\r\n }\r\n });\r\n }\r\n }\r\n if (newValue !== value) {\r\n var newIsObjectOrArray = newValue && _canMakeDynamic(_getProperty, state, newValue);\r\n if (!isReferenced && newIsObjectOrArray) {\r\n // As the newValue is an object/array lets preemptively make it dynamic\r\n newValue = _makeDynamicObject(state, newValue, name, \"Converting\");\r\n }\r\n // Now assign the internal \"value\" to the newValue\r\n value = newValue;\r\n isObjectOrArray = newIsObjectOrArray;\r\n }\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n if (!isDynamic) {\r\n _createDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _setDynamicPropertyState(state, target, name, flags) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n var inPlace = flags && flags[0 /* _eSetDynamicPropertyFlags.inPlace */];\r\n var rdOnly = flags && flags[1 /* _eSetDynamicPropertyFlags.readOnly */];\r\n var blkProp = flags && flags[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */];\r\n if (!isDynamic) {\r\n if (blkProp) {\r\n try {\r\n // Attempt to mark the target as blocked from conversion\r\n blockDynamicConversion(target);\r\n }\r\n catch (e) {\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Blocking\", e);\r\n }\r\n }\r\n try {\r\n // Make sure it's dynamic so that we can tag the property as per the state\r\n _setDynamicProperty(state, target, name, target[name]);\r\n getter = _getOwnPropGetter(target, name);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"State\", e);\r\n }\r\n }\r\n // Assign the optional flags if true\r\n if (inPlace) {\r\n getter[state.rf] = inPlace;\r\n }\r\n if (rdOnly) {\r\n getter[state.ro] = rdOnly;\r\n }\r\n if (blkProp) {\r\n getter[state.blkVal] = true;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _makeDynamicObject(state, target, name, desc) {\r\n try {\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, {\r\n get: function () {\r\n return state[_DYN_HDLR /* @min:%2ehdlr */];\r\n }\r\n });\r\n _patchArray(state, target, name);\r\n }\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, desc, e);\r\n }\r\n return target;\r\n}\r\n//# sourceMappingURL=DynamicProperty.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n if (!aggregationErrorType) {\r\n aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n // Save the provided errors\r\n self.errors = args[1];\r\n }\r\n });\r\n }\r\n var theMessage = message || \"One or more errors occurred.\";\r\n arrForEach(sourceErrors, function (srcError, idx) {\r\n theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n });\r\n throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n//# sourceMappingURL=AggregationError.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_BLK_VAL, _DYN_CANCEL, _DYN_HDLR, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var _a;\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReferenced = newSymbol(symPrefix + \"rf\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyBlockValue = newSymbol(symPrefix + \"blkVal\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n detail.clr(activeHandler);\r\n });\r\n activeHandler[dynamicPropertyDetail] = [];\r\n }\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler),\r\n ref: cfgHandler.ref.bind(cfgHandler),\r\n rdOnly: cfgHandler[_DYN_RD_ONLY /* @min:%2erdOnly */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer && _watcherTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _watcherTimer = null;\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n if (handler) {\r\n if (handler[dynamicPropertyDetail]) {\r\n arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n // Clear out this handler from previously tracked details, so that access are re-evaluated\r\n detail.clr(handler);\r\n });\r\n handler[dynamicPropertyDetail] = null;\r\n }\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n var handler = detail.h[idx];\r\n // Add this handler to the collection of handlers to re-execute\r\n if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n }\r\n }\r\n function _trackHandler(handler, detail) {\r\n if (handler) {\r\n var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n if (arrIndexOf(details, detail) === -1) {\r\n // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n details[_DYN_PUSH /* @min:%2epush */](detail);\r\n }\r\n }\r\n }\r\n theState = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n rf: dynamicPropertyReferenced\r\n },\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = dynamicPropertyBlockValue,\r\n _a[_DYN_HDLR /* @min:hdlr */] = cfgHandler,\r\n _a.add = _addWatcher,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a.trk = _trackHandler,\r\n _a);\r\n return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_LOGGER, _DYN_NOTIFY, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WARN_TO_CONSOLE, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty, _setDynamicPropertyState, _throwDynamicError } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n objDefine(handler, \"toJSON\", { v: function () { return \"WatcherHandler\" + (handler.fn ? \"\" : \"[X]\"); } });\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n try {\r\n target = _setDynamicProperty(theState, target, name, value);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError(logger, name, \"Setting value\", e);\r\n }\r\n return target[name];\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler, allowUpdate) {\r\n theState.use(null, function (details) {\r\n var prevUpd = theState.upd;\r\n try {\r\n if (!isUndefined(allowUpdate)) {\r\n theState.upd = allowUpdate;\r\n }\r\n configHandler(details);\r\n }\r\n finally {\r\n theState.upd = prevUpd;\r\n }\r\n });\r\n }\r\n function _ref(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as referenced with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[0 /* _eSetDynamicPropertyFlags.inPlace */] = true, _a))[name];\r\n }\r\n function _rdOnly(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[1 /* _eSetDynamicPropertyFlags.readOnly */] = true, _a))[name];\r\n }\r\n function _blkPropValue(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */] = true, _a))[name];\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a.ref = _ref,\r\n _a[_DYN_RD_ONLY /* @min:rdOnly */] = _rdOnly,\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = _blkPropValue,\r\n _a._block = _block,\r\n _a);\r\n objDefine(cfgHandler, \"uid\", {\r\n c: false,\r\n e: false,\r\n w: false,\r\n v: uid\r\n });\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget, \"config\", \"Creating\");\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n return createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n//# sourceMappingURL=DynamicConfig.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE, _DYN_THROW_INTERNAL, _DYN_UNLOAD, _DYN_WARN_TO_CONSOLE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar defaultValues = {\r\n loggingLevelConsole: 0,\r\n loggingLevelTelemetry: 1,\r\n maxMessageLimit: 25,\r\n enableDebug: false\r\n};\r\nvar _logFuncs = (_a = {},\r\n _a[0 /* eLoggingSeverity.DISABLED */] = null,\r\n _a[1 /* eLoggingSeverity.CRITICAL */] = \"errorToConsole\",\r\n _a[2 /* eLoggingSeverity.WARNING */] = STR_WARN_TO_CONSOLE,\r\n _a[3 /* eLoggingSeverity.DEBUG */] = \"debugToConsole\",\r\n _a);\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n var _unloadHandler;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _unloadHandler = _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n _self[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */] = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n _self.debugToConsole = function (message) {\r\n _logToConsole(\"debug\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n _unloadHandler && _unloadHandler.rm();\r\n _unloadHandler = null;\r\n };\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n // make sure the config is dynamic\r\n return onConfigChange(createDynamicConfig(config, defaultValues, _self).cfg, function (details) {\r\n var config = details.cfg;\r\n _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */];\r\n _loggingLevelTelemetry = config.loggingLevelTelemetry;\r\n _maxInternalMessageLimit = config.maxMessageLimit;\r\n _enableDebug = config.enableDebug;\r\n });\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.debugToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n// Removed Stub for DiagnosticLogger.prototype.unload.\r\n // This is a workaround for an IE 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 DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger)[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\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\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 6\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_PUSH = \"push\"; // Count: 5\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 8\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_PUSH, _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\nvar _storagePrefix = \"\";\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n var name_1 = _storagePrefix + uid;\r\n storage.setItem(name_1, uid);\r\n var fail = storage.getItem(name_1) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name_1);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlSetStoragePrefix(storagePrefix) {\r\n _storagePrefix = storagePrefix || \"\";\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys[_DYN_PUSH /* @min:%2epush */](key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes, EventPersistence } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage, utlSetStoragePrefix } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport { createOfflineListener } from \"./Offline\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(asString(name));\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(asString(value));\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = strSubstring(value, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(asString(input));\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = strSubstring(input, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights.<instrumentation key>.PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights.<instrumentation key>.PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getWindow, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_PUSH, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"<no_method>\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack[_DYN_PUSH /* @min:%2epush */](entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (getWindow() && getWindow()[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack[_DYN_PUSH /* @min:%2epush */](parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (id) {\r\n properties.id = id;\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n exception[_DYN_PROPERTIES /* @min:%2eproperties */].id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) {\r\n frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]);\r\n frame[_DYN_FILE_NAME /* @min:%2efileName */] = dataSanitizeString(logger, frame[_DYN_FILE_NAME /* @min:%2efileName */]);\r\n });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_SPAN_ID, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n if (value.indexOf(\",\") !== -1) {\r\n var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== _correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROTOCOL, _DYN_SET_DF, _DYN_SPLIT, _DYN_UNLOAD, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n cookieCfg: cfgDfMerge((_b = {},\r\n _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n _b.enabled = UNDEFINED_VALUE,\r\n _b.ignoreCookies = UNDEFINED_VALUE,\r\n _b.blockedCookies = UNDEFINED_VALUE,\r\n _b)),\r\n cookieDomain: UNDEFINED_VALUE,\r\n cookiePath: UNDEFINED_VALUE\r\n },\r\n _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n _a);\r\nfunction _getDoc() {\r\n !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n if (isNullOrUndefined(isCfgEnabled)) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n // This field is deprecated and dynamic updates will not be fully supported\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n // If this value is defined it takes precedent over the above\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n // So future \"updates\" then may not be as expected\r\n isCfgEnabled = cookieEnabled;\r\n }\r\n return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig;\r\n var _path;\r\n var _domain;\r\n var unloadHandler;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled;\r\n var _getCookieFn;\r\n var _setCookieFn;\r\n var _delCookieFn;\r\n // Make sure the root config is dynamic as it may be the global config\r\n rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n // Will get recalled if the referenced configuration is changed\r\n unloadHandler = onConfigChange(rootConfig, function (details) {\r\n // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n details[_DYN_SET_DF /* @min:%2esetDf */](details.cfg, rootDefaultConfig);\r\n // Create and apply the defaults to the cookieCfg element\r\n cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n }, logger);\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = strIndexOf(theValue, \";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(strLeft(value, idx));\r\n values = _extractParts(strSubstring(value, idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = utcNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1[_DYN_PROTOCOL /* @min:%2eprotocol */] === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[STR_PATH] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n },\r\n _a[_DYN_UNLOAD /* @min:unload */] = function (isAsync) {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n !_doc && _getDoc();\r\n try {\r\n var doc = _doc.v || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = strIndexOf(thePart, \"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param str\r\n * @param defaultValue\r\n * @returns\r\n */\r\nfunction _stringToBoolOrDefault(theValue, defaultValue, theConfig) {\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n return defaultValue;\r\n }\r\n if (isBoolean(theValue)) {\r\n return theValue;\r\n }\r\n return asString(theValue)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the field defined as an object\r\n * that should be merged\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfMerge(defaultValue) {\r\n return {\r\n mrg: true,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field set function\r\n * @param setter - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfSet(setter, defaultValue) {\r\n return {\r\n set: setter,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field validator\r\n * @param validator - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfValidate(validator, defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n isVal: validator,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user\r\n * provided value to a boolean from a string or boolean value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBoolean(defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n set: _stringToBoolOrDefault,\r\n v: !!defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfFunc(defaultValue) {\r\n return {\r\n isVal: isFunction,\r\n v: defaultValue || null\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfString(defaultValue) {\r\n return {\r\n isVal: isString,\r\n v: asString(defaultValue || STR_EMPTY)\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance identifying that value associated with this property\r\n * should not have it's properties converted into a dynamic config properties.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBlockPropValue(defaultValue) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = true,\r\n _a.v = defaultValue,\r\n _a;\r\n}\r\n//# sourceMappingURL=ConfigDefaultHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName - {string} - The name of the event\r\n * @param callback - {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n _self.start = utcNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n objDefine(_self, \"payload\", {\r\n g: function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n }\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = utcNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE 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 PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config - The current config for the instance\r\n * @param core - THe current core instance\r\n * @param extensions - The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] && thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n pluginState = _getPluginState(thePlugin);\r\n var isInitialized = !!pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n if (thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE /* @min:%2ecore */]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extend from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = extB[STR_PROCESS_TELEMETRY];\r\n if (extA[STR_PROCESS_TELEMETRY]) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_DF, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core.config || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param dynamicHandler\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (!dynamicHandler) {\r\n dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, dynamicHandler.cfg);\r\n },\r\n getCfg: function () {\r\n return dynamicHandler.cfg;\r\n },\r\n getExtCfg: _resolveExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func.call(completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, createIfMissing) {\r\n var idCfg = null;\r\n var cfg = dynamicHandler.cfg;\r\n if (cfg && identifier) {\r\n var extCfg = cfg[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (!extCfg && createIfMissing) {\r\n extCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n cfg[STR_EXTENSION_CONFIG] = extCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);\r\n if (extCfg) {\r\n idCfg = extCfg[identifier];\r\n if (!idCfg && createIfMissing) {\r\n idCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n extCfg[identifier] = idCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n idCfg = dynamicHandler.ref(extCfg, identifier);\r\n }\r\n }\r\n return idCfg;\r\n }\r\n function _resolveExtCfg(identifier, defaultValues) {\r\n var newConfig = _getExtCfg(identifier, true);\r\n if (defaultValues) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config or use the default value\r\n objForEachKey(defaultValues, function (field, defaultValue) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig[field])) {\r\n var cfgValue = dynamicHandler.cfg[field];\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n newConfig[field] = cfgValue;\r\n }\r\n }\r\n _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);\r\n });\r\n }\r\n return dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](newConfig, defaultValues);\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, false);\r\n var rootConfig = dynamicHandler.cfg;\r\n if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {\r\n theValue = extConfig[field];\r\n }\r\n else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {\r\n theValue = rootConfig[field];\r\n }\r\n return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {\r\n var config = createDynamicConfig(cfg);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n if (nextPlugin) {\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n }\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config.cfg, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin[_DYN_UNLOAD /* @min:%2eunload */](context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nvar _maxHooks;\r\nvar _hookAddMonitor;\r\n/**\r\n * Test hook for setting the maximum number of unload hooks and calling a monitor function when the hooks are added or removed\r\n * This allows for automatic test failure when the maximum number of unload hooks is exceeded\r\n * @param maxHooks - The maximum number of unload hooks\r\n * @param addMonitor - The monitor function to call when hooks are added or removed\r\n */\r\nexport function _testHookMaxUnloadHooksCb(maxHooks, addMonitor) {\r\n _maxHooks = maxHooks;\r\n _hookAddMonitor = addMonitor;\r\n}\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n var _hooks = [];\r\n function _doUnload(logger) {\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all registered unload hooks\r\n arrForEach(oldHooks, function (fn) {\r\n // allow either rm or remove callback function\r\n try {\r\n (fn.rm || fn.remove).call(fn);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n }\r\n });\r\n if (_maxHooks && oldHooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"doUnload\", oldHooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\r\n if (_maxHooks && _hooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"Add\", _hooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n }\r\n return {\r\n run: _doUnload,\r\n add: _addHook\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHookContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT2, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { isNotNullOrUndefined, proxyFunctionAs } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\nvar defaultValues = (_a = {},\r\n _a[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },\r\n _a);\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hookContainer;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]());\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n proxyFunctionAs(_self, \"_addHook\", function () { return _hookContainer; }, \"add\");\r\n objDefine(_self, \"_unloadHooks\", { g: function () { return _hookContainer; } });\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n // Make sure the extensionConfig exists and the config is dynamic\r\n createDynamicConfig(config, defaultValues, safeGetLogger(core));\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE 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 BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getInst, objHasOwnProperty } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { _getObjProto } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n var owner = null;\r\n if (target) {\r\n if (objHasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB0 = \"isStorageUseDisabled\"; // Count: 3\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 6\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 3\r\nexport var _DYN_DURATION = \"duration\"; // Count: 12\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO3 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P4 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER5 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI6 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA7 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D8 = \"overridePageViewDuration\"; // Count: 2\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI9 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC10 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR11 = \"enableAutoRouteTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_UNHANDLED_PRO12 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 2\r\nexport var _DYN_AUTO_UNHANDLED_PROMI13 = \"autoUnhandledPromiseInstrumented\"; // Count: 3\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 5\r\nexport var _DYN_IS_PERFORMANCE_TIMIN14 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI15 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT16 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN17 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM18 = \"pageVisitStartTime\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPerformance, isUndefined, isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var queueTimer = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var firstPageViewSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync, function () {\r\n // Event flushed, callback added to prevent promise creation\r\n });\r\n }\r\n }\r\n function _startTimer() {\r\n if (!queueTimer) {\r\n queueTimer = scheduleTimeout((function () {\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _startTimer();\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n _startTimer();\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (!firstPageViewSent) {\r\n var perf = getPerformance();\r\n // Access the performance timing object\r\n var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */] && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\"));\r\n // Edge Case the navigation Entries may return an empty array and the timeOrigin is not supported on IE\r\n if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {\r\n // Get the value of loadEventStart\r\n var loadEventStart = navigationEntries[0].loadEventStart;\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(perf.timeOrigin + loadEventStart);\r\n }\r\n else {\r\n // calculate the start time manually\r\n var duration_1 = ((customProperties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration_1);\r\n }\r\n firstPageViewSent = true;\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n if (!isWebWorker()) {\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n }\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (queueTimer) {\r\n queueTimer.cancel();\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE 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 PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || strIndexOf(userAgent.toLowerCase(), botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming[_DYN_START_TIME /* @min:%2estartTime */] === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME /* @min:%2estartTime */], navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE 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 PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, utlDisableStorage, utlEnableStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, cfgDfBoolean, cfgDfSet, cfgDfString, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, onConfigChange, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isError, objDeepFreeze, objDefine, scheduleTimeout, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA7, _DYN_AUTO_TRACK_PAGE_VISI9, _DYN_AUTO_UNHANDLED_PROMI13, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DURATION, _DYN_ENABLE_AUTO_ROUTE_TR11, _DYN_ENABLE_UNHANDLED_PRO12, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC10, _DYN_IS_STORAGE_USE_DISAB0, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_OVERRIDE_PAGE_VIEW_D8, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_EXCEPTION_INTER5, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_START_TIME, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_1, _DYN__ADD_HOOK, _DYN__CREATE_AUTO_EXCEPTI6, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nvar defaultValues = objDeepFreeze((_a = {\r\n sessionRenewalMs: cfgDfSet(_chkConfigMilliseconds, 30 * 60 * 1000),\r\n sessionExpirationMs: cfgDfSet(_chkConfigMilliseconds, 24 * 60 * 60 * 1000),\r\n disableExceptionTracking: cfgDfBoolean()\r\n },\r\n _a[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:autoTrackPageVisitTime */] = cfgDfBoolean(),\r\n _a[_DYN_OVERRIDE_PAGE_VIEW_D8 /* @min:overridePageViewDuration */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:enableUnhandledPromiseRejectionTracking */] = cfgDfBoolean(),\r\n _a[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:autoUnhandledPromiseInstrumented */] = false,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_IS_STORAGE_USE_DISAB0 /* @min:isStorageUseDisabled */] = cfgDfBoolean(),\r\n _a[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:isBrowserLinkTrackingEnabled */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:enableAutoRouteTracking */] = cfgDfBoolean(),\r\n _a.namePrefix = cfgDfString(),\r\n _a.enableDebug = cfgDfBoolean(),\r\n _a.disableFlushOnBeforeUnload = cfgDfBoolean(),\r\n _a.disableFlushOnUnload = cfgDfBoolean(false, \"disableFlushOnBeforeUnload\"),\r\n _a));\r\nfunction _chkConfigMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return +value;\r\n}\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n var _extConfig;\r\n var _autoTrackPageVisitTime;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param metric - input object argument. Only name and average are mandatory.\r\n * @param } customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry - The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView - Page view item to be sent\r\n * @param properties - Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties - System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n if (isNullOrUndefined(pageView[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n // calculate the start time manually\r\n var duration = ((properties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration);\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name - A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n // Adding additional edge cases to handle\r\n // - Not passing anything (null / undefined)\r\n var theError = (exception && (exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n isError(exception) && exception ||\r\n // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n // is preserved and does not list ApplicationInsights code as the source\r\n { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n exception = exception || {};\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception[_DYN_PROPERTIES /* @min:%2eproperties */] || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param exception - Object which contains exception to be sent\r\n * @param } customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n _populateDefaults(config);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking();\r\n _updateLocationChange();\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self[_DYN_CORE /* @min:%2ecore */];\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extConfig = ctx.getExtCfg(identifier, defaultValues);\r\n _autoTrackPageVisitTime = _extConfig[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:%2eautoTrackPageVisitTime */];\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _updateStorageUsage(_extConfig);\r\n // _updateBrowserLinkTracking\r\n _isBrowserLinkTrackingEnabled = _extConfig[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }));\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milliseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && strIndexOf(remoteData.target, browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](_self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests));\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking() {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _disableExceptionTracking = _extConfig.disableExceptionTracking;\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n }));\r\n _addUnhandledPromiseRejectionTracking(_window, locn);\r\n }\r\n function _updateLocationChange() {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableAutoRouteTracking = _extConfig[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(win, _history, locn);\r\n }\r\n }\r\n }));\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(win, history, locn) {\r\n if (_historyListenerAdded) {\r\n return;\r\n }\r\n // Name Prefix is only referenced during the initial initialization and cannot be changed afterwards\r\n var namePrefix = _extConfig.namePrefix || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n scheduleTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n function _addUnhandledPromiseRejectionTracking(_window, _location) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableUnhandledPromiseRejectionTracking = _extConfig[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */];\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */] = _autoUnhandledPromiseInstrumented = true;\r\n }\r\n }));\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {eLoggingSeverity} - The severity of the log message\r\n * @param msgId - {_eInternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n _autoTrackPageVisitTime = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n _extConfig = null;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _extConfig; }\r\n });\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_pageViewManager\", { g: function () { return _pageViewManager; } });\r\n objDefine(_self, \"_pageViewPerformanceManager\", { g: function () { return _pageViewPerformanceManager; } });\r\n objDefine(_self, \"_pageVisitTimeManager\", { g: function () { return _pageVisitTimeManager; } });\r\n objDefine(_self, \"_evtNamespace\", { g: function () { return \".\" + _evtNamespace; } });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '3.2.1'; // Not currently used anywhere\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_PAGE_VISIT_START_TIM18, _DYN_TRACK_PREVIOUS_PAGE_1 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler - Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName - Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_logger\", { g: function () { return logger; } });\r\n objDefine(_self, \"pageVisitTimeTrackingHandler\", { g: function () { return pageVisitTimeTrackingHandler; } });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE 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 PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*!\n * NevWare21 - ts-async, 0.5.1\n * https://github.com/nevware21/ts-async\n * Copyright (c) NevWare21 and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\nimport { isPromiseLike, objDefineProperties, getDocument, createCachedValue, safe, getInst, dumpObj, arrSlice, objDefineProp, hasSymbol, getKnownSymbol, isFunction, throwTypeError, iterForOf, scheduleTimeout, isNode, getWindow, getGlobal, objDefine, objToString, isUndefined, isArray, arrForEach, isIterable, createCustomError, isNumber, scheduleIdleCallback, utcNow, getLength, isIterator, fnCall, arrIndexOf } from '@nevware21/ts-utils';\n\nvar STR_PROMISE = \"Promise\";\nvar DONE = \"done\";\nvar VALUE = \"value\";\nvar RETURN = \"return\";\nvar REJECTED = \"rejected\";\n\nfunction doAwaitResponse(value, cb) {\n return doAwait(value, function (value) {\n return cb ? cb({\n status: \"fulfilled\",\n rejected: false,\n value: value\n }) : value;\n }, function (reason) {\n return cb ? cb({\n status: REJECTED,\n rejected: true,\n reason: reason\n }) : reason;\n });\n}\nfunction doAwait(value, resolveFn, rejectFn, finallyFn) {\n var result = value;\n try {\n if (isPromiseLike(value)) {\n if (resolveFn || rejectFn) {\n result = value.then(resolveFn, rejectFn);\n }\n }\n else {\n try {\n if (resolveFn) {\n result = resolveFn(value);\n }\n }\n catch (err) {\n if (rejectFn) {\n result = rejectFn(err);\n }\n else {\n throw err;\n }\n }\n }\n }\n finally {\n if (finallyFn) {\n doFinally(result, finallyFn);\n }\n }\n return result;\n}\nfunction doFinally(value, finallyFn) {\n var result = value;\n if (finallyFn) {\n if (isPromiseLike(value)) {\n if (value.finally) {\n result = value.finally(finallyFn);\n }\n else {\n result = value.then(function (value) {\n finallyFn();\n return value;\n }, function (reason) {\n finallyFn();\n throw reason;\n });\n }\n }\n else {\n finallyFn();\n }\n }\n return result;\n}\n\nvar _debugState;\nvar _debugResult;\nvar _debugHandled;\nvar _promiseDebugEnabled = false;\nfunction _addDebugState$1(thePromise, stateFn, resultFn, handledFn) {\n _debugState = _debugState || { toString: function () { return \"[[PromiseState]]\"; } };\n _debugResult = _debugResult || { toString: function () { return \"[[PromiseResult]]\"; } };\n _debugHandled = _debugHandled || { toString: function () { return \"[[PromiseIsHandled]]\"; } };\n var props = {};\n props[_debugState] = { get: stateFn };\n props[_debugResult] = { get: resultFn };\n props[_debugHandled] = { get: handledFn };\n objDefineProperties(thePromise, props);\n}\nfunction setPromiseDebugState(enabled, logger) {\n _promiseDebugEnabled = enabled;\n}\n\nvar STRING_STATES = [\n \"pending\", \"resolving\", \"resolved\", REJECTED\n];\n\nvar DISPATCH_EVENT = \"dispatchEvent\";\nvar _hasInitEvent;\nfunction _hasInitEventFn(doc) {\n var evt;\n if (doc && doc.createEvent) {\n evt = doc.createEvent(\"Event\");\n }\n return (!!evt && evt.initEvent);\n}\nfunction emitEvent(target, evtName, populateEvent, useNewEvent) {\n var doc = getDocument();\n !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [doc]).v));\n var theEvt = _hasInitEvent.v ? doc.createEvent(\"Event\") : (useNewEvent ? new Event(evtName) : {});\n populateEvent && populateEvent(theEvt);\n if (_hasInitEvent.v) {\n theEvt.initEvent(evtName, false, true);\n }\n if (theEvt && target[DISPATCH_EVENT]) {\n target[DISPATCH_EVENT](theEvt);\n }\n else {\n var handler = target[\"on\" + evtName];\n if (handler) {\n handler(theEvt);\n }\n else {\n var theConsole = getInst(\"console\");\n theConsole && (theConsole[\"error\"] || theConsole[\"log\"])(evtName, dumpObj(theEvt));\n }\n }\n}\n\nvar NODE_UNHANDLED_REJECTION = \"unhandledRejection\";\nvar UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();\nvar _currentPromiseId = [];\nvar _uniquePromiseId = 0;\nvar _unhandledRejectionTimeout = 10;\nvar _aggregationError;\nvar _hasPromiseRejectionEvent;\nfunction dumpFnObj(value) {\n if (isFunction(value)) {\n return value.toString();\n }\n return dumpObj(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAggregationError(values) {\n !_aggregationError && (_aggregationError = createCachedValue(safe(getInst, [\"AggregationError\"]).v || createCustomError(\"AggregationError\", function (self, args) {\n self.errors = args[0];\n })));\n return new _aggregationError.v(values);\n}\nfunction _createPromise(newPromise, processor, executor) {\n var additionalArgs = arrSlice(arguments, 3);\n var _state = 0 ;\n var _hasResolved = false;\n var _settledValue;\n var _queue = [];\n var _id = _uniquePromiseId++;\n var _parentId = _currentPromiseId.length > 0 ? _currentPromiseId[_currentPromiseId.length - 1] : undefined;\n var _handled = false;\n var _unHandledRejectionHandler = null;\n var _thePromise;\n function _then(onResolved, onRejected) {\n try {\n _currentPromiseId.push(_id);\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n var thenPromise = newPromise(function (resolve, reject) {\n _queue.push(function () {\n try {\n var handler = _state === 2 ? onResolved : onRejected;\n var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);\n if (isPromiseLike(value)) {\n value.then(resolve, reject);\n }\n else if (handler) {\n resolve(value);\n }\n else if (_state === 3 ) {\n reject(value);\n }\n else {\n resolve(value);\n }\n }\n catch (e) {\n reject(e);\n }\n });\n if (_hasResolved) {\n _processQueue();\n }\n }, additionalArgs);\n return thenPromise;\n }\n finally {\n _currentPromiseId.pop();\n }\n }\n function _catch(onRejected) {\n return _then(undefined, onRejected);\n }\n function _finally(onFinally) {\n var thenFinally = onFinally;\n var catchFinally = onFinally;\n if (isFunction(onFinally)) {\n thenFinally = function (value) {\n onFinally && onFinally();\n return value;\n };\n catchFinally = function (reason) {\n onFinally && onFinally();\n throw reason;\n };\n }\n return _then(thenFinally, catchFinally);\n }\n function _strState() {\n return STRING_STATES[_state];\n }\n function _processQueue() {\n if (_queue.length > 0) {\n var pending = _queue.slice();\n _queue = [];\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n processor(pending);\n }\n }\n function _createSettleIfFn(newState, allowState) {\n return function (theValue) {\n if (_state === allowState) {\n if (newState === 2 && isPromiseLike(theValue)) {\n _state = 1 ;\n theValue.then(_createSettleIfFn(2 , 1 ), _createSettleIfFn(3 , 1 ));\n return;\n }\n _state = newState;\n _hasResolved = true;\n _settledValue = theValue;\n _processQueue();\n if (!_handled && newState === 3 && !_unHandledRejectionHandler) {\n _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);\n }\n }\n };\n }\n function _notifyUnhandledRejection() {\n if (!_handled) {\n _handled = true;\n if (isNode()) {\n process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);\n }\n else {\n var gbl = getWindow() || getGlobal();\n !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = createCachedValue(safe((getInst), [STR_PROMISE + \"RejectionEvent\"]).v));\n emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {\n objDefine(theEvt, \"promise\", { g: function () { return _thePromise; } });\n theEvt.reason = _settledValue;\n return theEvt;\n }, !!_hasPromiseRejectionEvent.v);\n }\n }\n }\n _thePromise = {\n then: _then,\n \"catch\": _catch,\n finally: _finally\n };\n objDefineProp(_thePromise, \"state\", {\n get: _strState\n });\n if (_promiseDebugEnabled) {\n _addDebugState$1(_thePromise, _strState, function () { return objToString(_settledValue); }, function () { return _handled; });\n }\n if (hasSymbol()) {\n _thePromise[getKnownSymbol(11 )] = \"IPromise\";\n }\n function _toString() {\n return \"IPromise\" + (_promiseDebugEnabled ? \"[\" + _id + (!isUndefined(_parentId) ? (\":\" + _parentId) : \"\") + \"]\" : \"\") + \" \" + _strState() + (_hasResolved ? (\" - \" + dumpFnObj(_settledValue)) : \"\") + (\"\");\n }\n _thePromise.toString = _toString;\n (function _initialize() {\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpFnObj(executor));\n }\n var _rejectFn = _createSettleIfFn(3 , 0 );\n try {\n executor.call(_thePromise, _createSettleIfFn(2 , 0 ), _rejectFn);\n }\n catch (e) {\n _rejectFn(e);\n }\n })();\n return _thePromise;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllPromise(newPromise) {\n return function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n try {\n var values_1 = [];\n var pending_1 = 1;\n iterForOf(input, function (item, idx) {\n if (item) {\n pending_1++;\n doAwait(item, function (value) {\n values_1[idx] = value;\n if (--pending_1 === 0) {\n resolve(values_1);\n }\n }, reject);\n }\n });\n pending_1--;\n if (pending_1 === 0) {\n resolve(values_1);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createResolvedPromise(newPromise) {\n return function (value) {\n var additionalArgs = arrSlice(arguments, 1);\n if (isPromiseLike(value)) {\n return value;\n }\n return newPromise(function (resolve) {\n resolve(value);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRejectedPromise(newPromise) {\n return function (reason) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (_resolve, reject) {\n reject(reason);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllSettledPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var values = [];\n var pending = 1;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (value.rejected) {\n values[idx] = {\n status: REJECTED,\n reason: value.reason\n };\n }\n else {\n values[idx] = {\n status: \"fulfilled\",\n value: value.value\n };\n }\n if (--pending === 0) {\n resolve(values);\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0) {\n resolve(values);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRacePromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var isDone = false;\n function processItem(item) {\n doAwaitResponse(item, function (value) {\n if (!isDone) {\n isDone = true;\n if (value.rejected) {\n reject(value.reason);\n }\n else {\n resolve(value.value);\n }\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAnyPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var theErros = [];\n var pending = 1;\n var isDone = false;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (!value.rejected) {\n isDone = true;\n resolve(value.value);\n return;\n }\n else {\n theErros[idx] = value.reason;\n }\n if (--pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n\nfunction syncItemProcessor(pending) {\n arrForEach(pending, function (fn) {\n try {\n fn();\n }\n catch (e) {\n }\n });\n}\nfunction timeoutItemProcessor(timeout) {\n var callbackTimeout = isNumber(timeout) ? timeout : 0;\n return function (pending) {\n scheduleTimeout(function () {\n syncItemProcessor(pending);\n }, callbackTimeout);\n };\n}\nfunction idleItemProcessor(timeout) {\n var options;\n if (timeout >= 0) {\n options = {\n timeout: +timeout\n };\n }\n return function (pending) {\n scheduleIdleCallback(function (deadline) {\n syncItemProcessor(pending);\n }, options);\n };\n}\n\nvar _allAsyncSettledCreator;\nvar _raceAsyncCreator;\nvar _anyAsyncCreator;\nfunction createAsyncPromise(executor, timeout) {\n return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);\n}\nvar createAsyncAllPromise = /*#__PURE__*/ _createAllPromise(createAsyncPromise);\nvar createAsyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createAsyncPromise);\nvar createAsyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createAsyncPromise);\nfunction createAsyncAllSettledPromise(input, timeout) {\n !_allAsyncSettledCreator && (_allAsyncSettledCreator = _createAllSettledPromise(createAsyncPromise));\n return _allAsyncSettledCreator.v(input, timeout);\n}\nfunction createAsyncRacePromise(values, timeout) {\n !_raceAsyncCreator && (_raceAsyncCreator = _createRacePromise(createAsyncPromise));\n return _raceAsyncCreator.v(values, timeout);\n}\nfunction createAsyncAnyPromise(values, timeout) {\n !_anyAsyncCreator && (_anyAsyncCreator = _createAnyPromise(createAsyncPromise));\n return _anyAsyncCreator.v(values, timeout);\n}\n\nvar _promiseCls;\nvar _allCreator;\nvar _allNativeSettledCreator;\nvar _raceNativeCreator;\nvar _anyNativeCreator;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createNativePromiseHelper(name, func) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n if (_promiseCls.v && _promiseCls.v[name]) {\n return createCachedValue(function (input, timeout) {\n return createNativePromise(function (resolve, reject) {\n _promiseCls.v[name](input).then(resolve, reject);\n });\n });\n }\n return func();\n}\nfunction createNativePromise(executor, timeout) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n var PrmCls = _promiseCls.v;\n if (!PrmCls) {\n return createAsyncPromise(executor);\n }\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpObj(executor));\n }\n var _state = 0 ;\n function _strState() {\n return STRING_STATES[_state];\n }\n var thePromise = new PrmCls(function (resolve, reject) {\n function _resolve(value) {\n _state = 2 ;\n resolve(value);\n }\n function _reject(reason) {\n _state = 3 ;\n reject(reason);\n }\n executor(_resolve, _reject);\n });\n objDefineProp(thePromise, \"state\", {\n get: _strState\n });\n return thePromise;\n}\nfunction createNativeAllPromise(input, timeout) {\n !_allCreator && (_allCreator = _createNativePromiseHelper(\"all\", function () { return createCachedValue(_createAllPromise(createNativePromise)); }));\n return _allCreator.v(input, timeout);\n}\nvar createNativeResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createNativePromise);\nvar createNativeRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createNativePromise);\nfunction createNativeAllSettledPromise(input, timeout) {\n !_allNativeSettledCreator && (_allNativeSettledCreator = _createNativePromiseHelper(\"allSettled\", function () { return _createAllSettledPromise(createNativePromise); }));\n return _allNativeSettledCreator.v(input, timeout);\n}\nfunction createNativeRacePromise(values, timeout) {\n !_raceNativeCreator && (_raceNativeCreator = _createNativePromiseHelper(\"race\", function () { return _createRacePromise(createNativePromise); }));\n return _raceNativeCreator.v(values, timeout);\n}\nfunction createNativeAnyPromise(values, timeout) {\n !_anyNativeCreator && (_anyNativeCreator = _createNativePromiseHelper(\"any\", function () { return _createAnyPromise(createNativePromise); }));\n return _anyNativeCreator.v(values, timeout);\n}\n\nvar _allSyncSettledCreator;\nvar _raceSyncCreator;\nvar _anySyncCreator;\nfunction createSyncPromise(executor) {\n return _createPromise(createSyncPromise, syncItemProcessor, executor);\n}\nvar createSyncAllPromise = /*#__PURE__*/ _createAllPromise(createSyncPromise);\nvar createSyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createSyncPromise);\nvar createSyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createSyncPromise);\nfunction createSyncAllSettledPromise(input, timeout) {\n !_allSyncSettledCreator && (_allSyncSettledCreator = _createAllSettledPromise(createSyncPromise));\n return _allSyncSettledCreator.v(input, timeout);\n}\nfunction createSyncRacePromise(values, timeout) {\n !_raceSyncCreator && (_raceSyncCreator = _createRacePromise(createSyncPromise));\n return _raceSyncCreator.v(values, timeout);\n}\nfunction createSyncAnyPromise(values, timeout) {\n !_anySyncCreator && (_anySyncCreator = _createAnyPromise(createSyncPromise));\n return _anySyncCreator.v(values, timeout);\n}\n\nvar _defaultIdleTimeout;\nvar _allIdleSettledCreator;\nvar _raceIdleCreator;\nvar _anyIdleCreator;\nfunction setDefaultIdlePromiseTimeout(idleDeadline) {\n _defaultIdleTimeout = idleDeadline;\n}\nvar setDefaultIdleTimeout = ( setDefaultIdlePromiseTimeout);\nfunction createIdlePromise(executor, timeout) {\n var theTimeout = isUndefined(timeout) ? _defaultIdleTimeout : timeout;\n return _createPromise(createIdlePromise, idleItemProcessor(theTimeout), executor, theTimeout);\n}\nvar createIdleAllPromise = /*#__PURE__*/ _createAllPromise(createIdlePromise);\nvar createIdleResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createIdlePromise);\nvar createIdleRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createIdlePromise);\nfunction createIdleAllSettledPromise(input, timeout) {\n !_allIdleSettledCreator && (_allIdleSettledCreator = _createAllSettledPromise(createIdlePromise));\n return _allIdleSettledCreator.v(input, timeout);\n}\nfunction createIdleRacePromise(values, timeout) {\n !_raceIdleCreator && (_raceIdleCreator = _createRacePromise(createIdlePromise));\n return _raceIdleCreator.v(values, timeout);\n}\nfunction createIdleAnyPromise(values, timeout) {\n !_anyIdleCreator && (_anyIdleCreator = _createAnyPromise(createIdlePromise));\n return _anyIdleCreator.v(values, timeout);\n}\n\nvar _promiseCreator;\nvar _allSettledCreator;\nvar _raceCreator;\nvar _anyCreator;\nfunction setCreatePromiseImpl(creator) {\n _promiseCreator = creator ? createCachedValue(creator) : null;\n}\nfunction createPromise(executor, timeout) {\n !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));\n return _promiseCreator.v.call(this, executor, timeout);\n}\nvar createAllPromise = /*#__PURE__*/ _createAllPromise(createPromise);\nvar createResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createPromise);\nvar createRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createPromise);\nfunction createAllSettledPromise(input, timeout) {\n !_allSettledCreator && (_allSettledCreator = _createAllSettledPromise(createPromise));\n return _allSettledCreator.v(input, timeout);\n}\nfunction createRacePromise(values, timeout) {\n !_raceCreator && (_raceCreator = _createRacePromise(createPromise));\n return _raceCreator.v(values, timeout);\n}\nfunction createAnyPromise(values, timeout) {\n !_anyCreator && (_anyCreator = _createAnyPromise(createPromise));\n return _anyCreator.v(values, timeout);\n}\n\nfunction createTimeoutPromise(timeout, resolveReject, message) {\n return createPromise(function (resolve, reject) {\n scheduleTimeout(function () {\n (resolveReject ? resolve : reject)(!isUndefined(message) ? message : \"Timeout of \" + timeout + \"ms exceeded\");\n }, timeout);\n });\n}\n\nfunction _doneChk(isDone, state, value, thisArg) {\n var result = isDone;\n state.res = value;\n if (!result) {\n if (state.isDone && isFunction(state.isDone)) {\n return doAwait(state.isDone.call(thisArg, state), function (done) {\n state.iter++;\n return !!done;\n });\n }\n else {\n result = !!state.isDone;\n }\n }\n state.iter++;\n return result;\n}\nfunction doWhileAsync(callbackFn, isDoneFn, thisArg) {\n var promise;\n var resolve;\n var reject = function (reason) {\n isDone = true;\n throw reason;\n };\n var isDone = false;\n var state = {\n st: utcNow(),\n iter: 0,\n isDone: isDoneFn || false\n };\n if (callbackFn) {\n var _createPromise_1 = function () {\n return createPromise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n };\n var _handleAsyncDone_1 = function (done) {\n isDone = !!done;\n if (!isDone) {\n _processNext_1();\n }\n else {\n resolve(state.res);\n }\n };\n var _processNext_1 = function () {\n while (!isDone) {\n try {\n var cbResult = callbackFn.call(thisArg, state);\n if (isPromiseLike(cbResult)) {\n promise = promise || _createPromise_1();\n doAwait(cbResult, function (res) {\n try {\n doAwait(_doneChk(isDone, state, res, thisArg), _handleAsyncDone_1, reject);\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n return promise;\n }\n else {\n var dnRes = _doneChk(isDone, state, cbResult, thisArg);\n if (isPromiseLike(dnRes)) {\n promise = promise || _createPromise_1();\n doAwait(dnRes, _handleAsyncDone_1, reject);\n return promise;\n }\n else {\n isDone = !!dnRes;\n }\n }\n }\n catch (e) {\n reject(e);\n return promise;\n }\n }\n if (isDone && resolve) {\n resolve(state.res);\n }\n return promise || state.res;\n };\n return _processNext_1();\n }\n}\n\nfunction arrForEachAsync(theArray, callbackFn, thisArg) {\n if (theArray) {\n var len_1 = getLength(theArray);\n if (len_1) {\n var isDone = function (state) {\n if (state.iter >= len_1 || state.res === -1) {\n return true;\n }\n };\n return doWhileAsync(function (state) {\n var idx = state.iter;\n if (idx in theArray) {\n return callbackFn.call(thisArg || theArray, theArray[idx], idx, theArray);\n }\n }, isDone);\n }\n }\n}\n\nvar _iterSymbol;\nvar _iterAsyncSymbol;\nfunction iterForOfAsync(iter, callbackFn, thisArg) {\n var err;\n var iterResult;\n var theIter = iter;\n function onFailed(failed) {\n err = { e: failed };\n if (theIter.throw) {\n iterResult = null;\n theIter.throw(err);\n }\n throw failed;\n }\n function onFinally() {\n try {\n if (iterResult && !iterResult[DONE]) {\n theIter[RETURN] && theIter[RETURN](iterResult);\n }\n }\n finally {\n if (err) {\n throw err.e;\n }\n }\n }\n if (iter) {\n if (!isIterator(iter)) {\n !_iterAsyncSymbol && (_iterAsyncSymbol = createCachedValue(getKnownSymbol(0 )));\n theIter = iter[_iterAsyncSymbol.v] ? iter[_iterAsyncSymbol.v]() : null;\n if (!theIter) {\n !_iterSymbol && (_iterSymbol = createCachedValue(getKnownSymbol(3 )));\n theIter = iter[_iterSymbol.v] ? iter[_iterSymbol.v]() : null;\n }\n }\n if (theIter && isIterator(theIter)) {\n var result = void 0;\n try {\n result = doWhileAsync(function (state) {\n return doAwait(theIter.next(), function (res) {\n iterResult = res;\n if (!res[DONE]) {\n return fnCall(callbackFn, thisArg || theIter, iterResult[VALUE], state.iter, theIter);\n }\n }, function (reason) {\n state.isDone = true;\n onFailed(reason);\n });\n }, function (state) {\n if (!iterResult || iterResult[DONE] || state.res === -1) {\n onFinally();\n return true;\n }\n }, thisArg || theIter);\n if (isPromiseLike(result)) {\n result = doFinally(result.catch(onFailed), onFinally);\n }\n return result;\n }\n catch (failed) {\n onFailed(failed);\n }\n finally {\n if (result && !isPromiseLike(result)) {\n onFinally();\n }\n }\n }\n }\n}\n\nvar REJECT = \"reject\";\nvar REJECTED_ERROR = \"Rejected\";\nvar _schedulerId = 0;\nvar _debugName;\nvar _debugIntState;\nvar _customErrors = {};\nfunction _rejectDone() {\n}\nfunction _createError(type, evt, message) {\n !_customErrors[type] && (_customErrors[type] = createCustomError(type));\n var now = utcNow();\n return new (_customErrors[type])(\"Task [\".concat(evt.id, \"] \").concat(message || \"\", \"- \").concat((evt.st ? \"Running\" : \"Waiting\"), \": \").concat(_calcTime(now, evt.st || evt.cr)));\n}\nfunction _calcTime(now, start) {\n return ((now - start) || \"0\") + \" ms\";\n}\nfunction _abortStaleTasks(taskQueue, staleTimeoutPeriod) {\n var now = utcNow();\n var expired = now - staleTimeoutPeriod;\n arrForEach(taskQueue, function (evt) {\n if (evt && !evt.rj && (evt.st && evt.st < expired) || (!evt.st && evt.cr && evt.cr < expired)) {\n evt && evt[REJECT](evt.rj || _createError(\"Aborted\", evt, \"Stale \"));\n }\n });\n}\nfunction _removeTask(queue, taskDetail) {\n var idx = arrIndexOf(queue, taskDetail);\n if (idx !== -1) {\n queue.splice(idx, 1);\n }\n}\nfunction _addDebugState(theScheduler, nameFn, stateFn) {\n _debugName = _debugName || { toString: function () { return \"[[SchedulerName]]\"; } };\n _debugIntState = _debugIntState || { toString: function () { return \"[[SchedulerState]]\"; } };\n objDefineProp(theScheduler, _debugName, { get: nameFn });\n objDefineProp(theScheduler, _debugIntState, { get: stateFn });\n}\nfunction createTaskScheduler(newPromise, name) {\n var _theTask;\n var _running = [];\n var _waiting = [];\n var _staleTimeoutPeriod = 600000;\n var _staleTimeoutCheckPeriod = _staleTimeoutPeriod / 10;\n var _taskCount = 0;\n var _schedulerName = (name ? (name + \".\") : \"\") + _schedulerId++;\n var _blockedTimer;\n newPromise = newPromise || createPromise;\n var _startBlockedTimer = function () {\n var hasTasks = (getLength(_running) + getLength(_waiting)) > 0;\n if (_staleTimeoutPeriod > 0) {\n if (!_blockedTimer) {\n _blockedTimer = scheduleTimeout(function () {\n _abortStaleTasks(_running, _staleTimeoutPeriod);\n _abortStaleTasks(_waiting, _staleTimeoutPeriod);\n _blockedTimer && (_blockedTimer.enabled = ((getLength(_running) + getLength(_waiting)) > 0));\n }, _staleTimeoutCheckPeriod);\n _blockedTimer.unref();\n }\n _blockedTimer && (_blockedTimer.enabled = hasTasks);\n }\n };\n var _queueTask = function (startAction, taskName, timeout) {\n var _a;\n var taskId = _schedulerName + \".\" + _taskCount++;\n if (taskName) {\n taskId += \"-(\" + taskName + \")\";\n }\n var newTask = (_a = {\n id: taskId,\n cr: utcNow(),\n to: timeout\n },\n _a[REJECT] = function (reason) {\n newTask.rj = reason || _createError(REJECTED_ERROR, newTask);\n newTask[REJECT] = _rejectDone;\n },\n _a);\n if (!_theTask) {\n newTask.p = newPromise(_runTask(newTask, startAction));\n }\n else {\n newTask.p = _waitForPreviousTask(newTask, _theTask, startAction);\n }\n _theTask = newTask;\n return newTask.p;\n };\n var _runTask = function (taskDetail, startAction) {\n taskDetail.st = utcNow();\n _running.push(taskDetail);\n _startBlockedTimer();\n return function (onTaskResolve, onTaskReject) {\n var _promiseReject = function (reason) {\n taskDetail.rj = taskDetail.rj || reason || _createError(REJECTED_ERROR, taskDetail);\n taskDetail[REJECT] = _rejectDone;\n _doCleanup(taskDetail);\n onTaskResolve = null;\n onTaskReject && onTaskReject(reason);\n onTaskReject = null;\n };\n var taskId = taskDetail.id;\n if (taskDetail.rj) {\n _promiseReject(taskDetail.rj);\n }\n else {\n taskDetail[REJECT] = _promiseReject;\n try {\n var startResult = startAction(taskId);\n if (taskDetail.to && isPromiseLike(startResult)) {\n taskDetail.t = scheduleTimeout(function () {\n _promiseReject(_createError(\"Timeout\", taskDetail));\n }, taskDetail.to);\n }\n doAwait(startResult, function (theResult) {\n _doCleanup(taskDetail);\n try {\n onTaskResolve && onTaskResolve(theResult);\n }\n catch (e) {\n onTaskReject && onTaskReject(e);\n }\n onTaskReject = null;\n onTaskResolve = null;\n }, _promiseReject);\n }\n catch (e) {\n _promiseReject(e);\n }\n }\n };\n };\n var _waitForPreviousTask = function (taskDetail, prevTask, startAction) {\n _waiting.push(taskDetail);\n _startBlockedTimer();\n return newPromise(function (onWaitResolve, onWaitReject) {\n doAwaitResponse(prevTask.p, function () {\n _removeTask(_waiting, taskDetail);\n _runTask(taskDetail, startAction)(onWaitResolve, onWaitReject);\n });\n });\n };\n var _doCleanup = function (taskDetail) {\n _removeTask(_running, taskDetail);\n taskDetail.t && taskDetail.t.cancel();\n taskDetail.t = null;\n if (_theTask && _theTask === taskDetail) {\n _theTask = null;\n if (getLength(_running) + getLength(_waiting) === 0) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n }\n }\n };\n var theScheduler = {\n idle: true,\n queue: _queueTask,\n setStaleTimeout: function (staleTimeout, staleCheckPeriod) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n _staleTimeoutPeriod = staleTimeout;\n _staleTimeoutCheckPeriod = staleCheckPeriod || staleTimeout / 10;\n _startBlockedTimer();\n }\n };\n objDefine(theScheduler, \"idle\", {\n g: function () {\n return getLength(_running) + getLength(_waiting) === 0;\n }\n });\n _addDebugState(theScheduler, function () { return _schedulerName; }, function () {\n return {\n l: _theTask,\n r: _running,\n w: _waiting\n };\n });\n return theScheduler;\n}\n\nvar toStringTagSymbol = getKnownSymbol(11 );\nvar PolyPromise = /*#__PURE__*/ (function () {\n function PolyPromiseImpl(executor) {\n this._$ = createAsyncPromise(executor);\n if (toStringTagSymbol) {\n this[toStringTagSymbol] = \"Promise\";\n }\n objDefineProp(this, \"state\", {\n get: function () {\n return this._$.state;\n }\n });\n }\n PolyPromiseImpl.all = createAsyncAllPromise;\n PolyPromiseImpl.race = createAsyncRacePromise;\n PolyPromiseImpl.any = createAsyncAnyPromise;\n PolyPromiseImpl.reject = createAsyncRejectedPromise;\n PolyPromiseImpl.resolve = createAsyncResolvedPromise;\n PolyPromiseImpl.allSettled = createAsyncAllSettledPromise;\n var theProto = PolyPromiseImpl.prototype;\n theProto.then = function (onResolved, onRejected) {\n return this._$.then(onResolved, onRejected);\n };\n theProto.catch = function (onRejected) {\n return this._$.catch(onRejected);\n };\n theProto.finally = function (onfinally) {\n return this._$.finally(onfinally);\n };\n return PolyPromiseImpl;\n}());\n\nexport { PolyPromise, arrForEachAsync, createAllPromise, createAllSettledPromise, createAnyPromise, createAsyncAllPromise, createAsyncAllSettledPromise, createAsyncAnyPromise, createAsyncPromise, createAsyncRacePromise, createAsyncRejectedPromise, createAsyncResolvedPromise, createIdleAllPromise, createIdleAllSettledPromise, createIdleAnyPromise, createIdlePromise, createIdleRacePromise, createIdleRejectedPromise, createIdleResolvedPromise, createNativeAllPromise, createNativeAllSettledPromise, createNativeAnyPromise, createNativePromise, createNativeRacePromise, createNativeRejectedPromise, createNativeResolvedPromise, createPromise, createRacePromise, createRejectedPromise, createResolvedPromise, createSyncAllPromise, createSyncAllSettledPromise, createSyncAnyPromise, createSyncPromise, createSyncRacePromise, createSyncRejectedPromise, createSyncResolvedPromise, createTaskScheduler, createTimeoutPromise, doAwait, doAwaitResponse, doFinally, doWhileAsync, iterForOfAsync, setCreatePromiseImpl, setDefaultIdlePromiseTimeout, setDefaultIdleTimeout, setPromiseDebugState };\n//# sourceMappingURL=ts-async.js.map\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_FEATURE_OPT_IN = \"featureOptIn\"; // Count: 4\r\nexport var _DYN_ON_CFG_CHANGE_RECEIV0 = \"onCfgChangeReceive\"; // Count: 2\r\nexport var _DYN_NON_OVERRIDE_CONFIGS = \"nonOverrideConfigs\"; // Count: 2\r\nexport var _DYN_SCHEDULE_FETCH_TIMEO1 = \"scheduleFetchTimeout\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isNullOrUndefined, isObject, objExtend, objForEachKey, setValueByKey } from \"@nevware21/ts-utils\";\r\nimport { _DYN_FEATURE_OPT_IN } from \"./__DynamicConstants\";\r\n/**\r\n * Delete a config key in the given cfg, if the config key exists in nonOverrideConfigs and its value is set to true\r\n * @param cfg cfg to modify\r\n * @param nonOverrideConfigs nonOverrideConfigs\r\n * @param curLevel cur config level, starting at 0\r\n * @param maxLevel max config level\r\n * @returns new copy of modified configs\r\n */\r\nexport function replaceByNonOverrideCfg(cfg, nonOverrideConfigs, curLevel, maxLevel) {\r\n try {\r\n var exceedMaxLevel = curLevel > maxLevel;\r\n if (exceedMaxLevel) {\r\n cfg = null;\r\n }\r\n var curCfg_1 = curLevel == 0 ? objExtend({}, cfg) : cfg; // only copy cfg at the begining level\r\n if (curCfg_1 && nonOverrideConfigs && !exceedMaxLevel) {\r\n objForEachKey(curCfg_1, function (key) {\r\n var nonOverrideVal = nonOverrideConfigs[key];\r\n if (!!nonOverrideVal) {\r\n if (isObject(curCfg_1[key]) && isObject(nonOverrideVal)) {\r\n curCfg_1[key] = replaceByNonOverrideCfg(curCfg_1[key], nonOverrideVal, ++curLevel, maxLevel);\r\n }\r\n else {\r\n delete curCfg_1[key];\r\n }\r\n }\r\n });\r\n }\r\n return curCfg_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // if errors happen, do nothing\r\n return cfg;\r\n}\r\n// CDN Mode, value = B (CDN value = B)\r\n// |--------------------------------------------------------------------------|-----------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ----------- | ----------- | ----------- | --------- | --------- |\r\n// | User Mode, value = A | none | none | disabled | enabled | enabled | disabled |\r\n// (user Value = A) | disabled | disabled | disabled | disabled | enabled | disabled |\r\n// | enabled | enabled | disabled | enabled | enabled | disabled |\r\n// | none(blockCdn) | none | none | none | none | none |\r\n// | disabled(blockCdn) | disabled | disabled | disabled | disabled | disabled |\r\n// | enabled(blockCdn) | enabled | enabled | enabled | enabled | enabled |\r\n// This matrix identifies how feature based overrides are selected (if present)\r\n// cdn Mode (cdn Value = B)\r\n// |---------------------------------------------------------------------------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ---------| ---------| ---------| ---------|----------|\r\n// | User Mode | none | A | A | A || B | B || A | B || A |\r\n// (user Value = A) | disabled | A | A | A | B || A | B || A |\r\n// | enabled | A | A | A || B | B || A | B || A |\r\n// | none(blockCdn) | A | A | A | A | A |\r\n// | disabled(blockCdn) | A | A | A | A | A |\r\n// | enabled(blockCdn) | A | A | A | A | A |\r\n// Note:\r\n// Where the \"value\" is an object (map) of encoded key/values which will be used to override the real configuration\r\n// A = either the user supplied enable/disable value (via the `config.featureOptIn[name]`) or if not defined by the user the SDK defaults of the same.\r\n// B = The enable/disable value obtained from the CDN for the named feature\r\n// These are evaluated based on the above matrix to either\r\n// - A (Always the user/sdk value)\r\n// - B (Always the value from the CDN)\r\n// - A || B (If A is null or undefined use the value from the CDN (B) otherwise A)\r\n// - B || A (If B is null or undefined use the user/SDK value otherwise use the value from the CDN)\r\n//\r\n// The result of the value may also be null / undefined, which means there are no overrides to apply when the feature is enabled\r\nvar F = \"featureOptIn.\";\r\nvar M = \".mode\";\r\nvar ON = \".onCfg\";\r\nvar OFF = \".offCfg\";\r\nexport function resolveCdnFeatureCfg(field, cdnCfg, userOptInDetails) {\r\n var _a;\r\n // cdn conifg value\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n var cdnFt = (cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */] || {})[field] || { mode: 1 /* CdnFeatureMode.none */ };\r\n var cdnM = cdnFt.mode;\r\n var cdnOnV = cdnFt.onCfg;\r\n var cdnOffV = cdnFt.offCfg;\r\n var userFt = (userOptInDetails || {})[field] || { mode: 2 /* FeatureOptInMode.disable */ }; // default user mode is disable\r\n var userM = userFt.mode;\r\n var userOnV = userFt.onCfg;\r\n var userOffV = userFt.offCfg;\r\n var blockCdn = !!userFt.blockCdnCfg;\r\n var mFld = F + field + M;\r\n var onFld = F + field + ON;\r\n var offFld = F + field + OFF;\r\n var mode = userM;\r\n var onV = userOnV;\r\n var offV = userOffV;\r\n if (!blockCdn) {\r\n if (cdnM === 4 /* CdnFeatureMode.forceOn */ || cdnM === 5 /* CdnFeatureMode.forceOff */) {\r\n mode = (cdnM == 4 /* CdnFeatureMode.forceOn */ ? 3 /* FeatureOptInMode.enable */ : 2 /* FeatureOptInMode.disable */);\r\n onV = cdnOnV || userOnV;\r\n offV = cdnOffV || userOffV;\r\n }\r\n else if (cdnM === 2 /* CdnFeatureMode.disable */ || userM === 2 /* FeatureOptInMode.disable */) {\r\n mode = 2 /* FeatureOptInMode.disable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 3 /* CdnFeatureMode.enable */) {\r\n mode = 3 /* FeatureOptInMode.enable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 1 /* CdnFeatureMode.none */ && userM === 1 /* FeatureOptInMode.none */) {\r\n mode = 1 /* FeatureOptInMode.none */;\r\n }\r\n }\r\n return _a = {},\r\n _a[mFld] = mode,\r\n _a[onFld] = onV,\r\n _a[offFld] = offV,\r\n _a;\r\n}\r\n// helper function to get cdn config with opt-in features\r\nexport function applyCdnfeatureCfg(cdnCfg, core) {\r\n try {\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n if (!cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]) {\r\n return cdnCfg.config;\r\n }\r\n var optInMap = cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */];\r\n var cdnConfig_1 = cdnCfg.config || {};\r\n objForEachKey(optInMap, function (key) {\r\n var featureVal = resolveCdnFeatureCfg(key, cdnCfg, core.config[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]);\r\n if (!isNullOrUndefined(featureVal)) {\r\n objForEachKey(featureVal, function (config, val) {\r\n setValueByKey(cdnConfig_1, config, val);\r\n });\r\n _overrideCdnCfgByFeature(key, featureVal, cdnConfig_1);\r\n }\r\n });\r\n return cdnConfig_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\nfunction _overrideCdnCfgByFeature(field, ftVal, config) {\r\n var mode = ftVal[F + field + M];\r\n var val = ftVal[F + field + ON];\r\n var dVal = ftVal[F + field + OFF];\r\n var target = null;\r\n if (mode === 3 /* FeatureOptInMode.enable */) {\r\n target = val;\r\n }\r\n if (mode === 2 /* FeatureOptInMode.disable */) {\r\n target = dVal;\r\n }\r\n if (target) {\r\n objForEachKey(target, function (key, cfg) {\r\n setValueByKey(config, key, cfg);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=CfgSyncHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* CfgSyncPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, createProcessTelemetryContext, createUniqueNamespace, eventOff, eventOn, getGlobal, getJSON, isFetchSupported, isXhrSupported, mergeEvtNamespace, onConfigChange, sendCustomEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { applyCdnfeatureCfg, replaceByNonOverrideCfg } from \"./CfgSyncHelperFuncs\";\r\nimport { _DYN_NON_OVERRIDE_CONFIGS, _DYN_ON_CFG_CHANGE_RECEIV0, _DYN_SCHEDULE_FETCH_TIMEO1 } from \"./__DynamicConstants\";\r\nvar EVENT_NAME = \"ai_cfgsync\";\r\nvar STR_GET_METHOD = \"GET\";\r\nvar FETCH_TIMEOUT = 1800000; // 30 minutes\r\nvar udfVal = undefined;\r\nvar defaultNonOverrideCfg = { instrumentationKey: true, connectionString: true, endpointUrl: true };\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n syncMode: 1 /* ICfgSyncMode.Broadcast */,\r\n blkCdnCfg: udfVal,\r\n customEvtName: udfVal,\r\n cfgUrl: udfVal,\r\n overrideSyncFn: udfVal,\r\n overrideFetchFn: udfVal\r\n },\r\n _a[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:onCfgChangeReceive */] = udfVal,\r\n _a[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:scheduleFetchTimeout */] = FETCH_TIMEOUT,\r\n _a[_DYN_NON_OVERRIDE_CONFIGS /* @min:nonOverrideConfigs */] = defaultNonOverrideCfg,\r\n _a));\r\nvar CfgSyncPlugin = /** @class */ (function (_super) {\r\n __extends(CfgSyncPlugin, _super);\r\n function CfgSyncPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 198;\r\n _this.identifier = \"AppInsightsCfgSyncPlugin\";\r\n var _extensionConfig;\r\n var _mainConfig; // throttle config should be wrapped in IConfiguration\r\n var _evtName;\r\n var _evtNamespace;\r\n var _cfgUrl;\r\n var _timeoutHandle;\r\n var _receiveChanges;\r\n var _broadcastChanges;\r\n var _blkCdnCfg;\r\n var _fetchTimeout;\r\n var _retryCnt;\r\n var _onCfgChangeReceive;\r\n var _nonOverrideConfigs;\r\n var _fetchFn;\r\n var _overrideFetchFn;\r\n var _overrideSyncFn;\r\n var _paused = false;\r\n dynamicProto(CfgSyncPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n };\r\n _self.getCfg = function () {\r\n return _mainConfig;\r\n };\r\n _self.pause = function () {\r\n _paused = true;\r\n _clearScheduledTimer();\r\n };\r\n _self.resume = function () {\r\n _paused = false;\r\n _setupTimer();\r\n };\r\n // used for V2 to manaully trigger config udpate\r\n _self.setCfg = function (config) {\r\n return _setCfg(config);\r\n };\r\n _self.sync = function (customDetails) {\r\n return _sendCfgsyncEvents(customDetails);\r\n };\r\n _self.updateEventListenerName = function (eventName) {\r\n return _updateEventListenerName(eventName);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _eventOff();\r\n _clearScheduledTimer();\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_broadcastChanges, _receiveChanges, _evtName, _blkCdnCfg, _nonOverrideConfigs];\r\n };\r\n function _initDefaults() {\r\n _mainConfig = null;\r\n _evtName = null;\r\n _evtNamespace = null;\r\n _cfgUrl = null;\r\n _receiveChanges = null;\r\n _broadcastChanges = null;\r\n _nonOverrideConfigs = null;\r\n _timeoutHandle = null;\r\n _fetchTimeout = null;\r\n _retryCnt = null;\r\n _blkCdnCfg = null;\r\n _overrideFetchFn = null;\r\n _overrideSyncFn = null;\r\n _onCfgChangeReceive = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n var preBlkCdn = _blkCdnCfg;\r\n _blkCdnCfg = !!_extensionConfig.blkCdnCfg;\r\n // avoid initial call\r\n if (!isNullOrUndefined(preBlkCdn) && preBlkCdn !== _blkCdnCfg) {\r\n if (!_blkCdnCfg && _cfgUrl) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n else {\r\n _clearScheduledTimer();\r\n }\r\n }\r\n if (isNullOrUndefined(_receiveChanges)) {\r\n _receiveChanges = _extensionConfig.syncMode === 2 /* ICfgSyncMode.Receive */;\r\n }\r\n if (isNullOrUndefined(_broadcastChanges)) {\r\n _broadcastChanges = _extensionConfig.syncMode === 1 /* ICfgSyncMode.Broadcast */;\r\n }\r\n var newEvtName = _extensionConfig.customEvtName || EVENT_NAME;\r\n if (_evtName !== newEvtName) {\r\n if (_receiveChanges) {\r\n _updateEventListenerName(newEvtName);\r\n }\r\n else {\r\n _eventOff();\r\n _evtName = newEvtName;\r\n }\r\n }\r\n if (isNullOrUndefined(_cfgUrl)) {\r\n _cfgUrl = _extensionConfig.cfgUrl;\r\n }\r\n // if cfgUrl is set, we will ignore core config change\r\n if (!_cfgUrl) {\r\n _mainConfig = config;\r\n if (_broadcastChanges) {\r\n _sendCfgsyncEvents();\r\n }\r\n }\r\n }));\r\n _overrideSyncFn = _extensionConfig.overrideSyncFn;\r\n _overrideFetchFn = _extensionConfig.overrideFetchFn;\r\n _onCfgChangeReceive = _extensionConfig[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:%2eonCfgChangeReceive */];\r\n _nonOverrideConfigs = _extensionConfig[_DYN_NON_OVERRIDE_CONFIGS /* @min:%2enonOverrideConfigs */]; // override values should not be changed\r\n _fetchTimeout = _extensionConfig[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:%2escheduleFetchTimeout */];\r\n _fetchFn = _getFetchFnInterface();\r\n _retryCnt = 0;\r\n // NOT support cfgURL change to avoid mutiple fetch calls\r\n if (_cfgUrl && !_blkCdnCfg) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n }\r\n function _setCfg(config, isAutoSync) {\r\n if (config) {\r\n _mainConfig = config;\r\n if (!!isAutoSync && !_paused) {\r\n return _sendCfgsyncEvents();\r\n }\r\n if (_receiveChanges && !_paused) {\r\n _self.core.updateCfg(config);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _eventOff() {\r\n try {\r\n var global_1 = getGlobal();\r\n if (global_1) {\r\n eventOff(global_1, null, null, _evtNamespace);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _sendCfgsyncEvents(customDetails) {\r\n try {\r\n if (!!_overrideSyncFn && isFunction(_overrideSyncFn)) {\r\n return _overrideSyncFn(_mainConfig, customDetails);\r\n }\r\n return sendCustomEvent(_evtName, _mainConfig, customDetails);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _updateEventListenerName(name) {\r\n try {\r\n _eventOff();\r\n if (name) {\r\n _evtName = name;\r\n _addEventListener();\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getFetchFnInterface() {\r\n var _fetchFn = _overrideFetchFn;\r\n if (isNullOrUndefined(_fetchFn)) {\r\n if (isFetchSupported()) {\r\n _fetchFn = _fetchSender;\r\n }\r\n else if (isXhrSupported()) {\r\n _fetchFn = _xhrSender;\r\n }\r\n }\r\n return _fetchFn;\r\n }\r\n function _fetchSender(url, oncomplete, isAutoSync) {\r\n var global = getGlobal();\r\n var fetchFn = (global && global.fetch) || null;\r\n if (url && fetchFn && isFunction(fetchFn)) {\r\n try {\r\n var init = {\r\n method: STR_GET_METHOD\r\n };\r\n var request = new Request(url, init);\r\n doAwaitResponse(fetch(request), function (result) {\r\n var response = result.value;\r\n if (!result.rejected) {\r\n if (response.ok) {\r\n doAwaitResponse(response.text(), function (res) {\r\n _doOnComplete(oncomplete, response.status, res.value, isAutoSync);\r\n });\r\n }\r\n else {\r\n _doOnComplete(oncomplete, response.status, null, isAutoSync);\r\n }\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 400);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n function _xhrSender(url, oncomplete, isAutoSync) {\r\n try {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(STR_GET_METHOD, url);\r\n xhr_1.onreadystatechange = function () {\r\n if (xhr_1.readyState === XMLHttpRequest.DONE) {\r\n _doOnComplete(oncomplete, xhr_1.status, xhr_1.responseText, isAutoSync);\r\n }\r\n };\r\n xhr_1.onerror = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.ontimeout = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.send();\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _onFetchComplete(status, response, isAutoSync) {\r\n try {\r\n if (status >= 200 && status < 400 && response) {\r\n _retryCnt = 0; // any successful response will reset retry count to 0\r\n var JSON_1 = getJSON();\r\n if (JSON_1) {\r\n var cdnCfg = JSON_1.parse(response); //comments are not allowed\r\n var cfg = applyCdnfeatureCfg(cdnCfg, _self.core);\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg, isAutoSync);\r\n //cfg && _setCfg(cfg, isAutoSync);\r\n }\r\n }\r\n else {\r\n _retryCnt++;\r\n }\r\n if (_retryCnt < 3) {\r\n _setupTimer();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doOnComplete(oncomplete, status, response, isAutoSync) {\r\n try {\r\n oncomplete(status, response, isAutoSync);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _addEventListener() {\r\n if (_receiveChanges) {\r\n var global_2 = getGlobal();\r\n if (global_2) {\r\n try {\r\n eventOn(global_2, _evtName, function (event) {\r\n // TODO: add more validation here\r\n // may include a \"name\" or some other features to check\r\n var cfgEvent = event && event.detail;\r\n if (_onCfgChangeReceive && cfgEvent) {\r\n _onCfgChangeReceive(cfgEvent);\r\n }\r\n else {\r\n var cfg = cfgEvent && cfgEvent.cfg;\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg);\r\n }\r\n }, _evtNamespace, true);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n }\r\n // 4 levels\r\n function _replaceTartgetByKeys(cfg, level) {\r\n var _cfg = null;\r\n try {\r\n if (cfg) {\r\n _cfg = replaceByNonOverrideCfg(cfg, _nonOverrideConfigs, 0, 5);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return _cfg;\r\n }\r\n /**\r\n * Sets up the timer which triggers fetching cdn every 30mins after inital call\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && _fetchTimeout) {\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }, _fetchTimeout);\r\n _timeoutHandle.unref();\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryCnt = 0;\r\n }\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for CfgSyncPlugin.prototype.initialize.\r\n// Removed Stub for CfgSyncPlugin.prototype.getCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.setCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.sync.\r\n// Removed Stub for CfgSyncPlugin.prototype.updateEventListenerName.\r\n// Removed Stub for CfgSyncPlugin.prototype.pause.\r\n// Removed Stub for CfgSyncPlugin.prototype.resume.\r\n //// Removed Stub for CfgSyncPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE 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 CfgSyncPlugin.__ieDyn=1;\n\n return CfgSyncPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { CfgSyncPlugin };\r\n//# sourceMappingURL=CfgSyncPlugin.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_PUSH } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var listenerList = [];\r\n // Set the initial state\r\n // rState is changed by the browser, both via events and when we check the navigator.onLine property\r\n var rState = 1 /* eOfflineValue.Online */;\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine) && !_navigator.onLine) { // navigator.onLine is undefined in react-native\r\n rState = 2 /* eOfflineValue.Offline */;\r\n }\r\n // ustate is changed by the user calling setOnlineState\r\n var uState = 0 /* eOfflineValue.Unknown */;\r\n // current state would be updated each time rState or uState is changed\r\n // it is a resolved value of rState and uState\r\n var _currentState = calCurrentState();\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _isOnline() {\r\n return _currentState;\r\n }\r\n function calCurrentState() {\r\n if (uState === 2 /* eOfflineValue.Offline */ || rState === 2 /* eOfflineValue.Offline */) {\r\n return false;\r\n }\r\n return true; // if both unknown, then we assume the network is good\r\n }\r\n function listnerNoticeCheck() {\r\n // we were offline and are now online or we were online and now offline\r\n var newState = calCurrentState();\r\n if (_currentState !== newState) {\r\n _currentState = newState; // use the resolved state to update\r\n // send all the callbacks with the current state\r\n arrForEach(listenerList, function (callback) {\r\n var offlineState = {\r\n isOnline: _currentState,\r\n rState: rState,\r\n uState: uState\r\n };\r\n try {\r\n callback(offlineState);\r\n }\r\n catch (e) {\r\n // Do nothing, just making sure we run all of the callbacks\r\n }\r\n });\r\n }\r\n }\r\n function setOnlineState(newState) {\r\n uState = newState;\r\n listnerNoticeCheck();\r\n }\r\n function _setOnline() {\r\n rState = 1 /* eOfflineValue.Online */;\r\n listnerNoticeCheck();\r\n }\r\n function _setOffline() {\r\n rState = 2 /* eOfflineValue.Offline */;\r\n listnerNoticeCheck();\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n function addListener(callback) {\r\n listenerList[_DYN_PUSH /* @min:%2epush */](callback);\r\n // Define rm as an instance of IUnloadHook\r\n return {\r\n rm: function () {\r\n var index = listenerList.indexOf(callback);\r\n if (index > -1) {\r\n return listenerList.splice(index, 1);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n };\r\n }\r\n return {\r\n isOnline: _isOnline,\r\n isListening: function () { return _isListening; },\r\n unload: _unload,\r\n addListener: addListener,\r\n setOnlineState: setOnlineState\r\n };\r\n}\r\n//# sourceMappingURL=Offline.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var ChannelControllerPriority = 500;\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\n// export const SampleRate = \"sampleRate\";\r\n// export const ProcessLegacy = \"ProcessLegacy\";\r\n// export const HttpMethod = \"http.method\";\r\n// export const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\n// export const DEFAULT_BREEZE_PATH = \"/v2/track\";\r\n// export const strNotSpecified = \"not_specified\";\r\n// export const strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, dumpObj, getNavigator, getWindow, isFunction, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DATA, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PROTOCOL, _DYN_REPLACE, _DYN_SEND_POST, _DYN_SET_REQUEST_HEADER, _DYN_STATUS, _DYN_TIMEOUT, _DYN_TO_LOWER_CASE, _DYN_URL_STRING, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { DisabledPropertyName } from \"./Constants\";\r\nimport { _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getLocation, isBeaconsSupported, isFetchSupported, isXhrSupported, useXDomainRequest } from \"./EnvUtils\";\r\nimport { _getAllResponseHeaders, formatErrorMessageXdr, formatErrorMessageXhr, getResponseText, openXhr } from \"./HelperFuncs\";\r\nvar STR_EMPTY = \"\";\r\nvar STR_NO_RESPONSE_BODY = \"NoResponseBody\";\r\nvar _noResponseQs = \"&\" + STR_NO_RESPONSE_BODY + \"=true\";\r\nvar STR_POST_METHOD = \"POST\";\r\n/**\r\n * This Internal component\r\n * Manager SendPost functions\r\n * SendPostManger\r\n * @internal for internal use only\r\n */\r\nvar SenderPostManager = /** @class */ (function () {\r\n function SenderPostManager() {\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _enableSendPromise;\r\n var _isInitialized;\r\n var _diagLog;\r\n var _isOneDs;\r\n var _onCompleteFuncs;\r\n var _disableCredentials;\r\n var _fallbackInst;\r\n var _disableXhr;\r\n var _disableBeacon;\r\n var _disableBeaconSync;\r\n var _disableFetchKeepAlive;\r\n var _addNoResponse;\r\n var _timeoutWrapper;\r\n dynamicProto(SenderPostManager, this, function (_self, _base) {\r\n var _sendCredentials = true; // for 1ds\r\n _initDefaults();\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, diagLog) {\r\n _diagLog = diagLog;\r\n if (_isInitialized) {\r\n _throwInternal(_diagLog, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _self.SetConfig(config);\r\n _isInitialized = true;\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];\r\n };\r\n // This componet might get its config from sender, offline sender, 1ds post\r\n // so set this function to mock dynamic changes\r\n _self.SetConfig = function (config) {\r\n try {\r\n _onCompleteFuncs = config.senderOnCompleteCallBack || {};\r\n _disableCredentials = !!config.disableCredentials;\r\n _isOneDs = !!config.isOneDs;\r\n _enableSendPromise = !!config.enableSendPromise;\r\n _disableXhr = !!config.disableXhr;\r\n _disableBeacon = !!config.disableBeacon;\r\n _disableBeaconSync = !!config.disableBeaconSync;\r\n _timeoutWrapper = config.timeWrapper;\r\n _addNoResponse = !!config.addNoResponse;\r\n _disableFetchKeepAlive = !!config.disableFetchKeepAlive;\r\n _fallbackInst = { sendPOST: _xhrSender };\r\n if (!_isOneDs) {\r\n _sendCredentials = false; // for appInsights, set it to false always\r\n }\r\n if (_disableCredentials) {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"file:\") {\r\n // Special case where a local html file fails with a CORS error on Chromium browsers\r\n _sendCredentials = false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n _self.getSyncFetchPayload = function () {\r\n return _syncFetchPayload;\r\n };\r\n _self.getSenderInst = function (transports, sync) {\r\n if (transports && transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n return _getSenderInterface(transports, sync);\r\n }\r\n return null;\r\n };\r\n _self.getFallbackInst = function () {\r\n return _fallbackInst;\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function (unloadCtx, unloadState) {\r\n _initDefaults();\r\n };\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(res, onComplete) {\r\n _doOnComplete(onComplete, 200, {}, res);\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(message, onComplete) {\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _doOnComplete(onComplete, 400, {});\r\n }\r\n function _onNoPayloadUrl(onComplete) {\r\n _onError(\"No endpoint url is provided for the batch\", onComplete);\r\n }\r\n function _getSenderInterface(transports, syncSupport) {\r\n var _a;\r\n var transportType = 0 /* TransportType.NotSet */;\r\n var sendPostFunc = null;\r\n var lp = 0;\r\n while (sendPostFunc == null && lp < transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n transportType = transports[lp];\r\n if (!_disableXhr && transportType === 1 /* TransportType.Xhr */) {\r\n if (useXDomainRequest()) {\r\n // IE 8 and 9\r\n sendPostFunc = _xdrSender;\r\n }\r\n else if (isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n }\r\n else if (transportType === 2 /* TransportType.Fetch */ && isFetchSupported(syncSupport) && (!syncSupport || !_disableFetchKeepAlive)) {\r\n sendPostFunc = _doFetchSender;\r\n }\r\n else if (transportType === 3 /* TransportType.Beacon */ && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {\r\n sendPostFunc = _beaconSender;\r\n }\r\n lp++;\r\n }\r\n if (sendPostFunc) {\r\n return _a = {\r\n _transport: transportType,\r\n _isSync: syncSupport\r\n },\r\n _a[_DYN_SEND_POST /* @min:sendPOST */] = sendPostFunc,\r\n _a;\r\n }\r\n return null;\r\n }\r\n function _doOnComplete(oncomplete, status, headers, response) {\r\n try {\r\n oncomplete && oncomplete(status, headers, response);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doBeaconSend(payload, oncomplete) {\r\n var nav = getNavigator();\r\n var url = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!url) {\r\n _onNoPayloadUrl(oncomplete);\r\n // return true here, because we don't want to retry it with fallback sender\r\n return true;\r\n }\r\n url = payload[_DYN_URL_STRING /* @min:%2eurlString */] + (_addNoResponse ? _noResponseQs : STR_EMPTY);\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = _isOneDs ? data : new Blob([data], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, oncomplete, sync) {\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n try {\r\n if (data) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload, oncomplete)) {\r\n var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;\r\n if (onRetry && isFunction(onRetry)) {\r\n onRetry(payload, oncomplete, _doBeaconSend);\r\n }\r\n else {\r\n _fallbackInst && _fallbackInst[_DYN_SEND_POST /* @min:%2esendPOST */](payload, oncomplete, true);\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n // if can send\r\n _onSuccess(STR_EMPTY, oncomplete);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _isOneDs && _warnToConsole(_diagLog, \"Failed to send telemetry using sendBeacon API. Ex:\" + dumpObj(e));\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, STR_EMPTY);\r\n }\r\n return;\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n */\r\n function _xhrSender(payload, oncomplete, sync) {\r\n //let internalPayload = payload as IInternalPayloadData;\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (_isOneDs && sync && payload.disableXhrSync) {\r\n sync = false;\r\n }\r\n //const xhr = new XMLHttpRequest();\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n if (!_isOneDs) {\r\n // application/json should NOT add to 1ds post by default\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n }\r\n arrForEach(objKeys(headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n if (!_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }\r\n };\r\n xhr.onload = function () {\r\n if (_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n }\r\n };\r\n function _doOnReadyFunc(xhr) {\r\n var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;\r\n var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);\r\n if (onReadyFuncExist) {\r\n onReadyFunc(xhr, oncomplete, payload);\r\n }\r\n else {\r\n var response = getResponseText(xhr);\r\n _doOnComplete(oncomplete, xhr[_DYN_STATUS /* @min:%2estatus */], _getAllResponseHeaders(xhr, _isOneDs), response);\r\n }\r\n }\r\n xhr.onerror = function (event) {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 400, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n rejectFunc && rejectFunc(event);\r\n };\r\n xhr.ontimeout = function () {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 500, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n resolveFunc && resolveFunc(false);\r\n };\r\n xhr.send(payload[_DYN_DATA /* @min:%2edata */]);\r\n return thePromise;\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, oncomplete, sync) {\r\n var _a;\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n var batch = payload[_DYN_DATA /* @min:%2edata */];\r\n var plainTextBatch = _isOneDs ? batch : new Blob([batch], { type: \"application/json\" });\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n //TODO: handle time out for 1ds\r\n var init = (_a = {\r\n method: STR_POST_METHOD,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n // Only add headers if there are headers to add, due to issue with some polyfills\r\n if (payload.headers && objKeys(payload.headers)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(objKeys(headers), function (headerName) {\r\n requestHeaders.append(headerName, headers[headerName]);\r\n });\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = requestHeaders;\r\n }\r\n if (_sendCredentials && _isOneDs) {\r\n // for 1ds, Don't send credentials when URL is file://\r\n init.credentials = \"include\";\r\n }\r\n if (sync) {\r\n init.keepalive = true;\r\n _syncFetchPayload += batchLength;\r\n if (_isOneDs) {\r\n if (payload[\"_sendReason\"] === 2 /* SendRequestReason.Unload */) {\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n if (_addNoResponse) {\r\n endPointUrl += _noResponseQs;\r\n }\r\n }\r\n }\r\n else {\r\n // for appinsights, set to true for all sync request\r\n ignoreResponse = true;\r\n }\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n function _handleError(res) {\r\n // In case there is an error in the request. Set the status to 0 for 1ds and 400 for appInsights\r\n // so that the events can be retried later.\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, _isOneDs ? STR_EMPTY : res);\r\n }\r\n function _onFetchComplete(response, payload, value) {\r\n var status = response[_DYN_STATUS /* @min:%2estatus */];\r\n var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;\r\n if (onCompleteFunc && isFunction(onCompleteFunc)) {\r\n onCompleteFunc(response, oncomplete, value || STR_EMPTY, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, status, {}, value || STR_EMPTY);\r\n }\r\n }\r\n try {\r\n doAwaitResponse(fetch(_isOneDs ? endPointUrl : request, _isOneDs ? init : null), function (result) {\r\n if (sync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n if (!result.rejected) {\r\n var response_1 = result.value;\r\n try {\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!_isOneDs && !response_1.ok) {\r\n // this is for appInsights only\r\n _handleError(response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n if (_isOneDs && !response_1.body) {\r\n _onFetchComplete(response_1, null, STR_EMPTY);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _onFetchComplete(response_1, payload, resp.value);\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n else {\r\n _handleError(result.reason && result.reason[_DYN_MESSAGE /* @min:%2emessage */]);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 200, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n if (_isOneDs && !responseHandled && payload[_DYN_TIMEOUT /* @min:%2etimeout */] > 0) {\r\n // Simulate timeout\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n if (!responseHandled) {\r\n // Assume a 500 response (which will cause a retry)\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 500, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, oncomplete, sync) {\r\n // It doesn't support custom headers, so no action is taken with current requestHeaders\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n xdr.onload = function () {\r\n var response = getResponseText(xdr);\r\n var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;\r\n if (onloadFunc && isFunction(onloadFunc)) {\r\n onloadFunc(xdr, oncomplete, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 200, {}, response);\r\n }\r\n };\r\n xdr.onerror = function () {\r\n _doOnComplete(oncomplete, 400, {}, _isOneDs ? STR_EMPTY : formatErrorMessageXdr(xdr));\r\n };\r\n xdr.ontimeout = function () {\r\n _doOnComplete(oncomplete, 500, {});\r\n };\r\n xdr.onprogress = function () { };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location[_DYN_PROTOCOL /* @min:%2eprotocol */] || \"\";\r\n var endpoint = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endpoint) {\r\n _onNoPayloadUrl(oncomplete);\r\n return;\r\n }\r\n if (!_isOneDs && endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n var msg = \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\";\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + msg);\r\n _onError(msg, oncomplete);\r\n return;\r\n }\r\n var endpointUrl = _isOneDs ? endpoint : endpoint[_DYN_REPLACE /* @min:%2ereplace */](/^(https?:)/, \"\");\r\n xdr.open(STR_POST_METHOD, endpointUrl);\r\n if (payload[_DYN_TIMEOUT /* @min:%2etimeout */]) {\r\n xdr[_DYN_TIMEOUT /* @min:%2etimeout */] = payload[_DYN_TIMEOUT /* @min:%2etimeout */];\r\n }\r\n xdr.send(data);\r\n if (_isOneDs && sync) {\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n xdr.send(data);\r\n }, 0);\r\n }\r\n else {\r\n xdr.send(data);\r\n }\r\n }\r\n function _initDefaults() {\r\n _syncFetchPayload = 0;\r\n _isInitialized = false;\r\n _enableSendPromise = false;\r\n _diagLog = null;\r\n _isOneDs = null;\r\n _onCompleteFuncs = null;\r\n _disableCredentials = null;\r\n _fallbackInst = null;\r\n _disableXhr = false;\r\n _disableBeacon = false;\r\n _disableBeaconSync = false;\r\n _disableFetchKeepAlive = false;\r\n _addNoResponse = false;\r\n _timeoutWrapper = null;\r\n }\r\n });\r\n }\r\n// Removed Stub for SenderPostManager.prototype.initialize.\r\n// Removed Stub for SenderPostManager.prototype.getSyncFetchPayload.\r\n// Removed Stub for SenderPostManager.prototype.SetConfig.\r\n// Removed Stub for SenderPostManager.prototype.getSenderInst.\r\n// Removed Stub for SenderPostManager.prototype.getFallbackInst.\r\n// Removed Stub for SenderPostManager.prototype._doTeardown.\r\n // This is a workaround for an IE 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 SenderPostManager.__ieDyn=1;\n\n return SenderPostManager;\r\n}());\r\nexport { SenderPostManager };\r\n//# sourceMappingURL=SenderPostManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n var result;\r\n if (!done) {\r\n result = createPromise(function (resolved) {\r\n done = resolved;\r\n });\r\n }\r\n if (targets && getLength(targets) > 0) {\r\n doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=AsyncUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_NAME } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getJSON } from \"./EnvUtils\";\r\n/**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\nexport function parseResponse(response, diagLog) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + (e[_DYN_NAME /* @min:%2ename */] || dumpObj(e)), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=ResponseHelpers.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 15\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 38\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN__GET = \"_get\"; // Count: 5\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 7\r\nexport var _DYN_EVENTS_LIMIT_IN_MEM = \"eventsLimitInMem\"; // Count: 2\r\nexport var _DYN_PUSH = \"push\"; // Count: 9\r\nexport var _DYN_ITEM = \"item\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 6\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 3\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 4\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 8\r\nexport var _DYN_CONCAT = \"concat\"; // Count: 6\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 5\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 16\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 3\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 3\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ALWAYS_USE_XHR_OVERR4 = \"alwaysUseXhrOverride\"; // Count: 2\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA5 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 9\r\nexport var _DYN_ONUNLOAD_DISABLE_FET6 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_DISABLE_SEND_BEACON_7 = \"disableSendBeaconSplit\"; // Count: 2\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN_ENABLE_SEND_PROMISE = \"enableSendPromise\"; // Count: 2\r\nexport var _DYN_GET_SENDER_INST = \"getSenderInst\"; // Count: 4\r\nexport var _DYN_UNLOAD_TRANSPORTS = \"unloadTransports\"; // Count: 2\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_SERIALIZE = \"serialize\"; // Count: 4\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 7\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 3\r\nexport var _DYN_ORI_PAYLOAD = \"oriPayload\"; // Count: 3\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n // Starting from Version 3.0.3, the time property will be assigned by the startTime value,\r\n // which records the loadEvent time for the pageView event.\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '3.2.1'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isNullOrUndefined, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONCAT, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_ITEM, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__GET, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n this[_DYN__GET /* @min:%2e_get */] = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n return;\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += (_buffer[lp].item)[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payloads) {\r\n if (payloads && payloads[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var payloadStr_1 = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr_1[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n payloadStr_1.join(\"\\n\") :\r\n \"[\" + payloadStr_1.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n var items = _buffer.slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(items, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n return newBuffer;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n// Removed Stub for BaseSendBuffer.prototype.createNew.\r\n // This is a workaround for an IE 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 BaseSendBuffer.__ieDyn=1;\n\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n // This is a workaround for an IE 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 ArraySendBuffer.__ieDyn=1;\n\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\nvar PREVIOUS_KEYS = [\"AI_buffer\", \"AI_sentBuffer\"];\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n // TODO: add remove buffer override as well\r\n var _b = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var previousItems = _getPreviousEvents();\r\n var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT /* @min:%2econcat */](previousItems);\r\n var buffer = _self._set(bufferItems[_DYN_CONCAT /* @min:%2econcat */](notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET /* @min:%2e_get */]())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements[_DYN_CONCAT /* @min:%2econcat */](payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n canUseSessionStorage = !!canUseSessionStorage;\r\n var unsentItems = _self[_DYN__GET /* @min:%2e_get */]().slice(0);\r\n var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(unsentItems, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n if (canUseSessionStorage) {\r\n // arr buffer will clear all payloads if markAsSent() is called\r\n newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n }\r\n return newBuffer;\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n var payloadStr = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM /* @min:%2eitem */]) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n return _getBufferBase(prefixedKey);\r\n }\r\n function _getBufferBase(key) {\r\n try {\r\n var bufferJson = getItem(logger, key);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + key + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n setItem(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n // this removes buffer with prefix+key\r\n function _getPreviousEvents() {\r\n var items = [];\r\n try {\r\n arrForEach(PREVIOUS_KEYS, function (key) {\r\n var events = _getItemsFromPreviousKey(key);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](events);\r\n // to make sure that we also transfer items from old prefixed + key buffer\r\n if (_namePrefix) {\r\n var prefixedKey = _namePrefix + \"_\" + key;\r\n var prefixEvents = _getItemsFromPreviousKey(prefixedKey);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](prefixEvents);\r\n }\r\n });\r\n return items;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \"Transfer events from previous buffers: \" + getExceptionName(e) + \". previous Buffer items can not be removed\", { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n // transform string[] to IInternalStorageItem[]\r\n function _getItemsFromPreviousKey(key) {\r\n try {\r\n var items = _getBufferBase(key);\r\n var transFormedItems_1 = [];\r\n arrForEach(items, function (item) {\r\n var internalItem = {\r\n item: item,\r\n cnt: 0 // previous events will be default to 0 count\r\n };\r\n transFormedItems_1[_DYN_PUSH /* @min:%2epush */](internalItem);\r\n });\r\n // remove the session storage if we can add events back\r\n utlRemoveSessionStorage(logger, key);\r\n return transFormedItems_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return [];\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.createNew.\r\n var _a;\r\n _a = SessionStorageSendBuffer;\r\n SessionStorageSendBuffer.VERSION = \"_1\";\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\" + _a.VERSION;\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\" + _a.VERSION;\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, createOfflineListener, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, SenderPostManager, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, formatErrorMessageXdr, formatErrorMessageXhr, getExceptionName, getIEVersion, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, mergeEvtNamespace, objExtend, onConfigChange, parseResponse, prependTransports, runTargetUnload } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isNumber, isString, isTruthy, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_ALWAYS_USE_XHR_OVERR4, _DYN_BASE_TYPE, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_CUSTOM_HEADERS, _DYN_DATA, _DYN_DIAG_LOG, _DYN_DISABLE_SEND_BEACON_7, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SEND_PROMISE, _DYN_ENABLE_SESSION_STORA5, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_EVENTS_SEND_REQUEST, _DYN_GET_SENDER_INST, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_ITEM, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET6, _DYN_ORI_PAYLOAD, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SERIALIZE, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN_UNLOAD_TRANSPORTS, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar EMPTY_STR = \"\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction isOverrideFn(httpXHROverride) {\r\n return httpXHROverride && httpXHROverride.sendPOST;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n // Use the default value (handles empty string in the configuration)\r\n endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = 15000,\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n _a.disableTelemetry = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_SESSION_STORA5 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n _a.isRetryDisabled = cfgDfBoolean(),\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_SEND_BEACON_7 /* @min:disableSendBeaconSplit */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.namePrefix = UNDEFINED_VALUE,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = UNDEFINED_VALUE,\r\n _a[_DYN_EVENTS_LIMIT_IN_MEM /* @min:eventsLimitInMem */] = 10000,\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },\r\n _a[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:alwaysUseXhrOverride */] = cfgDfBoolean(),\r\n _a.transports = UNDEFINED_VALUE,\r\n _a.retryCodes = UNDEFINED_VALUE,\r\n _a.maxRetryCnt = { isVal: isNumber, v: 10 },\r\n _a));\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n _b[Event.dataType] = EventEnvelopeCreator,\r\n _b[Trace.dataType] = TraceEnvelopeCreator,\r\n _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _b[Metric.dataType] = MetricEnvelopeCreator,\r\n _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n var _endpointUrl;\r\n var _orgEndpointUrl;\r\n var _maxBatchSizeInBytes;\r\n var _beaconSupported;\r\n var _beaconOnUnloadSupported;\r\n var _beaconNormalSupported;\r\n var _customHeaders;\r\n var _disableTelemetry;\r\n var _instrumentationKey;\r\n var _convertUndefined;\r\n var _isRetryDisabled;\r\n var _maxBatchInterval;\r\n var _sessionStorageUsed;\r\n var _bufferOverrideUsed;\r\n var _namePrefix;\r\n var _enableSendPromise;\r\n var _alwaysUseCustomSend;\r\n var _disableXhr;\r\n var _fetchKeepAlive;\r\n var _xhrSend;\r\n var _fallbackSend;\r\n var _disableBeaconSplit;\r\n var _sendPostMgr;\r\n var _retryCodes;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n _checkMaxSize();\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if (_beaconSupported || _alwaysUseCustomSend) {\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush(false);\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, core, extensions, pluginChain);\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return senderConfig;\r\n }\r\n });\r\n // Only update the endpoint if the original config !== the current config\r\n // This is so any redirect endpointUrl is not overwritten\r\n if (_orgEndpointUrl !== senderConfig.endpointUrl) {\r\n if (_orgEndpointUrl) {\r\n // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n }\r\n _endpointUrl = _orgEndpointUrl = senderConfig.endpointUrl;\r\n }\r\n if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n // Removing any previously defined custom headers as they have changed\r\n arrForEach(_customHeaders, function (customHeader) {\r\n delete _headers[customHeader.header];\r\n });\r\n }\r\n _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false && isBeaconsSupported();\r\n _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false && isBeaconsSupported();\r\n _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:%2ealwaysUseXhrOverride */];\r\n _disableXhr = !!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */];\r\n _retryCodes = senderConfig.retryCodes;\r\n var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 /* @min:%2eenableSessionStorageBuffer */] &&\r\n (!!bufferOverride || utlCanUseSessionStorage());\r\n var namePrefix = senderConfig.namePrefix;\r\n //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n // if namePrefix changes, transfer current buffer to new buffer\r\n // else no action needed\r\n //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n // transfer current buffer to new buffer\r\n if (shouldUpdate) {\r\n try {\r\n _self._buffer = _self._buffer[_DYN_CREATE_NEW /* @min:%2ecreateNew */](diagLog, senderConfig, canUseSessionStorage);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n _checkMaxSize();\r\n }\r\n else {\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n }\r\n _namePrefix = namePrefix;\r\n _sessionStorageUsed = canUseSessionStorage;\r\n _bufferOverrideUsed = bufferOverride;\r\n _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true);\r\n _disableBeaconSplit = !!senderConfig[_DYN_DISABLE_SEND_BEACON_7 /* @min:%2edisableSendBeaconSplit */];\r\n _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!_validateInstrumentationKey(_instrumentationKey, config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n }\r\n _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n if (!isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_customHeaders, function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n else {\r\n _customHeaders = null;\r\n }\r\n _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE /* @min:%2eenableSendPromise */];\r\n var sendPostConfig = _getSendPostMgrConfig();\r\n // only init it once\r\n if (!_sendPostMgr) {\r\n _sendPostMgr = new SenderPostManager();\r\n _sendPostMgr[_DYN_INITIALIZE /* @min:%2einitialize */](sendPostConfig, diagLog);\r\n }\r\n else {\r\n _sendPostMgr.SetConfig(sendPostConfig);\r\n }\r\n var customInterface = senderConfig.httpXHROverride;\r\n var httpInterface = null;\r\n var syncInterface = null;\r\n // User requested transport(s) values > Beacon > Fetch > XHR\r\n // Beacon would be filtered out if user has set disableBeaconApi to true at _getSenderInterface\r\n var theTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */], senderConfig.transports);\r\n httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](theTransports, false);\r\n var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();\r\n _xhrSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync);\r\n };\r\n _fallbackSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync, false);\r\n };\r\n httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = function (payload, isAsync) {\r\n return _doSend(httpInterface, payload, isAsync);\r\n };\r\n if (_fetchKeepAlive) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n var syncTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */], senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */]);\r\n if (!_fetchKeepAlive) {\r\n // remove fetch from theTransports\r\n syncTransports = syncTransports.filter(function (transport) { return transport !== 2 /* TransportType.Fetch */; });\r\n }\r\n syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](syncTransports, true);\r\n syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);\r\n if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */] || !_syncUnloadSender) && syncInterface) {\r\n _syncUnloadSender = function (payload, isAsync) {\r\n return _doSend(syncInterface, payload, isAsync);\r\n };\r\n }\r\n if (!_syncUnloadSender) {\r\n _syncUnloadSender = _xhrSend;\r\n }\r\n _disableTelemetry = senderConfig.disableTelemetry;\r\n _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */] || UNDEFINED_VALUE;\r\n _isRetryDisabled = senderConfig.isRetryDisabled;\r\n _maxBatchInterval = senderConfig[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */];\r\n }));\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n var _a;\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var isValidate = _validate(telemetryItem, diagLogger);\r\n if (!isValidate) {\r\n return;\r\n }\r\n var aiEnvelope = _getEnvelope(telemetryItem, diagLogger);\r\n if (!aiEnvelope) {\r\n return;\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](aiEnvelope);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n _checkMaxSize(payload);\r\n var payloadItem = (_a = {},\r\n _a[_DYN_ITEM /* @min:item */] = payload,\r\n _a.cnt = 0 // inital cnt will always be 0\r\n ,\r\n _a);\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payloadItem);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n _self.isCompletelyIdle = function () {\r\n return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT /* @min:%2ecount */]() === 0;\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // since version 3.2.0, this function is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async - {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_disableTelemetry) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n result = forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n _self.getOfflineSupport = function () {\r\n var _a;\r\n return _a = {\r\n getUrl: function () {\r\n return _endpointUrl;\r\n },\r\n createPayload: _createPayload\r\n },\r\n _a[_DYN_SERIALIZE /* @min:serialize */] = _serialize,\r\n _a.batch = _batch,\r\n _a.shouldProcess = function (evt) {\r\n return !!_validate(evt);\r\n },\r\n _a;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n runTargetUnload(_offlineListener, false);\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onError(payload, message, event);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onPartialSuccess(payload, results);\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onSuccess(payload, countOfItemsInPayload);\r\n //_self._buffer && _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, payload);\r\n };\r\n function _xdrOnLoad(xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = parseResponse(responseText);\r\n if (results && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n }\r\n function _getSendPostMgrConfig() {\r\n var _a;\r\n try {\r\n var onCompleteFuncs = {\r\n xdrOnComplete: function (xdr, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, data);\r\n },\r\n fetchOnComplete: function (response, onComplete, resValue, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH /* @min:%2elength */], response.statusText, resValue || \"\");\r\n },\r\n xhrOnComplete: function (request, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(request, data, data[_DYN_LENGTH /* @min:%2elength */]);\r\n },\r\n beaconOnRetry: function (data, onComplete, canSend) {\r\n return _onBeaconRetry(data, onComplete, canSend);\r\n }\r\n };\r\n var config = (_a = {},\r\n _a[_DYN_ENABLE_SEND_PROMISE /* @min:enableSendPromise */] = _enableSendPromise,\r\n _a.isOneDs = false,\r\n _a.disableCredentials = false,\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = _disableXhr,\r\n _a.disableBeacon = !_beaconNormalSupported,\r\n _a.disableBeaconSync = !_beaconOnUnloadSupported,\r\n _a.senderOnCompleteCallBack = onCompleteFuncs,\r\n _a);\r\n return config;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n /**\r\n * xhr state changes\r\n */\r\n function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n /**\r\n * partial success handler\r\n */\r\n function _onPartialSuccess(payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n }\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n function _getPayloadArr(payload) {\r\n try {\r\n if (payload) {\r\n var internalPayload = payload;\r\n var arr = internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return arr;\r\n }\r\n return null;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _validate(telemetryItem, diagLogger) {\r\n if (_disableTelemetry) {\r\n // Do not send/save data\r\n return false;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return false;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return false;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return false;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n diagLogger && _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return false;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n return true;\r\n }\r\n function _getEnvelope(telemetryItem, diagLogger) {\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n var aiEnvelope = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n if (!aiEnvelope) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope) === false) {\r\n doNotSendItem = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n return aiEnvelope;\r\n }\r\n function _serialize(item) {\r\n var rlt = EMPTY_STR;\r\n var diagLogger = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var valid = _validate(item, diagLogger);\r\n var envelope = null;\r\n if (valid) {\r\n envelope = _getEnvelope(item, diagLogger);\r\n }\r\n if (envelope) {\r\n rlt = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](envelope);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return rlt;\r\n }\r\n function _batch(arr) {\r\n var rlt = EMPTY_STR;\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n rlt = \"[\" + arr.join(\",\") + \"]\";\r\n }\r\n return rlt;\r\n }\r\n function _createPayload(data) {\r\n var _a;\r\n var headers = _getHeaders();\r\n return _a = {\r\n urlString: _endpointUrl\r\n },\r\n _a[_DYN_DATA /* @min:data */] = data,\r\n _a.headers = headers,\r\n _a;\r\n }\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _getOnComplete(payload, status, headers, response) {\r\n // ***********************************************************************************************\r\n //TODO: handle other status codes\r\n if (status === 200 && payload) {\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n else {\r\n response && _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response);\r\n }\r\n }\r\n function _doSend(sendInterface, payload, isAsync, markAsSent) {\r\n if (markAsSent === void 0) { markAsSent = true; }\r\n var onComplete = function (status, headers, response) {\r\n return _getOnComplete(payload, status, headers, response);\r\n };\r\n var payloadData = _getPayload(payload);\r\n var sendPostFunc = sendInterface && sendInterface.sendPOST;\r\n if (sendPostFunc && payloadData) {\r\n // ***********************************************************************************************\r\n // mark payload as sent at the beginning of calling each send function\r\n if (markAsSent) {\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n return sendPostFunc(payloadData, onComplete, !isAsync);\r\n }\r\n return null;\r\n }\r\n function _getPayload(payload) {\r\n var _a;\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = _self[_DYN__BUFFER /* @min:%2e_buffer */].batchPayloads(payload);\r\n var headers = _getHeaders();\r\n var payloadData = (_a = {},\r\n _a[_DYN_DATA /* @min:data */] = batch,\r\n _a.urlString = _endpointUrl,\r\n _a.headers = headers,\r\n _a.disableXhrSync = _disableXhr,\r\n _a.disableFetchKeepAlive = !_fetchKeepAlive,\r\n _a[_DYN_ORI_PAYLOAD /* @min:oriPayload */] = payload,\r\n _a);\r\n return payloadData;\r\n }\r\n return null;\r\n }\r\n function _getHeaders() {\r\n try {\r\n var headers = _headers || {};\r\n if (isInternalApplicationInsightsEndpoint(_endpointUrl)) {\r\n headers[RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */]] = RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */];\r\n }\r\n return headers;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _checkMaxSize(incomingPayload) {\r\n var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n if (!_offlineListener || _offlineListener.isOnline()) { // only trigger send when currently online\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_isRetryDisabled && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_isRetryDisabled) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = parseResponse(res);\r\n }\r\n if (response && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _endpointUrl) {\r\n _endpointUrl = responseUrl;\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([3 /* TransportType.Beacon */], true);\r\n return _doSend(beaconInst, payload, isAsync);\r\n }\r\n }\r\n function _onBeaconRetry(payload, onComplete, canSend) {\r\n var internalPayload = payload;\r\n var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (!_disableBeaconSplit) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < data[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = data[lp];\r\n var arr = [thePayload];\r\n var item = _getPayload(arr);\r\n if (!canSend(item, onComplete)) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n else {\r\n _self._onSuccess(arr, arr[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSend && _fallbackSend(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n _fallbackSend && _fallbackSend(data, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n function _isStringArr(arr) {\r\n try {\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return (isString(arr[0]));\r\n }\r\n }\r\n catch (e) {\r\n //TODO: log, sender use IInternalStorageItem instead of string since 3.1.3\r\n }\r\n return null;\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n var transport = null;\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp].item[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();\r\n if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n transport = 2 /* TransportType.Fetch */;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n transport = 3 /* TransportType.Beacon */;\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n transport = 1 /* TransportType.Xhr */;\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([transport], true);\r\n return _doSend(inst, payload, isAsync);\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n item.cnt = item.cnt || 0; // to make sure we have cnt for each payload\r\n item.cnt++; // when resend, increase cnt\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_maxBatchInterval, retryInterval);\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n // retryCodes = [] means should not retry\r\n if (!isNullOrUndefined(_retryCodes)) {\r\n return _retryCodes[_DYN_LENGTH /* @min:%2elength */] && _retryCodes.indexOf(statusCode) > -1;\r\n }\r\n return statusCode === 401 // Unauthorized\r\n // Removing as private links can return a 403 which causes excessive retries and session storage usage\r\n // || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(instrumentationKey, config) {\r\n var disableValidation = config.disableInstrumentationKeyValidation;\r\n var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(instrumentationKey);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n _endpointUrl = null;\r\n _orgEndpointUrl = null;\r\n _maxBatchSizeInBytes = 0;\r\n _beaconSupported = false;\r\n _customHeaders = null;\r\n _disableTelemetry = false;\r\n _instrumentationKey = null;\r\n _convertUndefined = UNDEFINED_VALUE;\r\n _isRetryDisabled = false;\r\n _sessionStorageUsed = null;\r\n _namePrefix = UNDEFINED_VALUE;\r\n _disableXhr = false;\r\n _fetchKeepAlive = false;\r\n _disableBeaconSplit = false;\r\n _xhrSend = null;\r\n _fallbackSend = null;\r\n _sendPostMgr = null;\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return objExtend({}, defaultAppInsightsChannelConfig);\r\n }\r\n });\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n// Removed Stub for Sender.prototype.isCompletelyIdle.\r\n// Removed Stub for Sender.prototype.getOfflineSupport.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SERIALIZE, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self[_DYN_SERIALIZE /* @min:%2eserialize */] = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n output[field] = num;\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n // This is a workaround for an IE 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 Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_CONCAT, _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input[_DYN_CONCAT /* @min:%2econcat */](input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys, strEndsWith } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // apply the default endpoints\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply user override endpoint or the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n if (strEndsWith(result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */], \"/\")) {\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */].slice(0, -1);\r\n }\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _throwInternal, arrIndexOf, isNotNullOrUndefined, isNullOrUndefined, onConfigChange, randomValue, safeGetLogger, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { arrForEach, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { _DYN_COUNT, _DYN_DATE, _DYN_DAYS_OF_MONTH, _DYN_DISABLED, _DYN_GET_UTCDATE, _DYN_INTERVAL, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PRE_TRIGGER_DATE, _DYN_PUSH, _DYN_STRINGIFY } from \"./__DynamicConstants\";\r\nvar THROTTLE_STORAGE_PREFIX = \"appInsightsThrottle\";\r\nvar ThrottleMgr = /** @class */ (function () {\r\n function ThrottleMgr(core, namePrefix) {\r\n var _self = this;\r\n var _canUseLocalStorage;\r\n var _logger;\r\n var _config;\r\n var _localStorageObj;\r\n var _isTriggered; //_isTriggered is to make sure that we only trigger throttle once a day\r\n var _namePrefix;\r\n var _queue;\r\n var _isReady = false;\r\n var _isSpecificDaysGiven = false;\r\n _initConfig();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_queue];\r\n };\r\n _self.getConfig = function () {\r\n return _config;\r\n };\r\n /**\r\n * Check if it is the correct day to send message.\r\n * If _isTriggered is true, even if canThrottle returns true, message will not be sent,\r\n * because we only allow triggering sendMessage() once a day.\r\n * @returns if the current date is the valid date to send message\r\n */\r\n _self.canThrottle = function (msgId) {\r\n var localObj = _getLocalStorageObjByKey(msgId);\r\n var cfg = _getCfgByKey(msgId);\r\n return _canThrottle(cfg, _canUseLocalStorage, localObj);\r\n };\r\n /**\r\n * Check if throttle is triggered on current day(UTC)\r\n * if canThrottle returns false, isTriggered will return false\r\n * @returns if throttle is triggered on current day(UTC)\r\n */\r\n _self.isTriggered = function (msgId) {\r\n return _isTrigger(msgId);\r\n };\r\n /**\r\n * Before isReady set to true, all message will be stored in queue.\r\n * Message will only be sent out after isReady set to true.\r\n * Initial and default value: false\r\n * @returns isReady state\r\n */\r\n _self.isReady = function () {\r\n return _isReady;\r\n };\r\n /**\r\n * Flush all message with given message key in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flush = function (msgId) {\r\n try {\r\n var queue = _getQueueByKey(msgId);\r\n if (queue && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var items = queue.slice(0);\r\n _queue[msgId] = [];\r\n arrForEach(items, function (item) {\r\n _flushMessage(item.msgID, item[_DYN_MESSAGE /* @min:%2emessage */], item.severity, false);\r\n });\r\n return true;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Flush all message in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flushAll = function () {\r\n try {\r\n if (_queue) {\r\n var result_1 = true;\r\n objForEachKey(_queue, function (key) {\r\n var isFlushed = _self.flush(parseInt(key));\r\n result_1 = result_1 && isFlushed;\r\n });\r\n return result_1;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Set isReady State\r\n * if isReady set to true, message queue will be flushed automatically.\r\n * @param isReady isReady State\r\n * @pa\r\n * @returns if message queue is flushed\r\n */\r\n _self.onReadyState = function (isReady, flushAll) {\r\n if (flushAll === void 0) { flushAll = true; }\r\n _isReady = isNullOrUndefined(isReady) ? true : isReady;\r\n if (_isReady && flushAll) {\r\n return _self.flushAll();\r\n }\r\n return null;\r\n };\r\n _self.sendMessage = function (msgID, message, severity) {\r\n return _flushMessage(msgID, message, severity, true);\r\n };\r\n function _flushMessage(msgID, message, severity, saveUnsentMsg) {\r\n if (_isReady) {\r\n var isSampledIn = _canSampledIn(msgID);\r\n if (!isSampledIn) {\r\n return;\r\n }\r\n var cfg = _getCfgByKey(msgID);\r\n var localStorageObj = _getLocalStorageObjByKey(msgID);\r\n var canThrottle = _canThrottle(cfg, _canUseLocalStorage, localStorageObj);\r\n var throttled = false;\r\n var number = 0;\r\n var isTriggered = _isTrigger(msgID);\r\n try {\r\n if (canThrottle && !isTriggered) {\r\n number = Math.min(cfg.limit.maxSendNumber, localStorageObj[_DYN_COUNT /* @min:%2ecount */] + 1);\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] = 0;\r\n throttled = true;\r\n _isTriggered[msgID] = true;\r\n localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */] = new Date();\r\n }\r\n else {\r\n _isTriggered[msgID] = canThrottle;\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] += 1;\r\n }\r\n var localStorageName = _getLocalStorageName(msgID);\r\n _resetLocalStorage(_logger, localStorageName, localStorageObj);\r\n for (var i = 0; i < number; i++) {\r\n _sendMessage(msgID, _logger, message, severity);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return {\r\n isThrottled: throttled,\r\n throttleNum: number\r\n };\r\n }\r\n else {\r\n if (!!saveUnsentMsg) {\r\n var queue = _getQueueByKey(msgID);\r\n queue[_DYN_PUSH /* @min:%2epush */]({\r\n msgID: msgID,\r\n message: message,\r\n severity: severity\r\n });\r\n }\r\n }\r\n return null;\r\n }\r\n function _initConfig() {\r\n _logger = safeGetLogger(core);\r\n _isTriggered = {};\r\n _localStorageObj = {};\r\n _queue = {};\r\n _config = {};\r\n _setCfgByKey(109 /* _eInternalMessageId.DefaultThrottleMsgKey */);\r\n _namePrefix = isNotNullOrUndefined(namePrefix) ? namePrefix : \"\";\r\n core.addUnloadHook(onConfigChange(core.config, function (details) {\r\n var coreConfig = details.cfg;\r\n _canUseLocalStorage = utlCanUseLocalStorage();\r\n var configMgr = coreConfig.throttleMgrCfg || {};\r\n objForEachKey(configMgr, function (key, cfg) {\r\n _setCfgByKey(parseInt(key), cfg);\r\n });\r\n }));\r\n }\r\n function _getCfgByKey(msgID) {\r\n return _config[msgID] || _config[109 /* _eInternalMessageId.DefaultThrottleMsgKey */];\r\n }\r\n function _setCfgByKey(msgID, config) {\r\n var _a, _b;\r\n try {\r\n var cfg = config || {};\r\n var curCfg = {};\r\n curCfg[_DYN_DISABLED /* @min:%2edisabled */] = !!cfg[_DYN_DISABLED /* @min:%2edisabled */];\r\n var configInterval = cfg[_DYN_INTERVAL /* @min:%2einterval */] || {};\r\n _isSpecificDaysGiven = (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth) && (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth[_DYN_LENGTH /* @min:%2elength */]) > 0;\r\n curCfg[_DYN_INTERVAL /* @min:%2einterval */] = _getIntervalConfig(configInterval);\r\n var limit = {\r\n samplingRate: ((_a = cfg.limit) === null || _a === void 0 ? void 0 : _a.samplingRate) || 100,\r\n // dafault: every time sent only 1 event\r\n maxSendNumber: ((_b = cfg.limit) === null || _b === void 0 ? void 0 : _b.maxSendNumber) || 1\r\n };\r\n curCfg.limit = limit;\r\n _config[msgID] = curCfg;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _getIntervalConfig(interval) {\r\n interval = interval || {};\r\n var monthInterval = interval === null || interval === void 0 ? void 0 : interval.monthInterval;\r\n var dayInterval = interval === null || interval === void 0 ? void 0 : interval.dayInterval;\r\n // default: send data every 3 month each year\r\n if (isNullOrUndefined(monthInterval) && isNullOrUndefined(dayInterval)) {\r\n interval.monthInterval = 3;\r\n if (!_isSpecificDaysGiven) {\r\n // default: send data on 28th\r\n interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */] = [28];\r\n _isSpecificDaysGiven = true;\r\n }\r\n }\r\n interval = {\r\n // dafault: sent every three months\r\n monthInterval: interval === null || interval === void 0 ? void 0 : interval.monthInterval,\r\n dayInterval: interval === null || interval === void 0 ? void 0 : interval.dayInterval,\r\n daysOfMonth: interval === null || interval === void 0 ? void 0 : interval.daysOfMonth\r\n };\r\n return interval;\r\n }\r\n function _canThrottle(config, canUseLocalStorage, localStorageObj) {\r\n if (config && !config[_DYN_DISABLED /* @min:%2edisabled */] && canUseLocalStorage && isNotNullOrUndefined(localStorageObj)) {\r\n var curDate = _getThrottleDate();\r\n var date = localStorageObj[_DYN_DATE /* @min:%2edate */];\r\n var interval = config[_DYN_INTERVAL /* @min:%2einterval */];\r\n var monthCheck = 1;\r\n if (interval === null || interval === void 0 ? void 0 : interval.monthInterval) {\r\n var monthExpand = (curDate.getUTCFullYear() - date.getUTCFullYear()) * 12 + curDate.getUTCMonth() - date.getUTCMonth();\r\n monthCheck = _checkInterval(interval.monthInterval, 0, monthExpand);\r\n }\r\n var dayCheck = 1;\r\n if (_isSpecificDaysGiven) {\r\n dayCheck = arrIndexOf(interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */], curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]());\r\n }\r\n else if (interval === null || interval === void 0 ? void 0 : interval.dayInterval) {\r\n var daySpan = Math.floor((curDate.getTime() - date.getTime()) / 86400000);\r\n dayCheck = _checkInterval(interval.dayInterval, 0, daySpan);\r\n }\r\n return monthCheck >= 0 && dayCheck >= 0;\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageName(msgKey, prefix) {\r\n var fix = isNotNullOrUndefined(prefix) ? prefix : \"\";\r\n if (msgKey) {\r\n return THROTTLE_STORAGE_PREFIX + fix + \"-\" + msgKey;\r\n }\r\n return null;\r\n }\r\n // returns if throttle is triggered on current Date\r\n function _isTriggeredOnCurDate(preTriggerDate) {\r\n try {\r\n if (preTriggerDate) {\r\n var curDate = new Date();\r\n return preTriggerDate.getUTCFullYear() === curDate.getUTCFullYear() &&\r\n preTriggerDate.getUTCMonth() === curDate.getUTCMonth() &&\r\n preTriggerDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]() === curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n // transfer local storage string value to object that identifies start date, current count and preTriggerDate\r\n function _getLocalStorageObj(value, logger, storageName) {\r\n try {\r\n var storageObj = {\r\n date: _getThrottleDate(),\r\n count: 0\r\n };\r\n if (value) {\r\n var obj = JSON.parse(value);\r\n var curObj = {\r\n date: _getThrottleDate(obj[_DYN_DATE /* @min:%2edate */]) || storageObj[_DYN_DATE /* @min:%2edate */],\r\n count: obj[_DYN_COUNT /* @min:%2ecount */] || storageObj[_DYN_COUNT /* @min:%2ecount */],\r\n preTriggerDate: obj.preTriggerDate ? _getThrottleDate(obj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]) : undefined\r\n };\r\n return curObj;\r\n }\r\n else {\r\n _resetLocalStorage(logger, storageName, storageObj);\r\n return storageObj;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n // if datestr is not defined, current date will be returned\r\n function _getThrottleDate(dateStr) {\r\n // if new Date() can't be created through the provided dateStr, null will be returned.\r\n try {\r\n if (dateStr) {\r\n var date = new Date(dateStr);\r\n //make sure it is a valid Date Object\r\n if (!isNaN(date.getDate())) {\r\n return date;\r\n }\r\n }\r\n else {\r\n return new Date();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _resetLocalStorage(logger, storageName, obj) {\r\n try {\r\n return utlSetLocalStorage(logger, storageName, strTrim(JSON[_DYN_STRINGIFY /* @min:%2estringify */](obj)));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _checkInterval(interval, start, current) {\r\n if (interval <= 0) {\r\n return 1;\r\n }\r\n // count from start year\r\n return (current >= start) && (current - start) % interval == 0 ? Math.floor((current - start) / interval) + 1 : -1;\r\n }\r\n function _sendMessage(msgID, logger, message, severity) {\r\n _throwInternal(logger, severity || 1 /* eLoggingSeverity.CRITICAL */, msgID, message);\r\n }\r\n // NOTE: config.limit.samplingRate is set to 4 decimal places,\r\n // so config.limit.samplingRate = 1 means 0.0001%\r\n function _canSampledIn(msgID) {\r\n try {\r\n var cfg = _getCfgByKey(msgID);\r\n return randomValue(1000000) <= cfg.limit.samplingRate;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageObjByKey(key) {\r\n try {\r\n var curObj = _localStorageObj[key];\r\n if (!curObj) {\r\n var localStorageName = _getLocalStorageName(key, _namePrefix);\r\n curObj = _getLocalStorageObj(utlGetLocalStorage(_logger, localStorageName), _logger, localStorageName);\r\n _localStorageObj[key] = curObj;\r\n }\r\n return _localStorageObj[key];\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _isTrigger(key) {\r\n var isTrigger = _isTriggered[key];\r\n if (isNullOrUndefined(isTrigger)) {\r\n isTrigger = false;\r\n var localStorageObj = _getLocalStorageObjByKey(key);\r\n if (localStorageObj) {\r\n isTrigger = _isTriggeredOnCurDate(localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]);\r\n }\r\n _isTriggered[key] = isTrigger;\r\n }\r\n return _isTriggered[key];\r\n }\r\n function _getQueueByKey(key) {\r\n _queue = _queue || {};\r\n if (isNullOrUndefined(_queue[key])) {\r\n _queue[key] = [];\r\n }\r\n return _queue[key];\r\n }\r\n }\r\n return ThrottleMgr;\r\n}());\r\nexport { ThrottleMgr };\r\n//# sourceMappingURL=ThrottleMgr.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, safe, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_DATA, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_OFFLINE_DROP, STR_OFFLINE_SENT, STR_OFFLINE_STORE, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n perfEvtsSendAll: false\r\n};\r\nfunction _runScheduledListeners(asyncNotifications) {\r\n asyncNotifications.h = null;\r\n var callbacks = asyncNotifications.cb;\r\n asyncNotifications.cb = [];\r\n arrForEach(callbacks, function (cb) {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(cb.fn, [cb.arg]);\r\n });\r\n}\r\n// This function is used to combine the logic of running the listeners and handling the async notifications so that they don't\r\n// create multiple timers if there are multiple async listeners.\r\nfunction _runListeners(listeners, name, asyncNotifications, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (asyncNotifications) {\r\n // Schedule the callback to be called after the current call stack has cleared.\r\n asyncNotifications.cb[_DYN_PUSH /* @min:%2epush */]({\r\n fn: callback,\r\n arg: listener\r\n });\r\n asyncNotifications.h = asyncNotifications.h || scheduleTimeout(_runScheduledListeners, 0, asyncNotifications);\r\n }\r\n else {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(callback, [listener]);\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll;\r\n var unloadHandler;\r\n var _listeners = [];\r\n var _asyncNotifications = {\r\n h: null,\r\n cb: []\r\n };\r\n var cfgHandler = createDynamicConfig(config, defaultValues);\r\n unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n });\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n objDefine(_self, \"listeners\", {\r\n g: function () { return _listeners; }\r\n });\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_listeners, listener);\r\n while (index > -1) {\r\n _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_listeners, STR_EVENTS_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync ? _asyncNotifications : null, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_listeners, STR_PERF_EVENT, null, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n _self[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */] = function (events) {\r\n if (events && events[_DYN_LENGTH /* @min:%2elength */]) {\r\n _runListeners(_listeners, STR_OFFLINE_STORE, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */](events);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */] = function (batch) {\r\n if (batch && batch[_DYN_DATA /* @min:%2edata */]) {\r\n _runListeners(_listeners, STR_OFFLINE_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */](batch);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */] = function (cnt, reason) {\r\n if (cnt > 0) {\r\n var rn_1 = reason || 0; // default is unknown\r\n _runListeners(_listeners, STR_OFFLINE_DROP, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */](cnt, rn_1);\r\n });\r\n }\r\n };\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n var _finishUnload = function () {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n _listeners = [];\r\n // Clear any async listener\r\n _asyncNotifications.h && _asyncNotifications.h[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _asyncNotifications.h = null;\r\n _asyncNotifications.cb = [];\r\n };\r\n var waiting;\r\n _runListeners(_listeners, \"unload\", null, function (listener) {\r\n var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n if (asyncUnload) {\r\n if (!waiting) {\r\n waiting = [];\r\n }\r\n waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n }\r\n });\r\n if (waiting) {\r\n return createPromise(function (resolve) {\r\n return doAwaitResponse(createAllPromise(waiting), function () {\r\n _finishUnload();\r\n resolve();\r\n });\r\n });\r\n }\r\n else {\r\n _finishUnload();\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n// Removed Stub for NotificationManager.prototype.perfEvent.\r\n// Removed Stub for NotificationManager.prototype.unload.\r\n// Removed Stub for NotificationManager.prototype.offlineEventsStored.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchSent.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchDrop.\r\n // This is a workaround for an IE 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 NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n var theInitializer = {\r\n id: id,\r\n fn: telemetryInitializer\r\n };\r\n arrAppend(_initializers, theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE 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 TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT2, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_POLL_INTERNAL_LOGS, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_UNLOAD, _DYN_VERSION, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n cookieCfg: {}\r\n },\r\n _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n var channels = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channels\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by AppInsightsCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n else {\r\n channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {},\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a[STR_CHANNELS /* @min:channels */] = channels,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n // Lets assign the new values to the existing config\r\n if (newValues) {\r\n objForEachKey(newValues, function (key, value) {\r\n if (merge) {\r\n if (isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n }\r\n if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n else {\r\n // Just Assign (replace) and/or make the property dynamic\r\n details.set(target, key, value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n var theListener = null;\r\n var idx = -1;\r\n arrForEach(listeners, function (listener, lp) {\r\n if (listener.w === newWatcher) {\r\n theListener = listener;\r\n idx = lp;\r\n return -1;\r\n }\r\n });\r\n return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n var theListener = _findWatcher(listeners, newWatcher).l;\r\n if (!theListener) {\r\n theListener = {\r\n w: newWatcher,\r\n rm: function () {\r\n var fnd = _findWatcher(listeners, newWatcher);\r\n if (fnd.i !== -1) {\r\n listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n }\r\n }\r\n };\r\n listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n }\r\n return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n arrForEach(listeners, function (listener) {\r\n var unloadHdl = onConfigChange(config, listener.w, logger);\r\n delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n // replace the remove function\r\n listener.rm = function () {\r\n unloadHdl.rm();\r\n };\r\n });\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _initDebugListener(configHandler, unloadContainer, notificationManager, debugListener) {\r\n // Will get recalled if any referenced config values are changed\r\n unloadContainer.add(configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var disableDbgExt = details.cfg.disableDbgExt;\r\n if (disableDbgExt === true && debugListener) {\r\n // Remove any previously loaded debug listener\r\n notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](debugListener);\r\n debugListener = null;\r\n }\r\n if (notificationManager && !debugListener && disableDbgExt !== true) {\r\n debugListener = getDebugListener(details.cfg);\r\n notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](debugListener);\r\n }\r\n }));\r\n return debugListener;\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _createUnloadHook(unloadHook) {\r\n return objDefine({\r\n rm: function () {\r\n unloadHook.rm();\r\n }\r\n }, \"toJSON\", { v: function () { return \"aicore::onCfgChange<\" + JSON.stringify(unloadHook) + \">\"; } });\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _configHandler;\r\n var _isInitialized;\r\n var _logger;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _channelConfig;\r\n var _channels;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _hookContainer;\r\n var _debugListener;\r\n var _traceCtx;\r\n var _instrumentationKey;\r\n var _cfgListeners;\r\n var _extensions;\r\n var _pluginVersionStringArr;\r\n var _pluginVersionString;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller;\r\n var _internalLogPollerListening;\r\n var _forceStopInternalLogPoller;\r\n dynamicProto(AppInsightsCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_extensions];\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core cannot be initialized more than once\");\r\n }\r\n _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n config = _configHandler.cfg;\r\n // This will be \"re-run\" if the referenced config properties are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n _instrumentationKey = details.cfg.instrumentationKey;\r\n // Mark the extensionConfig and all first level keys as referenced\r\n // This is so that calls to getExtCfg() will always return the same object\r\n // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n objForEachKey(extCfg, function (key) {\r\n details.ref(extCfg, key);\r\n });\r\n if (isNullOrUndefined(_instrumentationKey)) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n }));\r\n _notificationManager = notificationManager;\r\n // Initialize the debug listener outside of the closure to reduce the retained memory footprint\r\n _debugListener = _initDebugListener(_configHandler, _hookContainer, _notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */](), _debugListener);\r\n _initPerfManager();\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n _initPluginChain(null);\r\n if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n if (!teeController || !teeController.plugin) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n }\r\n }\r\n _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n _cfgListeners = null;\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n };\r\n _self.getChannels = function () {\r\n var controls = [];\r\n if (_channels) {\r\n arrForEach(_channels, function (channel) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = telemetryItem.iKey || _instrumentationKey;\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n _notificationManager = new NotificationManager(_configHandler.cfg);\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.getNotifyMgr()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n if (_cookieManager !== cookieMgr) {\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = cookieMgr;\r\n }\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n arrForEach(eventQueue, function (event) {\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n return _startLogPoller(true);\r\n };\r\n function _startLogPoller(alwaysStart) {\r\n if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n if (!_internalLogPollerListening) {\r\n _internalLogPollerListening = true;\r\n // listen for any configuration changes so that changes to the\r\n // interval will cause the timer to be re-initialized\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var interval = details.cfg.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n var isRunning = false;\r\n if (_internalLogPoller) {\r\n // It was already created so remember it's running and cancel\r\n isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n }\r\n // Create / reconfigure\r\n _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n _internalLogPoller.unref();\r\n // Restart if previously running\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n }));\r\n }\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _flushInternalLogs();\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n });\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n return result;\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.updateCfg = function (newConfig, mergeExisting) {\r\n if (mergeExisting === void 0) { mergeExisting = true; }\r\n var updateState;\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n updateState = {\r\n reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n cfg: _configHandler.cfg,\r\n oldCfg: deepExtend({}, _configHandler.cfg),\r\n newConfig: deepExtend({}, newConfig),\r\n merge: mergeExisting\r\n };\r\n newConfig = updateState.newConfig;\r\n var cfg = _configHandler.cfg;\r\n // replace the immutable (if initialized) values\r\n // We don't currently allow updating the extensions and channels via the update config\r\n // So overwriting any user provided values to reuse the existing values\r\n newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n }\r\n // Explicitly blocking any previous config watchers so that they don't get called because\r\n // of this bulk update (Probably not necessary)\r\n _configHandler._block(function (details) {\r\n // Lets assign the new values to the existing config either overwriting or re-assigning\r\n var theConfig = details.cfg;\r\n _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n if (!mergeExisting) {\r\n // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n objForEachKey(theConfig, function (key) {\r\n if (!objHasOwn(newConfig, key)) {\r\n // Set the value to undefined\r\n details.set(theConfig, key, UNDEFINED_VALUE);\r\n }\r\n });\r\n }\r\n // Apply defaults to the new config\r\n details[_DYN_SET_DF /* @min:%2esetDf */](theConfig, defaultConfig);\r\n }, true);\r\n // Now execute all of the listeners (synchronously) so they update their values immediately\r\n _configHandler[_DYN_NOTIFY /* @min:%2enotify */]();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self.flush = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n _self.addUnloadHook = _addUnloadHook;\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n _self.onCfgChange = function (handler) {\r\n var unloadHook;\r\n if (!_isInitialized) {\r\n unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n }\r\n else {\r\n unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _createUnloadHook(unloadHook);\r\n };\r\n _self.getWParam = function () {\r\n return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n };\r\n function _setPluginVersions() {\r\n var thePlugins = {};\r\n _pluginVersionStringArr = [];\r\n var _addPluginVersions = function (plugins) {\r\n if (plugins) {\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n thePlugins[plugin.identifier] = plugin;\r\n }\r\n });\r\n }\r\n };\r\n _addPluginVersions(_channels);\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (channels) {\r\n _addPluginVersions(channels);\r\n });\r\n }\r\n _addPluginVersions(_configExtensions);\r\n }\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _configHandler.cfg; },\r\n s: function (newValue) {\r\n _self.updateCfg(newValue, false);\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionStringArr\", {\r\n g: function () {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n return _pluginVersionStringArr;\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionString\", {\r\n g: function () {\r\n if (!_pluginVersionString) {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n }\r\n return _pluginVersionString || STR_EMPTY;\r\n }\r\n });\r\n objDefine(_self, \"logger\", {\r\n g: function () {\r\n if (!_logger) {\r\n _logger = new DiagnosticLogger(_configHandler.cfg);\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n }\r\n return _logger;\r\n },\r\n s: function (newLogger) {\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n if (_logger !== newLogger) {\r\n runTargetUnload(_logger, false);\r\n _logger = newLogger;\r\n }\r\n }\r\n });\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n _extensions = [];\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n runTargetUnload(_notificationManager, false);\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _configExtensions = [];\r\n _channelConfig = null;\r\n _channels = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n _instrumentationKey = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _cfgListeners = [];\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller = null;\r\n _internalLogPollerListening = false;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _pluginChain = null;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Get the primary channel queue and include as part of the normal extensions\r\n _channels = (_channelConfig || [])[0] || [];\r\n // Add any channels provided in the extensions and sort them\r\n _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n // Create an array of all extensions, including the _channels\r\n var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _extensions = objFreeze(allExtensions);\r\n // This has a side effect of adding the extensions passed during initialization\r\n // into the config.extensions, so you can see all of the extensions loaded.\r\n // This will also get updated by the addPlugin() and remove plugin code.\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n var rootCtx = _createTelCtx();\r\n // Initializing the channels first\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n }\r\n // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n initializePlugins(rootCtx, allExtensions);\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var theExt = null;\r\n var thePlugin = null;\r\n var channelHosts = [];\r\n arrForEach(_extensions, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n if (ext.getChannel) {\r\n channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelHosts, function (host) {\r\n thePlugin = host.getChannel(pluginIdentifier);\r\n if (!thePlugin) {\r\n return -1;\r\n }\r\n });\r\n }\r\n if (thePlugin) {\r\n theExt = {\r\n plugin: thePlugin,\r\n setEnabled: function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n isEnabled: function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n remove: function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n }\r\n };\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_extensions || []).slice();\r\n // During add / remove this may get called again, so don't read if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startLogPoller();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_logger && _logger.queue) {\r\n var queue = _logger.queue.slice(0);\r\n _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a.iKey = _instrumentationKey,\r\n _a[_DYN_TIME /* @min:time */] = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n cbTimer = null;\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n flushCtx.iterate(function (plugin) {\r\n if (plugin.flush) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin.flush(isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = scheduleTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n doneIterating = true;\r\n doCallback();\r\n return true;\r\n }\r\n function _initPerfManager() {\r\n // Save the previous config based performance manager creator to avoid creating new perf manager instances if unchanged\r\n var prevCfgPerfMgr;\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var enablePerfMgr = details.cfg.enablePerfMgr;\r\n if (enablePerfMgr) {\r\n var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n if (prevCfgPerfMgr !== createPerfMgr) {\r\n if (!createPerfMgr) {\r\n createPerfMgr = _createPerfManager;\r\n }\r\n // Set the performance manager creation function if not defined\r\n getSetValue(details.cfg, STR_CREATE_PERF_MGR, createPerfMgr);\r\n prevCfgPerfMgr = createPerfMgr;\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n // Only create the performance manager if it's not already created or manually set\r\n if (!_perfManager && !_cfgPerfManager && isFunction(createPerfMgr)) {\r\n // Create a new config based performance manager\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n else {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n // Clear the previous cached value so it can be GC'd\r\n prevCfgPerfMgr = null;\r\n }\r\n }));\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startLogPoller();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _hookContainer.add(hooks);\r\n }\r\n });\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.getChannels.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.getProcessTelContext.\r\n// Removed Stub for AppInsightsCore.prototype.getNotifyMgr.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.getPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.eventCnt.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for AppInsightsCore.prototype.unload.\r\n// Removed Stub for AppInsightsCore.prototype.getPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.addPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.updateCfg.\r\n// Removed Stub for AppInsightsCore.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsCore.prototype.flush.\r\n// Removed Stub for AppInsightsCore.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.setTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadHook.\r\n// Removed Stub for AppInsightsCore.prototype.onCfgChange.\r\n// Removed Stub for AppInsightsCore.prototype.releaseQueue.\r\n// Removed Stub for AppInsightsCore.prototype._updateHook.\r\n // This is a workaround for an IE 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 AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 11\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 10\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 7\r\nexport var _DYN_ABORTED = \"aborted\"; // Count: 7\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 4\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_2 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT3 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE4 = \"enableRequestHeaderTracking\"; // Count: 3\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST5 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA6 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V7 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM8 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN9 = \"disableAjaxTracking\"; // Count: 3\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL10 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI11 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD12 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 11\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 9\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 8\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE13 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 6\r\nexport var _DYN_RESPONSE_FINISHED_TI14 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA15 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 5\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES16 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_SEND_DONE, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self[_DYN_OPEN_DONE /* @min:%2eopenDone */] = false;\r\n self.setRequestHeaderDone = false;\r\n self[_DYN_SEND_DONE /* @min:%2esendDone */] = false;\r\n self[_DYN_ABORT_DONE /* @min:%2eabortDone */] = false;\r\n // <summary>True, if onreadyStateChangeCallback function attached to xhr, otherwise false</summary>\r\n self[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var _a;\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = (_a = {},\r\n _a[_DYN_TRACE_ID0 /* @min:traceId */] = traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n _a[_DYN_SPAN_ID1 /* @min:spanId */] = traceCtx.getSpanId(),\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */](),\r\n _a);\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */]()\r\n },\r\n _a[_DYN_NAME /* @min:name */] = self.getPathName(),\r\n _a.type = ajaxType,\r\n _a[_DYN_START_TIME /* @min:startTime */] = null,\r\n _a.duration = self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n _a.success = (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n _a.responseCode = (+(self[_DYN_STATUS /* @min:%2estatus */])),\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response[_DYN_RESPONSE /* @min:%2eresponse */]) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var _a;\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */] || traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = (_a = {},\r\n _a[_DYN_TRACE_ID /* @min:traceID */] = traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */],\r\n _a.parentID = traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */],\r\n _a);\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n // This is a workaround for an IE 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 ajaxRecord.__ieDyn=1;\n\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, onConfigChange, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, objFreeze, scheduleTimeout, strIndexOf, strSplit, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES16, _DYN_AJAX_PERF_LOOKUP_DEL10, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN9, _DYN_DISABLE_FETCH_TRACKI11, _DYN_ENABLE_AJAX_ERROR_ST5, _DYN_ENABLE_AJAX_PERF_TRA6, _DYN_ENABLE_REQUEST_HEADE4, _DYN_ENABLE_RESPONSE_HEAD12, _DYN_ERROR_STATUS_TEXT, _DYN_EXCEPTION, _DYN_EXCLUDE_REQUEST_FROM8, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA15, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V7, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT3, _DYN__ADD_HOOK, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar AJAX_DATA_CONTAINER = \"_ajaxData\";\r\nvar STR_FETCH = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[STR_FETCH])) {\r\n return null;\r\n }\r\n return _global[STR_FETCH];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {\r\n var _a, _b;\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n var xhrData = {\r\n xh: [],\r\n i: (_a = {},\r\n _a[ajaxDataId] = {},\r\n _a)\r\n };\r\n xhr[AJAX_DATA_CONTAINER] = xhrData;\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", (_b = {},\r\n _b[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _b));\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Internal helper to fetch the SDK instance tracking data for this XHR request\r\n * @param xhr\r\n * @param ajaxDataId\r\n * @returns\r\n */\r\nvar _getAjaxData = function (xhr, ajaxDataId) {\r\n if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {\r\n return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];\r\n }\r\n return null;\r\n};\r\n/**\r\n * @ignore\r\n * Internal helper to track the singleton shared tracking headers, so we can attempt to not create headers\r\n * that might cause an issue if multiple values are populated.\r\n * @param xhr - The instrumented XHR instance\r\n */\r\nvar _addSharedXhrHeaders = function (xhr, name, value) {\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n headers.push({\r\n n: name,\r\n v: value\r\n });\r\n }\r\n }\r\n};\r\nvar _isHeaderSet = function (xhr, name) {\r\n var isPresent = false;\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n arrForEach(headers, function (header) {\r\n if (header.n === name) {\r\n isPresent = true;\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n return isPresent;\r\n};\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {\r\n var result = \"\";\r\n try {\r\n var ajaxData = _getAjaxData(xhr, ajaxDataId);\r\n if (ajaxData && ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n result += \"(url: '\" + ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (callDetails) {\r\n var _a;\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(callDetails[_DYN_INST /* @min:%2einst */], ajaxMonitorInstance._ajaxDataId)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(callDetails.err),\r\n _a));\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return strIndexOf(value, match);\r\n }\r\n return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n var theHandler = {\r\n id: id,\r\n fn: theFunc\r\n };\r\n container.push(theHandler);\r\n return {\r\n remove: function () {\r\n arrForEach(container, function (initializer, idx) {\r\n if (initializer.id === theHandler.id) {\r\n container.splice(idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n var result = true;\r\n arrForEach(container, function (theFunc, idx) {\r\n try {\r\n if (theFunc.fn.call(null, details) === false) {\r\n result = false;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n var _a;\r\n var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {},\r\n _a[_DYN_CORE /* @min:core */] = core,\r\n _a.xhr = xhr,\r\n _a.input = input,\r\n _a.init = init,\r\n _a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n _a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n _a.context = ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n _a.aborted = !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */],\r\n _a);\r\n _processDependencyContainer(core, listeners, details, \"listener\");\r\n ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];\r\n ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n }\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = objFreeze([\r\n BLOB_CORE + \"windows.net\",\r\n BLOB_CORE + \"chinacloudapi.cn\",\r\n BLOB_CORE + \"cloudapi.de\",\r\n BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nvar _defaultConfig = objFreeze((_a = {},\r\n _a[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:maxAjaxCallsPerView */] = 500,\r\n _a[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:disableAjaxTracking */] = false,\r\n _a[_DYN_DISABLE_FETCH_TRACKI11 /* @min:disableFetchTracking */] = false,\r\n _a[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,\r\n _a.disableCorrelationHeaders = false,\r\n _a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,\r\n _a.correlationHeaderDomains = undefined,\r\n _a.correlationHeaderExcludePatterns = undefined,\r\n _a.appId = undefined,\r\n _a.enableCorsCorrelation = false,\r\n _a[_DYN_ENABLE_REQUEST_HEADE4 /* @min:enableRequestHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:enableResponseHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:enableAjaxErrorStatusText */] = false,\r\n _a[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:enableAjaxPerfTracking */] = false,\r\n _a.maxAjaxPerfLookupAttempts = 3,\r\n _a[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:ajaxPerfLookupDelay */] = 25,\r\n _a.ignoreHeaders = [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n _a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,\r\n _a.addIntEndpoints = true,\r\n _a));\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var _fetchInitialized; // fetch monitoring initialized\r\n var _xhrInitialized; // XHR monitoring initialized\r\n var _currentWindowHost;\r\n var _extensionConfig;\r\n var _enableRequestHeaderTracking;\r\n var _enableAjaxErrorStatusText;\r\n var _trackAjaxAttempts;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking;\r\n var _maxAjaxCallsPerView;\r\n var _enableResponseHeaderTracking;\r\n var _disabledUrls;\r\n var _disableAjaxTracking;\r\n var _disableFetchTracking;\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n var _evtNamespace;\r\n var _ajaxDataId;\r\n var _dependencyHandlerId;\r\n var _dependencyListeners;\r\n var _dependencyInitializers;\r\n var _ignoreHeaders;\r\n var _maxAjaxPerfLookupAttempts;\r\n var _ajaxPerfLookupDelay;\r\n var _distributedTracingMode;\r\n var _appId;\r\n var _polyfillInitialized;\r\n dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n _instrumentXhr();\r\n _instrumentFetch();\r\n _populateContext();\r\n }\r\n };\r\n _self._doTeardown = function () {\r\n _initDefaults();\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n };\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);\r\n if (input || input === \"\") { // Fetch\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[3 /* eRequestHeaders.requestIdHeader */])) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[3 /* eRequestHeaders.requestIdHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[0 /* eRequestHeaders.requestContextHeader */])) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[0 /* eRequestHeaders.requestContextHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n if (!_isHeaderSet(xhr, RequestHeaders[4 /* eRequestHeaders.traceParentHeader */])) {\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[4 /* eRequestHeaders.traceParentHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_distributedTracingMode === 2 /* eDistributedTracingModes.W3C */\r\n || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n }\r\n var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n _self.addDependencyListener = function (dependencyListener) {\r\n return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n };\r\n _self.addDependencyInitializer = function (dependencyInitializer) {\r\n return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n };\r\n function _initDefaults() {\r\n var location = getLocation();\r\n _fetchInitialized = false; // fetch monitoring initialized\r\n _xhrInitialized = false; // XHR monitoring initialized\r\n _polyfillInitialized = false; // polyfill monitoring initialized\r\n _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _extensionConfig = null;\r\n _enableRequestHeaderTracking = false;\r\n _enableAjaxErrorStatusText = false;\r\n _trackAjaxAttempts = 0;\r\n _context = null;\r\n _isUsingW3CHeaders = false;\r\n _isUsingAIHeaders = false;\r\n _markPrefix = null;\r\n _enableAjaxPerfTracking = false;\r\n _maxAjaxCallsPerView = 0;\r\n _enableResponseHeaderTracking = false;\r\n _disabledUrls = {};\r\n _disableAjaxTracking = false;\r\n _disableFetchTracking = false;\r\n _excludeRequestFromAutoTrackingPatterns = null;\r\n _addRequestContext = null;\r\n _evtNamespace = null;\r\n _dependencyHandlerId = 0;\r\n _dependencyListeners = [];\r\n _dependencyInitializers = [];\r\n _ajaxDataId = createUniqueNamespace(\"ajaxData\");\r\n _self._ajaxDataId = _ajaxDataId;\r\n _ignoreHeaders = null;\r\n _maxAjaxPerfLookupAttempts = 1;\r\n _ajaxPerfLookupDelay = 1;\r\n _distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _appId = null;\r\n }\r\n function _populateDefaults(config) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n _extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);\r\n _distributedTracingMode = _extensionConfig.distributedTracingMode;\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n _enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:%2eenableAjaxErrorStatusText */];\r\n _enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:%2eenableAjaxPerfTracking */];\r\n _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */];\r\n _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n _addRequestContext = _extensionConfig[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];\r\n _isUsingAIHeaders = _distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _isUsingW3CHeaders = _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || _distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey[_DYN_LENGTH /* @min:%2elength */] > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + strSubstring(iKey, iKey[_DYN_LENGTH /* @min:%2elength */] - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;\r\n _ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:%2eajaxPerfLookupDelay */];\r\n _ignoreHeaders = _extensionConfig.ignoreHeaders;\r\n _appId = _extensionConfig.appId;\r\n }));\r\n }\r\n function _populateContext() {\r\n var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (propExt) {\r\n _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _ignoreHeaders) {\r\n arrForEach(_ignoreHeaders, (function (key) {\r\n if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI11 /* @min:%2edisableFetchTracking */];\r\n _enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:%2eenableResponseHeaderTracking */];\r\n if (!_disableFetchTracking && !_fetchInitialized) {\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (!_disableFetchTracking && _fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n if (!_disableFetchTracking) {\r\n var fetchData_1 = callDetails.ctx().data;\r\n if (fetchData_1) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),\r\n _a);\r\n if (_enableResponseHeaderTracking && response) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })\r\n .catch(function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });\r\n throw reason;\r\n });\r\n }\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n }, true, isWebWorker()));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill && !_polyfillInitialized) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"polyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n _polyfillInitialized = true;\r\n }\r\n }));\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[STR_FETCH].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _addHook(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (!_supportsAjaxMonitoring(_self, _ajaxDataId)) {\r\n return;\r\n }\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n if (!_disableAjaxTracking && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, method, url, async) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n ajaxData = _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr, ajaxData);\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, context) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {\r\n ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;\r\n ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n });\r\n // Instrument setRequestHeader\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, header, value) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _addSharedXhrHeaders(xhr, header, value);\r\n if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {\r\n if (ajaxData) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n });\r\n _xhrInitialized = true;\r\n }\r\n }));\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// <summary>Verifies that particular instance of XMLHttpRequest needs to be monitored</summary>\r\n /// <param name=\"excludeAjaxDataValidation\">Optional parameter. True if ajaxData must be excluded from verification</param>\r\n /// <returns type=\"bool\">True if instance needs to be monitored, otherwise false</returns>\r\n function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n // Fall back\r\n if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n }\r\n return distributedTraceCtx;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });\r\n var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});\r\n var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n ajaxData.async = async;\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n return ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr, ajaxData) {\r\n ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n var _a;\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = exceptionText,\r\n _a));\r\n }\r\n }\r\n }, _evtNamespace);\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),\r\n _a.type = xhr.responseType,\r\n _a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),\r\n _a.response = xhr[_DYN_RESPONSE /* @min:%2eresponse */],\r\n _a);\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });\r\n var ajaxDataCntr = (xhrRequestData.i || {});\r\n if (ajaxDataCntr[_ajaxDataId]) {\r\n ajaxDataCntr[_ajaxDataId] = null;\r\n }\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n var _a;\r\n try {\r\n var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n var performance = getPerformance();\r\n var maxAttempts = _maxAjaxPerfLookupAttempts;\r\n var retryDelay = _ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {\r\n // We hit the start event\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n break;\r\n }\r\n if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n scheduleTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n var requestUrl;\r\n if (input instanceof Request) {\r\n requestUrl = (input || {}).url || \"\";\r\n }\r\n else {\r\n requestUrl = input;\r\n }\r\n if (requestUrl === \"\") {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.href) {\r\n requestUrl = strSplit(location_1.href, \"#\")[0];\r\n }\r\n }\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = requestUrl;\r\n var method = \"GET\";\r\n if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n method = init[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n _createMarkId(STR_FETCH, ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n _findPerfResourceEntry(STR_FETCH, ajaxData, function () {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n var _a;\r\n if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n try {\r\n var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n }\r\n function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n var _a;\r\n var result = true;\r\n var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {\r\n item: dependency\r\n },\r\n _a[STR_PROPERTIES /* @min:properties */] = properties,\r\n _a.sysProperties = systemProperties,\r\n _a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n _a.aborted = ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false,\r\n _a);\r\n result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n }\r\n if (result) {\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nvar Version = '3.2.1';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config, unloadHookContainer) {\r\n var _this = this;\r\n var unloadHook = onConfigChange((config), function () {\r\n var prefix = config.sdkExtension;\r\n _this.sdkVersion = (prefix ? prefix + \"_\" : \"\") + \"javascript:\" + Version;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 7\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 2\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 2\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 4\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 3\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM7 = \"authUserCookieName\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar SESSION_COOKIE_NAME = \"ai_session\";\r\nvar ACQUISITION_SPAN = 86400000; // 24 hours in ms\r\nvar RENEWAL_SPAN = 1800000; // 30 minutes in ms\r\nvar COOKIE_UPDATE_INTERVAL = 60000; // 1 minute in ms\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core, unloadHookContainer) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _sessionExpirationMs;\r\n var _sessionRenewalMs;\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n var unloadHook = onConfigChange(config, function (details) {\r\n _sessionExpirationMs = config.sessionExpirationMs || ACQUISITION_SPAN;\r\n _sessionRenewalMs = config.sessionRenewalMs || RENEWAL_SPAN;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = config.sessionCookiePostfix || config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n _storageNamePrefix = SESSION_COOKIE_NAME + sessionCookiePostfix;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n if (!isExpired && _sessionExpirationMs > 0) {\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > _sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > _sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > COOKIE_UPDATE_INTERVAL) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix);\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix);\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var getNewId = config[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n _self.automaticSession.id = getNewId(config[_DYN_ID_LENGTH /* @min:%2eidLength */] || 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var renewalPeriodMs = _sessionRenewalMs;\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + _sessionExpirationMs) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain || null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix, cookie[_DYN_JOIN /* @min:%2ejoin */](\"|\"), _sessionExpirationMs > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix, [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n // This is a workaround for an IE 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 _SessionManager.__ieDyn=1;\n\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, onConfigChange, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM7, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core, unloadHookContainer) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return config; }\r\n });\r\n var unloadHook = onConfigChange(config, function () {\r\n var userCookiePostfix = config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] || \"\";\r\n _storageNamePrefix = User.userCookieName + userCookiePostfix;\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix);\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = (config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\") + \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] || undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: <authenticatedId>|<accountId>\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */] : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix, cookie, oneYear);\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nfunction _nullResult() {\r\n return null;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx, unloadHookContainer) {\r\n var _this = this;\r\n var logger = core.logger;\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.appId = _nullResult;\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = _nullResult;\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig, unloadHookContainer);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core, unloadHookContainer);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core, unloadHookContainer);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n // This is a workaround for an IE 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 TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze, objDefine } from \"@nevware21/ts-utils\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar undefString;\r\nvar nullValue = null;\r\nvar _defaultConfig = objDeepFreeze((_a = {},\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = nullValue,\r\n _a.sessionRenewalMs = 30 * 60 * 1000,\r\n _a.samplingPercentage = 100,\r\n _a.sessionExpirationMs = 24 * 60 * 60 * 1000,\r\n _a.cookieDomain = nullValue,\r\n _a.sdkExtension = nullValue,\r\n _a.isBrowserLinkTrackingEnabled = false,\r\n _a.appId = nullValue,\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = nullValue,\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = undefString,\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = undefString,\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = undefString,\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = 22,\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = nullValue,\r\n _a));\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n var _context;\r\n var _disableUserInitMessage;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n objDefine(_self, \"context\", {\r\n g: function () {\r\n return _context;\r\n }\r\n });\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event - The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (!isNullOrUndefined(event)) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n if (!_disableUserInitMessage) {\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n _context = null;\r\n _disableUserInitMessage = true;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _disableUserInitMessage = config.disableUserInitMessage === false ? false : true;\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }));\r\n // This is outside of the onConfigChange as we don't want to update (replace) these values whenever a referenced config item changes\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx, _self._unloadHooks);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE 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 PropertiesPlugin.__ieDyn=1;\n\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a, _b, _c, _d;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { CfgSyncPlugin } from \"@microsoft/applicationinsights-cfgsync-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, DEFAULT_BREEZE_PATH, PropertiesPluginIdentifier, ThrottleMgr, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, cfgDfMerge, cfgDfValidate, createDynamicConfig, createProcessTelemetryContext, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFeatureEnabled, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, onConfigChange, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { createPromise } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, objForEachKey, strIndexOf, throwUnsupported } from \"@nevware21/ts-utils\";\r\nimport { CONFIG_ENDPOINT_URL, STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF1, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_ENDPOINT_URL, _DYN_INSTRUMENTATION_KEY, _DYN_ONUNLOAD_FLUSH, _DYN_QUEUE, _DYN_SEND_MESSAGE, _DYN_UPDATE_SNIPPET_DEFIN2, _DYN_USER_OVERRIDE_ENDPOI0, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\nvar IKEY_USAGE = \"iKeyUsage\";\r\nvar CDN_USAGE = \"CdnUsage\";\r\nvar SDK_LOADER_VER = \"SdkLoaderVer\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar default_limit = {\r\n samplingRate: 100,\r\n maxSendNumber: 1\r\n};\r\nvar default_interval = {\r\n monthInterval: 3,\r\n daysOfMonth: [28]\r\n};\r\nvar default_throttle_config = {\r\n disabled: true,\r\n limit: cfgDfMerge(default_limit),\r\n interval: cfgDfMerge(default_interval)\r\n};\r\n// We need to include all properties that we only reference that we want to be dynamically updatable here\r\n// So they are converted even when not specified in the passed configuration\r\nvar defaultConfigValues = (_a = {},\r\n _a[_DYN_CONNECTION_STRING /* @min:connectionString */] = UNDEFINED_VALUE,\r\n _a[_DYN_ENDPOINT_URL /* @min:endpointUrl */] = UNDEFINED_VALUE,\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:userOverrideEndpointUrl */] = UNDEFINED_VALUE,\r\n _a.diagnosticLogInterval = cfgDfValidate(_chkDiagLevel, 10000),\r\n _a.featureOptIn = (_b = {},\r\n _b[IKEY_USAGE] = { mode: 3 /* FeatureOptInMode.enable */ },\r\n _b[CDN_USAGE] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b[SDK_LOADER_VER] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b),\r\n _a.throttleMgrCfg = cfgDfMerge((_c = {},\r\n _c[109 /* _eInternalMessageId.DefaultThrottleMsgKey */] = cfgDfMerge(default_throttle_config),\r\n _c[106 /* _eInternalMessageId.InstrumentationKeyDeprecation */] = cfgDfMerge(default_throttle_config),\r\n _c[111 /* _eInternalMessageId.SdkLdrUpdate */] = cfgDfMerge(default_throttle_config),\r\n _c[110 /* _eInternalMessageId.CdnDeprecation */] = cfgDfMerge(default_throttle_config),\r\n _c)),\r\n _a.extensionConfig = cfgDfMerge((_d = {},\r\n _d[\"AppInsightsCfgSyncPlugin\"] = cfgDfMerge({\r\n cfgUrl: CONFIG_ENDPOINT_URL,\r\n syncMode: 2 /* ICfgSyncMode.Receive */\r\n }),\r\n _d)),\r\n _a);\r\nfunction _chkDiagLevel(value) {\r\n // Make sure we have a value > 0\r\n return value && value > 0;\r\n}\r\n/**\r\n * Application Insights API\r\n * @group Entrypoint\r\n * @group Classes\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar AppInsightsSku = /** @class */ (function () {\r\n function AppInsightsSku(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n var _config;\r\n var _analyticsPlugin;\r\n var _cfgSyncPlugin;\r\n var _throttleMgr;\r\n var _iKeySentMessage;\r\n var _cdnSentMessage;\r\n var _sdkVerSentMessage;\r\n dynamicProto(AppInsightsSku, this, function (_self) {\r\n _initDefaults();\r\n objDefine(_self, \"config\", {\r\n g: function () {\r\n return _config;\r\n }\r\n });\r\n arrForEach([\"pluginVersionStringArr\", \"pluginVersionString\"], function (key) {\r\n objDefine(_self, key, {\r\n g: function () {\r\n if (_core) {\r\n return _core[key];\r\n }\r\n return null;\r\n }\r\n });\r\n });\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var cfgHandler = createDynamicConfig(snippet.config || {}, defaultConfigValues);\r\n _config = cfgHandler.cfg;\r\n _analyticsPlugin = new AnalyticsPlugin();\r\n objDefine(_self, \"appInsights\", {\r\n g: function () {\r\n return _analyticsPlugin;\r\n }\r\n });\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n objDefine(_self, \"core\", {\r\n g: function () {\r\n return _core;\r\n }\r\n });\r\n // Will get recalled if any referenced values are changed\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n if (_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]) {\r\n var cs = parseConnectionString(_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]);\r\n var ingest = cs.ingestionendpoint;\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */] : ingest + DEFAULT_BREEZE_PATH; // add /v2/track\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs.instrumentationkey || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n // userOverrideEndpointUrl have the highest priority\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 /* @min:%2euserOverrideEndpointUrl */] : _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }));\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n if (async && !callBack) {\r\n result = createPromise(function (resolve) {\r\n callBack = resolve;\r\n });\r\n }\r\n var waiting = 1;\r\n var flushDone = function () {\r\n waiting--;\r\n if (waiting === 0) {\r\n callBack();\r\n }\r\n };\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel) {\r\n waiting++;\r\n channel[STR_FLUSH /* @min:%2eflush */](async, flushDone);\r\n }\r\n });\r\n // decrement the initial \"waiting\"\r\n flushDone();\r\n }, null, async);\r\n return result;\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n };\r\n _self.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n if (legacyMode) {\r\n throwUnsupported(\"Legacy Mode is no longer supported\");\r\n }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n if (snippet[field] !== value) {\r\n snippet[field] = value;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n // initialize core\r\n _core.initialize(_config, [_sender, properties, dependencies, _analyticsPlugin, _cfgSyncPlugin], logger, notificationManager);\r\n objDefine(_self, \"context\", {\r\n g: function () { return properties[_DYN_CONTEXT /* @min:%2econtext */]; }\r\n });\r\n if (!_throttleMgr) {\r\n _throttleMgr = new ThrottleMgr(_core);\r\n }\r\n var sdkSrc = _findSdkSourceFile();\r\n if (sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = sdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF1 /* @min:%2eaddHousekeepingBeforeUnload */](_self);\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var defaultEnable = false;\r\n if (_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */]) {\r\n defaultEnable = !_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */].disabled;\r\n }\r\n if (!_throttleMgr.isReady() && _config.extensionConfig && _config.extensionConfig[_cfgSyncPlugin.identifier] && defaultEnable) {\r\n // set ready state to true will automatically trigger flush()\r\n _throttleMgr.onReadyState(true);\r\n }\r\n var result;\r\n if (!_iKeySentMessage && !_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && isFeatureEnabled(IKEY_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"See Instrumentation key support at aka.ms/IkeyMigrate\");\r\n _iKeySentMessage = true;\r\n }\r\n if (!_cdnSentMessage && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc.indexOf(\"az416426\") != -1 && isFeatureEnabled(CDN_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](110 /* _eInternalMessageId.CdnDeprecation */, \"See Cdn support notice at aka.ms/JsActiveCdn\");\r\n _cdnSentMessage = true;\r\n }\r\n if (!_sdkVerSentMessage && parseInt(_snippetVersion) < 6 && isFeatureEnabled(SDK_LOADER_VER, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](111 /* _eInternalMessageId.SdkLdrUpdate */, \"An updated Sdk Loader is available, see aka.ms/SnippetVer\");\r\n _sdkVerSentMessage = true;\r\n }\r\n }));\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN2 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF1 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping_1 = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_self.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added_1 = false;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n // Will be recalled if any referenced config properties change\r\n _addUnloadHook(onConfigChange(_config, function (details) {\r\n var coreConfig = details.cfg;\r\n var analyticsPlugin = appInsightsInstance.appInsights;\r\n var ctx = createProcessTelemetryContext(null, coreConfig, analyticsPlugin.core);\r\n var extConfig = ctx.getExtCfg(analyticsPlugin.identifier || AnalyticsPluginIdentifier);\r\n // As we could get recalled, remove any previously registered event handlers first\r\n _removePageEventHandlers();\r\n var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents;\r\n if (!extConfig.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added_1 && !isReactNative()) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added_1 && !extConfig.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }));\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var unloadDone = false;\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n function _unloadCallback(unloadState) {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }\r\n }\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n _removePageEventHandlers();\r\n _core.unload && _core.unload(isAsync, _unloadCallback, cbTimeout);\r\n return result;\r\n };\r\n proxyFunctions(_self, _analyticsPlugin, [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\",\r\n \"addDependencyInitializer\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\",\r\n \"updateCfg\",\r\n \"onCfgChange\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n _throttleMgr = null;\r\n _iKeySentMessage = false;\r\n _cdnSentMessage = false;\r\n _sdkVerSentMessage = false;\r\n _cfgSyncPlugin = new CfgSyncPlugin();\r\n }\r\n function _removePageEventHandlers() {\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _core.addUnloadHook(hooks);\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n// Removed Stub for AppInsightsSku.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsSku.prototype.trackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageView.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageViewPerformance.\r\n// Removed Stub for AppInsightsSku.prototype.trackException.\r\n// Removed Stub for AppInsightsSku.prototype._onerror.\r\n// Removed Stub for AppInsightsSku.prototype.trackTrace.\r\n// Removed Stub for AppInsightsSku.prototype.trackMetric.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.addTelemetryInitializer.\r\n // Properties Plugin\r\n// Removed Stub for AppInsightsSku.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for AppInsightsSku.prototype.clearAuthenticatedUserContext.\r\n // Dependencies Plugin\r\n// Removed Stub for AppInsightsSku.prototype.trackDependencyData.\r\n // Misc\r\n// Removed Stub for AppInsightsSku.prototype.flush.\r\n// Removed Stub for AppInsightsSku.prototype.onunloadFlush.\r\n// Removed Stub for AppInsightsSku.prototype.loadAppInsights.\r\n// Removed Stub for AppInsightsSku.prototype.updateSnippetDefinitions.\r\n// Removed Stub for AppInsightsSku.prototype.emptyQueue.\r\n// Removed Stub for AppInsightsSku.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for AppInsightsSku.prototype.getSender.\r\n// Removed Stub for AppInsightsSku.prototype.unload.\r\n// Removed Stub for AppInsightsSku.prototype.getPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.addPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.updateCfg.\r\n// Removed Stub for AppInsightsSku.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsSku.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsSku.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AppInsightsSku.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AppInsightsSku.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsSku.prototype.onCfgChange.\r\n return AppInsightsSku;\r\n}());\r\nexport { AppInsightsSku };\r\n// tslint:disable-next-line\r\nexport function _findSdkSourceFile() {\r\n if (_internalSdkSrc) {\r\n // Use the cached value\r\n return _internalSdkSrc;\r\n }\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url_1 = sdkSrc.toLowerCase();\r\n if (url_1) {\r\n var src_1 = \"\";\r\n arrForEach(cdns, function (value, idx) {\r\n if (strIndexOf(url_1, value) !== -1) {\r\n src_1 = \"cdn\" + (idx + 1);\r\n if (strIndexOf(url_1, \"/scripts/\") === -1) {\r\n if (strIndexOf(url_1, \"/next/\") !== -1) {\r\n src_1 += \"-next\";\r\n }\r\n else if (strIndexOf(url_1, \"/beta/\") !== -1) {\r\n src_1 += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src_1 + (isModule ? \".mod\" : \"\");\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // Cache the found value so we don't have to look it up again\r\n _internalSdkSrc = sdkSrc;\r\n }\r\n return _internalSdkSrc;\r\n}\r\n//# sourceMappingURL=AISku.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var CONFIG_ENDPOINT_URL = \"https://js.monitor.azure.com/scripts/b/ai.config.1.cfg.json\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 4\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 4\r\nexport var _DYN_USER_OVERRIDE_ENDPOI0 = \"userOverrideEndpointUrl\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 3\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 5\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF1 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_SEND_MESSAGE = \"sendMessage\"; // Count: 3\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN2 = \"updateSnippetDefinitions\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - React Plugin, 17.2.0\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ReactPlugin.ts\r\n* @copyright Microsoft 2019\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, isFunction, proxyFunctions, safeGetCookieMgr, onConfigChange, objDefineAccessors } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze } from \"@nevware21/ts-utils\";\r\nvar defaultReactExtensionConfig = objDeepFreeze({\r\n history: { blkVal: true, v: undefined }\r\n});\r\nvar ReactPlugin = /** @class */ (function (_super) {\r\n __extends(ReactPlugin, _super);\r\n function ReactPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 185;\r\n _this.identifier = 'ReactPlugin';\r\n var _analyticsPlugin;\r\n var _extensionConfig;\r\n var _unlisten;\r\n var _pageViewTimer;\r\n var _pageViewTracked;\r\n dynamicProto(ReactPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _super.prototype.initialize.call(_this, config, core, extensions, pluginChain);\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var _a;\r\n var ctx = _self._getTelCtx();\r\n _extensionConfig = ctx.getExtCfg(_this.identifier, defaultReactExtensionConfig);\r\n _analyticsPlugin = (_a = core.getPlugin(AnalyticsPluginIdentifier)) === null || _a === void 0 ? void 0 : _a.plugin;\r\n if (isFunction(_unlisten)) {\r\n _unlisten();\r\n _unlisten = null;\r\n }\r\n if (_extensionConfig.history) {\r\n _addHistoryListener(_extensionConfig.history);\r\n if (!_pageViewTracked) {\r\n var pageViewTelemetry = {\r\n uri: _extensionConfig.history.location.pathname\r\n };\r\n _self.trackPageView(pageViewTelemetry);\r\n _pageViewTracked = true;\r\n }\r\n }\r\n }));\r\n };\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self.core);\r\n };\r\n _self.getAppInsights = _getAnalytics;\r\n _self.processTelemetry = function (event, itemCtx) {\r\n _self.processNext(event, itemCtx);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState, asyncCallback) {\r\n if (isFunction(_unlisten)) {\r\n _unlisten();\r\n }\r\n if (_pageViewTimer) {\r\n clearTimeout(_pageViewTimer);\r\n }\r\n _initDefaults();\r\n };\r\n // Proxy the analytics functions\r\n proxyFunctions(_self, _getAnalytics, [\r\n \"trackMetric\",\r\n \"trackPageView\",\r\n \"trackEvent\",\r\n \"trackException\",\r\n \"trackTrace\",\r\n ]);\r\n function _initDefaults() {\r\n _analyticsPlugin = null;\r\n _extensionConfig = null;\r\n _unlisten = null;\r\n _pageViewTimer = null;\r\n _pageViewTracked = false;\r\n }\r\n function _getAnalytics() {\r\n if (!_analyticsPlugin) {\r\n _throwInternal(_self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n return _analyticsPlugin;\r\n }\r\n function _addHistoryListener(history) {\r\n var locationListener = function (arg) {\r\n // v4 of the history API passes \"location\" as the first argument, while v5 passes an object that contains location and action \r\n var locn = null;\r\n if (\"location\" in arg) {\r\n // Looks like v5\r\n locn = arg[\"location\"];\r\n }\r\n else {\r\n locn = arg;\r\n }\r\n // Timeout to ensure any changes to the DOM made by route changes get included in pageView telemetry\r\n _pageViewTimer = setTimeout(function () {\r\n _pageViewTimer = null;\r\n var pageViewTelemetry = { uri: locn.pathname };\r\n _self.trackPageView(pageViewTelemetry);\r\n }, 500);\r\n };\r\n _unlisten = history.listen(locationListener);\r\n }\r\n objDefineAccessors(_self, \"_extensionConfig\", function () { return _extensionConfig; });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ReactPlugin.prototype.initialize.\r\n// Removed Stub for ReactPlugin.prototype.getCookieMgr.\r\n// Removed Stub for ReactPlugin.prototype.getAppInsights.\r\n// Removed Stub for ReactPlugin.prototype.processTelemetry.\r\n// Removed Stub for ReactPlugin.prototype.trackMetric.\r\n// Removed Stub for ReactPlugin.prototype.trackPageView.\r\n// Removed Stub for ReactPlugin.prototype.trackEvent.\r\n// Removed Stub for ReactPlugin.prototype.trackException.\r\n// Removed Stub for ReactPlugin.prototype.trackTrace.\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 ReactPlugin.__ieDyn=1;\n\n return ReactPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default ReactPlugin;\r\n//# sourceMappingURL=ReactPlugin.js.map","// AppInsights.js\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web'\r\nimport { ReactPlugin, withAITracking } from '@microsoft/applicationinsights-react-js'\r\nimport { globalHistory } from '@reach/router'\r\n\r\nconst reactPlugin = new ReactPlugin()\r\nconst ai = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: process.env.GATSBY_APPINSIGHTS_KEY,\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: { history: globalHistory },\r\n },\r\n },\r\n})\r\n\r\nif (process.env.GATSBY_APPINSIGHTS_KEY) {\r\n ai.loadAppInsights()\r\n} else {\r\n //console.log('Application insights key not available.')\r\n}\r\n\r\nlet component = (Component) => withAITracking(reactPlugin, Component)\r\n\r\nexport default component\r\nexport const appInsights = ai.appInsights\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel = createEnumStyle({\r\n Verbose: 0 /* eSeverityLevel.Verbose */,\r\n Information: 1 /* eSeverityLevel.Information */,\r\n Warning: 2 /* eSeverityLevel.Warning */,\r\n Error: 3 /* eSeverityLevel.Error */,\r\n Critical: 4 /* eSeverityLevel.Critical */\r\n});\r\n//# sourceMappingURL=SeverityLevel.js.map","import { appInsights } from './appInsightsService'\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web'\r\n\r\nexport function logException(message, error) {\r\n const errorJson = JSON.stringify(error, replacer)\r\n appInsights.trackException({\r\n error: `${message} ${errorJson}`,\r\n severityLevel: SeverityLevel.Error,\r\n })\r\n\r\n if (\r\n process.env.GATSBY_FEATURE_ENVIRONMENT === 'dev' ||\r\n process.env.GATSBY_FEATURE_ENVIRONMENT === 'test'\r\n ) {\r\n console.log(`ERROR: ${message} ${errorJson}`)\r\n }\r\n}\r\n\r\nexport function logTrace(message) {\r\n appInsights.trackTrace({\r\n message: message,\r\n severityLevel: SeverityLevel.Information,\r\n })\r\n\r\n if (\r\n process.env.GATSBY_FEATURE_ENVIRONMENT === 'dev' ||\r\n process.env.GATSBY_FEATURE_ENVIRONMENT === 'test'\r\n ) {\r\n console.log(`INFO: ${message}`)\r\n }\r\n}\r\n\r\nexport function replacer(key, value) {\r\n if (value instanceof Map) {\r\n return {\r\n dataType: 'Map',\r\n value: Array.from(value.entries()), // or with spread: value: [...value]\r\n }\r\n } else {\r\n return value\r\n }\r\n}\r\n","export function resolveNodesFromResourcesQueryResultForLocale(resourcesQueryResult, locale) {\r\n const { en, de, nl, fr, it, es, enUS, cs, pl, pt } = resourcesQueryResult\r\n let nodes\r\n\r\n switch (locale) {\r\n case 'de':\r\n nodes = de.nodes\r\n break\r\n case 'nl':\r\n nodes = nl.nodes\r\n break\r\n case 'fr':\r\n nodes = fr.nodes\r\n break\r\n case 'it':\r\n nodes = it.nodes\r\n break\r\n case 'es':\r\n nodes = es.nodes\r\n break\r\n case 'en-US':\r\n nodes = enUS.nodes\r\n break\r\n case 'cs':\r\n nodes = cs.nodes\r\n break\r\n case 'pl':\r\n nodes = pl.nodes\r\n break\r\n case 'pt':\r\n nodes = pt.nodes\r\n break\r\n default:\r\n nodes = en.nodes\r\n }\r\n\r\n return nodes\r\n}\r\n\r\nexport function resolveSlugsFromResourcesQueryResultForLocale(resourcesQueryResult, locale) {\r\n const nodes = resolveNodesFromResourcesQueryResultForLocale(resourcesQueryResult, locale)\r\n return nodes[0].slug\r\n}\r\n\r\nexport function resolveMicrocopyFromResourcesQueryResultForLocale(resourcesQueryResult, locale) {\r\n const nodes = resolveNodesFromResourcesQueryResultForLocale(resourcesQueryResult, locale)\r\n return resolveMicrocopyForLocale(nodes, locale)\r\n}\r\n\r\nexport function resolveMicrocopyForLocale(nodes, locale) {\r\n let microcopy\r\n for (let i = 0; i < nodes.length; i++) {\r\n let node = nodes[i]\r\n\r\n if (node.node_locale === locale) {\r\n microcopy = node.microcopy\r\n }\r\n }\r\n\r\n if (microcopy) {\r\n return microcopy.reduce((a, x) => ({ ...a, ['' + x.key + '']: x.value }), {})\r\n }\r\n\r\n return undefined\r\n}\r\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d<c.length;d++){var e=n.get(c[d]);if(null!==e)throw e;}c=__webpack_require__(b.id);b=\"*\"===b.name?c:\"\"===b.name?c.__esModule?c.default:c:c[b.name];a._status=3;return a._value=b;case 0:throw a;default:throw a._value;}}function x(){var a=y(this,0);return w(a)}function z(a,b){return new v(3,b,a)}\nfunction A(a){if(null!==a)for(var b=0;b<a.length;b++)(0,a[b])()}function C(a,b){if(0===a._status){var c=a._value;a._status=4;a._value=b;A(c)}}function D(a,b){a._chunks.forEach(function(a){C(a,b)})}function y(a,b){var c=a._chunks,d=c.get(b);d||(d=new v(0,null,a),c.set(b,d));return d}\nfunction E(a,b,c){switch(c[0]){case \"$\":if(\"$\"===c)return p;if(\"$\"===c[1]||\"@\"===c[1])return c.substring(1);b=parseInt(c.substring(1),16);a=y(a,b);return w(a);case \"@\":return b=parseInt(c.substring(1),16),a=y(a,b),{$$typeof:q,_payload:a,_init:w}}return c}function F(a){D(a,Error(\"Connection closed.\"))}\nfunction G(a,b){if(\"\"!==b){var c=b[0],d=b.indexOf(\":\",1),e=parseInt(b.substring(1,d),16);d=b.substring(d+1);switch(c){case \"J\":b=a._chunks;(c=b.get(e))?0===c._status&&(a=c._value,c._status=1,c._value=d,A(a)):b.set(e,new v(1,d,a));break;case \"M\":b=a._chunks;c=b.get(e);d=JSON.parse(d,a._fromJSON);var f=a._bundlerConfig;d=f?f[d.id][d.name]:d;f=d.chunks;for(var h=0;h<f.length;h++){var g=f[h];if(void 0===n.get(g)){var B=__webpack_chunk_load__(g),m=n.set.bind(n,g,null),J=n.set.bind(n,g);B.then(m,J);n.set(g,\nB)}}c?0===c._status&&(a=c._value,c._status=2,c._value=d,A(a)):b.set(e,new v(2,d,a));break;case \"P\":a._chunks.set(e,z(a,u(d).Provider));break;case \"S\":c=JSON.parse(d);a._chunks.set(e,z(a,Symbol.for(c)));break;case \"E\":b=JSON.parse(d);c=Error(b.message);c.stack=b.stack;b=a._chunks;(d=b.get(e))?C(d,c):b.set(e,new v(4,c,a));break;default:throw Error(\"Error parsing the data. It's probably an error code or network corruption.\");}}}\nfunction H(a){return function(b,c){return\"string\"===typeof c?E(a,this,c):\"object\"===typeof c&&null!==c?(b=c[0]===p?{$$typeof:p,type:c[1],key:c[2],ref:null,props:c[3],_owner:null}:c,b):c}}function I(a){var b=new TextDecoder,c=new Map;a={_bundlerConfig:a,_chunks:c,readRoot:x,_partialRow:\"\",_stringDecoder:b};a._fromJSON=H(a);return a}\nfunction K(a,b){function c(b){var h=b.value;if(b.done)F(a);else{b=h;h=a._stringDecoder;for(var g=b.indexOf(10);-1<g;){var f=a._partialRow;var m=b.subarray(0,g);m=h.decode(m);G(a,f+m);a._partialRow=\"\";b=b.subarray(g+1);g=b.indexOf(10)}a._partialRow+=h.decode(b,l);return e.read().then(c,d)}}function d(b){D(a,b)}var e=b.getReader();e.read().then(c,d)}exports.createFromFetch=function(a,b){var c=I(b&&b.moduleMap?b.moduleMap:null);a.then(function(a){K(c,a.body)},function(a){D(c,a)});return c};\nexports.createFromReadableStream=function(a,b){b=I(b&&b.moduleMap?b.moduleMap:null);K(b,a);return b};\nexports.createFromXHR=function(a,b){function c(){for(var b=a.responseText,c=f,d=b.indexOf(\"\\n\",c);-1<d;)c=e._partialRow+b.substring(c,d),G(e,c),e._partialRow=\"\",c=d+1,d=b.indexOf(\"\\n\",c);e._partialRow+=b.substring(c);f=b.length}function d(){D(e,new TypeError(\"Network error\"))}var e=I(b&&b.moduleMap?b.moduleMap:null),f=0;a.addEventListener(\"progress\",c);a.addEventListener(\"load\",function(){c();F(e)});a.addEventListener(\"error\",d);a.addEventListener(\"abort\",d);a.addEventListener(\"timeout\",d);return e};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-server-dom-webpack.production.min.js');\n} else {\n module.exports = require('./cjs/react-server-dom-webpack.development.js');\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/* UAParser.js v1.0.35\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.35\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=350;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",VIERA=\"Viera\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\\d\\.]/g,EMPTY).split(\".\")[0]:undefined},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\\s\\s*/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){if(!regex[j]){break}matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined:i}}return str};var oldSafariMap={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},windowsVersionMap={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var regexes={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[NAME,VERSION],[/opios[\\/ ]+([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[NAME,VERSION],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"UC\"+BROWSER]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[VERSION,[NAME,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[VERSION,[NAME,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[VERSION,[NAME,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 Secure \"+BROWSER],VERSION],[/\\bfocus\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"MIUI \"+BROWSER]],[/fxios\\/([-\\w\\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[NAME,\"360 \"+BROWSER]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 \"+BROWSER],VERSION],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[NAME,/_/g,\" \"],VERSION],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[NAME,VERSION],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[NAME],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[NAME,VERSION],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[VERSION,[NAME,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[VERSION,[NAME,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[VERSION,[NAME,CHROME+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[NAME,CHROME+\" WebView\"],VERSION],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,\"Android \"+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[NAME,VERSION],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[VERSION,[NAME,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[NAME,VERSION],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[NAME,\"Netscape\"],VERSION],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[VERSION,[NAME,FIREFOX+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[NAME,VERSION],[/(cobalt)\\/([\\w\\.]+)/i],[NAME,[VERSION,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[ARCHITECTURE,\"amd64\"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[ARCHITECTURE,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[ARCHITECTURE,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[ARCHITECTURE,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\\w)[;\\)]/i],[[ARCHITECTURE,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/(macintosh);/i],[MODEL,[VENDOR,APPLE]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[MODEL,[VENDOR,\"OPPO\"],[TYPE,MOBILE]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,\"Vivo\"],[TYPE,MOBILE]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[MODEL,[VENDOR,\"Realme\"],[TYPE,MOBILE]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[MODEL,[VENDOR,\"Lenovo\"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[MODEL,/_/g,\" \"],[VENDOR,\"Nokia\"],[TYPE,MOBILE]],[/(pixel c)\\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[MODEL,\"Xperia Tablet\"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[MODEL,[VENDOR,\"OnePlus\"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[MODEL,/(.+)/g,\"Fire Phone $1\"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\\w\\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,\"HTC\"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[VENDOR,[MODEL,/_/g,\" \"],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[MODEL,[VENDOR,\"Acer\"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[MODEL,[VENDOR,\"Meizu\"],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[MODEL,[VENDOR,\"Fairphone\"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,\"AT&T\"],[TYPE,MOBILE]],[/\\bsie-(\\w*)/i],[MODEL,[VENDOR,\"Siemens\"],[TYPE,MOBILE]],[/\\b(rct\\w+) b/i],[MODEL,[VENDOR,\"RCA\"],[TYPE,TABLET]],[/\\b(venue[\\d ]{2,7}) b/i],[MODEL,[VENDOR,\"Dell\"],[TYPE,TABLET]],[/\\b(q(?:mv|ta)\\w+) b/i],[MODEL,[VENDOR,\"Verizon\"],[TYPE,TABLET]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[MODEL,[VENDOR,\"Barnes & Noble\"],[TYPE,TABLET]],[/\\b(tm\\d{3}\\w+) b/i],[MODEL,[VENDOR,\"NuVision\"],[TYPE,TABLET]],[/\\b(k88) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,TABLET]],[/\\b(nx\\d{3}j) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,MOBILE]],[/\\b(gen\\d{3}) b.+49h/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,MOBILE]],[/\\b(zur\\d{3}) b/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,TABLET]],[/\\b((zeki)?tb.*\\b) b/i],[MODEL,[VENDOR,\"Zeki\"],[TYPE,TABLET]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[VENDOR,\"Dragon Touch\"],MODEL,[TYPE,TABLET]],[/\\b(ns-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"Insignia\"],[TYPE,TABLET]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"NextBook\"],[TYPE,TABLET]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,\"Voice\"],MODEL,[TYPE,MOBILE]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[VENDOR,\"LvTel\"],MODEL,[TYPE,MOBILE]],[/\\b(ph-1) /i],[MODEL,[VENDOR,\"Essential\"],[TYPE,MOBILE]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[MODEL,[VENDOR,\"Envizen\"],[TYPE,TABLET]],[/\\b(trio[-\\w\\. ]+) b/i],[MODEL,[VENDOR,\"MachSpeed\"],[TYPE,TABLET]],[/\\btu_(1491) b/i],[MODEL,[VENDOR,\"Rotor\"],[TYPE,TABLET]],[/(shield[\\w ]+) b/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,TABLET]],[/(sprint) (\\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\\.[onetw]{3})/i],[[MODEL,/\\./g,\" \"],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\\d+)/i],[[MODEL,/^/,\"SmartTV\"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+\" TV\"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+\"cast\"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\\w)( bui|\\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\\w ]+)( bui|\\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/Hbbtv.*(technisat) (.*);/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[TYPE,SMARTTV]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[MODEL,[VENDOR,APPLE],[TYPE,WEARABLE]],[/droid.+; (glass) \\d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2| pro)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/(aeobc)\\b/i],[MODEL,[VENDOR,AMAZON],[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\\w\\. ]{0,9});.+buil/i],[MODEL,[VENDOR,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[VERSION,[NAME,EDGE+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[VERSION,[NAME,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[NAME,VERSION],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[NAME,\"Windows\"],[VERSION,strMapper,windowsVersionMap]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/ios;fbsv\\/([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[VERSION,/_/g,\".\"],[NAME,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[NAME,MAC_OS],[VERSION,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[NAME,VERSION],[/\\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[VERSION,[NAME,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[VERSION,[NAME,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[VERSION,[NAME,CHROME+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[NAME,CHROMIUM_OS],VERSION],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[NAME,VERSION],[/(sunos) ?([\\w\\.\\d]*)/i],[[NAME,\"Solaris\"],VERSION],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _navigator=typeof window!==UNDEF_TYPE&&window.navigator?window.navigator:undefined;var _ua=ua||(_navigator&&_navigator.userAgent?_navigator.userAgent:EMPTY);var _uach=_navigator&&_navigator.userAgentData?_navigator.userAgentData:undefined;var _rgxmap=extensions?extend(regexes,extensions):regexes;var _isSelfNav=_navigator&&_navigator.userAgent==_ua;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined;_browser[VERSION]=undefined;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser[MAJOR]=majorize(_browser[VERSION]);if(_isSelfNav&&_navigator&&_navigator.brave&&typeof _navigator.brave.isBrave==FUNC_TYPE){_browser[NAME]=\"Brave\"}return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined;_device[MODEL]=undefined;_device[TYPE]=undefined;rgxMapper.call(_device,_ua,_rgxmap.device);if(_isSelfNav&&!_device[TYPE]&&_uach&&_uach.mobile){_device[TYPE]=MOBILE}if(_isSelfNav&&_device[MODEL]==\"Macintosh\"&&_navigator&&typeof _navigator.standalone!==UNDEF_TYPE&&_navigator.maxTouchPoints&&_navigator.maxTouchPoints>2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.7.6 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener(\\\"pt0\\\",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n<s.length;n++)(r=e.createElement(\\\"script\\\")).innerHTML=s[n].innerHTML,e.head.appendChild(r);c&&c.parentNode.removeChild(c)}function w(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\\\".\\\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\\\"push\\\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\\\"complete\\\"==e.readyState?u():(t.addEventListener(\\\"DOMContentLoaded\\\",u),t.addEventListener(\\\"load\\\",u))}(window,document,navigator,top,window.crossOriginIsolated);\";\n\nconst createSnippet = (config, snippetCode) => {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `<script>` from executing on the main thread.\n * 2. Is used as a selector so the Partytown library can find all scripts to execute in a web worker.\n *\n * @public\n */\nconst SCRIPT_TYPE = `text/partytown`;\n\n/**\n * Function that returns the Partytown snippet as a string, which can be\n * used as the innerHTML of the inlined Partytown script in the head.\n *\n * @public\n */\nconst partytownSnippet = (config) => createSnippet(config, PartytownSnippet);\n\nexports.SCRIPT_TYPE = SCRIPT_TYPE;\nexports.partytownSnippet = partytownSnippet;\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import*as e from\"react\";import t from\"react\";import r from\"prop-types\";import n from\"invariant\";function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}function a(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(o[r]=e[r]);return o}const s=e=>{const{search:t,hash:r,href:n,origin:o,protocol:a,host:s,hostname:i,port:c}=e.location;let{pathname:l}=e.location;return!l&&n&&u&&(l=new URL(n).pathname),{pathname:encodeURI(decodeURI(l)),search:t,hash:r,href:n,origin:o,protocol:a,host:s,hostname:i,port:c,state:e.history.state,key:e.history.state&&e.history.state.key||\"initial\"}},i=(e,t)=>{let r=[],n=s(e),a=!1,i=()=>{};return{get location(){return n},get transitioning(){return a},_onTransitionComplete(){a=!1,i()},listen(t){r.push(t);const o=()=>{n=s(e),t({location:n,action:\"POP\"})};return e.addEventListener(\"popstate\",o),()=>{e.removeEventListener(\"popstate\",o),r=r.filter(e=>e!==t)}},navigate(t,{state:c,replace:u=!1}={}){if(\"number\"==typeof t)e.history.go(t);else{c=o({},c,{key:Date.now()+\"\"});try{a||u?e.history.replaceState(c,null,t):e.history.pushState(c,null,t)}catch(r){e.location[u?\"replace\":\"assign\"](t)}}n=s(e),a=!0;const l=new Promise(e=>i=e);return r.forEach(e=>e({location:n,action:\"PUSH\"})),l}}},c=(e=\"/\")=>{const t=e.indexOf(\"?\"),r={pathname:t>-1?e.substr(0,t):e,search:t>-1?e.substr(t):\"\"};let n=0;const o=[r],a=[null];return{get location(){return o[n]},addEventListener(e,t){},removeEventListener(e,t){},history:{get entries(){return o},get index(){return n},get state(){return a[n]},pushState(e,t,r){const[s,i=\"\"]=r.split(\"?\");n++,o.push({pathname:s,search:i.length?`?${i}`:i}),a.push(e)},replaceState(e,t,r){const[s,i=\"\"]=r.split(\"?\");o[n]={pathname:s,search:i},a[n]=e},go(e){const t=n+e;t<0||t>a.length-1||(n=t)}}}},u=!(\"undefined\"==typeof window||!window.document||!window.document.createElement),l=i(u?window:c()),{navigate:p}=l;function h(e,r){return t.createServerContext?((e,r=null)=>(globalThis.__SERVER_CONTEXT||(globalThis.__SERVER_CONTEXT={}),globalThis.__SERVER_CONTEXT[e]||(globalThis.__SERVER_CONTEXT[e]=t.createServerContext(e,r)),globalThis.__SERVER_CONTEXT[e]))(e,r):t.createContext(r)}const m=h(\"Base\",{baseuri:\"/\",basepath:\"/\"}),d=h(\"Location\"),f=()=>e.useContext(m),y=()=>e.useContext(d);function E(e){this.uri=e}const g=e=>e instanceof E,v=e=>{throw new E(e)};function b(t){const{to:r,replace:n=!0,state:o,noThrow:a,baseuri:s}=t;e.useEffect(()=>{Promise.resolve().then(()=>{const e=k(r,s);p(P(e,t),{replace:n,state:o})})},[]);const i=k(r,s);return a||v(P(i,t)),null}const R=t=>{const r=y(),{baseuri:n}=f();/*#__PURE__*/return e.createElement(b,o({},r,{baseuri:n},t))};R.propTypes={from:r.string,to:r.string.isRequired};const C=(e,t)=>e.substr(0,t.length)===t,w=(e,t)=>{let r,o;const[a]=t.split(\"?\"),s=N(a),i=\"\"===s[0],c=j(e);for(let e=0,a=c.length;e<a;e++){let a=!1;const u=c[e].route;if(u.default){o={route:u,params:{},uri:t};continue}const l=N(u.path),p={},h=Math.max(s.length,l.length);let m=0;for(;m<h;m++){const e=l[m],t=s[m];if($(e)){p[e.slice(1)||\"*\"]=s.slice(m).map(decodeURIComponent).join(\"/\");break}if(void 0===t){a=!0;break}const r=O.exec(e);if(r&&!i){const e=-1===U.indexOf(r[1]);n(e,`<Router> dynamic segment \"${r[1]}\" is a reserved name. Please use a different name in path \"${u.path}\".`);const o=decodeURIComponent(t);p[r[1]]=o}else if(e!==t){a=!0;break}}if(!a){r={route:u,params:p,uri:\"/\"+s.slice(0,m).join(\"/\")};break}}return r||o||null},x=(e,t)=>w([{path:e}],t),k=(e,t)=>{if(C(e,\"/\"))return e;const[r,n]=e.split(\"?\"),[o]=t.split(\"?\"),a=N(r),s=N(o);if(\"\"===a[0])return L(o,n);if(!C(a[0],\".\")){const e=s.concat(a).join(\"/\");return L((\"/\"===o?\"\":\"/\")+e,n)}const i=s.concat(a),c=[];for(let e=0,t=i.length;e<t;e++){const t=i[e];\"..\"===t?c.pop():\".\"!==t&&c.push(t)}return L(\"/\"+c.join(\"/\"),n)},P=(e,t)=>{const[r,n=\"\"]=e.split(\"?\");let o=\"/\"+N(r).map(e=>{const r=O.exec(e);return r?t[r[1]]:e}).join(\"/\");const{location:{search:a=\"\"}={}}=t,s=a.split(\"?\")[1]||\"\";return o=L(o,n,s),o},T=(e,t)=>{const r=e=>_(e);return N(e).filter(r).sort().join(\"/\")===N(t).filter(r).sort().join(\"/\")},O=/^:(.+)/,_=e=>O.test(e),$=e=>e&&\"*\"===e[0],S=(e,t)=>({route:e,score:e.default?0:N(e.path).reduce((e,t)=>(e+=4,(e=>\"\"===e)(t)?e+=1:_(t)?e+=2:$(t)?e-=5:e+=3,e),0),index:t}),j=e=>e.map(S).sort((e,t)=>e.score<t.score?1:e.score>t.score?-1:e.index-t.index),N=e=>e.replace(/(^\\/+|\\/+$)/g,\"\").split(\"/\"),L=(e,...t)=>e+((t=t.filter(e=>e&&e.length>0))&&t.length>0?`?${t.join(\"&\")}`:\"\"),U=[\"uri\",\"path\"],D=(e,t)=>{const r=Object.keys(e);return r.length===Object.keys(t).length&&r.every(r=>t.hasOwnProperty(r)&&e[r]===t[r])},M=e=>e.replace(/(^\\/+|\\/+$)/g,\"\"),I=t=>r=>{if(!r)return null;if(r.type===e.Fragment&&r.props.children)return e.Children.map(r.props.children,I(t));if(n(r.props.path||r.props.default||r.type===R,`<Router>: Children of <Router> must have a \\`path\\` or \\`default\\` prop, or be a \\`<Redirect>\\`. None found on element type \\`${r.type}\\``),n(!!(r.type!==R||r.props.from&&r.props.to),`<Redirect from=\"${r.props.from}\" to=\"${r.props.to}\"/> requires both \"from\" and \"to\" props when inside a <Router>.`),n(!(r.type===R&&!T(r.props.from,r.props.to)),`<Redirect from=\"${r.props.from} to=\"${r.props.to}\"/> has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.`),r.props.default)return{value:r,default:!0};const o=r.type===R?r.props.from:r.props.path,a=\"/\"===o?t:`${M(t)}/${M(o)}`;return{value:r,default:r.props.default,path:r.props.children?`${M(a)}/*`:a}},V=[\"innerRef\"],q=[\"to\",\"state\",\"replace\",\"getProps\"],X=[\"key\"];let{forwardRef:B}=e;void 0===B&&(B=e=>e);const K=()=>{},A=B((t,r)=>{let{innerRef:n}=t,s=a(t,V);const{baseuri:i}=f(),{location:c}=y(),{to:u,state:l,replace:h,getProps:m=K}=s,d=a(s,q),E=k(u,i),g=encodeURI(E),v=c.pathname===g,b=C(c.pathname,g);/*#__PURE__*/return e.createElement(\"a\",o({ref:r||n,\"aria-current\":v?\"page\":void 0},d,m({isCurrent:v,isPartiallyCurrent:b,href:E,location:c}),{href:E,onClick:e=>{if(d.onClick&&d.onClick(e),(e=>!e.defaultPrevented&&0===e.button&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey))(e)){e.preventDefault();let t=h;if(\"boolean\"!=typeof h&&v){const e=a(o({},c.state),X);t=D(o({},l),e)}p(E,{state:l,replace:t})}}}))});A.displayName=\"Link\",A.propTypes={to:r.string.isRequired};class F extends e.Component{constructor(...e){super(...e),this.displayName=\"ReactUseErrorBoundary\"}componentDidCatch(...e){this.setState({}),this.props.onError(...e)}render(){return this.props.children}}const W=e.createContext({componentDidCatch:{current:void 0},error:void 0,setError:()=>!1});function H({children:t}){const[r,n]=e.useState(),o=e.useRef(),a=e.useMemo(()=>({componentDidCatch:o,error:r,setError:n}),[r]);/*#__PURE__*/return e.createElement(W.Provider,{value:a},/*#__PURE__*/e.createElement(F,{error:r,onError:(e,t)=>{n(e),null==o.current||o.current(e,t)}},t))}H.displayName=\"ReactUseErrorBoundaryContext\";const z=function(t){var r,n;function a(r){/*#__PURE__*/return e.createElement(H,null,/*#__PURE__*/e.createElement(t,o({key:\"WrappedComponent\"},r)))}return a.displayName=`WithErrorBoundary(${null!=(r=null!=(n=t.displayName)?n:t.name)?r:\"Component\"})`,a}(({history:t=l,children:r})=>{const{location:n}=t,[o,a]=e.useState({location:n}),[s]=function(t){const r=e.useContext(W);r.componentDidCatch.current=void 0;const n=e.useCallback(()=>{r.setError(void 0)},[]);return[r.error,n]}();if(e.useEffect(()=>{t._onTransitionComplete()},[o.location]),e.useEffect(()=>{let e=!1;const r=t.listen(({location:t})=>{Promise.resolve().then(()=>{requestAnimationFrame(()=>{e||a({location:t})})})});return()=>{e=!0,r()}},[]),s){if(!g(s))throw s;p(s.uri,{replace:!0})}/*#__PURE__*/return e.createElement(d.Provider,{value:o},\"function\"==typeof r?r(o):r||null)}),G=({children:t})=>{const r=y();return r?t(r):/*#__PURE__*/e.createElement(z,null,t)},J=({url:t,children:r})=>{const n=t.indexOf(\"?\");let o,a=\"\";return n>-1?(o=t.substring(0,n),a=t.substring(n)):o=t,/*#__PURE__*/e.createElement(d.Provider,{value:{location:{pathname:o,search:a,hash:\"\"}}},r)},Q=({path:e,children:t})=>{const{baseuri:r}=f(),{location:n}=y(),a=k(e,r),s=x(a,n.pathname);return t({location:n,match:s?o({},s.params,{uri:s.uri,path:e}):null})},Y=[\"uri\",\"location\",\"component\"],Z=[\"children\",\"style\",\"component\",\"uri\",\"location\"],ee=t=>{let{uri:r,location:n,component:s}=t,i=a(t,Y);/*#__PURE__*/return e.createElement(re,o({},i,{component:s,uri:r,location:n}))};let te=0;const re=t=>{let{children:r,style:n,component:s=\"div\",uri:i,location:c}=t,u=a(t,Z);const l=e.useRef(),p=e.useRef(!0),h=e.useRef(i),m=e.useRef(c.pathname),d=e.useRef(!1);e.useEffect(()=>(te++,f(),()=>{te--,0===te&&(p.current=!0)}),[]),e.useEffect(()=>{let e=!1,t=!1;i!==h.current&&(h.current=i,e=!0),c.pathname!==m.current&&(m.current=c.pathname,t=!0),d.current=e||t&&c.pathname===i,d.current&&f()},[i,c]);const f=e.useCallback(()=>{var e;\"test\"!==process.env.NODE_ENV&&(p.current?p.current=!1:(e=l.current,d.current&&e&&e.focus()))},[]);/*#__PURE__*/return e.createElement(s,o({style:o({outline:\"none\"},n),tabIndex:\"-1\",ref:l},u),r)},ne=[\"location\",\"primary\",\"children\",\"basepath\",\"baseuri\",\"component\"],oe=t=>{const r=f(),n=y();/*#__PURE__*/return e.createElement(ae,o({},r,n,t))};function ae(t){const{location:r,primary:n=!0,children:s,basepath:i,component:c=\"div\"}=t,u=a(t,ne),l=e.Children.toArray(s).reduce((e,t)=>{const r=I(i)(t);return e.concat(r)},[]),{pathname:p}=r,h=w(l,p);if(h){const{params:t,uri:a,route:s,route:{value:l}}=h,p=s.default?i:s.path.replace(/\\*$/,\"\"),d=o({},t,{uri:a,location:r}),f=e.cloneElement(l,d,l.props.children?/*#__PURE__*/e.createElement(oe,{location:r,primary:n},l.props.children):void 0),y=n?ee:c,E=n?o({uri:a,location:r,component:c},u):u;/*#__PURE__*/return e.createElement(m.Provider,{value:{baseuri:a,basepath:p}},/*#__PURE__*/e.createElement(y,E,f))}return null}const se=()=>{const e=y();if(!e)throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");return e.location},ie=()=>{throw new Error(\"useNavigate is removed. Use import { navigate } from 'gatsby' instead\")},ce=()=>{const e=f();if(!e)throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");const t=se(),r=x(e.basepath,t.pathname);return r?r.params:null},ue=e=>{if(!e)throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");const t=f();if(!t)throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");const r=se(),n=k(e,t.baseuri),a=x(n,r.pathname);return a?o({},a.params,{uri:a.uri,path:e}):null};export{m as BaseContext,A as Link,G as Location,d as LocationContext,z as LocationProvider,Q as Match,R as Redirect,oe as Router,J as ServerLocation,i as createHistory,c as createMemorySource,l as globalHistory,P as insertParams,g as isRedirect,x as match,p as navigate,w as pick,v as redirectTo,k as resolve,D as shallowCompare,C as startsWith,f as useBaseContext,se as useLocation,y as useLocationContext,ue as useMatch,ie as useNavigate,ce as useParams,T as validateRedirect};\n//# sourceMappingURL=index.modern.mjs.map\n","\"use client\"\nimport t from\"prop-types\";import e from\"react\";import{resolve as n,Location as r,Link as o}from\"@gatsbyjs/reach-router\";import{applyTrailingSlashOption as s}from\"gatsby-page-utils/apply-trailing-slash-option\";function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},i.apply(this,arguments)}function a(t){let e=t||\"/\",n=\"\",r=\"\";const o=e.indexOf(\"#\");-1!==o&&(r=e.slice(o),e=e.slice(0,o));const s=e.indexOf(\"?\");return-1!==s&&(n=e.slice(s),e=e.slice(0,s)),{pathname:e,search:\"?\"===n?\"\":n,hash:\"#\"===r?\"\":r}}const c=/^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/,l=t=>{if(\"string\"==typeof t)return!(t=>c.test(t))(t)},p=()=>\"production\"!==process.env.NODE_ENV?\"undefined\"!=typeof __BASE_PATH__?__BASE_PATH__:void 0:__BASE_PATH__,h=()=>\"production\"!==process.env.NODE_ENV?\"undefined\"!=typeof __PATH_PREFIX__?__PATH_PREFIX__:void 0:__PATH_PREFIX__;function f(t,e=p()){var n;if(!l(t))return t;if(t.startsWith(\"./\")||t.startsWith(\"../\"))return t;const r=null!=(n=null!=e?e:h())?n:\"/\";return`${null!=r&&r.endsWith(\"/\")?r.slice(0,-1):r}${t.startsWith(\"/\")?t:`/${t}`}`}const u=t=>null==t?void 0:t.startsWith(\"/\"),_=()=>\"undefined\"!=typeof __TRAILING_SLASH__?__TRAILING_SLASH__:void 0;function d(t,e){const{pathname:n,search:r,hash:o}=a(t);return`${s(n,e)}${r}${o}`}const m=(t,e)=>\"number\"==typeof t?t:l(t)?u(t)?function(t){const e=f(t),n=_();return\"always\"===n||\"never\"===n?d(e,n):e}(t):function(t,e){if(u(t))return t;const r=_(),o=n(t,e);return\"always\"===r||\"never\"===r?d(o,r):o}(t,e):t,y=[\"to\",\"getProps\",\"onClick\",\"onMouseEnter\",\"activeClassName\",\"activeStyle\",\"innerRef\",\"partiallyActive\",\"state\",\"replace\",\"_location\"];function v(t){return f(t,h())}const b={activeClassName:t.string,activeStyle:t.object,partiallyActive:t.bool};function w(t){/*#__PURE__*/return e.createElement(r,null,({location:n})=>/*#__PURE__*/e.createElement(P,i({},t,{_location:n})))}class P extends e.Component{constructor(t){super(t),this.defaultGetProps=({isPartiallyCurrent:t,isCurrent:e})=>(this.props.partiallyActive?t:e)?{className:[this.props.className,this.props.activeClassName].filter(Boolean).join(\" \"),style:i({},this.props.style,this.props.activeStyle)}:null;let e=!1;\"undefined\"!=typeof window&&window.IntersectionObserver&&(e=!0),this.state={IOSupported:e},this.abortPrefetch=null,this.handleRef=this.handleRef.bind(this)}_prefetch(){let t=window.location.pathname+window.location.search;this.props._location&&this.props._location.pathname&&(t=this.props._location.pathname+this.props._location.search);const e=a(m(this.props.to,t)),n=e.pathname+e.search;if(t!==n)return ___loader.enqueue(n)}componentWillUnmount(){if(!this.io)return;const{instance:t,el:e}=this.io;this.abortPrefetch&&this.abortPrefetch.abort(),t.unobserve(e),t.disconnect()}handleRef(t){this.props.innerRef&&Object.prototype.hasOwnProperty.call(this.props.innerRef,\"current\")?this.props.innerRef.current=t:this.props.innerRef&&this.props.innerRef(t),this.state.IOSupported&&t&&(this.io=((t,e)=>{const n=new window.IntersectionObserver(n=>{n.forEach(n=>{t===n.target&&e(n.isIntersecting||n.intersectionRatio>0)})});return n.observe(t),{instance:n,el:t}})(t,t=>{t?this.abortPrefetch=this._prefetch():this.abortPrefetch&&this.abortPrefetch.abort()}))}render(){const t=this.props,{to:n,getProps:r=this.defaultGetProps,onClick:s,onMouseEnter:c,state:p,replace:h,_location:f}=t,u=function(t,e){if(null==t)return{};var n,r,o={},s=Object.keys(t);for(r=0;r<s.length;r++)e.indexOf(n=s[r])>=0||(o[n]=t[n]);return o}(t,y);\"production\"===process.env.NODE_ENV||l(n)||console.warn(`External link ${n} was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links`);const _=m(n,f.pathname);return l(_)?/*#__PURE__*/e.createElement(o,i({to:_,state:p,getProps:r,innerRef:this.handleRef,onMouseEnter:t=>{c&&c(t);const e=a(_);___loader.hovering(e.pathname+e.search)},onClick:t=>{if(s&&s(t),!(0!==t.button||this.props.target||t.defaultPrevented||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)){t.preventDefault();let e=h;const n=encodeURI(_)===f.pathname;\"boolean\"!=typeof h&&n&&(e=!0),window.___navigate(_,{state:p,replace:e})}return!0}},u)):/*#__PURE__*/e.createElement(\"a\",i({href:_},u))}}P.propTypes=i({},b,{onClick:t.func,to:t.string.isRequired,replace:t.bool,state:t.object});const E=e.forwardRef((t,n)=>/*#__PURE__*/e.createElement(w,i({innerRef:n},t))),g=(t,e)=>{window.___navigate(m(t,window.location.pathname),e)};export{E as Link,g as navigate,a as parsePath,v as withAssetPrefix,f as withPrefix};\n//# sourceMappingURL=index.modern.mjs.map\n","\"use client\"\nimport t,{useEffect as e}from\"react\";import{Location as n,useLocation as r}from\"@gatsbyjs/reach-router\";function o(){return o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},o.apply(this,arguments)}const a=new Map,l={get:t=>a.get(t)||[],set(t,e){const n=a.get(t)||[];n.push(e),a.set(t,n)},delete(t){a.delete(t)}},s=\"undefined\"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(t){const e=Date.now();return setTimeout(function(){t({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})},1)};var c;!function(t){t.postHydrate=\"post-hydrate\",t.idle=\"idle\",t.offMainThread=\"off-main-thread\"}(c||(c={}));const i=new Set([\"src\",\"strategy\",\"dangerouslySetInnerHTML\",\"children\",\"onLoad\",\"onError\"]),u=new Set,d=new Map;function f(e){/*#__PURE__*/return t.createElement(n,null,()=>/*#__PURE__*/t.createElement(p,e))}function p(n){const{src:a,strategy:i=c.postHydrate}=n||{},{pathname:u}=r();if(e(()=>{let t;switch(i){case c.postHydrate:t=y(n);break;case c.idle:s(()=>{t=y(n)});break;case c.offMainThread:{const t=b(n);l.set(u,t)}}return()=>{const{script:e,loadCallback:n,errorCallback:r}=t||{};n&&(null==e||e.removeEventListener(\"load\",n)),r&&(null==e||e.removeEventListener(\"error\",r)),null==e||e.remove()}},[]),i===c.offMainThread){const e=m(n),r=b(n);return\"undefined\"==typeof window&&l.set(u,r),/*#__PURE__*/t.createElement(\"script\",e?o({type:\"text/partytown\",\"data-strategy\":i,crossOrigin:\"anonymous\"},r,{dangerouslySetInnerHTML:{__html:m(n)}}):o({type:\"text/partytown\",src:h(a),\"data-strategy\":i,crossOrigin:\"anonymous\"},r))}return null}function y(t){const{id:e,src:n,strategy:r=c.postHydrate,onLoad:a,onError:l}=t||{},s=e||n,i=[\"load\",\"error\"],f={load:a,error:l};if(s){for(const t of i)if(null!=f&&f[t]){var p;const e=d.get(s)||{},{callbacks:n=[]}=(null==e?void 0:e[t])||{};var y,h;n.push(null==f?void 0:f[t]),null!=e&&null!=(p=e[t])&&p.event?null==f||null==(y=f[t])||y.call(f,null==e||null==(h=e[t])?void 0:h.event):d.set(s,o({},e,{[t]:{callbacks:n}}))}if(u.has(s))return null}const v=m(t),k=b(t),w=document.createElement(\"script\");e&&(w.id=e),w.dataset.strategy=r;for(const[t,e]of Object.entries(k))w.setAttribute(t,e);v&&(w.textContent=v),n&&(w.src=n);const C={};if(s){for(const t of i){const e=e=>g(e,s,t);w.addEventListener(t,e),C[`${t}Callback`]=e}u.add(s)}return document.body.appendChild(w),{script:w,loadCallback:C.loadCallback,errorCallback:C.errorCallback}}function m(t){const{dangerouslySetInnerHTML:e,children:n=\"\"}=t||{},{__html:r=\"\"}=e||{};return r||n}function b(t){const e={};for(const[n,r]of Object.entries(t))i.has(n)||(e[n]=r);return e}function h(t){if(t)return`/__third-party-proxy?url=${encodeURIComponent(t)}`}function g(t,e,n){const r=d.get(e)||{};for(const e of(null==r||null==(o=r[n])?void 0:o.callbacks)||[]){var o;e(t)}d.set(e,{[n]:{event:t}})}export{f as Script,c as ScriptStrategy,l as collectedScriptsByPage,u as scriptCache,d as scriptCallbackCache};\n//# sourceMappingURL=index.modern.mjs.map\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","start","end","num","output","base64","ieee754","customInspectSymbol","Symbol","Buffer","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","INVALID_BASE64_RE","Infinity","leadSurrogate","split","base64clean","src","dst","constructor","name","alphabet","table","i16","suffixes","input","option","hasTrailingSlash","endsWith","suffix","endsWithSuffixes","_scrollHandler","ScrollHandler","useScrollRestoration","_interopRequireDefault","__esModule","ScrollContext","_assertThisInitialized2","_inheritsLoose2","React","nodeInterop","default","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","hasOwnProperty","desc","_interopRequireWildcard","_propTypes","_sessionStorage","WeakMap","cacheBabelInterop","cacheNodeInterop","createContext","SessionStorage","displayName","_React$Component","_this","_len","args","_key","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","window","scrollY","requestAnimationFrame","_saveScroll","bind","windowScroll","position","prevProps","shouldUpdateScroll","props","scrollTo","scrollToHash","hash","node","document","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","_proto","location","save","componentDidMount","scrollPosition","addEventListener","_this$props$location","decodeURI","componentWillUnmount","removeEventListener","componentDidUpdate","_this$props$location2","render","createElement","Provider","children","Component","propTypes","func","element","isRequired","object","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","storedValue","stringify","setItem","stateKeyBase","pathname","identifier","_reachRouter","useLocation","state","_react","useContext","ref","useRef","useLayoutEffect","current","onScroll","scrollTop","module","assign","onInitialClientRender","getForwards","collectedScripts","flatMap","script","forward","injectPartytownSnippet","existingSnippet","querySelector","existingSandbox","remove","forwards","_getForwards","snippet","dataset","partytown","innerHTML","_integration","partytownSnippet","head","appendChild","components","component---src-pages-404-js","component---src-pages-500-js","component---src-pages-cs-vyrobky-extrabase-product-id-js","component---src-pages-de-produkte-extrabase-product-id-js","component---src-pages-en-job-test-js","component---src-pages-en-products-extrabase-product-id-js","component---src-pages-en-us-products-extrabase-product-id-js","component---src-pages-es-productos-extrabase-product-id-js","component---src-pages-fr-produits-extrabase-product-id-js","component---src-pages-it-prodotti-extrabase-product-id-js","component---src-pages-nl-producten-extrabase-product-id-js","component---src-pages-pl-produkty-extrabase-product-id-js","component---src-pages-pt-produtos-extrabase-product-id-js","component---src-templates-account-page-js","component---src-templates-basket-page-js","component---src-templates-blog-home-page-js","component---src-templates-blog-page-js","component---src-templates-checkout-complete-page-js","component---src-templates-checkout-page-js","component---src-templates-checkout-payment-failed-page-js","component---src-templates-checkout-payment-page-js","component---src-templates-contact-page-js","component---src-templates-datasheets-page-js","component---src-templates-distributor-page-js","component---src-templates-elion-configurator-page-js","component---src-templates-expertise-page-js","component---src-templates-frl-configurator-page-js","component---src-templates-generic-configurator-page-js","component---src-templates-home-page-js","component---src-templates-ivac-calculator-page-js","component---src-templates-landing-page-js","component---src-templates-login-failed-page-js","component---src-templates-order-detail-page-js","component---src-templates-order-history-page-js","component---src-templates-product-category-js","component---src-templates-product-page-js","component---src-templates-quote-detail-page-js","component---src-templates-register-page-js","component---src-templates-registration-complete-page-js","component---src-templates-root-page-js","component---src-templates-root-register-page-js","component---src-templates-saved-baskets-js","component---src-templates-saved-configurations-js","component---src-templates-search-page-js","component---src-templates-standard-page-js","component---src-templates-valve-island-configurator-page-js","plugin","require","options","plugins","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","results","map","result","filter","reduce","previous","next","then","Promise","resolve","all","create","on","handler","off","splice","emit","evt","mitt","pathAndSearch","path","search","charAt","pathCache","Map","matchPaths","trimPathname","rawPathname","newRawPathname","qs","encodeURIComponent","decodeURIComponent","stripPrefix","__BASE_PATH__","absolutify","startsWith","URL","href","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","_ref","matchPath","originalPath","pick","normalizePagePath","route","grabMatchParams","_ref2","params","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","loader","enqueue","supportedPrefetchStrategy","feature","fakeLink","relList","supports","err","support","url","reject","link","setAttribute","keys","forEach","onload","onerror","getElementsByTagName","getElementsByName","parentNode","req","XMLHttpRequest","open","status","send","preFetched","catch","PageResourceStatus","Success","createPageDataUrl","rawPath","maybeSearch","s","shouldAbortFetch","doFetch","method","onreadystatechange","readyState","BOT_REGEX","toPageResources","pageData","component","_pageData$slicesMap","page","componentChunkName","webpackCompilationHash","staticQueryHashes","getServerDataError","slicesMap","json","waitForResponse","response","readRoot","setTimeout","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","partialHydrationDb","slicesDataDb","sliceInflightDb","slicesDb","isPrefetchQueueRunning","prefetchQueued","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","delete","setApiRunner","apiRunner","prefetchDisabled","some","fetchPageDataJson","loadObj","pagePath","retries","responseText","jsonPayload","payload","notFound","internalServerError","fetchPartialHydrationJson","loadPageDataJson","loadPartialHydrationJson","loadSliceDataJson","sliceName","loadDataPromises","loadAppData","allData","appDataResponse","pageDataResponse","rscDataResponse","pageStaticQueryHashes","finalResult","dedupedSliceNames","values","loadSlice","inFlight","sliceContext","slicesData","slices","dedupedStaticQueryHashes","_toConsumableArray","staticQueryHash","loadChunkPromises","componentChunkPromises","sliceComponents","headComponent","pageComponent","createdAt","Date","sliceComponent","pageResources","partialHydration","readableStream","ReadableStream","controller","te","TextEncoder","encode","pull","close","cancel","createFromReadableStream","staticQueryBatchPromise","staticQueryResults","staticQueryResultsMap","emitter","_options","withErrorDetails","shouldPrefetch","doesConnectionSupportPrefetch","navigator","connection","effectiveType","saveData","userAgent","test","prefetch","abort","defer","promise","abortC","AbortController","signal","index","findIndex","_ref3","p","_processNextPrefetchBatch","requestIdleCallback","cb","toPrefetch","prefetches","_ref4","dPromise","add","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","hovering","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","instance","ProdLoader","_BaseLoader2","asyncRequires","chunkName","exportType","_inheritsLoose","_proto2","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","getSliceResults","FireCallbackInEffect","callback","useEffect","VALID_NODE_NAMES","isEqualNode","oldTag","newTag","HTMLElement","nonce","getAttribute","cloneTag","cloneNode","getValidHeadNodesAndAttributes","rootNode","htmlAndBodyAttributes","html","body","seenIds","validHeadNodes","childNodes","_node$attributes","_node$attributes$id","nodeName","id","attributes","isElementType","isValidNodeName","attribute","isStyleAttribute","_htmlAndBodyAttribute","style","clonedNode","massageScript","_validHeadNodes$index","indexOfPreviouslyInsertedNode","removeChild","attr","nodeType","hiddenRoot","keysOfHtmlAndBodyAttributes","onHeadRendered","_document$head2","htmlElement","entries","attributeName","attributeValue","bodyElement","applyHtmlAndBodyAttributes","existingHeadElements","querySelectorAll","_document$head","append","newHeadNodes","oldNodes","newNodes","onStale","onNew","existingHeadElement","indexInNewNodes","newNode","diffNodes","headHandlerForBrowser","pageComponentProps","Head","headExportValidator","reactDOMUtils","HeadElement","serverData","pageContext","WrapHeadElement","pop","StaticQueryContext","LocationProvider","prevHeadNodes","removePrevHeadElements","htmlAndBodyattributeList","removeAttribute","removeHtmlAndBodyAttributes","PageRenderer","__params","pageElement","PropTypes","RouteAnnouncerProps","top","width","height","padding","overflow","clip","whiteSpace","border","maybeRedirect","___replace","nextRoute","event","reason","onPreRouteUpdate","prevLocation","onRouteUpdate","navigate","to","globalHistory","parsePath","___swUpdated","timeoutId","history","replaceState","clearTimeout","___webpackCompilationHash","serviceWorker","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","oldPathname","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","_prevLocation$state","_nextLocation$state","RouteUpdates","_React$Component2","_this2","shouldComponentUpdate","shallowDiffers","_i","EnsureResources","getDerivedStateFromProps","prevState","loadResources","setState","nextState","shallowCompare","hydrate","___emitter","___loader","listen","action","___push","___navigate","reloadStorageKey","apiRunnerAsync","Boolean","RouteHandler","BaseContext","baseuri","basepath","DataContext","slicesContext","renderEnvironment","GatsbyRoot","Location","sliceResults","SlicesContext","SlicesResultsContext","SlicesMapContext","LocationHandler","Consumer","Router","encodeURI","browserLoc","match","getSessionStorage","_page$page","reload","removeItem","message","SiteRoot","App","onClientEntryRanRef","performance","mark","focusEl","defaultRenderer","renderer","runRender","rootElement","doc","documentElement","doScroll","InternalPageRenderer","reactDomClient","el","root","createRoot","hydrateRoot","redirectMap","redirectIgnoreCaseMap","ignoreCase","fromPath","protocol","hostname","register","reg","installingWorker","installing","log","___failedResources","defaultValue","createServerContext","globalThis","__SERVER_CONTEXT","useStaticQuery","query","_context$query","context","isNaN","prefix","wrapRootElement","NotificationsProvider","GeolocationProvider","LanguageProvider","UserProvider","BasketProvider","SearchProvider","CurrencyProvider","JobProvider","LiveChatProvider","DataLayerProvider","ConfiguratorProvider","MobileNavProvider","onClientEntry","pagePathOverride","originalLoadPage","originalLoadPageSync","async","gclId","URLSearchParams","wrapPageElement","Helmet","defaultPluginOptions","noTrailingSlash","nopQueryString","nopHash","pluginOptions","siteUrl","excludes","exclude","RegExp","isExcluded","myUrl","noQueryString","noHash","Fragment","rel","initialState","basketId","myCurrentBasket","basketCurrency","currency","basketItems","basketWithTaxPrice","basketWithoutTaxPrice","basketTaxPrice","basketDiscountPrice","basketItemsCount","itemCount","basketFeatureAvailable","basketExpires","expires","basketCertificateOfConformity","basketDeliveryCharge","warningMessages","basketIsReadonly","actions","reducer","setMyBasket","countBasketItems","itemsCount","items","localStorageBasket","withTax","withoutTax","tax","discount","certificateOfConformity","deliveryCharge","isReadonly","removeMyBasket","BasketContext","dispatch","setBasketId","setBasketCurrency","setBasketItems","setBasketWithTaxPrice","setBasketWithoutTaxPrice","setBasketTaxPrice","setBasketDiscountPrice","setBasket","setBasketFeatureAvailability","deleteBasket","setBasketExpires","setBasketCertificateOfConformity","setBasketDeliveryCharge","setWarningMessages","setIsReadonly","validCurrencies","CurrencyContext","setValidCurrencies","eventApi","DataLayerContext","setEventApi","country","currentGeolocation","callingCountry","GeolocationContext","setCountry","setCallingCountry","setExpires","setGeolocation","jobSubjects","jobId","existing","teardown","JobContext","addSubject","removeSubject","removeAllSubjects","getSubjectForJob","detachFromJobs","observer","detach","language","getInsecureValue","languageKey","LanguageContext","validLanguageCodes","useLanguages","defaultLanguageCode","slug","getLanguage","setLanguage","liveChatApi","liveChatAvailable","LiveChatContext","setLiveChatApi","setLiveChatAvailable","subNavId","isMobileNavOpen","contextTimeout","MobileNavContext","setIsMobileNavOpen","setSubNavId","setContextTimeout","loading","responseModel","currentStep","configuratorType","version","product","unavailable","SET_LOADING","SET_RESPONSEMODEL","SET_CURRENTSTEP","SET_CONFIGURATORTYPE","SET_VERSION","SET_PRODUCT","SET_UNAVAILABLE","ConfiguratorContext","setLoading","setResponseModel","setCurrentStep","setConfiguratorType","setVersion","setProduct","setUnavailable","commitValue","locale","requestId","uuid","commit","configState","_context$configurator","_data$range","getConfiguratorState","myConfiguratorType","setConfiguratorState","range","commitValues","valuePairs","commitMultiple","_context$configurator2","_data$range2","startConfigurator","_context$configurator3","_data$range3","startGenericConfigurator","productCode","startGeneric","_data$range4","step","amountOfStepsToMove","moveStep","_context$configurator4","_data$range5","productResponse","stepUsingConfigState","_context$configurator5","_data$range6","repeatForStations","stationName","repeatValuesForAllStations","_context$configurator6","_data$range7","acceptConflict","accept","_context$configurator7","_data$range8","getConfiguratorProductImageBaseUrl","notifications","NotificationLevel","ERROR","WARNING","SUCCESS","update","notification","NotificationsContext","setNotification","deleteNotification","clearNotifications","defaultTTL","publishDismissableError","setNotificationCallback","publishError","publishDismissableWarning","warning","publishWarning","publishDismissableSuccess","success","publishSuccess","publishPermanentDismissableError","publishDismissableWarningWithLink","publishDismissableSuccessWithLink","dismissAfter","idToUse","level","expireOn","getExpiryDateTime","unpublishNotification","deleteNotificationCallback","milliseconds","date","setTime","getTime","productSuggestions","datasheetSuggestions","partNumberSuggestions","categoriesSuggestions","contentSuggestions","showSuggestions","suggestionsOpen","searchValue","SearchContext","setProductSuggestions","setDatasheetSuggestions","setPartNumberSuggestions","setCategoriesSuggestions","setContentSuggestions","setShowSuggestions","setSuggestionsOpen","setSearchValue","closeSuggestions","email","firstName","lastName","accountType","queryingUser","canCheckout","pAndASearchFeatureEnabled","isDistributor","organisationId","accountNumber","allowPromoCodes","allowCertificateOfConformity","invoicesFeatureEnabled","quotesFeatureEnabled","UserContext","setEmail","setFirstName","setLastName","setAccountType","setQueryingUser","setCanCheckout","setPAndASearchFeatureEnabled","setIsDistributor","setOrganisationId","setAccountNumber","setAllowPromoCodes","setAllowCertificateOfConformity","setInvoicesFeatureEnabled","setQuotesFeatureEnabled","useLanguageI18n","resolveMicrocopyFromResourcesQueryResultForLocale","locales","supportedLocales","microcopy","allContentfulNavigationElement","availableLocales","nodes","currentNode","_microcopy","node_locale","convertToMicrocopyKey","useOrderedLanguages","languages","ordered","english","find","sort","convertLanguageText","searchElement","_title","replaceAll","BasketContextBrowsing","BasketContextCheckout","CertificateOfComformitySku","StandardOrderOrigin","DataWarehouseOrderOrigin","MaxBasketItemQuantity","defaultPricingDisplayOptions","showDeliveryOnRequest","showLoginForPrice","showStockLevelIndicator","showRequestAQuote","showListPrice","showNetPrice","showDeliveryDate","showIsFallbackMessage","showPricingTiers","showDiscardConfiguration","showFindDistributor","whoAmI","jsonApiPostRequest","BaseApiRoute","getGeolocationCountry","getProducts","urlParams","friendlyFilterParams","viewSize","currentQueryParams","isoLocalDateTime","toISOString","device","isMobile","registerModel","recaptchaCode","firstname","lastname","companyName","companyname","countryCode","confirmEmail","confirmemail","telephone","extrabaseUrlParams","suggest","term","suggestTerm","createBasket","getBasket","basketContext","addProductToBasket","itemSku","quantity","address","addMultipleProductsToBasketJob","products","basketProducts","removeProductFromBasket","itemId","emptyBasket","updateProduct","applyDeliveryCharge","deliveryChargeId","modeOfTransport","deliveryModeOfTransport","getAdditionalDeliveryOptions","removeDeliveryCharge","checkoutBasket","contact","billingAddress","shippingAddress","payment","delivery","preparePayment","successUrl","errorUrl","BaseRoute","getCertificateOfConformityProduct","getPriceForDetailPage","getPriceForListerPage","getPriceForAccessoriesPage","getAccountAddresses","getAccountCheckoutInformation","addAccountAddress","deleteAccountAddress","addressId","changePassword","getAllUserAccounts","getOrders","skip","take","orderOrigin","changeAccount","accountId","getOrder","orderId","getOrderForCheckout","findAddress","text","container","retrieveAddress","submitFormToSalesForce","submitUrl","formData","getSavedBasekts","saveCurrentBasket","basketName","mergeCurrentBasketWithSavedBasket","savedBasketId","addOrderItemsToBasketJob","deleteSavedBasket","getValidCurrencies","saveConfiguration","shortCode","numberOfStations","description","getSavedConfigurations","deleteSavedConfiguration","configurationId","savedConfigurationId","downloadInvoice","invoiceNumber","invoiceDate","xsrfType","getApiBaseUrl","process","urlPath","bodyObj","isBlob","baseUrl","getXSRFPerRequestPromise","fetch","credentials","xsrf","getCookie","xsrfTokenKey","finally","getXSRFPerRequest","headers","createDefaultHeaders","blob","errorData","jsonApiPostRequestWithXSRFPerRequest","jsonApiPostRequestWithSessionXSRF","jsonApiPostRequestWithXSRFPerSession","Accept","forceNewXSRF","existingXSRF","getXSRFPerSession","BasketKey","getMyBasket","basket","basketAvailable","hasCertificateOfConformity","removeInsecureValue","setInsecureValue","logException","count","isBasketEmpty","minutes","startValveIslandConfiguratorFromPartNumber","partNumber","parameterValuePairs","getBOMSummary","omitUnits","requestAQuote","requestAQuoteObject","addConfiguredProductToBasket","getConfiguratorVersion","DefaultChartLineColour","ProductCodeQueryParamName","configuratorState","ConvertToBackendShortCodeType","cookie","setCookie","deleteCookie","getGeolocationPromise","geolocationKey","defaultCountry","getGeolocation","callingCountries","geolocation","hasGeolocationExpired","browserCountry","resolveCountryFromBrowserOrDefault","resolveCallingCountry","hours","usStatesArray","getI18nText","GATSBY_SHOW_I18N_ID","textDecoration","getI18nTextWithFallback","fallback","formatSpecificMicrocopyKeys","doesMicrocopyTextExist","localStorageAvailable","checkLocalStorageAvailable","testLocalStorage","localStorage","isLocalStorageAvailable","jsonValue","base64Json","temp1","temp2","languageInUrl","isLangaugeValid","getLanguageFromUrl","getBrowserLanguage","_pureAssign","func1","func2","_pureRef","_primitiveTypes","UNDEF_VALUE","NULL_VALUE","EMPTY","FUNCTION","OBJECT","PROTOTYPE","__PROTO__","UNDEFINED","CONSTRUCTOR","SYMBOL","POLYFILL_TAG","LENGTH","NAME","CALL","TO_STRING","StrCls","StrProto","MathCls","ArrCls","ArrProto","ArrSlice","argArray","v","_createIs","theType","_createObjIs","theName","objToString","isNullOrUndefined","isDefined","isPrimitiveType","isObject","isDate","isNumber","isBoolean","isError","isTruthy","defValue","objGetOwnPropertyDescriptor","prop","objHasOwn","polyObjHasOwn","theObject","callbackfn","thisArg","_createKeyValueMap","keyType","valueType","completeFn","theMap","asString","ERROR_TYPE","dumpObj","format","propertyValueDump","objType","stack","throwError","_objFreeze","_doNothing","_getProto","objAssign","objKeys","objFreeze","objGetPrototypeOf","createEnumKeyMap","_globalCfg","_wellKnownSymbolMap","asyncIterator","hasInstance","isConcatSpreadable","iterator","matchAll","species","toStringTag","unscopables","GLOBAL_CONFIG_KEY","_getGlobalValue","self","g","_getGlobalConfig","gbl","_unwrapFunction","_unwrapFunctionWithPoly","funcName","clsProto","polyFunc","clsFn","theFunc","theArgs","_unwrapProp","propName","mathMax","strSlice","strSubstr","polyStrSubstr","strLeft","_polySymbols","_wellKnownSymbolCache","UNIQUE_REGISTRY_ID","_globalSymbolRegistry","gblCfg","gblSym","k","polyNewSymbol","theSymbol","polySymbolFor","registry","newSymbol_1","regId_1","propMap","w","_createProp","l","newValue","_globalLazyTestHooks","objDefineProperties","propDesc","_initTestHooks","getLazy","lazyValue","lzy","configurable","_cachedGlobal","WINDOW","_getGlobalInstFn","getFn","cachedValue","getGlobal","useCached","getWindow","hasDocument","hasWindow","_symbol","_symbolFor","getHistory","isNode","versions","isWebWorker","WorkerGlobalScope","_initSymbol","_getSymbolKey","_iterSymbol$1","hasSymbol","getSymbol","noPoly","knownName","sym","polyGetKnownSymbol","newSymbol","symbolFor","isStrictNullOrUndefined","iter","iterResult","done","failed","throw","return","fnApply","fn","arrAppend","elms","elm","theArray","idx","arrMap","arrReduce","_isProtoArray","_unsupportedError","objCreate","polyObjCreate","tempFunc","objSetPrototypeOf","d","_a","_setName","baseClass","constructCb","errorBase","theBaseClass","orgName","captureFn","captureStackTrace","__","_createCustomError","_self","orgProto","now","polyUtcNow","_createTrimFn","exp","_fnToString","_objCtrFnString","_gblWindow","isPlainObject","Function","ex","_defaultDeepCopyHandler","details","plainObjDeepCopyHandler","defaultDeepCopyHandlers","copyTo","_deepCopy","visitMap","ctx","userHandler","newPath","newCtx","isPlain","isPrim","origin","source","newKey","_copyProps","theEntry","entry","_getSetVisited","newEntry","_doExtend","theArg","objCopyProps","deepExtend","obj1","obj2","obj3","obj4","obj5","obj6","_perf","strSplit","setValueByKey","lastKey","strEndsWith","polyStrEndsWith","searchString","REF","UNREF","HAS_REF","ENABLED","_createTimerHandler","startTimer","refreshFn","cancelFn","theTimerHandler","timerId","_unref","_cancel","_refresh","refresh","h","dn","_createTimeoutWith","overrideFn","isArr","setFn","clearFn","timerFn","timeout","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_gbl","_gblInst","o","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","curProto","_forEachProp","name_1","lp","_isDynamicCandidate","skipOwn","_throwTypeError","_hasVisited","_populatePrototype","className","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFunc","currentDynProtoProxy","instFuncTable","canAddInst","objProto","visited","protoFunc","_getInstFunc","_getProtoFunc","instFuncs_1","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","baseFuncs","_instFuncProxy","funcHost","baseProto","_getBaseFuncs","strShimObject","strHasOwnProperty","__assignFn","t","extendStaticsFn","__proto__","__extendsFn","__spreadArrayFn","il","_DYN_RD_ONLY","_DYN_NOTIFY","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_SET_DF","_DYN_WATCH","_DYN_LOGGER","_DYN_APPLY","_DYN_SPLICE","_DYN_HDLR","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_REMOVE_NOTIFICATION_0","_DYN_ADD_NOTIFICATION_LIS1","_DYN_IS_INITIALIZED","_DYN_GET_NOTIFY_MGR","_DYN_GET_PLUGIN","_DYN_POLL_INTERNAL_LOGS","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT2","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_IS_ASYNC","_DYN_DIAG_LOG","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_PROTOCOL","_DYN_USER_AGENT","_DYN_NODE_TYPE","_DYN_REPLACE","_DYN_LOG_INTERNAL_MESSAGE","_DYN_STATUS","_DYN_GET_RESPONSE_HEADER","_DYN_GET_ALL_RESPONSE_HEA5","_DYN_IS_CHILD_EVT","_DYN_DATA","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","_DYN_ITEMS_RECEIVED","_DYN_URL_STRING","_DYN_SEND_POST","_DYN_HEADERS","_DYN_TIMEOUT","_DYN_SET_REQUEST_HEADER","UNDEFINED_VALUE","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_OFFLINE_STORE","STR_OFFLINE_SENT","STR_OFFLINE_DROP","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","STR_NOT_DYNAMIC_ERROR","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","_all","letter","toUpperCase","getExceptionName","setValue","field","valChk","srcChk","theValue","getSetValue","_createProxyFunction","srcFunc","originalArguments","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","theFuncName","optimizeObject","extended","argLen","deep","isArgArray","isArgObj","isNewArray","clone","isFeatureEnabled","cfg","rlt","ft","featureOptIn","mode","getResponseText","xhr","formatErrorMessageXdr","xdr","formatErrorMessageXhr","prependTransports","theTransports","newTransports","strWithCredentials","_appendHeader","theHeaders","_getAllResponseHeaders","isOneDs","headersString","headerEntry","header","strDocumentMode","strLocation","strConsole","strJSON","strCrypto","strMsCrypto","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","property","supported","getLocation","checkForMock","mockLocation","hasJSON","getJSON","isIE","nav","getIEVersion","userAgentStr","navigator_1","ua","tridentVer","isBeaconsSupported","sendBeacon","isFetchSupported","withKeepAlive","isSupported","request","useXDomainRequest","XDomainRequest","isXhrSupported","sendCustomEvent","evtName","customDetails","evnt","global","CustomEvent","eventName","detail","createEvent","initCustomEvent","createCustomDomEvent","dispatchEvent","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","random","random32","signed","getRandomValues","Uint32Array","mwcRandom32","floor","newId","maxLength","number","chars","instanceName","_dataUid","_canAcceptData","createUniqueNamespace","includeVersion","createElmNodeData","addDefault","theCache","_getCache","kill","_isConfigDefaults","isVal","fb","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","dfVal","fallbacks","fbValue","_resolveDefaultValue","newValue_1","_applyDefaultValue","isValid","mergeDf","reference","readOnly","blkDynamicValue","mrg","usingDefault","cfgValue","dfName","dfValue","CFG_HANDLER_LINK","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","_canMakeDynamic","getFunc","blkVal","throwInvalidAccess","aggregationErrorType","arrayMethodsToPatch","_throwDynamicError","logger","_getOwnPropGetter","_setDynamicProperty","getter","trk","clr","checkDynamic","isObjectOrArray","_getProperty","_makeDynamicObject","activeHandler","act","chng","ro","upd","isReferenced","rf","hdlr","valueState","newIsObjectOrArray","_createDynamicProperty","_setDynamicPropertyState","flags","isDynamic","inPlace","rdOnly","blkProp","blockDynamicConversion","orgMethod","_patchArray","symPrefix","symPostfix","_createState","cfgHandler","theState","dynamicPropertySymbol","uid","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","_useHandler","prevWatcher","setDf","_notifyWatchers","notifyHandlers","watcherFailures_1","sourceErrors","errors","theMessage","srcError","throwAggregationError","use","_createDynamicHandler","getDynamicConfigHandler","newTarget","defaultValues","configHandler","rm","_createAndUseHandler","_block","allowUpdate","prevUpd","createDynamicConfig","config","defaultConfig","onConfigChange","_logInvalidAccess","_debugListener","listenerFuncs","_aiNamespace","_listenerProxyFunc","dbgExt","getDebugExt","listener","ns","disableDbgExt","STR_WARN_TO_CONSOLE","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","enableDebug","_logFuncs","_sanitizeDiagnosticText","_logToConsole","theConsole","logFunc","_InternalLogMessage","msgId","msg","isUserAct","properties","strProps","diagnosticText","dataType","safeGetLogger","core","DiagnosticLogger","queue","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_messageCount","_messageLogged","_logInternalMessage","severity","logMessage","messageKey","_debugExtMsg","throttleLimitMessage","throttleMessage","errorToConsole","_setDefaultsFromConfig","consoleLoggingLevel","debugToConsole","resetInternalMessageCount","isAsync","__ieDyn","_getLogger","_throwInternal","_warnToConsole","createEnumStyle","createValueMap","mapClass","createSimpleMap","StorageType","LocalStorage","AI","AI_AND_W3C","W3C","Normal","Critical","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_PRE_TRIGGER_DATE","_DYN_DISABLED","_DYN_INTERVAL","_DYN_DAYS_OF_MONTH","_DYN_DATE","_DYN_GET_UTCDATE","_DYN_STRINGIFY","_DYN_CORRELATION_HEADER_E0","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_ASSEMBLY","_DYN_FILE_NAME","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","_canUseLocalStorage","_canUseSessionStorage","_storagePrefix","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","storage","fail","exception","_getSessionStorageObject","utlCanUseSessionStorage","utlSetStoragePrefix","storagePrefix","reset","utlGetLocalStorage","utlSetLocalStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","dataSanitizeKeyAndAddUniqueness","origLength","nameTrunc","dataSanitizeKey","uniqueField","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","_msgId","inputTrunc","createTelemetryItem","item","baseType","envelopeName","customProperties","systemProperties","iKey","telemetryItem","time","tags","baseData","TelemetryItemCreator","Event","aiDataContract","ver","envelopeType","Trace","severityLevel","DataPoint","kind","stdDev","Metric","metrics","dataPoint","strEmpty","msToTimeSpan","totalms","round","ms","sec","hour","days","PageView","durationMs","duration","dataSanitizeId","PageViewPerformance","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","theEvent","errorType","evtMessage","_isStackDetails","_convertStackObj","errorStack","_getStackFromErrorObj","errorObj","errorMessage","lines","_getOperaStack","_getErrorType","typeName","exec","_formatErrorCode","Exception","exceptions","_isExceptionInternal","_ExceptionDetails","CreateAutoException","lineNumber","columnNumber","errorSrc","stackDetails","CreateFromInterface","toInterface","_b","problemGroup","isManual","exceptionDetailsInterface","CreateSimpleException","assembly","fileName","line","formatError","outerId","hasFullStack","parsedStack","_isExceptionDetailsInternal","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","regex","parsedFrame","left","right","acceptedLeft","acceptedRight","howMany","_parseStack","exceptionTrunc","dataSanitizeException","_formatStackTrace","sourceFrame","matches","sizeInBytes","baseSize","generateW3CId","hexValues","oct","clockSequenceHi","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","_formatFlags","createTraceParent","traceId","spanId","isValidTraceId","isValidSpanId","traceFlags","formatTraceParent","RequestHeaders","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","host","urlParseHost","inclPort","fullHost","urlParseFullHost","port","_internalEndpoints","_correlationIdPrefix","isInternalApplicationInsightsEndpoint","endpointUrl","correlationIdCanIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","enableCorsCorrelation","matchExists_1","includedDomains","correlationHeaderDomains","domain","excludedDomains","correlationHeaderExcludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationId","keyValues","keyValue","correlationIdGetCorrelationContextValue","dateTimeUtilsNow","perf","timing","navigationStart","dateTimeUtilsDuration","createDistributedTraceContextFromTrace","telemetryTrace","parentCtx","trace","getName","setName","getTraceId","traceID","setTraceId","getSpanId","parentID","setSpanId","getTraceFlags","setTraceFlags","newTraceFlags","RemoteDependencyData","absoluteUrl","commandName","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","parsedUrl","pathName","AjaxHelperParseDependencyPath","createDomEvent","initEvent","_stringToBoolOrDefault","cfgDfMerge","cfgDfSet","setter","cfgDfValidate","validator","fallBackName","cfgDfBoolean","_doc","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_cookieCache","_globalCookieConfig","rootDefaultConfig","cookieCfg","enabled","ignoreCookies","blockedCookies","cookieDomain","cookiePath","_getDoc","_isMgrEnabled","cookieMgr","isEnabled","_isIgnoredCookie","cookieMgrCfg","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","getCookieMgr","createCookieMgr","inst","_gblCookieMgr","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","_getCookieValue","_setCookieValue","delCookie","areCookiesSupported","gblManager","setEnabled","maxAgeSec","_isBlockedCookie","_extractParts","_isIE","expireMs","expiry","_formatDate","location_1","uaDisallowsSameSiteNone","_formatCookieValue","del","purge","thePart","theDate","cookieValue","theCookie","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","_getRegisteredEvents","aiEvts","registeredEvents","_doDetach","handlerRef","useCapture","_doUnregister","events","unRegFn","capture","mergeEvtNamespace","theNamespace","namespaces","eventOn","_doAttach","registeredEvent","guid","eventOff","evtName_1","found_1","eventCache","evtType","_unregisterEvents","regEvent","_addEventListeners","excludeEvents","added","addEventHandler","removeEventListeners","removeEventHandler","addPageUnloadEventListener","addEventListeners","addPageHideEventListener","newNamespaces","pageUnloadAdded","visibilityState","strExecutionContextKey","strParentContextKey","strChildrenContextKey","_defaultPerfManager","PerfEvent","payloadDetails","theDetails_1","childTime","childEvts","childEvt","exTime","ParentContextKey","ChildrenContextKey","PerfManager","manager","fire","perfEvent","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","pluginStateData","_getPluginState","initializePlugins","processContext","extensions","pluginState","initPlugins","lastPlugin","proxy","thePlugin","isInitialized","getCfg","sortPlugins","extA","extB","bHasProcess","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_createInternalContext","telemetryChain","startAt","_nextProxy","_onComplete","createTelemetryProxyChain","_getNextProxyStart","_next","nextProxy","onComplete","completeDetails","diagLog","getExtCfg","newConfig","_getExtCfg","getConfig","extConfig","hasNext","getNext","setNext","nextPlugin","iterate","that","createIfMissing","idCfg","extCfg","createProcessTelemetryContext","internalContext","env","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","newProxy","chainId","hasProcessTelemetry","hasSetNext","proxyChain","getPlugin","processTelemetry","_processTelemetry","unload","_unloadPlugin","_updatePlugin","_id","_setNext","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","nextId","hasNextRun","_callProcessTelemetry","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","createTelemetryPluginProxy","_maxHooks","_hookAddMonitor","aiInstrumentHooks","cbNames","_arrLoop","_doCallbacks","hooks","callDetails","cbArgs","hookCtx","hook","cbks","orgEx","hookErrorCb","_getOwner","checkPrototype","checkParentProto","owner","_createInstrumentHook","callbacks","aiHook","newFunc","orgArgs","funcArgs","_createArgs","f","rslt","_createFunctionHook","theHook","InstrumentFunc","InstrumentEvent","createUnloadHandlerContainer","handlers","run","createUnloadHookContainer","_hooks","oldHooks","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","currentCtx","rootCtx","_setDefaults","pluginChain","_initDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_doUpdate","_updateCallback","setInitialized","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_DYN_START_TIME","_DYN_SEND_PAGE_VIEW_PERFO3","_DYN_POPULATE_PAGE_VIEW_P4","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER5","_DYN_EXCEPTION","_DYN_ERROR","_DYN__ONERROR","_DYN_ERROR_SRC","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI6","_DYN_ADD_TELEMETRY_INITIA7","_DYN_AUTO_TRACK_PAGE_VISI9","_DYN_IS_BROWSER_LINK_TRAC10","_DYN_ENABLE_AUTO_ROUTE_TR11","_DYN_ENABLE_UNHANDLED_PRO12","_DYN_AUTO_UNHANDLED_PROMI13","_DYN_GET_ENTRIES_BY_TYPE","_DYN_IS_PERFORMANCE_TIMIN14","_DYN_GET_PERFORMANCE_TIMI15","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT16","_DYN_IS_PERFORMANCE_TIMIN17","_DYN_RESPONSE_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","_DYN_PAGE_VISIT_START_TIM18","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","_logger","queueTimer","itemQueue","pageViewPerformanceSent","firstPageViewSent","_flushChannels","flush","_startTimer","allItems","doFlush","_addQueue","pageView","uri","navigationEntries","timeOrigin","loadEventStart","duration_1","customDuration","pageViewSent","processed","pageViewPerformance","botAgentNames","_isPerformanceTimingSupported","_isPerformanceTimingDataReady","domainLookupStart","domLoading","_getPerformanceTiming","_getPerformanceNavigationTiming","getEntriesByType","_shouldCollectDuration","durations","isGoogleBot","PageViewPerformanceManager","navigationTiming","total","network","dom","requestStart","responseEnd","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","pageUrl","prevPageVisitData","pageVisitEndTime","pageVisitDataJsonStr","pageVisitTime","stopPageVisitTimer","currPageVisitDataStr","PageVisitData","restartPageVisitTimer","Timing","_events","stop","_dispatchEvent","sessionRenewalMs","_chkConfigMilliseconds","sessionExpirationMs","disableExceptionTracking","samplingPercentage","namePrefix","disableFlushOnBeforeUnload","disableFlushOnUnload","_updateStorageUsage","_debugState","_debugResult","_debugHandled","AnalyticsPlugin","_super","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","priority","autoRoutePVDelay","_prevUri","_currUri","_evtNamespace","_base","_addHook","throwInternal","processNext","trackEvent","startTrackEvent","stopTrackEvent","trackTrace","trackMetric","metric","inPv","refUri","referrer","trackPageViewPerformance","inPvp","startTrackPage","stopTrackPage","measurement","loc","theError","trackException","_window","isCrossOriginError","_sendCORSException","errorString","telemetryInitializer","initialize","initializer","browserLinkPaths_1","dropBrowserLinkRequests","envelope","remoteData","_addDefaultTelemetryInitializers","_populateDefaults","PageName","PageUrl","average","sampleCount","trackPageVisitTime","pageViewItem","locn","autoExceptionInstrumented","rsp","_location","_getReason","_addUnhandledPromiseRejectionTracking","win","_history","pushState","_popstateHandler","_locationChangeHandler","distributedTraceCtx","getTraceCtx","_getDistributedTraceCtx","traceLocationName","_addHistoryListener","_updateLocationChange","_doTeardown","Version","STR_PROMISE","REJECTED","doAwaitResponse","doAwait","rejected","resolveFn","rejectFn","finallyFn","doFinally","_promiseDebugEnabled","_hasInitEvent","STRING_STATES","DISPATCH_EVENT","_hasInitEventFn","_hasPromiseRejectionEvent","NODE_UNHANDLED_REJECTION","UNHANDLED_REJECTION","_currentPromiseId","_uniquePromiseId","_unhandledRejectionTimeout","dumpFnObj","_createPromise","newPromise","processor","executor","_settledValue","_thePromise","additionalArgs","_state","_hasResolved","_queue","_parentId","_handled","_unHandledRejectionHandler","_then","onResolved","onRejected","_processQueue","_strState","pending","_createSettleIfFn","newState","allowState","_notifyUnhandledRejection","populateEvent","useNewEvent","theEvt","emitEvent","onFinally","thenFinally","catchFinally","thePromise","stateFn","resultFn","handledFn","_addDebugState$1","_rejectFn","_createAllPromise","values_1","pending_1","syncItemProcessor","createAsyncPromise","callbackTimeout","timeoutItemProcessor","_promiseCls","createNativePromise","PrmCls","_promiseCreator","createPromise","createAllPromise","_DYN_FEATURE_OPT_IN","_DYN_ON_CFG_CHANGE_RECEIV0","_DYN_NON_OVERRIDE_CONFIGS","_DYN_SCHEDULE_FETCH_TIMEO1","replaceByNonOverrideCfg","nonOverrideConfigs","curLevel","maxLevel","exceedMaxLevel","curCfg_1","objExtend","nonOverrideVal","F","M","ON","OFF","applyCdnfeatureCfg","cdnCfg","optInMap","cdnConfig_1","featureVal","userOptInDetails","cdnFt","cdnM","cdnOnV","onCfg","cdnOffV","offCfg","userFt","userM","userOnV","userOffV","blockCdn","blockCdnCfg","onFld","offFld","onV","offV","resolveCdnFeatureCfg","ftVal","dVal","_overrideCdnCfgByFeature","EVENT_NAME","udfVal","_defaultConfig","syncMode","blkCdnCfg","customEvtName","cfgUrl","overrideSyncFn","overrideFetchFn","instrumentationKey","connectionString","CfgSyncPlugin","_extensionConfig","_mainConfig","_evtName","_cfgUrl","_timeoutHandle","_receiveChanges","_broadcastChanges","_blkCdnCfg","_fetchTimeout","_retryCnt","_onCfgChangeReceive","_nonOverrideConfigs","_fetchFn","_overrideFetchFn","_overrideSyncFn","_paused","_setCfg","isAutoSync","_sendCfgsyncEvents","updateCfg","_eventOff","global_1","_updateEventListenerName","global_2","cfgEvent","newCfg","_replaceTartgetByKeys","_addEventListener","_fetchSender","oncomplete","fetchFn","Request","_doOnComplete","ok","_xhrSender","xhr_1","DONE","ontimeout","_onFetchComplete","JSON_1","_setupTimer","_cfg","unref","_clearScheduledTimer","preBlkCdn","newEvtName","_getFetchFnInterface","pause","resume","setCfg","sync","updateEventListenerName","_disableEvents","_noResponseQs","STR_POST_METHOD","SenderPostManager","_enableSendPromise","_isInitialized","_diagLog","_isOneDs","_onCompleteFuncs","_disableCredentials","_fallbackInst","_disableXhr","_disableBeacon","_disableBeaconSync","_disableFetchKeepAlive","_addNoResponse","_timeoutWrapper","_syncFetchPayload","_sendCredentials","_onError","_onNoPayloadUrl","_doBeaconSend","plainTextBatch","Blob","_beaconSender","onRetry","beaconOnRetry","resolveFunc","rejectFunc","disableXhrSync","endPointUrl","urlString","withCredentials","disabled","isSync","_wrapSetXhrProp","openXhr","_doOnReadyFunc","onReadyFunc","xhrOnComplete","headerName","_doFetchSender","batch","requestHeaders","Headers","batchLength","ignoreResponse","responseHandled","init","keepalive","_handleError","onCompleteFunc","fetchOnComplete","response_1","resp","statusText","_xdrSender","onloadFunc","xdrOnComplete","onprogress","hostingProtocol","endpoint","SetConfig","senderOnCompleteCallBack","disableCredentials","enableSendPromise","disableXhr","disableBeacon","disableBeaconSync","timeWrapper","addNoResponse","disableFetchKeepAlive","sendPOST","getSyncFetchPayload","getSenderInst","transports","syncSupport","transportType","sendPostFunc","_transport","_isSync","_getSenderInterface","getFallbackInst","runTargetUnload","doUnloadAll","targets","resolved","parseResponse","itemsAccepted","itemsReceived","_aiNameFunc","baseName","aiName","defaults","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","Extensions","CtxTagKeys","Envelope","sampleRate","Data","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN__GET","_DYN_ENQUEUE","_DYN_EVENTS_LIMIT_IN_MEM","_DYN_ITEM","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN_CONCAT","_DYN__MAX__BUFFER__SIZE","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ALWAYS_USE_XHR_OVERR4","_DYN_DISABLE_XHR","_DYN_ENABLE_SESSION_STORA5","_DYN__BUFFER","_DYN_ONUNLOAD_DISABLE_FET6","_DYN_DISABLE_SEND_BEACON_7","_DYN_INSTRUMENTATION_KEY","_DYN_ENABLE_SEND_PROMISE","_DYN_GET_SENDER_INST","_DYN_UNLOAD_TRANSPORTS","_DYN_CONVERT_UNDEFINED","_DYN_MAX_BATCH_INTERVAL","_DYN_SERIALIZE","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_ORI_PAYLOAD","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN_EVENTS_SEND_REQUEST","_DYN_GET_SAMPLING_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","startTime","iKeyNoDashes","envTags","itmExt","itmTags","extUser","user","authId","localId","extApp","app","sesId","extDevice","deviceClass","ip","model","web","browserLang","browserVer","browser","envData","envBaseData","envProps","screenRes","userConsent","extOs","os","osVer","extTrace","tgs","tg","theTags","EnvelopeCreator","_extractPartAExtensions","EnvelopeCreatorInit","EventEnvelopeCreator","customMeasurements","eventData","BaseSendBuffer","_buffer","_bufferFullMessageSent","_maxRetryCnt","maxRetryCnt","_set","cnt","getItems","batchPayloads","payloads","payloadStr_1","newLogger","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","PREVIOUS_KEYS","_namePrefix","bufferItems","_getBuffer","itemsInSentBuffer","previousItems","_getItemsFromPreviousKey","prefixEvents","_getPreviousEvents","notDeliveredItems","_removePayloadsFromBuffer","payloadStr","prefixedKey","_getBufferBase","bufferJson","buffer_1","_setBuffer","transFormedItems_1","internalItem","BUFFER_KEY","sentElements","unsentItems","sentItems","VERSION","SENT_BUFFER_KEY","MAX_BUFFER_SIZE","Serializer","_serializeObject","circularReferenceCheck","_serializeStringMap","_serializeArray","contract","isHidden","isPresent","isObj","sources","expectedType","parseFloat","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","abs","SamplingScoreGenerator","hashCodeGenerator","Sample","samplingRate","samplingScoreGenerator","isSampledIn","_getResponseText","defaultAppInsightsChannelConfig","disableTelemetry","isRetryDisabled","httpXHROverride","retryCodes","EnvelopeTypeCreator","currentContextId","bd","pageType","isLoggedIn","pageViewData","exData","baseMetricData","remoteDepData","responseCode","Sender","_consecutiveErrors","_retryAt","_serializer","_stamp_specific_redirects","_headers","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_beaconOnUnloadSupported","_beaconNormalSupported","_customHeaders","_disableTelemetry","_instrumentationKey","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_alwaysUseCustomSend","_fetchKeepAlive","_xhrSend","_fallbackSend","_disableBeaconSplit","_sendPostMgr","_retryCodes","_xdrOnLoad","_xhrReadyStateChange","countOfItemsInPayload","_checkResponsStatus","responseURL","_getPayloadArr","_validate","diagLogger","_sample","_getEnvelope","defaultEnvelopeIkey","aiEnvelope","constructEnvelope","doNotSendItem","callBack","_serialize","valid","_batch","_createPayload","_getHeaders","_doSend","sendInterface","markAsSent","payloadData","_getPayload","_onSuccess","_getOnComplete","_checkMaxSize","incomingPayload","incomingSize","isOnline","responseUrl","_appId","appId","_checkAndUpdateEndPointUrl","_isRetriable","_resendPayload","_doUnloadSend","_isStringArr","_fetchKeepAliveSender","transport","payloadSize","linearFactor","payload_1","delayInSeconds","SlotDelayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","_setRetryTime","retryInterval","timerValue","statusCode","sendReason","onunloadFlush","addHeader","parentEvtNamespace","_navigator","_isListening","listenerList","rState","onLine","uState","_currentState","calCurrentState","_enableEvents","ononline","_setOnline","_setOffline","listnerNoticeCheck","offlineState","isListening","addListener","setOnlineState","createOfflineListener","senderConfig","customHeader","bufferOverride","shouldUpdate","disableValidation","disableInstrumentationKeyValidation","_validateInstrumentationKey","sendPostConfig","onCompleteFuncs","resValue","canSend","internalPayload","droppedPayload","thePayload","_onBeaconRetry","_getSendPostMgrConfig","customInterface","httpInterface","syncInterface","xhrInterface","syncTransports","payloadItem","isCompletelyIdle","forcedSender","sendRequest","_getNotifyMgr","_notifySendRequest","ieVer","getOfflineSupport","getUrl","createPayload","shouldProcess","retry","reverse","errors_1","extracted","_onPartialSuccess","orig","convertUndefined","parseConnectionString","kvPairs","fields","kv","kvParts","endpointsuffix","locationPrefix","ThrottleMgr","_config","_localStorageObj","_isTriggered","_isReady","_isSpecificDaysGiven","_flushMessage","msgID","saveUnsentMsg","_getCfgByKey","maxValue","_canSampledIn","localStorageObj","_getLocalStorageObjByKey","canThrottle","_canThrottle","throttled","isTriggered","_isTrigger","maxSendNumber","localStorageName","_getLocalStorageName","_resetLocalStorage","_sendMessage","isThrottled","throttleNum","_getQueueByKey","_setCfgByKey","interval","monthInterval","dayInterval","curCfg","configInterval","daysOfMonth","canUseLocalStorage","curDate","_getThrottleDate","monthCheck","monthExpand","getUTCFullYear","getUTCMonth","_checkInterval","dayCheck","daySpan","msgKey","fix","dateStr","getDate","storageName","curObj","storageObj","preTriggerDate","_getLocalStorageObj","isTrigger","_isTriggeredOnCurDate","addUnloadHook","coreConfig","throttleMgrCfg","localObj","isReady","flushAll","result_1","isFlushed","onReadyState","sendMessage","perfEvtsSendAll","_runScheduledListeners","asyncNotifications","_runListeners","listeners","NotificationManager","_listeners","_asyncNotifications","rn_1","waiting","_finishUnload","asyncUnload","TelemetryInitializerPlugin","_initializers","addTelemetryInitializer","theInitializer","_addInitializer","telemetryInitializersCount","_runInitializers","strValidationError","strSdkUnloadingError","diagnosticLogInterval","_createPerfManager","notificationMgr","_isPluginPresent","exists","_deepMergeConfig","newValues","merge","_findWatcher","newWatcher","theListener","_initDebugListener","unloadContainer","notificationManager","debugListener","getDebugListener","AppInsightsCore","_configHandler","_eventQueue","_notificationManager","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_unloadHandlers","_traceCtx","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","_startLogPoller","alwaysStart","_addUnloadHook","isRunning","createTimeout","_flushInternalLogs","_setPluginVersions","thePlugins","_addPluginVersions","channels","cfgExtensions","_createTelCtx","theCtx","_getPluginChain","_initPluginChain","theExtensions","channelPriority","allExtensions","coreExtensions","extPriorities","extPriority","_validateExtensions","_getPlugin","pluginIdentifier","theExt","channelHosts","getChannel","removeCb","pluginsToRemove","_removePlugins","removed","removeComplete","newConfigExtensions","newChannelConfig","newQueue","channel","track","cbTimeout","doneIterating","cbTimer","doCallback","handled_1","_updateHook","_logOrThrowError","_notifyInvalidEvent","prevCfgPerfMgr","enablePerfMgr","createPerfMgr","teeController","unloadHdl","_registerDelayedCfgListener","releaseQueue","getChannels","controls","getNotifyMgr","setCookieMgr","setPerfMgr","eventCnt","eventQueue","unloadComplete","flushComplete","processUnloadCtx","_doUnload","addPlugin","replaceExisting","addCb","existingPlugin","_addPlugin","removedPlugins_1","mergeExisting","oldCfg","createNew","setTraceCtx","traceCtx","onCfgChange","unloadHook","fnd","_createUnloadHook","getWParam","enableWParam","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_INST","_DYN_CONTEXT","_DYN_ABORTED","_DYN_TRACE_ID0","_DYN_SPAN_ID1","_DYN_INCLUDE_CORRELATION_2","_DYN_GET_ABSOLUTE_URL","_DYN_REQUEST_HEADERS","_DYN_TRACK_DEPENDENCY_DAT3","_DYN_ENABLE_REQUEST_HEADE4","_DYN_ENABLE_AJAX_ERROR_ST5","_DYN_ENABLE_AJAX_PERF_TRA6","_DYN_MAX_AJAX_CALLS_PER_V7","_DYN_EXCLUDE_REQUEST_FROM8","_DYN_ADD_REQUEST_CONTEXT","_DYN_DISABLE_AJAX_TRACKIN9","_DYN_AJAX_PERF_LOOKUP_DEL10","_DYN_DISABLE_FETCH_TRACKI11","_DYN_ENABLE_RESPONSE_HEAD12","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_OPEN_DONE","_DYN_SEND_DONE","_DYN_REQUEST_SENT_TIME","_DYN_ABORT_DONE","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE13","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI14","_DYN__CREATE_TRACK_ITEM","_DYN_RESPONSE","_DYN_GET_ALL_RESPONSE_HEA15","_DYN_GET_PART_APROPS","_DYN_PERF_MARK","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES16","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","XHRMonitoringState","setRequestHeaderDone","ajaxRecord","completed","requestHeadersSize","responseReceivingDuration","callbackDuration","requestSize","responseStartedTime","callbackFinishedTime","endTime","xhrMonitoringState","clientFailure","getAbsoluteUrl","getPathName","ajaxType","enableRequestHeaderTracking","getResponse","ajaxTotalDuration","requestSentTime","responseFinishedTime","dependency","ajaxData","propsSet","strName","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","perfAttempts","_populatePerfData","headerMap","responseHeaders","responseType","partA","traceExt","AJAX_MONITOR_PREFIX","strDiagLog","AJAX_DATA_CONTAINER","STR_FETCH","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_getAjaxData","ajaxDataId","_isHeaderSet","xh","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","ajaxDiagnosticsMessage","_ajaxDataId","_indexOf","_addHandler","theHandler","_processDependencyContainer","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","distributedTracingMode","maxAjaxPerfLookupAttempts","ignoreHeaders","addIntEndpoints","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_polyfillInitialized","_canIncludeHeaders","_hookProto","InstrumentProto","_isDisabledRequest","isDisabled","theUrl","theRegex","idx2","_isMonitoredXhrInstance","excludeAjaxDataValidation","ajaxValidation","initialized","_createMarkId","performance_1","markId","getEntriesByName","_findPerfResourceEntry","initiatorType","trackCallback","reportError","perfMark","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","getEntries","entryType","clearMarks","_getFailedFetchDiagnosticsMessage","_reportFetchMetrics","_reportFetchError","failedProps","errorProps","sysProperties","_reportDependencyInternal","initializers","aborted","propExt","xhrData","theOpen","_supportsAjaxMonitoring","spanID","xhrRequestData","ajaxDataCntr","_openHandler","_reportXhrError","ajaxResponse","responseHeadersString","getResponseHeader","_getAjaxCorrelationContext","responseHeaderMap_2","shift","_onAjaxComplete","exceptionText","_attachToOnReadyStateChange","hkErr","_addSharedXhrHeaders","_instrumentXhr","_global","isPolyfill","polyfill","fetchData","_createFetchRecord","newInit","fetchData_1","fetchDiagnosticsMessage","_getFetchCorrelationContext","responseHeaderMap_1","_instrumentFetch","trackDependencyData","currentWindowHost","_processDependencyListeners","traceParent","addDependencyListener","dependencyListener","addDependencyInitializer","dependencyInitializer","Application","Device","Internal","unloadHookContainer","sdkExtension","sdkVersion","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_GET_SESSION_ID","_DYN_NAME_PREFIX","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","_initializeAutomaticSessionWithData","session","sessionData","sessionReset","tokens","acqMs","renewalMs","_setCookie","nowMs","acq","renewalPeriodMs","acqTimeLeftMs","isExpired","storageValue","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","getNewId","automaticSession","_renew","backup","renewal","TelemetryTrace","parentId","_validateUserInput","User","isNewUser","isUserCookieSet","userCookiePostfix","userCookieName","_generateNewId","_setUserCookie","_generateNewCookie","utlRemoveStorage","authCookie","authCookieString","acqStr","accountAcquisitionDate","setAuthenticatedUserContext","authenticatedUserId","storeInCookie","clearAuthenticatedUserContext","cookieSeparator","authUserCookieName","strExt","strTags","_removeEmpty","_nullResult","undefString","_c","_d","_internalSdkSrc","TelemetryContext","previousTraceCtx","application","internal","autoSession","build","agentVersion","snippetVer","sdkSrc","applyWebContext","cleanUp","nullValue","isBrowserLinkTrackingEnabled","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_disableUserInitMessage","disableUserInitMessage","_unloadHooks","breezeChannel","theContext","userCtx","_processTelemetryInternal","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_FLUSH","STR_ADD_TELEMETRY_INITIALIZER","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_ENDPOINT_URL","_DYN_USER_OVERRIDE_ENDPOI0","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF1","_DYN_SEND_MESSAGE","_ignoreUpdateSnippetProperties","IKEY_USAGE","CDN_USAGE","SDK_LOADER_VER","default_throttle_config","defaultConfigValues","extensionConfig","AppInsightsSku","dependencies","_sender","_snippetVersion","_houseKeepingNamespace","_core","_analyticsPlugin","_cfgSyncPlugin","_throttleMgr","_iKeySentMessage","_cdnSentMessage","_sdkVerSentMessage","sv","_removePageEventHandlers","removePageHideEventListener","cs","ingest","ingestionendpoint","instrumentationkey","flushDone","loadAppInsights","legacyMode","throwUnsupported","isModule","cdns","scrpt","currentScript","url_1","src_1","_findSdkSourceFile","_updateSnippetProperties","emptyQueue","defaultEnable","chkSet","_loop_1","proxyAssign","length_1","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","_sessionManager","added_1","analyticsPlugin","excludePageUnloadEvents","disablePageUnloadEvents","getSender","defaultReactExtensionConfig","ReactPlugin","_unlisten","_pageViewTimer","_pageViewTracked","_getAnalytics","getProp","setProp","locationListener","pageViewTelemetry","trackPageView","getAppInsights","asyncCallback","reactPlugin","ai","ApplicationInsights","SeverityLevel","Verbose","Information","Warning","errorJson","replacer","logTrace","resolveNodesFromResourcesQueryResultForLocale","resourcesQueryResult","en","de","nl","fr","it","es","enUS","pl","pt","resolveSlugsFromResourcesQueryResultForLocale","resolveMicrocopyForLocale","stream","for","q","r","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ContextRegistry","_status","_value","_response","_fromJSON","chunks","__webpack_require__","z","A","C","D","_chunks","G","_bundlerConfig","B","J","u","H","$$typeof","_payload","_init","E","_owner","I","TextDecoder","_partialRow","_stringDecoder","K","getReader","decode","moduleMap","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","condition","argIndex","framesToPop","React__default","UAParser","ClientUAInstance","getBrowser","cpu","getCPU","getDevice","engine","getEngine","getOS","getUA","setUa","userAgentString","setUA","parseUserAgent","UserAgentInstance","UA","setUserAgent","UAHelper","freeze","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","_typeof","_defineProperties","descriptor","writable","_defineProperty","_extends","_getPrototypeOf","getPrototypeOf","_setPrototypeOf","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","ReferenceError","_slicedToArray","_arrayWithHoles","_s","_e","_n","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","InitialDeviceTypes","isTablet","isBrowser","isSmartTV","isConsole","isWearable","setDefaults","getNavigatorInstance","isIOS13Check","platform","maxTouchPoints","MSStream","mobilePayload","getOwnPropertyDescriptors","defineProperties","_objectSpread2","vendor","osVersion","isMobileType","isTabletType","isMobileAndTabletType","isSmartTVType","isBrowserType","_ref5","isWearableType","_ref6","isConsoleType","_ref7","isEmbeddedType","_ref8","getMobileVendor","_ref9","getMobileModel","_ref10","getDeviceType","_ref11","isAndroidType","_ref12","isWindowsType","_ref13","isMacOsType","_ref14","isWinPhoneType","_ref15","isIOSType","_ref16","getOsVersion","_ref17","getOsName","_ref18","isChromeType","_ref19","isFirefoxType","_ref20","isChromiumType","_ref21","isEdgeType","_ref22","isYandexType","_ref23","isSafariType","_ref24","isMobileSafariType","_ref25","isOperaType","_ref26","isIEType","_ref27","isMIUIType","_ref28","isSamsungBrowserType","_ref29","getBrowserFullVersion","_ref30","getBrowserVersion","_ref31","major","getBrowserName","_ref32","getEngineName","_ref33","getEngineVersion","_ref34","isElectronType","isEdgeChromiumType","getIOS13","getIPad13","getIphone13","getIPod13","getUseragent","userAg","buildSelectorsObject","isEmbedded","isMobileSafari","isChromium","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","osName","fullBrowserVersion","browserVersion","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","useDeviceData","hookUserAgent","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","equal","warn","clock","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","createClass","protoProps","staticProps","objectWithoutProperties","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","tag","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","newElement","styleSheet","cssText","createTextNode","existingTag","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","base","meta","noscript","HelmetSideEffects","HelmetExport","HelmetWrapper","classCallCheck","possibleConstructorReturn","subClass","superClass","inherits","mapNestedChildrenToProps","child","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","canUseDOM","defaultTitle","titleTemplate","defaultProps","peek","rewind","mappedState","renderStatic","reducePropsToState","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","UNSAFE_componentWillMount","PureComponent","getDisplayName","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","TYPE","VENDOR","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","enumerize","enums","str1","str2","lowerize","rgxMapper","arrays","strMapper","windowsVersionMap","ME","XP","Vista","RT","regexes","EDGE","getResult","_ua","_uach","userAgentData","_rgxmap","mergedRegexes","extend","_isSelfNav","_browser","brave","isBrave","_cpu","_device","mobile","standalone","_engine","_os","CPU","DEVICE","ENGINE","OS","$","jQuery","Zepto","parser","randomUUID","crypto","rnds8","rng","byteToHex","unsafeStringify","rnds","SCRIPT_TYPE","snippetCode","filteredConfig","configStr","createSnippet","transitioning","_onTransitionComplete","go","noThrow","P","R","N","O","U","L","T","_","S","score","every","V","X","forwardRef","innerRef","getProps","isCurrent","isPartiallyCurrent","onClick","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","preventDefault","super","componentDidCatch","onError","W","setError","Q","Y","Z","ee","re","focus","outline","tabIndex","ne","oe","ae","primary","toArray","se","ie","ce","ue","activeClassName","activeStyle","partiallyActive","defaultGetProps","IntersectionObserver","IOSupported","abortPrefetch","handleRef","_prefetch","io","unobserve","disconnect","isIntersecting","intersectionRatio","observe","onMouseEnter","didTimeout","timeRemaining","postHydrate","idle","offMainThread","strategy","loadCallback","errorCallback","onLoad","load"],"sourceRoot":""}