{"version":3,"file":"app-d8fc9bfae3a2423f9cc6.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 \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 ''\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 // and 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 ... and elements are not valid descedents of
(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
, and just silence warnings for and 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] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate 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 \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 \n \n {WrapHeadElement}\n \n ,\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
\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 \n {this.props.children}\n \n \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 \n \n \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 \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \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: },\n ,\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 {SiteRoot}\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(, 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 \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\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 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 \n {staticQueryData => (\n \n )}\n \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {element}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 basketIsAboveMinimumResult: null,\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 SET_ISABOVEMINIMUMRESULT: 'SET_ISABOVEMINIMUMRESULT',\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 basketIsAboveMinimumResult: null,\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 basketIsAboveMinimumResult: action.value.isOrderValueAboveMinimumResult,\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 basketIsAboveMinimumResult: null\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 case actions.SET_ISABOVEMINIMUMRESULT: {\r\n let newState = { ...state, basketIsAboveMinimum: 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 basketIsAboveMinimumResult: state.basketIsAboveMinimumResult,\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 setIsOrderValueAboveMinimum: (value) => {\r\n dispatch({ type: actions.SET_ISABOVEMINIMUMRESULT, value })\r\n }\r\n }\r\n\r\n return {children}\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 {children}\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 {children}\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 {children}\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 {children}\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 {children}\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 {children}\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 {children}\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 {children}\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 {children}\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 ({children})\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 {children}\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(\r\n `${BaseApiRoute}order/downloadInvoice`,\r\n {\r\n requestId: requestId,\r\n invoiceNumber: invoiceNumber,\r\n invoiceDate: invoiceDate,\r\n },\r\n true\r\n )\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 const basketItem = basketItems[index]\r\n if (basketItem.isMinimumOrderValueAdjustment && \r\n basketItem.isMinimumOrderValueAdjustment === true) {\r\n // do nothing\r\n } else {\r\n count += basketItem.quantity\r\n }\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 \r\n {microcopy[id].value}\r\n \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..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..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 = \"\";\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 // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\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 /// Verifies that particular instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\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: |\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 */\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 &&` 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, \"'\");\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 + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\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 + \"\");\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 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 + \">{``} ) 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\": \" 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 \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;i0){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;j2){_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 {\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 `