{"version":3,"file":"module.js","mappings":"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","sources":["webpack://grafana-pdc-app/webpack/runtime/load script","webpack://grafana-pdc-app/../node_modules/lodash/_Symbol.js","webpack://grafana-pdc-app/../node_modules/lodash/_baseGetTag.js","webpack://grafana-pdc-app/../node_modules/lodash/_freeGlobal.js","webpack://grafana-pdc-app/../node_modules/lodash/_getRawTag.js","webpack://grafana-pdc-app/../node_modules/lodash/_objectToString.js","webpack://grafana-pdc-app/../node_modules/lodash/_root.js","webpack://grafana-pdc-app/../node_modules/lodash/isNumber.js","webpack://grafana-pdc-app/../node_modules/lodash/isObjectLike.js","webpack://grafana-pdc-app/./consts.ts","webpack://grafana-pdc-app/./feature/datasource-config/utils/version.ts","webpack://grafana-pdc-app/../node_modules/ua-parser-js/src/ua-parser.js","webpack://grafana-pdc-app/external amd \"@emotion/css\"","webpack://grafana-pdc-app/external amd \"@grafana/data\"","webpack://grafana-pdc-app/external amd \"@grafana/runtime\"","webpack://grafana-pdc-app/external amd \"@grafana/ui\"","webpack://grafana-pdc-app/external amd \"app/core/core\"","webpack://grafana-pdc-app/external amd \"lodash\"","webpack://grafana-pdc-app/external amd \"module\"","webpack://grafana-pdc-app/external amd \"react\"","webpack://grafana-pdc-app/external amd \"react-dom\"","webpack://grafana-pdc-app/external amd \"react-redux\"","webpack://grafana-pdc-app/external amd \"react-router\"","webpack://grafana-pdc-app/external amd \"redux\"","webpack://grafana-pdc-app/external amd \"rxjs\"","webpack://grafana-pdc-app/webpack/bootstrap","webpack://grafana-pdc-app/webpack/runtime/amd options","webpack://grafana-pdc-app/webpack/runtime/compat get default export","webpack://grafana-pdc-app/webpack/runtime/define property getters","webpack://grafana-pdc-app/webpack/runtime/ensure chunk","webpack://grafana-pdc-app/webpack/runtime/get javascript chunk filename","webpack://grafana-pdc-app/webpack/runtime/global","webpack://grafana-pdc-app/webpack/runtime/hasOwnProperty shorthand","webpack://grafana-pdc-app/webpack/runtime/make namespace object","webpack://grafana-pdc-app/webpack/runtime/node module decorator","webpack://grafana-pdc-app/webpack/runtime/publicPath","webpack://grafana-pdc-app/webpack/runtime/compat","webpack://grafana-pdc-app/webpack/runtime/jsonp chunk loading","webpack://grafana-pdc-app/./node_modules/grafana-public-path.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/internalLogger/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/utils/noop.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/unpatchedConsole/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/extensions/baseExtension.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/instrumentations/base.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/version.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/utils/is.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/buildStackFrame.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/getStackFramesFromError.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/getErrorDetails.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/exceptions/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/registerOnerror.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/getValueAndTypeFromMessage.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/registerOnunhandledrejection.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/instrumentation.js","webpack://grafana-pdc-app/../node_modules/web-vitals/dist/web-vitals.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/webVitalsBasic.js","webpack://grafana-pdc-app/../node_modules/web-vitals/dist/web-vitals.attribution.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/consts.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/globalObject/globalObject.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/sdk/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/sdk/registerFaro.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/sdk/internalFaroGlobalObject.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/sdk/faroGlobalObject.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/utils/webStorage.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/instrumentationConstants.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/webVitalsWithAttribution.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/instrumentation.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/semantic.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/utils/date.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/utils/shortId.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sampling.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/utils/throttle.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/utils/json.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sessionConstants.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sessionManagerUtils.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/PersistentSessionsManager.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/VolatileSessionManager.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/getSessionManagerByConfig.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/instrumentation.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/session/createSession.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/view/instrumentation.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/performanceConstants.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/performanceUtils.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/resource.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/instrumentation.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/utils/logLevels.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/navigation.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/logs/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/console/instrumentation.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/config/getWebInstrumentations.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/transports/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/utils/deepEqual.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/exceptions/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/traces/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/meta/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/logs/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/measurements/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/api/events/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/internalLogger/createInternalLogger.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/internalLogger/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/transports/batchExecutor.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/transports/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/unpatchedConsole/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/metas/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/instrumentations/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/metas/registerInitial.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/utils/sourceMaps.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/transports/registerInitial.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/instrumentations/registerInitial.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/config/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/parseStacktrace.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/browser/meta.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/const.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/page/meta.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/k6/meta.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/transports/base.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/transports/utils.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/transports/fetch/transport.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-core/dist/esm/utils/promiseBuffer.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/initialize.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/config/makeCoreConfig.js","webpack://grafana-pdc-app/../node_modules/@grafana/faro-web-sdk/dist/esm/consts.js","webpack://grafana-pdc-app/./feature/common/utils/faro.ts","webpack://grafana-pdc-app/./module.tsx"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"grafana-pdc-app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t\tif (script.src.indexOf(window.location.origin + '/') !== 0) {\n\t\t\tscript.crossOrigin = \"anonymous\";\n\t\t}\n\t\tscript.integrity = __webpack_require__.sriHashes[chunkId];\n\t\tscript.crossOrigin = \"anonymous\";\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","export const PRIVATE_NETWORKS_PATH = '/connections/private-data-source-connections';\nexport const PRIVATE_NETWORKS_PATH_WITH_ID = PRIVATE_NETWORKS_PATH + '/:id';\nexport const GCLOUD_PDC_SIGNING_TOKEN_PLACEHOLDER = 'GCLOUD_PDC_SIGNING_TOKEN';\nexport const PDC_DOCS_URL =\n 'https://grafana.com/docs/grafana-cloud/connect-externally-hosted/private-data-source-connect/';\n\nexport const PDC_SQL_CONN_DEFAULT_MAX_LIFETIME_SECONDS = 300;\nexport const PDC_CONN_MAX_LIFETIME_OVERRIDE_DATASOURCES = ['mysql', 'mssql', 'grafana-postgresql-datasource'];\n\nexport enum SortType {\n Alphabetical = 'alphabetical',\n ReverseAlphabetical = 'reverse-alphabetical',\n CreatedDate = 'created-date',\n ReverseCreatedDate = 'reverse-created-date',\n}\n\nexport const SORT_OPTIONS = [\n {\n value: SortType.Alphabetical,\n label: 'Sort by A-Z',\n },\n {\n value: SortType.ReverseAlphabetical,\n label: 'Sort by Z-A',\n },\n {\n value: SortType.CreatedDate,\n label: 'Created date (newest first)',\n },\n {\n value: SortType.ReverseCreatedDate,\n label: 'Created date (oldest first)',\n },\n];\n","// copied from Azure Data Explorer plugin\nimport isNumber from 'lodash/isNumber';\n\nconst versionPattern = /^(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-([0-9A-Za-z\\.]+))?/;\n\nexport class SemVersion {\n major: number;\n minor: number;\n patch: number;\n meta: string;\n\n constructor(version: string) {\n this.major = 0;\n this.minor = 0;\n this.patch = 0;\n this.meta = '';\n\n const match = versionPattern.exec(version);\n if (match) {\n this.major = Number(match[1]);\n this.minor = Number(match[2] || 0);\n this.patch = Number(match[3] || 0);\n this.meta = match[4];\n }\n }\n\n isGtOrEq(version: string): boolean {\n const compared = new SemVersion(version);\n\n for (let i = 0; i < this.comparable.length; ++i) {\n if (this.comparable[i] > compared.comparable[i]) {\n return true;\n }\n if (this.comparable[i] < compared.comparable[i]) {\n return false;\n }\n }\n return true;\n }\n\n isValid(): boolean {\n return isNumber(this.major);\n }\n\n get comparable() {\n return [this.major, this.minor, this.patch];\n }\n}\n\nexport function isVersionGtOrEq(a: string, b: string): boolean {\n const aSemver = new SemVersion(a);\n return aSemver.isGtOrEq(b);\n}\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.40\n Copyright © 2012-2024 Faisal Salman \n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.40',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 500;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS',\n SUFFIX_BROWSER = ' Browser';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /\\b(?:mxbrowser|mxios|myie2)\\/?([-\\w\\.]*)\\b/i // Maxthon\n ], [VERSION, [NAME, 'Maxthon']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim(?:browser|boat|jet))[\\/ ]?([\\d\\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(heytap|ovi|115)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi/115\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihoobrowser\\/?([\\w\\.]*)/i // 360\n ], [VERSION, [NAME, '360']], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, 'Sogou Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, 'Sogou Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345(?=browser|chrome|explorer))\\w*[\\/ ]?v?([\\w\\.]+)/i // QQ/2345\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq)/i, // LieBao Browser/Rekonq\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n /ome\\/([\\w\\.]+) \\w* ?(iron) saf/i, // Iron\n /ome\\/([\\w\\.]+).+qihu (360)[es]e/i // 360\n ], [VERSION, NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram/Snapchat\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic|librewolf)\\/([\\w\\.]+)/i // Wolvic/LibreWolf\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr])[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Honor\n /(?:honor)([-\\w ]+)[;\\)]/i\n ], [MODEL, [VENDOR, 'Honor'], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i, // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n /\\b(opd2\\d{3}a?) bui/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\\w*(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Energizer\n /; (energy ?\\w+)(?: bui|\\))/i,\n /; energizer ([\\w ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [\n\n // Cat\n /; cat (b35);/i,\n /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [\n\n // Smartfren\n /((?:new )?andromax[\\w- ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(?:015|06[35]|142p?))/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan\n /; (imo) ((?!tab)[\\w ]+?)(?: bui|\\))/i, // IMO\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(imo) (tab \\w+)/i, // IMO\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[05][fnuw]?s?)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\n ///////////////////\n // XR\n ///////////////////\n\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /(pico) (4|neo3(?: link|pro)?)/i // Pico\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /; (quest( \\d| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /(arkweb)\\/([\\w\\.]+)/i // ArkWeb\n ], [NAME, VERSION], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS/OpenHarmony\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6089__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7781__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8531__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2007__;","module.exports = __WEBPACK_EXTERNAL_MODULE__819__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3241__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1308__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5959__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8398__;","module.exports = __WEBPACK_EXTERNAL_MODULE__200__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1159__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7694__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1269__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js?_cache=\" + {\"21\":\"75fc59f532fa6121f12e\",\"407\":\"829b403b1d6fadd067ed\",\"410\":\"acbbb011e63d0347e815\",\"613\":\"6b46567a783e892f5278\",\"781\":\"ab15726aafc194cc0660\",\"887\":\"158d737ffaf10a7bde6f\",\"932\":\"5c576cae643fa576aae9\",\"957\":\"6f798f383a8259f2c3fb\",\"977\":\"c6e1d82dad511add4060\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"public/plugins/grafana-pdc-app/\";","\n__webpack_require__.sriHashes = {\"21\":\"*-*-*-CHUNK-SRI-HASH-eph0UTbklQ0GmnClQG3Dr4+kXkKzw=\",\"407\":\"*-*-*-CHUNK-SRI-HASH-ILi1KbtfkHKQJu1zZlevunD9yhmqo=\",\"410\":\"*-*-*-CHUNK-SRI-HASH-FvXmtCAq1P5EphRZ+mRPPdfoXnF8s=\",\"613\":\"*-*-*-CHUNK-SRI-HASH-N0kHG7jzOJjfVfWy4r3BdftG2UL/c=\",\"781\":\"*-*-*-CHUNK-SRI-HASH-Whikd31c9lh2r618XrpKR/JSXD/1c=\",\"887\":\"*-*-*-CHUNK-SRI-HASH-N9UrmexQjHU95mPLSg55bXkzzzok4=\",\"932\":\"*-*-*-CHUNK-SRI-HASH-l6kQFWAitSxaik0XIoqzfj8t3/SA8=\",\"957\":\"*-*-*-CHUNK-SRI-HASH-9RdvNu/mF6LjWjmyYvyTffz9CxceE=\",\"977\":\"*-*-*-CHUNK-SRI-HASH-w6NRCBya9FWiCVv++lJn08KhV+w8I=\"};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t231: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkgrafana_pdc_app\"] = self[\"webpackChunkgrafana_pdc_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","\nimport amdMetaModule from 'amd-module';\n\n__webpack_public_path__ =\n amdMetaModule && amdMetaModule.uri\n ? amdMetaModule.uri.slice(0, amdMetaModule.uri.lastIndexOf('/') + 1)\n : 'public/plugins/grafana-pdc-app/';\n","import { noop } from '../utils';\nexport var InternalLoggerLevel;\n(function (InternalLoggerLevel) {\n InternalLoggerLevel[InternalLoggerLevel[\"OFF\"] = 0] = \"OFF\";\n InternalLoggerLevel[InternalLoggerLevel[\"ERROR\"] = 1] = \"ERROR\";\n InternalLoggerLevel[InternalLoggerLevel[\"WARN\"] = 2] = \"WARN\";\n InternalLoggerLevel[InternalLoggerLevel[\"INFO\"] = 3] = \"INFO\";\n InternalLoggerLevel[InternalLoggerLevel[\"VERBOSE\"] = 4] = \"VERBOSE\";\n})(InternalLoggerLevel || (InternalLoggerLevel = {}));\nexport const defaultInternalLoggerPrefix = 'Faro';\nexport const defaultInternalLogger = {\n debug: noop,\n error: noop,\n info: noop,\n prefix: defaultInternalLoggerPrefix,\n warn: noop,\n};\nexport const defaultInternalLoggerLevel = InternalLoggerLevel.ERROR;\n//# sourceMappingURL=const.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export const defaultUnpatchedConsole = Object.assign({}, console);\n//# sourceMappingURL=const.js.map","import { defaultInternalLogger } from '../internalLogger';\nimport { defaultUnpatchedConsole } from '../unpatchedConsole';\nexport class BaseExtension {\n constructor() {\n this.unpatchedConsole = defaultUnpatchedConsole;\n this.internalLogger = defaultInternalLogger;\n this.config = {};\n this.metas = {};\n }\n logDebug(...args) {\n this.internalLogger.debug(`${this.name}\\n`, ...args);\n }\n logInfo(...args) {\n this.internalLogger.info(`${this.name}\\n`, ...args);\n }\n logWarn(...args) {\n this.internalLogger.warn(`${this.name}\\n`, ...args);\n }\n logError(...args) {\n this.internalLogger.error(`${this.name}\\n`, ...args);\n }\n}\n//# sourceMappingURL=baseExtension.js.map","import { BaseExtension } from '../extensions';\nexport class BaseInstrumentation extends BaseExtension {\n constructor() {\n super(...arguments);\n this.api = {};\n this.transports = {};\n }\n}\n//# sourceMappingURL=base.js.map","// auto-generated by bin/genVersion.ts\nexport const VERSION = '1.12.2';\n//# sourceMappingURL=version.js.map","export function isTypeof(value, type) {\n return typeof value === type;\n}\nexport function isToString(value, type) {\n return Object.prototype.toString.call(value) === `[object ${type}]`;\n}\nexport function isInstanceOf(value, reference) {\n try {\n return value instanceof reference;\n }\n catch (err) {\n return false;\n }\n}\nexport const isUndefined = ((value) => isTypeof(value, 'undefined'));\nexport const isNull = ((value) => isTypeof(value, 'null'));\nexport const isString = ((value) => isTypeof(value, 'string'));\nexport const isNumber = ((value) => (isTypeof(value, 'number') && !isNaN(value)) || isTypeof(value, 'bigint'));\nexport const isInt = ((value) => isNumber(value) && Number.isInteger(value));\nexport const isBoolean = ((value) => isTypeof(value, 'boolean'));\nexport const isSymbol = ((value) => isTypeof(value, 'symbol'));\nexport const isObject = ((value) => !isNull(value) && isTypeof(value, 'object'));\nexport const isFunction = ((value) => isTypeof(value, 'function'));\nexport const isArray = ((value) => isToString(value, 'Array'));\nexport const isRegExp = ((value) => isToString(value, 'RegExp'));\nexport const isThenable = ((value) => isFunction(value === null || value === void 0 ? void 0 : value.then));\nexport const isPrimitive = ((value) => !isObject(value) && !isFunction(value));\nexport const isEventDefined = typeof Event !== 'undefined';\nexport const isEvent = ((value) => isEventDefined && isInstanceOf(value, Event));\nexport const isErrorDefined = typeof Error !== 'undefined';\nexport const isError = ((value) => isErrorDefined && isInstanceOf(value, Error));\nexport const isErrorEvent = ((value) => isToString(value, 'ErrorEvent'));\nexport const isDomError = ((value) => isToString(value, 'DOMError'));\nexport const isDomException = ((value) => isToString(value, 'DOMException'));\nexport const isElementDefined = typeof Element !== 'undefined';\nexport const isElement = ((value) => isElementDefined && isInstanceOf(value, Element));\nexport const isMapDefined = typeof Map !== 'undefined';\nexport const isMap = ((value) => isMapDefined && isInstanceOf(value, Map));\nexport const isSyntheticEvent = ((value) => isObject(value) &&\n 'nativeEvent' in value &&\n 'preventDefault' in value &&\n 'stopPropagation' in value);\n//# sourceMappingURL=is.js.map","export const primitiveUnhandledValue = 'Non-Error promise rejection captured with value:';\nexport const primitiveUnhandledType = 'UnhandledRejection';\nexport const domErrorType = 'DOMError';\nexport const domExceptionType = 'DOMException';\nexport const objectEventValue = 'Non-Error exception captured with keys:';\nexport const unknownSymbolString = '?';\nexport const valueTypeRegex = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n//# sourceMappingURL=const.js.map","export const newLineString = '\\n';\nexport const evalString = 'eval';\nexport const unknownSymbolString = '?';\nexport const atString = '@';\nexport const webkitLineRegex = /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nexport const webkitEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nexport const webkitEvalString = 'eval';\nexport const webkitAddressAtString = 'address at ';\nexport const webkitAddressAtStringLength = webkitAddressAtString.length;\nexport const firefoxLineRegex = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nexport const firefoxEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nexport const firefoxEvalString = ' > eval';\nexport const safariExtensionString = 'safari-extension';\nexport const safariWebExtensionString = 'safari-web-extension';\nexport const reactMinifiedRegex = /Minified React error #\\d+;/i;\n//# sourceMappingURL=const.js.map","import { unknownSymbolString } from './const';\nexport function buildStackFrame(filename, func, lineno, colno) {\n const stackFrame = {\n filename: filename || document.location.href,\n function: func || unknownSymbolString,\n };\n if (lineno !== undefined) {\n stackFrame.lineno = lineno;\n }\n if (colno !== undefined) {\n stackFrame.colno = colno;\n }\n return stackFrame;\n}\n//# sourceMappingURL=buildStackFrame.js.map","import { atString, safariExtensionString, safariWebExtensionString } from './const';\nexport function getDataFromSafariExtensions(func, filename) {\n const isSafariExtension = func === null || func === void 0 ? void 0 : func.includes(safariExtensionString);\n const isSafariWebExtension = !isSafariExtension && (func === null || func === void 0 ? void 0 : func.includes(safariWebExtensionString));\n if (!isSafariExtension && !isSafariWebExtension) {\n return [func, filename];\n }\n return [\n (func === null || func === void 0 ? void 0 : func.includes(atString)) ? func.split(atString)[0] : func,\n isSafariExtension ? `${safariExtensionString}:${filename}` : `${safariWebExtensionString}:${filename}`,\n ];\n}\n//# sourceMappingURL=getDataFromSafariExtensions.js.map","import { isNumber } from '@grafana/faro-core';\nimport { buildStackFrame } from './buildStackFrame';\nimport { evalString, firefoxEvalRegex, firefoxEvalString, firefoxLineRegex, newLineString, reactMinifiedRegex, webkitAddressAtString, webkitAddressAtStringLength, webkitEvalRegex, webkitEvalString, webkitLineRegex, } from './const';\nimport { getDataFromSafariExtensions } from './getDataFromSafariExtensions';\nexport function getStackFramesFromError(error) {\n let lines = [];\n if (error.stacktrace) {\n lines = error.stacktrace.split(newLineString).filter((_line, idx) => idx % 2 === 0);\n }\n else if (error.stack) {\n lines = error.stack.split(newLineString);\n }\n const stackFrames = lines.reduce((acc, line, idx) => {\n let parts;\n let func;\n let filename;\n let lineno;\n let colno;\n if ((parts = webkitLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[2];\n lineno = parts[3];\n colno = parts[4];\n if (filename === null || filename === void 0 ? void 0 : filename.startsWith(webkitEvalString)) {\n const submatch = webkitEvalRegex.exec(filename);\n if (submatch) {\n filename = submatch[1];\n lineno = submatch[2];\n colno = submatch[3];\n }\n }\n filename = (filename === null || filename === void 0 ? void 0 : filename.startsWith(webkitAddressAtString))\n ? filename.substring(webkitAddressAtStringLength)\n : filename;\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n else if ((parts = firefoxLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[3];\n lineno = parts[4];\n colno = parts[5];\n if (!!filename && filename.includes(firefoxEvalString)) {\n const submatch = firefoxEvalRegex.exec(filename);\n if (submatch) {\n func = func || evalString;\n filename = submatch[1];\n lineno = submatch[2];\n }\n }\n else if (idx === 0 && !colno && isNumber(error.columnNumber)) {\n colno = String(error.columnNumber + 1);\n }\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n if (filename || func) {\n acc.push(buildStackFrame(filename, func, lineno ? Number(lineno) : undefined, colno ? Number(colno) : undefined));\n }\n return acc;\n }, []);\n if (reactMinifiedRegex.test(error.message)) {\n return stackFrames.slice(1);\n }\n return stackFrames;\n}\n//# sourceMappingURL=getStackFramesFromError.js.map","import { isDomError, isDomException, isError, isErrorEvent, isEvent, isObject } from '@grafana/faro-core';\nimport { domErrorType, domExceptionType, objectEventValue } from './const';\nimport { getStackFramesFromError } from './stackFrames';\nexport function getErrorDetails(evt) {\n let value;\n let type;\n let stackFrames = [];\n let isDomErrorRes;\n let isEventRes;\n if (isErrorEvent(evt) && evt.error) {\n value = evt.error.message;\n type = evt.error.name;\n stackFrames = getStackFramesFromError(evt.error);\n }\n else if ((isDomErrorRes = isDomError(evt)) || isDomException(evt)) {\n const { name, message } = evt;\n type = name !== null && name !== void 0 ? name : (isDomErrorRes ? domErrorType : domExceptionType);\n value = message ? `${type}: ${message}` : type;\n }\n else if (isError(evt)) {\n value = evt.message;\n stackFrames = getStackFramesFromError(evt);\n }\n else if (isObject(evt) || (isEventRes = isEvent(evt))) {\n type = isEventRes ? evt.constructor.name : undefined;\n value = `${objectEventValue} ${Object.keys(evt)}`;\n }\n return [value, type, stackFrames];\n}\n//# sourceMappingURL=getErrorDetails.js.map","export const defaultExceptionType = 'Error';\n//# sourceMappingURL=const.js.map","import { isString } from '@grafana/faro-core';\nimport { unknownSymbolString } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nimport { getValueAndTypeFromMessage } from './getValueAndTypeFromMessage';\nimport { buildStackFrame } from './stackFrames';\nexport function registerOnerror(api) {\n const oldOnerror = window.onerror;\n window.onerror = (...args) => {\n try {\n const [evt, source, lineno, colno, error] = args;\n let value;\n let type;\n let stackFrames = [];\n const eventIsString = isString(evt);\n const initialStackFrame = buildStackFrame(source, unknownSymbolString, lineno, colno);\n if (error || !eventIsString) {\n [value, type, stackFrames] = getErrorDetails((error !== null && error !== void 0 ? error : evt));\n if (stackFrames.length === 0) {\n stackFrames = [initialStackFrame];\n }\n }\n else if (eventIsString) {\n [value, type] = getValueAndTypeFromMessage(evt);\n stackFrames = [initialStackFrame];\n }\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n }\n finally {\n oldOnerror === null || oldOnerror === void 0 ? void 0 : oldOnerror.apply(window, args);\n }\n };\n}\n//# sourceMappingURL=registerOnerror.js.map","import { defaultExceptionType } from '@grafana/faro-core';\nimport { valueTypeRegex } from './const';\nexport function getValueAndTypeFromMessage(message) {\n var _a, _b;\n const groups = message.match(valueTypeRegex);\n const type = (_a = groups === null || groups === void 0 ? void 0 : groups[1]) !== null && _a !== void 0 ? _a : defaultExceptionType;\n const value = (_b = groups === null || groups === void 0 ? void 0 : groups[2]) !== null && _b !== void 0 ? _b : message;\n return [value, type];\n}\n//# sourceMappingURL=getValueAndTypeFromMessage.js.map","import { isPrimitive } from '@grafana/faro-core';\nimport { primitiveUnhandledType, primitiveUnhandledValue } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nexport function registerOnunhandledrejection(api) {\n window.addEventListener('unhandledrejection', (evt) => {\n var _a, _b;\n let error = evt;\n if (error.reason) {\n error = evt.reason;\n }\n else if ((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.reason) {\n error = (_b = evt.detail) === null || _b === void 0 ? void 0 : _b.reason;\n }\n let value;\n let type;\n let stackFrames = [];\n if (isPrimitive(error)) {\n value = `${primitiveUnhandledValue} ${String(error)}`;\n type = primitiveUnhandledType;\n }\n else {\n [value, type, stackFrames] = getErrorDetails(error);\n }\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n });\n}\n//# sourceMappingURL=registerOnunhandledrejection.js.map","import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\nimport { registerOnerror } from './registerOnerror';\nimport { registerOnunhandledrejection } from './registerOnunhandledrejection';\nexport class ErrorsInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-errors';\n this.version = VERSION;\n }\n initialize() {\n this.logDebug('Initializing');\n registerOnerror(this.api);\n registerOnunhandledrejection(this.api);\n }\n}\n//# sourceMappingURL=instrumentation.js.map","var e,n,t,r,i,o=-1,a=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(o=n.timeStamp,e(n))}),!0)},c=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart=0?r=\"back-forward-cache\":t&&(document.prerendering||u()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":t.type&&(r=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},d=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&e()}))},v=function(e){var n=!1;return function(){n||(e(),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),a((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},b=[1800,3e3],S=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"FCP\"),o=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTimer.value&&(r.value=i,r.entries=o,t())},u=s(\"layout-shift\",c);u&&(t=d(e,r,L,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),a((function(){i=0,r=f(\"CLS\",0),t=d(e,r,L,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A=0,I=1/0,P=0,M=function(e){e.forEach((function(e){e.interactionId&&(I=Math.min(I,e.interactionId),P=Math.max(P,e.interactionId),A=P?(P-I)/7+1:0)}))},k=function(){return e?A:performance.interactionCount||0},F=function(){\"interactionCount\"in performance||e||(e=s(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))},D=[],x=new Map,R=0,B=function(){var e=Math.min(D.length-1,Math.floor((k()-R)/50));return D[e]},H=[],q=function(e){if(H.forEach((function(n){return n(e)})),e.interactionId||\"first-input\"===e.entryType){var n=D[D.length-1],t=x.get(e.interactionId);if(t||D.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};x.set(r.id,r),D.push(r)}D.sort((function(e,n){return n.latency-e.latency})),D.length>10&&D.splice(10).forEach((function(e){return x.delete(e.id)}))}}},O=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=v(e),\"hidden\"===document.visibilityState?e():(t=n(e),p(e)),t},N=[200,500],j=function(e,n){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(n=n||{},C((function(){var t;F();var r,i=f(\"INP\"),o=function(e){O((function(){e.forEach(q);var n=B();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},c=s(\"event\",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=d(e,i,N,n.reportAllChanges),c&&(c.observe({type:\"first-input\",buffered:!0}),p((function(){o(c.takeRecords()),r(!0)})),a((function(){R=k(),D.length=0,x.clear(),i=f(\"INP\"),r=d(e,i,N,n.reportAllChanges)})))})))},_=[2500,4e3],z={},G=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"LCP\"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){W(e,n),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",t,U),removeEventListener(\"pointercancel\",r,U)};addEventListener(\"pointerup\",t,U),addEventListener(\"pointercancel\",r,U)}(n,e):W(n,e)}},Z=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,Y,U)}))},$=[100,300],ee=function(e,r){r=r||{},C((function(){var o,c=E(),u=f(\"FID\"),l=function(e){e.startTime {\n executor((metric) => {\n this.pushMeasurement({\n type: 'web-vitals',\n values: {\n [indicator]: metric.value,\n },\n });\n });\n });\n }\n}\nWebVitalsBasic.mapping = {\n cls: onCLS,\n fcp: onFCP,\n fid: onFID,\n inp: onINP,\n lcp: onLCP,\n ttfb: onTTFB,\n};\n//# sourceMappingURL=webVitalsBasic.js.map","var t,e,n=function(){var t=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(t&&t.responseStart>0&&t.responseStart(e||100)-1)return n||a;if(n=n?a+\">\"+n:a,r.id)break;t=r.parentNode}}catch(t){}return n},o=-1,c=function(){return o},u=function(t){addEventListener(\"pageshow\",(function(e){e.persisted&&(o=e.timeStamp,t(e))}),!0)},s=function(){var t=n();return t&&t.activationStart||0},f=function(t,e){var r=n(),i=\"navigate\";c()>=0?i=\"back-forward-cache\":r&&(document.prerendering||s()>0?i=\"prerender\":document.wasDiscarded?i=\"restore\":r.type&&(i=r.type.replace(/_/g,\"-\")));return{name:t,value:void 0===e?-1:e,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:i}},d=function(t,e,n){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var r=new PerformanceObserver((function(t){Promise.resolve().then((function(){e(t.getEntries())}))}));return r.observe(Object.assign({type:t,buffered:!0},n||{})),r}}catch(t){}},l=function(t,e,n,r){var i,a;return function(o){e.value>=0&&(o||r)&&((a=e.value-(i||0))||void 0===i)&&(i=e.value,e.delta=a,e.rating=function(t,e){return t>e[1]?\"poor\":t>e[0]?\"needs-improvement\":\"good\"}(e.value,n),t(e))}},m=function(t){requestAnimationFrame((function(){return requestAnimationFrame((function(){return t()}))}))},p=function(t){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&t()}))},v=function(t){var e=!1;return function(){e||(t(),e=!0)}},g=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},T=function(t){\"hidden\"===document.visibilityState&&g>-1&&(g=\"visibilitychange\"===t.type?t.timeStamp:0,E())},y=function(){addEventListener(\"visibilitychange\",T,!0),addEventListener(\"prerenderingchange\",T,!0)},E=function(){removeEventListener(\"visibilitychange\",T,!0),removeEventListener(\"prerenderingchange\",T,!0)},S=function(){return g<0&&(g=h(),y(),u((function(){setTimeout((function(){g=h(),y()}),0)}))),{get firstHiddenTime(){return g}}},b=function(t){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return t()}),!0):t()},L=[1800,3e3],C=function(t,e){e=e||{},b((function(){var n,r=S(),i=f(\"FCP\"),a=d(\"paint\",(function(t){t.forEach((function(t){\"first-contentful-paint\"===t.name&&(a.disconnect(),t.startTimer.value&&(r.value=i,r.entries=a,n())},c=d(\"layout-shift\",o);c&&(n=l(t,r,M,e.reportAllChanges),p((function(){o(c.takeRecords()),n(!0)})),u((function(){i=0,r=f(\"CLS\",0),n=l(t,r,M,e.reportAllChanges),m((function(){return n()}))})),setTimeout(n,0))})))}((function(e){var n=function(t){var e,n={};if(t.entries.length){var i=t.entries.reduce((function(t,e){return t&&t.value>e.value?t:e}));if(i&&i.sources&&i.sources.length){var o=(e=i.sources).find((function(t){return t.node&&1===t.node.nodeType}))||e[0];o&&(n={largestShiftTarget:a(o.node),largestShiftTime:i.startTime,largestShiftValue:i.value,largestShiftSource:o,largestShiftEntry:i,loadState:r(i.startTime)})}}return Object.assign(t,{attribution:n})}(e);t(n)}),e)},w=function(t,e){C((function(e){var i=function(t){var e={timeToFirstByte:0,firstByteToFCP:t.value,loadState:r(c())};if(t.entries.length){var i=n(),a=t.entries[t.entries.length-1];if(i){var o=i.activationStart||0,u=Math.max(0,i.responseStart-o);e={timeToFirstByte:u,firstByteToFCP:t.value-u,loadState:r(t.entries[0].startTime),navigationEntry:i,fcpEntry:a}}}return Object.assign(t,{attribution:e})}(e);t(i)}),e)},x=0,I=1/0,k=0,A=function(t){t.forEach((function(t){t.interactionId&&(I=Math.min(I,t.interactionId),k=Math.max(k,t.interactionId),x=k?(k-I)/7+1:0)}))},F=function(){return t?x:performance.interactionCount||0},P=function(){\"interactionCount\"in performance||t||(t=d(\"event\",A,{type:\"event\",buffered:!0,durationThreshold:0}))},B=[],O=new Map,R=0,j=function(){var t=Math.min(B.length-1,Math.floor((F()-R)/50));return B[t]},q=[],H=function(t){if(q.forEach((function(e){return e(t)})),t.interactionId||\"first-input\"===t.entryType){var e=B[B.length-1],n=O.get(t.interactionId);if(n||B.length<10||t.duration>e.latency){if(n)t.duration>n.latency?(n.entries=[t],n.latency=t.duration):t.duration===n.latency&&t.startTime===n.entries[0].startTime&&n.entries.push(t);else{var r={id:t.interactionId,latency:t.duration,entries:[t]};O.set(r.id,r),B.push(r)}B.sort((function(t,e){return e.latency-t.latency})),B.length>10&&B.splice(10).forEach((function(t){return O.delete(t.id)}))}}},N=function(t){var e=self.requestIdleCallback||self.setTimeout,n=-1;return t=v(t),\"hidden\"===document.visibilityState?t():(n=e(t),p(t)),n},W=[200,500],z=function(t,e){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(e=e||{},b((function(){var n;P();var r,i=f(\"INP\"),a=function(t){N((function(){t.forEach(H);var e=j();e&&e.latency!==i.value&&(i.value=e.latency,i.entries=e.entries,r())}))},o=d(\"event\",a,{durationThreshold:null!==(n=e.durationThreshold)&&void 0!==n?n:40});r=l(t,i,W,e.reportAllChanges),o&&(o.observe({type:\"first-input\",buffered:!0}),p((function(){a(o.takeRecords()),r(!0)})),u((function(){R=F(),B.length=0,O.clear(),i=f(\"INP\"),r=l(t,i,W,e.reportAllChanges)})))})))},U=[],V=[],_=0,G=new WeakMap,J=new Map,K=-1,Q=function(t){U=U.concat(t),X()},X=function(){K<0&&(K=N(Y))},Y=function(){J.size>10&&J.forEach((function(t,e){O.has(e)||J.delete(e)}));var t=B.map((function(t){return G.get(t.entries[0])})),e=V.length-50;V=V.filter((function(n,r){return r>=e||t.includes(n)}));for(var n=new Set,r=0;r_&&e>a||n.has(t)})),K=-1};q.push((function(t){t.interactionId&&t.target&&!J.has(t.interactionId)&&J.set(t.interactionId,t.target)}),(function(t){var e,n=t.startTime+t.duration;_=Math.max(_,t.processingEnd);for(var r=V.length-1;r>=0;r--){var i=V[r];if(Math.abs(n-i.renderTime)<=8){(e=i).startTime=Math.min(t.startTime,e.startTime),e.processingStart=Math.min(t.processingStart,e.processingStart),e.processingEnd=Math.max(t.processingEnd,e.processingEnd),e.entries.push(t);break}}e||(e={startTime:t.startTime,processingStart:t.processingStart,processingEnd:t.processingEnd,renderTime:n,entries:[t]},V.push(e)),(t.interactionId||\"first-input\"===t.entryType)&&G.set(t,e),X()}));var Z,$,tt,et,nt=function(t,e){for(var n,r=[],i=0;n=U[i];i++)if(!(n.startTime+n.duratione)break;r.push(n)}return r},rt=function(t,n){e||(e=d(\"long-animation-frame\",Q)),z((function(e){var n=function(t){var e=t.entries[0],n=G.get(e),i=e.processingStart,o=n.processingEnd,c=n.entries.sort((function(t,e){return t.processingStart-e.processingStart})),u=nt(e.startTime,o),s=t.entries.find((function(t){return t.target})),f=s&&s.target||J.get(e.interactionId),d=[e.startTime+e.duration,o].concat(u.map((function(t){return t.startTime+t.duration}))),l=Math.max.apply(Math,d),m={interactionTarget:a(f),interactionTargetElement:f,interactionType:e.name.startsWith(\"key\")?\"keyboard\":\"pointer\",interactionTime:e.startTime,nextPaintTime:l,processedEventEntries:c,longAnimationFrameEntries:u,inputDelay:i-e.startTime,processingDuration:o-i,presentationDelay:Math.max(l-o,0),loadState:r(e.startTime)};return Object.assign(t,{attribution:m})}(e);t(n)}),n)},it=[2500,4e3],at={},ot=function(t,e){!function(t,e){e=e||{},b((function(){var n,r=S(),i=f(\"LCP\"),a=function(t){e.reportAllChanges||(t=t.slice(-1)),t.forEach((function(t){t.startTime=0&&$1e12?new Date:performance.now())-t.timeStamp;\"pointerdown\"==t.type?function(t,e){var n=function(){mt(t,e),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",n,dt),removeEventListener(\"pointercancel\",r,dt)};addEventListener(\"pointerup\",n,dt),addEventListener(\"pointercancel\",r,dt)}(e,t):mt(e,t)}},gt=function(t){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(e){return t(e,vt,dt)}))},ht=[100,300],Tt=function(t,e){e=e||{},b((function(){var n,r=S(),i=f(\"FID\"),a=function(t){t.startTime {\n const { loadState, largestShiftValue, largestShiftTime, largestShiftTarget } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'largest_shift_value', largestShiftValue);\n this.addIfPresent(values, 'largest_shift_time', largestShiftTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.addIfPresent(context, 'largest_shift_target', largestShiftTarget);\n this.pushMeasurement(values, context);\n });\n }\n measureFCP() {\n onFCP((metric) => {\n const { firstByteToFCP, timeToFirstByte, loadState } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'first_byte_to_fcp', firstByteToFCP);\n this.addIfPresent(values, timeToFirstByteKey, timeToFirstByte);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.pushMeasurement(values, context);\n });\n }\n measureFID() {\n onFID((metric) => {\n const { eventTime, eventTarget, eventType, loadState } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'event_time', eventTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, 'event_target', eventTarget);\n this.addIfPresent(context, 'event_type', eventType);\n this.addIfPresent(context, loadStateKey, loadState);\n this.pushMeasurement(values, context);\n });\n }\n measureINP() {\n onINP((metric) => {\n const { interactionTime, presentationDelay, inputDelay, processingDuration, nextPaintTime, loadState, interactionTarget, interactionType, } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'interaction_time', interactionTime);\n this.addIfPresent(values, 'presentation_delay', presentationDelay);\n this.addIfPresent(values, 'input_delay', inputDelay);\n this.addIfPresent(values, 'processing_duration', processingDuration);\n this.addIfPresent(values, 'next_paint_time', nextPaintTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.addIfPresent(context, 'interaction_target', interactionTarget);\n this.addIfPresent(context, 'interaction_type', interactionType);\n this.pushMeasurement(values, context);\n });\n }\n measureLCP() {\n onLCP((metric) => {\n const { elementRenderDelay, resourceLoadDelay, resourceLoadDuration, timeToFirstByte, element } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'element_render_delay', elementRenderDelay);\n this.addIfPresent(values, 'resource_load_delay', resourceLoadDelay);\n this.addIfPresent(values, 'resource_load_duration', resourceLoadDuration);\n this.addIfPresent(values, timeToFirstByteKey, timeToFirstByte);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, 'element', element);\n this.pushMeasurement(values, context);\n });\n }\n measureTTFB() {\n onTTFB((metric) => {\n const { dnsDuration, connectionDuration, requestDuration, waitingDuration, cacheDuration } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'dns_duration', dnsDuration);\n this.addIfPresent(values, 'connection_duration', connectionDuration);\n this.addIfPresent(values, 'request_duration', requestDuration);\n this.addIfPresent(values, 'waiting_duration', waitingDuration);\n this.addIfPresent(values, 'cache_duration', cacheDuration);\n const context = this.buildInitialContext(metric);\n this.pushMeasurement(values, context);\n });\n }\n buildInitialValues(metric) {\n const indicator = metric.name.toLowerCase();\n return {\n [indicator]: metric.value,\n delta: metric.delta,\n };\n }\n buildInitialContext(metric) {\n var _a;\n const navigationEntryId = (_a = getItem(NAVIGATION_ID_STORAGE_KEY, webStorageType.session)) !== null && _a !== void 0 ? _a : unknownString;\n return {\n id: metric.id,\n rating: metric.rating,\n navigation_type: metric.navigationType,\n navigation_entry_id: navigationEntryId,\n };\n }\n pushMeasurement(values, context) {\n const type = 'web-vitals';\n this.corePushMeasurement({ type, values }, { context });\n }\n addIfPresent(source, key, metric) {\n if (metric) {\n source[key] = metric;\n }\n }\n}\n//# sourceMappingURL=webVitalsWithAttribution.js.map","import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\nimport { WebVitalsBasic } from './webVitalsBasic';\nimport { WebVitalsWithAttribution } from './webVitalsWithAttribution';\nexport class WebVitalsInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-web-vitals';\n this.version = VERSION;\n }\n initialize() {\n this.logDebug('Initializing');\n const webVitals = this.intializeWebVitalsInstrumentation();\n webVitals.initialize();\n }\n intializeWebVitalsInstrumentation() {\n if (this.config.trackWebVitalsAttribution) {\n return new WebVitalsWithAttribution(this.api.pushMeasurement);\n }\n return new WebVitalsBasic(this.api.pushMeasurement);\n }\n}\n//# sourceMappingURL=instrumentation.js.map","/**\n * @deprecated The conventions object will be removed in a future version\n */\nexport const Conventions = {\n /**\n * @deprecated The event names object will be removed in a future version\n */\n EventNames: {\n CLICK: 'click',\n NAVIGATION: 'navigation',\n SESSION_START: 'session_start',\n VIEW_CHANGED: 'view_changed',\n },\n};\nexport const EVENT_CLICK = 'click';\nexport const EVENT_NAVIGATION = 'navigation';\nexport const EVENT_VIEW_CHANGED = 'view_changed';\nexport const EVENT_SESSION_START = 'session_start';\nexport const EVENT_SESSION_RESUME = 'session_resume';\nexport const EVENT_SESSION_EXTEND = 'session_extend';\nexport const EVENT_ROUTE_CHANGE = 'route_change';\n//# sourceMappingURL=semantic.js.map","export function dateNow() {\n return Date.now();\n}\nexport function getCurrentTimestamp() {\n return new Date().toISOString();\n}\nexport function timestampToIsoString(value) {\n return new Date(value).toISOString();\n}\n//# sourceMappingURL=date.js.map","const alphabet = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789';\nexport function genShortID(length = 10) {\n return Array.from(Array(length))\n .map(() => alphabet[Math.floor(Math.random() * alphabet.length)])\n .join('');\n}\n//# sourceMappingURL=shortId.js.map","import { faro } from '@grafana/faro-core';\nexport function isSampled() {\n var _a, _b, _c;\n const sendAllSignals = 1;\n const sessionTracking = faro.config.sessionTracking;\n let samplingRate = (_c = (_b = (_a = sessionTracking === null || sessionTracking === void 0 ? void 0 : sessionTracking.sampler) === null || _a === void 0 ? void 0 : _a.call(sessionTracking, { metas: faro.metas.value })) !== null && _b !== void 0 ? _b : sessionTracking === null || sessionTracking === void 0 ? void 0 : sessionTracking.samplingRate) !== null && _c !== void 0 ? _c : sendAllSignals;\n if (typeof samplingRate !== 'number') {\n const sendNoSignals = 0;\n samplingRate = sendNoSignals;\n }\n return Math.random() < samplingRate;\n}\n//# sourceMappingURL=sampling.js.map","/**\n * Tail based throttle which caches the args of the last call and updates\n */\nexport function throttle(callback, delay) {\n let pause = false;\n let lastPending;\n const timeoutBehavior = () => {\n if (lastPending == null) {\n pause = false;\n return;\n }\n callback(...lastPending);\n lastPending = null;\n setTimeout(timeoutBehavior, delay);\n };\n return (...args) => {\n if (pause) {\n lastPending = args;\n return;\n }\n callback(...args);\n pause = true;\n setTimeout(timeoutBehavior, delay);\n };\n}\n//# sourceMappingURL=throttle.js.map","export function getCircularDependencyReplacer() {\n const valueSeen = new WeakSet();\n return function (_key, value) {\n if (typeof value === 'object' && value !== null) {\n if (valueSeen.has(value)) {\n return null;\n }\n valueSeen.add(value);\n }\n return value;\n };\n}\nexport function stringifyExternalJson(json = {}) {\n return JSON.stringify(json !== null && json !== void 0 ? json : {}, getCircularDependencyReplacer());\n}\n//# sourceMappingURL=json.js.map","export const STORAGE_KEY = 'com.grafana.faro.session';\nexport const SESSION_EXPIRATION_TIME = 4 * 60 * 60 * 1000; // hrs\nexport const SESSION_INACTIVITY_TIME = 15 * 60 * 1000; // minutes\nexport const STORAGE_UPDATE_DELAY = 1 * 1000; // seconds\n/**\n * @deprecated MAX_SESSION_PERSISTENCE_TIME_BUFFER is not used anymore. The constant will be removed in the future\n */\nexport const MAX_SESSION_PERSISTENCE_TIME_BUFFER = 1 * 60 * 1000;\nexport const MAX_SESSION_PERSISTENCE_TIME = SESSION_INACTIVITY_TIME;\nexport const defaultSessionTrackingConfig = {\n enabled: true,\n persistent: false,\n maxSessionPersistenceTime: MAX_SESSION_PERSISTENCE_TIME,\n};\n//# sourceMappingURL=sessionConstants.js.map","import { dateNow, faro, genShortID } from '@grafana/faro-core';\nimport { isLocalStorageAvailable, isSessionStorageAvailable } from '../../../utils';\nimport { isSampled } from './sampling';\nimport { SESSION_EXPIRATION_TIME, SESSION_INACTIVITY_TIME } from './sessionConstants';\nexport function createUserSessionObject({ sessionId, started, lastActivity, isSampled = true, } = {}) {\n var _a, _b;\n const now = dateNow();\n const generateSessionId = (_b = (_a = faro.config) === null || _a === void 0 ? void 0 : _a.sessionTracking) === null || _b === void 0 ? void 0 : _b.generateSessionId;\n if (sessionId == null) {\n sessionId = typeof generateSessionId === 'function' ? generateSessionId() : genShortID();\n }\n return {\n sessionId,\n lastActivity: lastActivity !== null && lastActivity !== void 0 ? lastActivity : now,\n started: started !== null && started !== void 0 ? started : now,\n isSampled: isSampled,\n };\n}\nexport function isUserSessionValid(session) {\n if (session == null) {\n return false;\n }\n const now = dateNow();\n const lifetimeValid = now - session.started < SESSION_EXPIRATION_TIME;\n if (!lifetimeValid) {\n return false;\n }\n const inactivityPeriodValid = now - session.lastActivity < SESSION_INACTIVITY_TIME;\n return inactivityPeriodValid;\n}\nexport function getUserSessionUpdater({ fetchUserSession, storeUserSession, }) {\n return function updateSession({ forceSessionExtend } = { forceSessionExtend: false }) {\n var _a, _b, _c;\n if (!fetchUserSession || !storeUserSession) {\n return;\n }\n const sessionTrackingConfig = faro.config.sessionTracking;\n const isPersistentSessions = sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.persistent;\n if ((isPersistentSessions && !isLocalStorageAvailable) || (!isPersistentSessions && !isSessionStorageAvailable)) {\n return;\n }\n const sessionFromStorage = fetchUserSession();\n if (forceSessionExtend === false && isUserSessionValid(sessionFromStorage)) {\n storeUserSession(Object.assign(Object.assign({}, sessionFromStorage), { lastActivity: dateNow() }));\n }\n else {\n let newSession = addSessionMetadataToNextSession(createUserSessionObject({ isSampled: isSampled() }), sessionFromStorage);\n storeUserSession(newSession);\n (_a = faro.api) === null || _a === void 0 ? void 0 : _a.setSession(newSession.sessionMeta);\n (_b = sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.onSessionChange) === null || _b === void 0 ? void 0 : _b.call(sessionTrackingConfig, (_c = sessionFromStorage === null || sessionFromStorage === void 0 ? void 0 : sessionFromStorage.sessionMeta) !== null && _c !== void 0 ? _c : null, newSession.sessionMeta);\n }\n };\n}\nexport function addSessionMetadataToNextSession(newSession, previousSession) {\n var _a, _b, _c, _d;\n const sessionWithMeta = Object.assign(Object.assign({}, newSession), { sessionMeta: {\n id: newSession.sessionId,\n attributes: Object.assign(Object.assign(Object.assign(Object.assign({}, (_b = (_a = faro.config.sessionTracking) === null || _a === void 0 ? void 0 : _a.session) === null || _b === void 0 ? void 0 : _b.attributes), ((_d = (_c = faro.metas.value.session) === null || _c === void 0 ? void 0 : _c.attributes) !== null && _d !== void 0 ? _d : {})), (previousSession != null ? { previousSession: previousSession.sessionId } : {})), { isSampled: newSession.isSampled.toString() }),\n } });\n return sessionWithMeta;\n}\n//# sourceMappingURL=sessionManagerUtils.js.map","import { faro } from '@grafana/faro-core';\nimport { stringifyExternalJson, throttle } from '../../../utils';\nimport { getItem, removeItem, setItem, webStorageType } from '../../../utils/webStorage';\nimport { isSampled } from './sampling';\nimport { STORAGE_KEY, STORAGE_UPDATE_DELAY } from './sessionConstants';\nimport { addSessionMetadataToNextSession, createUserSessionObject, getUserSessionUpdater } from './sessionManagerUtils';\nexport class PersistentSessionsManager {\n constructor() {\n this.updateSession = throttle(() => this.updateUserSession(), STORAGE_UPDATE_DELAY);\n this.updateUserSession = getUserSessionUpdater({\n fetchUserSession: PersistentSessionsManager.fetchUserSession,\n storeUserSession: PersistentSessionsManager.storeUserSession,\n });\n this.init();\n }\n static removeUserSession() {\n removeItem(STORAGE_KEY, PersistentSessionsManager.storageTypeLocal);\n }\n static storeUserSession(session) {\n setItem(STORAGE_KEY, stringifyExternalJson(session), PersistentSessionsManager.storageTypeLocal);\n }\n static fetchUserSession() {\n const storedSession = getItem(STORAGE_KEY, PersistentSessionsManager.storageTypeLocal);\n if (storedSession) {\n return JSON.parse(storedSession);\n }\n return null;\n }\n init() {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this.updateSession();\n }\n });\n // Users can call the setSession() method, so we need to sync this with the local storage session\n faro.metas.addListener(function syncSessionIfChangedExternally(meta) {\n const session = meta.session;\n const sessionFromLocalStorage = PersistentSessionsManager.fetchUserSession();\n if (session && session.id !== (sessionFromLocalStorage === null || sessionFromLocalStorage === void 0 ? void 0 : sessionFromLocalStorage.sessionId)) {\n const userSession = addSessionMetadataToNextSession(createUserSessionObject({ sessionId: session.id, isSampled: isSampled() }), sessionFromLocalStorage);\n PersistentSessionsManager.storeUserSession(userSession);\n faro.api.setSession(userSession.sessionMeta);\n }\n });\n }\n}\nPersistentSessionsManager.storageTypeLocal = webStorageType.local;\n//# sourceMappingURL=PersistentSessionsManager.js.map","import { faro } from '@grafana/faro-core';\nimport { throttle } from '../../../utils';\nimport { stringifyExternalJson } from '../../../utils/json';\nimport { getItem, removeItem, setItem, webStorageType } from '../../../utils/webStorage';\nimport { isSampled } from './sampling';\nimport { STORAGE_KEY, STORAGE_UPDATE_DELAY } from './sessionConstants';\nimport { addSessionMetadataToNextSession, createUserSessionObject, getUserSessionUpdater } from './sessionManagerUtils';\nexport class VolatileSessionsManager {\n constructor() {\n this.updateSession = throttle(() => this.updateUserSession(), STORAGE_UPDATE_DELAY);\n this.updateUserSession = getUserSessionUpdater({\n fetchUserSession: VolatileSessionsManager.fetchUserSession,\n storeUserSession: VolatileSessionsManager.storeUserSession,\n });\n this.init();\n }\n static removeUserSession() {\n removeItem(STORAGE_KEY, VolatileSessionsManager.storageTypeSession);\n }\n static storeUserSession(session) {\n setItem(STORAGE_KEY, stringifyExternalJson(session), VolatileSessionsManager.storageTypeSession);\n }\n static fetchUserSession() {\n const storedSession = getItem(STORAGE_KEY, VolatileSessionsManager.storageTypeSession);\n if (storedSession) {\n return JSON.parse(storedSession);\n }\n return null;\n }\n init() {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this.updateSession();\n }\n });\n // Users can call the setSession() method, so we need to sync this with the local storage session\n faro.metas.addListener(function syncSessionIfChangedExternally(meta) {\n const session = meta.session;\n const sessionFromSessionStorage = VolatileSessionsManager.fetchUserSession();\n if (session && session.id !== (sessionFromSessionStorage === null || sessionFromSessionStorage === void 0 ? void 0 : sessionFromSessionStorage.sessionId)) {\n const userSession = addSessionMetadataToNextSession(createUserSessionObject({ sessionId: session.id, isSampled: isSampled() }), sessionFromSessionStorage);\n VolatileSessionsManager.storeUserSession(userSession);\n faro.api.setSession(userSession.sessionMeta);\n }\n });\n }\n}\nVolatileSessionsManager.storageTypeSession = webStorageType.session;\n//# sourceMappingURL=VolatileSessionManager.js.map","import { PersistentSessionsManager } from './PersistentSessionsManager';\nimport { VolatileSessionsManager } from './VolatileSessionManager';\nexport function getSessionManagerByConfig(sessionTrackingConfig) {\n return (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.persistent) ? PersistentSessionsManager : VolatileSessionsManager;\n}\n//# sourceMappingURL=getSessionManagerByConfig.js.map","import { BaseInstrumentation, dateNow, EVENT_SESSION_EXTEND, EVENT_SESSION_RESUME, EVENT_SESSION_START, VERSION, } from '@grafana/faro-core';\nimport { createSession } from '../../metas';\nimport { getSessionManagerByConfig, isSampled } from './sessionManager';\nimport { PersistentSessionsManager } from './sessionManager/PersistentSessionsManager';\nimport { createUserSessionObject, isUserSessionValid } from './sessionManager/sessionManagerUtils';\nexport class SessionInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-session';\n this.version = VERSION;\n }\n sendSessionStartEvent(meta) {\n var _a, _b;\n const session = meta.session;\n if (session && session.id !== ((_a = this.notifiedSession) === null || _a === void 0 ? void 0 : _a.id)) {\n if (this.notifiedSession && this.notifiedSession.id === ((_b = session.attributes) === null || _b === void 0 ? void 0 : _b['previousSession'])) {\n this.api.pushEvent(EVENT_SESSION_EXTEND, {}, undefined, { skipDedupe: true });\n this.notifiedSession = session;\n return;\n }\n this.notifiedSession = session;\n // no need to add attributes and session id, they are included as part of meta\n // automatically\n this.api.pushEvent(EVENT_SESSION_START, {}, undefined, { skipDedupe: true });\n }\n }\n createInitialSession(SessionManager, sessionsConfig) {\n var _a, _b, _c, _d, _e;\n let userSession = SessionManager.fetchUserSession();\n if (sessionsConfig.persistent && sessionsConfig.maxSessionPersistenceTime && userSession) {\n const now = dateNow();\n const shouldClearPersistentSession = userSession.lastActivity < now - sessionsConfig.maxSessionPersistenceTime;\n if (shouldClearPersistentSession) {\n PersistentSessionsManager.removeUserSession();\n userSession = null;\n }\n }\n let lifecycleType;\n let initialSession;\n if (isUserSessionValid(userSession)) {\n const sessionId = userSession === null || userSession === void 0 ? void 0 : userSession.sessionId;\n initialSession = createUserSessionObject({\n sessionId,\n isSampled: userSession.isSampled || false,\n started: userSession === null || userSession === void 0 ? void 0 : userSession.started,\n });\n initialSession.sessionMeta = {\n id: sessionId,\n attributes: Object.assign(Object.assign(Object.assign({}, (_a = sessionsConfig.session) === null || _a === void 0 ? void 0 : _a.attributes), (_b = userSession === null || userSession === void 0 ? void 0 : userSession.sessionMeta) === null || _b === void 0 ? void 0 : _b.attributes), { \n // For valid resumed sessions we do not want to recalculate the sampling decision on each init phase.\n isSampled: initialSession.isSampled.toString() }),\n };\n lifecycleType = EVENT_SESSION_RESUME;\n }\n else {\n const sessionId = (_d = (_c = sessionsConfig.session) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : createSession().id;\n initialSession = createUserSessionObject({\n sessionId,\n isSampled: isSampled(),\n });\n initialSession.sessionMeta = {\n id: sessionId,\n attributes: Object.assign({ isSampled: initialSession.isSampled.toString() }, (_e = sessionsConfig.session) === null || _e === void 0 ? void 0 : _e.attributes),\n };\n lifecycleType = EVENT_SESSION_START;\n }\n return { initialSession, lifecycleType };\n }\n registerBeforeSendHook(SessionManager) {\n var _a;\n const { updateSession } = new SessionManager();\n (_a = this.transports) === null || _a === void 0 ? void 0 : _a.addBeforeSendHooks((item) => {\n var _a, _b, _c;\n updateSession();\n const attributes = (_a = item.meta.session) === null || _a === void 0 ? void 0 : _a.attributes;\n if (attributes && (attributes === null || attributes === void 0 ? void 0 : attributes['isSampled']) === 'true') {\n let newItem = JSON.parse(JSON.stringify(item));\n const newAttributes = (_b = newItem.meta.session) === null || _b === void 0 ? void 0 : _b.attributes;\n newAttributes === null || newAttributes === void 0 ? true : delete newAttributes['isSampled'];\n if (Object.keys(newAttributes !== null && newAttributes !== void 0 ? newAttributes : {}).length === 0) {\n (_c = newItem.meta.session) === null || _c === void 0 ? true : delete _c.attributes;\n }\n return newItem;\n }\n return null;\n });\n }\n initialize() {\n this.logDebug('init session instrumentation');\n const sessionTrackingConfig = this.config.sessionTracking;\n if (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.enabled) {\n const SessionManager = getSessionManagerByConfig(sessionTrackingConfig);\n this.registerBeforeSendHook(SessionManager);\n const { initialSession, lifecycleType } = this.createInitialSession(SessionManager, sessionTrackingConfig);\n SessionManager.storeUserSession(initialSession);\n const initialSessionMeta = initialSession.sessionMeta;\n this.notifiedSession = initialSessionMeta;\n this.api.setSession(initialSessionMeta);\n if (lifecycleType === EVENT_SESSION_START) {\n this.api.pushEvent(EVENT_SESSION_START, {}, undefined, { skipDedupe: true });\n }\n if (lifecycleType === EVENT_SESSION_RESUME) {\n this.api.pushEvent(EVENT_SESSION_RESUME, {}, undefined, { skipDedupe: true });\n }\n }\n this.metas.addListener(this.sendSessionStartEvent.bind(this));\n }\n}\n//# sourceMappingURL=instrumentation.js.map","import { faro, genShortID } from '@grafana/faro-core';\nexport function createSession(attributes) {\n var _a, _b, _c, _d;\n return {\n id: (_d = (_c = (_b = (_a = faro.config) === null || _a === void 0 ? void 0 : _a.sessionTracking) === null || _b === void 0 ? void 0 : _b.generateSessionId) === null || _c === void 0 ? void 0 : _c.call(_b)) !== null && _d !== void 0 ? _d : genShortID(),\n attributes,\n };\n}\n//# sourceMappingURL=createSession.js.map","import { BaseInstrumentation, EVENT_VIEW_CHANGED, unknownString, VERSION } from '@grafana/faro-core';\n// all this does is send VIEW_CHANGED event\nexport class ViewInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-view';\n this.version = VERSION;\n }\n sendViewChangedEvent(meta) {\n var _a, _b, _c, _d;\n const view = meta.view;\n if (view && view.name !== ((_a = this.notifiedView) === null || _a === void 0 ? void 0 : _a.name)) {\n this.api.pushEvent(EVENT_VIEW_CHANGED, {\n fromView: (_c = (_b = this.notifiedView) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : unknownString,\n toView: (_d = view.name) !== null && _d !== void 0 ? _d : unknownString,\n }, undefined, { skipDedupe: true });\n this.notifiedView = view;\n }\n }\n initialize() {\n this.metas.addListener(this.sendViewChangedEvent.bind(this));\n }\n}\n//# sourceMappingURL=instrumentation.js.map","export const NAVIGATION_ENTRY = 'navigation';\nexport const RESOURCE_ENTRY = 'resource';\n//# sourceMappingURL=performanceConstants.js.map","import { isArray, unknownString } from '@grafana/faro-core';\nconst w3cTraceparentFormat = /^00-[a-f0-9]{32}-[a-f0-9]{16}-[0-9]{1,2}$/;\n// Extract traceparent from serverTiming, if present\nexport function getSpanContextFromServerTiming(serverTimings = []) {\n for (const serverEntry of serverTimings) {\n if (serverEntry.name === 'traceparent') {\n if (!w3cTraceparentFormat.test(serverEntry.description)) {\n continue;\n }\n const [, traceId, spanId] = serverEntry.description.split('-');\n if (traceId != null && spanId != null) {\n return { traceId, spanId };\n }\n break;\n }\n }\n return undefined;\n}\nexport function performanceObserverSupported() {\n return 'PerformanceObserver' in window;\n}\nexport function entryUrlIsIgnored(ignoredUrls = [], entryName) {\n return ignoredUrls.some((url) => url && entryName.match(url) != null);\n}\nexport function onDocumentReady(handleReady) {\n if (document.readyState === 'complete') {\n handleReady();\n }\n else {\n const readyStateCompleteHandler = () => {\n if (document.readyState === 'complete') {\n handleReady();\n document.removeEventListener('readystatechange', readyStateCompleteHandler);\n }\n };\n document.addEventListener('readystatechange', readyStateCompleteHandler);\n }\n}\nexport function includePerformanceEntry(performanceEntryJSON, allowProps = {}) {\n for (const [allowPropKey, allowPropValue] of Object.entries(allowProps)) {\n const perfEntryPropVal = performanceEntryJSON[allowPropKey];\n if (perfEntryPropVal == null) {\n return false;\n }\n if (isArray(allowPropValue)) {\n return allowPropValue.includes(perfEntryPropVal);\n }\n return perfEntryPropVal === allowPropValue;\n }\n // empty object allows all\n return true;\n}\nexport function createFaroResourceTiming(resourceEntryRaw) {\n const { connectEnd, connectStart, decodedBodySize, domainLookupEnd, domainLookupStart, duration, encodedBodySize, fetchStart, initiatorType, name, nextHopProtocol, redirectEnd, redirectStart, \n // @ts-expect-error the renderBlockingStatus property is not available in all browsers\n renderBlockingStatus: rbs, requestStart, responseEnd, responseStart, \n // @ts-expect-error the renderBlockingStatus property is not available in all browsers\n responseStatus, secureConnectionStart, transferSize, workerStart, } = resourceEntryRaw;\n return {\n name: name,\n duration: toFaroPerformanceTimingString(duration),\n tcpHandshakeTime: toFaroPerformanceTimingString(connectEnd - connectStart),\n dnsLookupTime: toFaroPerformanceTimingString(domainLookupEnd - domainLookupStart),\n tlsNegotiationTime: toFaroPerformanceTimingString(requestStart - secureConnectionStart),\n responseStatus: toFaroPerformanceTimingString(responseStatus),\n redirectTime: toFaroPerformanceTimingString(redirectEnd - redirectStart),\n requestTime: toFaroPerformanceTimingString(responseStart - requestStart),\n responseTime: toFaroPerformanceTimingString(responseEnd - responseStart),\n fetchTime: toFaroPerformanceTimingString(responseEnd - fetchStart),\n serviceWorkerTime: toFaroPerformanceTimingString(fetchStart - workerStart),\n decodedBodySize: toFaroPerformanceTimingString(decodedBodySize),\n encodedBodySize: toFaroPerformanceTimingString(encodedBodySize),\n cacheHitStatus: getCacheType(),\n renderBlockingStatus: toFaroPerformanceTimingString(rbs),\n protocol: nextHopProtocol,\n initiatorType: initiatorType,\n visibilityState: document.visibilityState,\n ttfb: toFaroPerformanceTimingString(responseStart - requestStart),\n // TODO: add in future iteration, ideally after nested objects are supported by the collector.\n // serverTiming: resourceEntryRaw.serverTiming,\n };\n function getCacheType() {\n let cacheType = 'fullLoad';\n if (transferSize === 0) {\n if (decodedBodySize > 0) {\n cacheType = 'cache';\n }\n }\n else {\n if (responseStatus != null) {\n if (responseStatus === 304) {\n cacheType = 'conditionalFetch';\n }\n }\n else if (encodedBodySize > 0 && transferSize < encodedBodySize) {\n cacheType = 'conditionalFetch';\n }\n }\n return cacheType;\n }\n}\nexport function createFaroNavigationTiming(navigationEntryRaw) {\n const { activationStart, domComplete, domContentLoadedEventEnd, domContentLoadedEventStart, domInteractive, fetchStart, loadEventEnd, loadEventStart, responseStart, type, } = navigationEntryRaw;\n const parserStart = getDocumentParsingTime();\n return Object.assign(Object.assign({}, createFaroResourceTiming(navigationEntryRaw)), { pageLoadTime: toFaroPerformanceTimingString(domComplete - fetchStart), documentParsingTime: toFaroPerformanceTimingString(parserStart ? domInteractive - parserStart : null), domProcessingTime: toFaroPerformanceTimingString(domComplete - domInteractive), domContentLoadHandlerTime: toFaroPerformanceTimingString(domContentLoadedEventEnd - domContentLoadedEventStart), onLoadTime: toFaroPerformanceTimingString(loadEventEnd - loadEventStart), \n // For navigation entries we can calculate the TTFB based on activationStart. We overwrite the TTFB value coming with the resource entry.\n // For more accuracy on prerendered pages page we calculate relative top the activationStart instead of the start of the navigation.\n // clamp to 0 if activationStart occurs after first byte is received.\n ttfb: toFaroPerformanceTimingString(Math.max(responseStart - (activationStart !== null && activationStart !== void 0 ? activationStart : 0), 0)), type: type });\n}\nfunction getDocumentParsingTime() {\n var _a;\n if (((_a = performance.timing) === null || _a === void 0 ? void 0 : _a.domLoading) != null) {\n // the browser is about to start parsing the first received bytes of the HTML document.\n // This property is deprecated but there isn't a really good alternative atm.\n // For now we stick with domLoading and keep researching a better alternative.\n return performance.timing.domLoading - performance.timeOrigin;\n }\n return null;\n}\nfunction toFaroPerformanceTimingString(v) {\n if (v == null) {\n return unknownString;\n }\n if (typeof v === 'number') {\n return Math.round(v).toString();\n }\n return v.toString();\n}\n//# sourceMappingURL=performanceUtils.js.map","import { faro, genShortID } from '@grafana/faro-core';\nimport { RESOURCE_ENTRY } from './performanceConstants';\nimport { createFaroResourceTiming, entryUrlIsIgnored, getSpanContextFromServerTiming, includePerformanceEntry, } from './performanceUtils';\nconst DEFAULT_TRACK_RESOURCES = { initiatorType: ['xmlhttprequest', 'fetch'] };\nexport function observeResourceTimings(faroNavigationId, pushEvent, ignoredUrls) {\n const trackResources = faro.config.trackResources;\n const observer = new PerformanceObserver((observedEntries) => {\n const entries = observedEntries.getEntries();\n for (const resourceEntryRaw of entries) {\n if (entryUrlIsIgnored(ignoredUrls, resourceEntryRaw.name)) {\n return;\n }\n const resourceEntryJson = resourceEntryRaw.toJSON();\n let spanContext = getSpanContextFromServerTiming(resourceEntryJson === null || resourceEntryJson === void 0 ? void 0 : resourceEntryJson.serverTiming);\n if ((trackResources == null && includePerformanceEntry(resourceEntryJson, DEFAULT_TRACK_RESOURCES)) ||\n trackResources) {\n const faroResourceEntry = Object.assign(Object.assign({}, createFaroResourceTiming(resourceEntryJson)), { faroNavigationId, faroResourceId: genShortID() });\n pushEvent('faro.performance.resource', faroResourceEntry, undefined, {\n spanContext,\n timestampOverwriteMs: performance.timeOrigin + resourceEntryJson.startTime,\n });\n }\n }\n });\n observer.observe({\n type: RESOURCE_ENTRY,\n buffered: true,\n });\n}\n//# sourceMappingURL=resource.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { BaseInstrumentation, VERSION } from '@grafana/faro-core';\nimport { getNavigationTimings } from './navigation';\nimport { onDocumentReady, performanceObserverSupported } from './performanceUtils';\nimport { observeResourceTimings } from './resource';\nexport class PerformanceInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-performance';\n this.version = VERSION;\n }\n initialize() {\n if (!performanceObserverSupported()) {\n this.logDebug('performance observer not supported. Disable performance instrumentation.');\n return;\n }\n onDocumentReady(() => __awaiter(this, void 0, void 0, function* () {\n const pushEvent = this.api.pushEvent;\n const ignoredUrls = this.getIgnoreUrls();\n const { faroNavigationId } = yield getNavigationTimings(pushEvent, ignoredUrls);\n if (faroNavigationId != null) {\n observeResourceTimings(faroNavigationId, pushEvent, ignoredUrls);\n }\n }));\n }\n getIgnoreUrls() {\n var _a;\n return (_a = this.transports.transports) === null || _a === void 0 ? void 0 : _a.flatMap((transport) => transport.getIgnoreUrls());\n }\n}\n//# sourceMappingURL=instrumentation.js.map","export var LogLevel;\n(function (LogLevel) {\n LogLevel[\"TRACE\"] = \"trace\";\n LogLevel[\"DEBUG\"] = \"debug\";\n LogLevel[\"INFO\"] = \"info\";\n LogLevel[\"LOG\"] = \"log\";\n LogLevel[\"WARN\"] = \"warn\";\n LogLevel[\"ERROR\"] = \"error\";\n})(LogLevel || (LogLevel = {}));\nexport const defaultLogLevel = LogLevel.LOG;\nexport const allLogLevels = [\n LogLevel.TRACE,\n LogLevel.DEBUG,\n LogLevel.INFO,\n LogLevel.LOG,\n LogLevel.WARN,\n LogLevel.ERROR,\n];\n//# sourceMappingURL=logLevels.js.map","import { genShortID, unknownString } from '@grafana/faro-core';\nimport { getItem, setItem, webStorageType } from '../../utils';\nimport { NAVIGATION_ID_STORAGE_KEY } from '../instrumentationConstants';\nimport { NAVIGATION_ENTRY } from './performanceConstants';\nimport { createFaroNavigationTiming, entryUrlIsIgnored, getSpanContextFromServerTiming } from './performanceUtils';\nexport function getNavigationTimings(pushEvent, ignoredUrls) {\n let faroNavigationEntryResolve;\n const faroNavigationEntryPromise = new Promise((resolve) => {\n faroNavigationEntryResolve = resolve;\n });\n const observer = new PerformanceObserver((observedEntries) => {\n var _a;\n const [navigationEntryRaw] = observedEntries.getEntries();\n if (navigationEntryRaw == null || entryUrlIsIgnored(ignoredUrls, navigationEntryRaw.name)) {\n return;\n }\n const navEntryJson = navigationEntryRaw.toJSON();\n let spanContext = getSpanContextFromServerTiming(navEntryJson === null || navEntryJson === void 0 ? void 0 : navEntryJson.serverTiming);\n const faroPreviousNavigationId = (_a = getItem(NAVIGATION_ID_STORAGE_KEY, webStorageType.session)) !== null && _a !== void 0 ? _a : unknownString;\n const faroNavigationEntry = Object.assign(Object.assign({}, createFaroNavigationTiming(navEntryJson)), { faroNavigationId: genShortID(), faroPreviousNavigationId });\n setItem(NAVIGATION_ID_STORAGE_KEY, faroNavigationEntry.faroNavigationId, webStorageType.session);\n pushEvent('faro.performance.navigation', faroNavigationEntry, undefined, {\n spanContext,\n timestampOverwriteMs: performance.timeOrigin + navEntryJson.startTime,\n });\n faroNavigationEntryResolve(faroNavigationEntry);\n });\n observer.observe({\n type: NAVIGATION_ENTRY,\n buffered: true,\n });\n return faroNavigationEntryPromise;\n}\n//# sourceMappingURL=navigation.js.map","export const defaultLogArgsSerializer = (args) => args\n .map((arg) => {\n try {\n return String(arg);\n }\n catch (err) {\n return '';\n }\n})\n .join(' ');\n//# sourceMappingURL=const.js.map","import { allLogLevels, BaseInstrumentation, defaultLogArgsSerializer, LogLevel, VERSION } from '@grafana/faro-core';\nexport class ConsoleInstrumentation extends BaseInstrumentation {\n constructor(options = {}) {\n super();\n this.options = options;\n this.name = '@grafana/faro-web-sdk:instrumentation-console';\n this.version = VERSION;\n }\n initialize() {\n this.logDebug('Initializing\\n', this.options);\n this.options = Object.assign(Object.assign({}, this.options), this.config.consoleInstrumentation);\n allLogLevels\n .filter((level) => { var _a, _b; return !((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.disabledLevels) !== null && _b !== void 0 ? _b : ConsoleInstrumentation.defaultDisabledLevels).includes(level); })\n .forEach((level) => {\n /* eslint-disable-next-line no-console */\n console[level] = (...args) => {\n var _a;\n try {\n if (level === LogLevel.ERROR && !((_a = this.options) === null || _a === void 0 ? void 0 : _a.consoleErrorAsLog)) {\n this.api.pushError(new Error('console.error: ' + defaultLogArgsSerializer(args)));\n }\n else {\n this.api.pushLog(args, { level });\n }\n }\n catch (err) {\n this.logError(err);\n }\n finally {\n this.unpatchedConsole[level](...args);\n }\n };\n });\n }\n}\nConsoleInstrumentation.defaultDisabledLevels = [LogLevel.DEBUG, LogLevel.TRACE, LogLevel.LOG];\n//# sourceMappingURL=instrumentation.js.map","import { ConsoleInstrumentation, ErrorsInstrumentation, PerformanceInstrumentation, SessionInstrumentation, ViewInstrumentation, WebVitalsInstrumentation, } from '../instrumentations';\nexport function getWebInstrumentations(options = {}) {\n const instrumentations = [\n new ErrorsInstrumentation(),\n new WebVitalsInstrumentation(),\n new SessionInstrumentation(),\n new ViewInstrumentation(),\n ];\n if (options.enablePerformanceInstrumentation !== false) {\n // unshift to ensure that initialization starts before the other instrumentations\n instrumentations.unshift(new PerformanceInstrumentation());\n }\n if (options.captureConsole !== false) {\n instrumentations.push(new ConsoleInstrumentation({\n disabledLevels: options.captureConsoleDisabledLevels,\n }));\n }\n return instrumentations;\n}\n//# sourceMappingURL=getWebInstrumentations.js.map","export var TransportItemType;\n(function (TransportItemType) {\n TransportItemType[\"EXCEPTION\"] = \"exception\";\n TransportItemType[\"LOG\"] = \"log\";\n TransportItemType[\"MEASUREMENT\"] = \"measurement\";\n TransportItemType[\"TRACE\"] = \"trace\";\n TransportItemType[\"EVENT\"] = \"event\";\n})(TransportItemType || (TransportItemType = {}));\nexport const transportItemTypeToBodyKey = {\n [TransportItemType.EXCEPTION]: 'exceptions',\n [TransportItemType.LOG]: 'logs',\n [TransportItemType.MEASUREMENT]: 'measurements',\n [TransportItemType.TRACE]: 'traces',\n [TransportItemType.EVENT]: 'events',\n};\n//# sourceMappingURL=const.js.map","import { isArray, isObject, isTypeof } from './is';\n// This function was inspired by fast-deep-equal\n// fast-deep-equal has issues with Rollup and also it checks for some edge cases that we don't need\nexport function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n // Using isTypeOf instead of isNumber as isNumber also checks against NaN\n if (isTypeof(a, 'number') && isNaN(a)) {\n return isTypeof(b, 'number') && isNaN(b);\n }\n const aIsArray = isArray(a);\n const bIsArray = isArray(b);\n if (aIsArray !== bIsArray) {\n return false;\n }\n if (aIsArray && bIsArray) {\n const length = a.length;\n if (length !== b.length) {\n return false;\n }\n for (let idx = length; idx-- !== 0;) {\n if (!deepEqual(a[idx], b[idx])) {\n return false;\n }\n }\n return true;\n }\n const aIsObject = isObject(a);\n const bIsObject = isObject(b);\n if (aIsObject !== bIsObject) {\n return false;\n }\n if (a && b && aIsObject && bIsObject) {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const aLength = aKeys.length;\n const bLength = bKeys.length;\n if (aLength !== bLength) {\n return false;\n }\n for (let aKey of aKeys) {\n if (!bKeys.includes(aKey)) {\n return false;\n }\n }\n for (let aKey of aKeys) {\n if (!deepEqual(a[aKey], b[aKey])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=deepEqual.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isArray, isError, isNull, isObject } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { defaultExceptionType } from './const';\nlet stacktraceParser;\nexport function initializeExceptionsAPI(_unpatchedConsole, internalLogger, config, metas, transports, tracesApi) {\n var _a;\n internalLogger.debug('Initializing exceptions API');\n let lastPayload = null;\n stacktraceParser = (_a = config.parseStacktrace) !== null && _a !== void 0 ? _a : stacktraceParser;\n const changeStacktraceParser = (newStacktraceParser) => {\n internalLogger.debug('Changing stacktrace parser');\n stacktraceParser = newStacktraceParser !== null && newStacktraceParser !== void 0 ? newStacktraceParser : stacktraceParser;\n };\n const getStacktraceParser = () => stacktraceParser;\n const pushError = (error, { skipDedupe, stackFrames, type, context, spanContext, timestampOverwriteMs } = {}) => {\n type = type || error.name || defaultExceptionType;\n const item = {\n meta: metas.value,\n payload: {\n type,\n value: error.message,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n context: Object.assign(Object.assign({}, parseCause(error)), (context !== null && context !== void 0 ? context : {})),\n },\n type: TransportItemType.EXCEPTION,\n };\n stackFrames = stackFrames !== null && stackFrames !== void 0 ? stackFrames : (error.stack ? stacktraceParser === null || stacktraceParser === void 0 ? void 0 : stacktraceParser(error).frames : undefined);\n if (stackFrames === null || stackFrames === void 0 ? void 0 : stackFrames.length) {\n item.payload.stacktrace = {\n frames: stackFrames,\n };\n }\n const testingPayload = {\n type: item.payload.type,\n value: item.payload.value,\n stackTrace: item.payload.stacktrace,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping error push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing exception\\n', item);\n transports.execute(item);\n };\n changeStacktraceParser(config.parseStacktrace);\n return {\n changeStacktraceParser,\n getStacktraceParser,\n pushError,\n };\n}\nfunction parseCause(error) {\n let cause = error.cause;\n if (isError(cause)) {\n cause = error.cause.toString();\n // typeof operator on null returns \"object\". This is a well-known quirk in JavaScript and is considered a bug that cannot be fixed due to backward compatibility issues.\n // MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof#typeof_null\n }\n else if (cause !== null && (isObject(error.cause) || isArray(error.cause))) {\n cause = JSON.stringify(error.cause);\n }\n else if (cause != null) {\n cause = error.cause.toString();\n }\n return cause == null ? {} : { cause };\n}\n//# sourceMappingURL=initialize.js.map","import { initializeEventsAPI } from './events';\nimport { initializeExceptionsAPI } from './exceptions';\nimport { initializeLogsAPI } from './logs';\nimport { initializeMeasurementsAPI } from './measurements';\nimport { initializeMetaAPI } from './meta';\nimport { initializeTracesAPI } from './traces';\nexport function initializeAPI(unpatchedConsole, internalLogger, config, metas, transports) {\n internalLogger.debug('Initializing API');\n const tracesApi = initializeTracesAPI(unpatchedConsole, internalLogger, config, metas, transports);\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, tracesApi), initializeExceptionsAPI(unpatchedConsole, internalLogger, config, metas, transports, tracesApi)), initializeMetaAPI(unpatchedConsole, internalLogger, config, metas, transports)), initializeLogsAPI(unpatchedConsole, internalLogger, config, metas, transports, tracesApi)), initializeMeasurementsAPI(unpatchedConsole, internalLogger, config, metas, transports, tracesApi)), initializeEventsAPI(unpatchedConsole, internalLogger, config, metas, transports, tracesApi));\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nexport function initializeTracesAPI(_unpatchedConsole, internalLogger, _config, metas, transports) {\n internalLogger.debug('Initializing traces API');\n let otel = undefined;\n const initOTEL = (trace, context) => {\n internalLogger.debug('Initializing OpenTelemetry');\n otel = {\n trace,\n context,\n };\n };\n const getTraceContext = () => {\n const ctx = otel === null || otel === void 0 ? void 0 : otel.trace.getSpanContext(otel.context.active());\n return !ctx\n ? undefined\n : {\n trace_id: ctx.traceId,\n span_id: ctx.spanId,\n };\n };\n const pushTraces = (payload) => {\n try {\n const item = {\n type: TransportItemType.TRACE,\n payload,\n meta: metas.value,\n };\n internalLogger.debug('Pushing trace\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing trace\\n', err);\n }\n };\n const getOTEL = () => otel;\n const isOTELInitialized = () => !!otel;\n return {\n getOTEL,\n getTraceContext,\n initOTEL,\n isOTELInitialized,\n pushTraces,\n };\n}\n//# sourceMappingURL=initialize.js.map","export function initializeMetaAPI(_unpatchedConsole, internalLogger, _config, metas, _transports) {\n internalLogger.debug('Initializing meta API');\n let metaSession = undefined;\n let metaUser = undefined;\n let metaView = undefined;\n const setUser = (user) => {\n if (metaUser) {\n metas.remove(metaUser);\n }\n metaUser = {\n user,\n };\n metas.add(metaUser);\n };\n const setSession = (session) => {\n if (metaSession) {\n metas.remove(metaSession);\n }\n metaSession = {\n session,\n };\n metas.add(metaSession);\n };\n const getSession = () => metas.value.session;\n const setView = (view) => {\n var _a;\n if (((_a = metaView === null || metaView === void 0 ? void 0 : metaView.view) === null || _a === void 0 ? void 0 : _a.name) === (view === null || view === void 0 ? void 0 : view.name)) {\n return;\n }\n const previousView = metaView;\n metaView = {\n view,\n };\n metas.add(metaView);\n if (previousView) {\n metas.remove(previousView);\n }\n };\n const getView = () => metas.value.view;\n return {\n setUser,\n resetUser: setUser,\n setSession,\n resetSession: setSession,\n getSession,\n setView,\n getView,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, defaultLogLevel, getCurrentTimestamp, isNull } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { defaultLogArgsSerializer } from './const';\nexport function initializeLogsAPI(_unpatchedConsole, internalLogger, config, metas, transports, tracesApi) {\n var _a;\n internalLogger.debug('Initializing logs API');\n let lastPayload = null;\n const logArgsSerializer = (_a = config.logArgsSerializer) !== null && _a !== void 0 ? _a : defaultLogArgsSerializer;\n const pushLog = (args, { context, level, skipDedupe, spanContext, timestampOverwriteMs } = {}) => {\n try {\n const item = {\n type: TransportItemType.LOG,\n payload: {\n message: logArgsSerializer(args),\n level: level !== null && level !== void 0 ? level : defaultLogLevel,\n context: context !== null && context !== void 0 ? context : {},\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n },\n meta: metas.value,\n };\n const testingPayload = {\n message: item.payload.message,\n level: item.payload.level,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping log push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing log\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing log\\n', err);\n }\n };\n return {\n pushLog,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isNull } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nexport function initializeMeasurementsAPI(_unpatchedConsole, internalLogger, config, metas, transports, tracesApi) {\n internalLogger.debug('Initializing measurements API');\n let lastPayload = null;\n const pushMeasurement = (payload, { skipDedupe, context, spanContext, timestampOverwriteMs } = {}) => {\n try {\n const item = {\n type: TransportItemType.MEASUREMENT,\n payload: Object.assign(Object.assign({}, payload), { trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(), timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(), context: context !== null && context !== void 0 ? context : {} }),\n meta: metas.value,\n };\n const testingPayload = {\n type: item.payload.type,\n values: item.payload.values,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping measurement push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing measurement\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing measurement\\n', err);\n }\n };\n return {\n pushMeasurement,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isNull } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nexport function initializeEventsAPI(_unpatchedConsole, internalLogger, config, metas, transports, tracesApi) {\n let lastPayload = null;\n const pushEvent = (name, attributes, domain, { skipDedupe, spanContext, timestampOverwriteMs } = {}) => {\n try {\n const item = {\n meta: metas.value,\n payload: {\n name,\n domain: domain !== null && domain !== void 0 ? domain : config.eventDomain,\n attributes,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n },\n type: TransportItemType.EVENT,\n };\n const testingPayload = {\n name: item.payload.name,\n attributes: item.payload.attributes,\n domain: item.payload.domain,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping event push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing event\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing event', err);\n }\n };\n return {\n pushEvent,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { defaultUnpatchedConsole } from '../unpatchedConsole';\nimport { noop } from '../utils';\nimport { defaultInternalLogger, defaultInternalLoggerLevel, InternalLoggerLevel } from './const';\nexport function createInternalLogger(unpatchedConsole = defaultUnpatchedConsole, internalLoggerLevel = defaultInternalLoggerLevel) {\n const internalLogger = defaultInternalLogger;\n if (internalLoggerLevel > InternalLoggerLevel.OFF) {\n internalLogger.error =\n internalLoggerLevel >= InternalLoggerLevel.ERROR\n ? function (...args) {\n unpatchedConsole.error(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.warn =\n internalLoggerLevel >= InternalLoggerLevel.WARN\n ? function (...args) {\n unpatchedConsole.warn(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.info =\n internalLoggerLevel >= InternalLoggerLevel.INFO\n ? function (...args) {\n unpatchedConsole.info(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.debug =\n internalLoggerLevel >= InternalLoggerLevel.VERBOSE\n ? function (...args) {\n unpatchedConsole.debug(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n }\n return internalLogger;\n}\n//# sourceMappingURL=createInternalLogger.js.map","import { defaultInternalLogger } from './const';\nimport { createInternalLogger } from './createInternalLogger';\nexport let internalLogger = defaultInternalLogger;\nexport function initializeInternalLogger(unpatchedConsole, config) {\n internalLogger = createInternalLogger(unpatchedConsole, config.internalLoggerLevel);\n return internalLogger;\n}\n//# sourceMappingURL=initialize.js.map","const DEFAULT_SEND_TIMEOUT_MS = 250;\nconst DEFAULT_BATCH_ITEM_LIMIT = 50;\nexport class BatchExecutor {\n constructor(sendFn, options) {\n var _a, _b;\n this.signalBuffer = [];\n this.itemLimit = (_a = options === null || options === void 0 ? void 0 : options.itemLimit) !== null && _a !== void 0 ? _a : DEFAULT_BATCH_ITEM_LIMIT;\n this.sendTimeout = (_b = options === null || options === void 0 ? void 0 : options.sendTimeout) !== null && _b !== void 0 ? _b : DEFAULT_SEND_TIMEOUT_MS;\n this.paused = (options === null || options === void 0 ? void 0 : options.paused) || false;\n this.sendFn = sendFn;\n this.flushInterval = -1;\n if (!this.paused) {\n this.start();\n }\n // Send batched/buffered data when user navigates to new page, switches or closes the tab, minimizes or closes the browser.\n // If on mobile, it also sends data if user switches from the browser to a different app.\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'hidden') {\n this.flush();\n }\n });\n }\n addItem(item) {\n if (this.paused) {\n return;\n }\n this.signalBuffer.push(item);\n if (this.signalBuffer.length >= this.itemLimit) {\n this.flush();\n }\n }\n start() {\n this.paused = false;\n if (this.sendTimeout > 0) {\n this.flushInterval = window.setInterval(() => this.flush(), this.sendTimeout);\n }\n }\n pause() {\n this.paused = true;\n clearInterval(this.flushInterval);\n }\n groupItems(items) {\n const itemMap = new Map();\n items.forEach((item) => {\n const metaKey = JSON.stringify(item.meta);\n let currentItems = itemMap.get(metaKey);\n if (currentItems === undefined) {\n currentItems = [item];\n }\n else {\n currentItems = [...currentItems, item];\n }\n itemMap.set(metaKey, currentItems);\n });\n return Array.from(itemMap.values());\n }\n flush() {\n if (this.paused || this.signalBuffer.length === 0) {\n return;\n }\n const itemGroups = this.groupItems(this.signalBuffer);\n itemGroups.forEach(this.sendFn);\n this.signalBuffer = [];\n }\n}\n//# sourceMappingURL=batchExecutor.js.map","import { isString } from '../utils';\nimport { BatchExecutor } from './batchExecutor';\nimport { TransportItemType } from './const';\nexport function shouldIgnoreEvent(patterns, msg) {\n return patterns.some((pattern) => {\n return isString(pattern) ? msg.includes(pattern) : !!msg.match(pattern);\n });\n}\nexport function createBeforeSendHookFromIgnorePatterns(patterns) {\n return (item) => {\n if (item.type === TransportItemType.EXCEPTION && item.payload) {\n const evt = item.payload;\n const msg = `${evt.type}: ${evt.value}`;\n if (shouldIgnoreEvent(patterns, msg)) {\n return null;\n }\n }\n return item;\n };\n}\nexport function initializeTransports(unpatchedConsole, internalLogger, config, metas) {\n var _a;\n internalLogger.debug('Initializing transports');\n const transports = [];\n let paused = config.paused;\n let beforeSendHooks = [];\n const add = (...newTransports) => {\n internalLogger.debug('Adding transports');\n newTransports.forEach((newTransport) => {\n internalLogger.debug(`Adding \"${newTransport.name}\" transport`);\n const exists = transports.some((existingTransport) => existingTransport === newTransport);\n if (exists) {\n internalLogger.warn(`Transport ${newTransport.name} is already added`);\n return;\n }\n newTransport.unpatchedConsole = unpatchedConsole;\n newTransport.internalLogger = internalLogger;\n newTransport.config = config;\n newTransport.metas = metas;\n transports.push(newTransport);\n });\n };\n const addBeforeSendHooks = (...newBeforeSendHooks) => {\n internalLogger.debug('Adding beforeSendHooks\\n', beforeSendHooks);\n newBeforeSendHooks.forEach((beforeSendHook) => {\n if (beforeSendHook) {\n beforeSendHooks.push(beforeSendHook);\n }\n });\n };\n const addIgnoreErrorsPatterns = (...ignoreErrorsPatterns) => {\n internalLogger.debug('Adding ignoreErrorsPatterns\\n', ignoreErrorsPatterns);\n ignoreErrorsPatterns.forEach((ignoreErrorsPattern) => {\n if (ignoreErrorsPattern) {\n beforeSendHooks.push(createBeforeSendHookFromIgnorePatterns(ignoreErrorsPattern));\n }\n });\n };\n const applyBeforeSendHooks = (items) => {\n let filteredItems = items;\n for (const hook of beforeSendHooks) {\n const modified = filteredItems.map(hook).filter(Boolean);\n if (modified.length === 0) {\n return [];\n }\n filteredItems = modified;\n }\n return filteredItems;\n };\n const batchedSend = (items) => {\n const filteredItems = applyBeforeSendHooks(items);\n if (filteredItems.length === 0) {\n return;\n }\n for (const transport of transports) {\n internalLogger.debug(`Transporting item using ${transport.name}\\n`, filteredItems);\n if (transport.isBatched()) {\n transport.send(filteredItems);\n }\n }\n };\n const instantSend = (item) => {\n var _a, _b;\n // prevent all beforeSend hooks being executed twice if batching is enabled.\n if (((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) && transports.every((transport) => transport.isBatched())) {\n return;\n }\n const [filteredItem] = applyBeforeSendHooks([item]);\n if (filteredItem === undefined) {\n return;\n }\n for (const transport of transports) {\n internalLogger.debug(`Transporting item using ${transport.name}\\n`, filteredItem);\n if (!transport.isBatched()) {\n transport.send(filteredItem);\n }\n else if (!((_b = config.batching) === null || _b === void 0 ? void 0 : _b.enabled)) {\n transport.send([filteredItem]);\n }\n }\n };\n let batchExecutor;\n if ((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) {\n batchExecutor = new BatchExecutor(batchedSend, {\n sendTimeout: config.batching.sendTimeout,\n itemLimit: config.batching.itemLimit,\n paused,\n });\n }\n // Send a signal to the appropriate transports\n //\n // 1. If SDK is paused, early return\n // 2. If batching is not enabled send the signal to all transports\n // instantly.\n // 3i. If batching is enabled, enqueue the signal\n // 3ii. Send the signal instantly to all un-batched transports\n const execute = (item) => {\n var _a;\n if (paused) {\n return;\n }\n if ((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) {\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.addItem(item);\n }\n instantSend(item);\n };\n const getBeforeSendHooks = () => [...beforeSendHooks];\n const isPaused = () => paused;\n const pause = () => {\n internalLogger.debug('Pausing transports');\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.pause();\n paused = true;\n };\n const remove = (...transportsToRemove) => {\n internalLogger.debug('Removing transports');\n transportsToRemove.forEach((transportToRemove) => {\n internalLogger.debug(`Removing \"${transportToRemove.name}\" transport`);\n const existingTransportIndex = transports.indexOf(transportToRemove);\n if (existingTransportIndex === -1) {\n internalLogger.warn(`Transport \"${transportToRemove.name}\" is not added`);\n return;\n }\n transports.splice(existingTransportIndex, 1);\n });\n };\n const removeBeforeSendHooks = (...beforeSendHooksToRemove) => {\n beforeSendHooks.filter((beforeSendHook) => !beforeSendHooksToRemove.includes(beforeSendHook));\n };\n const unpause = () => {\n internalLogger.debug('Unpausing transports');\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.start();\n paused = false;\n };\n return {\n add,\n addBeforeSendHooks,\n addIgnoreErrorsPatterns,\n getBeforeSendHooks,\n execute,\n isPaused,\n pause,\n remove,\n removeBeforeSendHooks,\n get transports() {\n return [...transports];\n },\n unpause,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { defaultUnpatchedConsole } from './const';\nexport let unpatchedConsole = defaultUnpatchedConsole;\nexport function initializeUnpatchedConsole(config) {\n var _a;\n unpatchedConsole = (_a = config.unpatchedConsole) !== null && _a !== void 0 ? _a : unpatchedConsole;\n return unpatchedConsole;\n}\n//# sourceMappingURL=initialize.js.map","import { initializeAPI } from './api';\nimport { initializeInstrumentations, registerInitialInstrumentations } from './instrumentations';\nimport { initializeInternalLogger } from './internalLogger';\nimport { initializeMetas, registerInitialMetas } from './metas';\nimport { isInternalFaroOnGlobalObject, registerFaro } from './sdk';\nimport { initializeTransports, registerInitialTransports } from './transports';\nimport { initializeUnpatchedConsole } from './unpatchedConsole';\nexport function initializeFaro(config) {\n const unpatchedConsole = initializeUnpatchedConsole(config);\n const internalLogger = initializeInternalLogger(unpatchedConsole, config);\n if (isInternalFaroOnGlobalObject() && !config.isolate) {\n internalLogger.error('Faro is already registered. Either add instrumentations, transports etc. to the global faro instance or use the \"isolate\" property');\n return undefined;\n }\n internalLogger.debug('Initializing');\n // Initializing the APIs\n const metas = initializeMetas(unpatchedConsole, internalLogger, config);\n const transports = initializeTransports(unpatchedConsole, internalLogger, config, metas);\n const api = initializeAPI(unpatchedConsole, internalLogger, config, metas, transports);\n const instrumentations = initializeInstrumentations(unpatchedConsole, internalLogger, config, metas, transports, api);\n const faro = registerFaro(unpatchedConsole, internalLogger, config, metas, transports, api, instrumentations);\n // make sure Faro is initialized before registering default metas, instrumentations, transports etc.\n registerInitialMetas(faro);\n registerInitialTransports(faro);\n registerInitialInstrumentations(faro);\n return faro;\n}\n//# sourceMappingURL=initialize.js.map","import { isFunction } from '../utils';\nexport function initializeMetas(_unpatchedConsole, internalLogger, _config) {\n let items = [];\n let listeners = [];\n const getValue = () => items.reduce((acc, item) => Object.assign(acc, isFunction(item) ? item() : item), {});\n const notifyListeners = () => {\n if (listeners.length) {\n const value = getValue();\n listeners.forEach((listener) => listener(value));\n }\n };\n const add = (...newItems) => {\n internalLogger.debug('Adding metas\\n', newItems);\n items.push(...newItems);\n notifyListeners();\n };\n const remove = (...itemsToRemove) => {\n internalLogger.debug('Removing metas\\n', itemsToRemove);\n items = items.filter((currentItem) => !itemsToRemove.includes(currentItem));\n notifyListeners();\n };\n const addListener = (listener) => {\n internalLogger.debug('Adding metas listener\\n', listener);\n listeners.push(listener);\n };\n const removeListener = (listener) => {\n internalLogger.debug('Removing metas listener\\n', listener);\n listeners = listeners.filter((currentListener) => currentListener !== listener);\n };\n return {\n add,\n remove,\n addListener,\n removeListener,\n get value() {\n return getValue();\n },\n };\n}\n//# sourceMappingURL=initialize.js.map","export function initializeInstrumentations(unpatchedConsole, internalLogger, config, metas, transports, api) {\n internalLogger.debug('Initializing instrumentations');\n const instrumentations = [];\n const add = (...newInstrumentations) => {\n internalLogger.debug('Adding instrumentations');\n newInstrumentations.forEach((newInstrumentation) => {\n internalLogger.debug(`Adding \"${newInstrumentation.name}\" instrumentation`);\n const exists = instrumentations.some((existingInstrumentation) => existingInstrumentation.name === newInstrumentation.name);\n if (exists) {\n internalLogger.warn(`Instrumentation ${newInstrumentation.name} is already added`);\n return;\n }\n newInstrumentation.unpatchedConsole = unpatchedConsole;\n newInstrumentation.internalLogger = internalLogger;\n newInstrumentation.config = config;\n newInstrumentation.metas = metas;\n newInstrumentation.transports = transports;\n newInstrumentation.api = api;\n instrumentations.push(newInstrumentation);\n newInstrumentation.initialize();\n });\n };\n const remove = (...instrumentationsToRemove) => {\n internalLogger.debug('Removing instrumentations');\n instrumentationsToRemove.forEach((instrumentationToRemove) => {\n var _a, _b;\n internalLogger.debug(`Removing \"${instrumentationToRemove.name}\" instrumentation`);\n const existingInstrumentationIndex = instrumentations.reduce((acc, existingInstrumentation, existingTransportIndex) => {\n if (acc === null && existingInstrumentation.name === instrumentationToRemove.name) {\n return existingTransportIndex;\n }\n return null;\n }, null);\n if (!existingInstrumentationIndex) {\n internalLogger.warn(`Instrumentation \"${instrumentationToRemove.name}\" is not added`);\n return;\n }\n (_b = (_a = instrumentations[existingInstrumentationIndex]).destroy) === null || _b === void 0 ? void 0 : _b.call(_a);\n instrumentations.splice(existingInstrumentationIndex, 1);\n });\n };\n return {\n add,\n get instrumentations() {\n return [...instrumentations];\n },\n remove,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { getBundleId } from '../utils/sourceMaps';\nimport { VERSION } from '../version';\nexport function registerInitialMetas(faro) {\n var _a, _b;\n const initial = {\n sdk: {\n version: VERSION,\n },\n app: {\n bundleId: faro.config.app.name && getBundleId(faro.config.app.name),\n },\n };\n const session = (_a = faro.config.sessionTracking) === null || _a === void 0 ? void 0 : _a.session;\n if (session) {\n faro.api.setSession(session);\n }\n if (faro.config.app) {\n initial.app = Object.assign(Object.assign({}, faro.config.app), initial.app);\n }\n if (faro.config.user) {\n initial.user = faro.config.user;\n }\n if (faro.config.view) {\n initial.view = faro.config.view;\n }\n faro.metas.add(initial, ...((_b = faro.config.metas) !== null && _b !== void 0 ? _b : []));\n}\n//# sourceMappingURL=registerInitial.js.map","import { globalObject } from '../globalObject';\nexport function getBundleId(appName) {\n return globalObject === null || globalObject === void 0 ? void 0 : globalObject[`__faroBundleId_${appName}`];\n}\n//# sourceMappingURL=sourceMaps.js.map","export function registerInitialTransports(faro) {\n faro.transports.add(...faro.config.transports);\n faro.transports.addBeforeSendHooks(faro.config.beforeSend);\n faro.transports.addIgnoreErrorsPatterns(faro.config.ignoreErrors);\n}\n//# sourceMappingURL=registerInitial.js.map","export function registerInitialInstrumentations(faro) {\n faro.instrumentations.add(...faro.config.instrumentations);\n}\n//# sourceMappingURL=registerInitial.js.map","export const defaultGlobalObjectKey = 'faro';\nexport const defaultBatchingConfig = {\n enabled: true,\n sendTimeout: 250,\n itemLimit: 50,\n};\n//# sourceMappingURL=const.js.map","import { getStackFramesFromError } from './getStackFramesFromError';\nexport function parseStacktrace(error) {\n return {\n frames: getStackFramesFromError(error),\n };\n}\n//# sourceMappingURL=parseStacktrace.js.map","import { UAParser } from 'ua-parser-js';\nimport { unknownString } from '@grafana/faro-core';\nexport const browserMeta = () => {\n const parser = new UAParser();\n const { name, version } = parser.getBrowser();\n const { name: osName, version: osVersion } = parser.getOS();\n const userAgent = parser.getUA();\n const language = navigator.language;\n const mobile = navigator.userAgent.includes('Mobi');\n const brands = getBrands();\n return {\n browser: {\n name: name !== null && name !== void 0 ? name : unknownString,\n version: version !== null && version !== void 0 ? version : unknownString,\n os: `${osName !== null && osName !== void 0 ? osName : unknownString} ${osVersion !== null && osVersion !== void 0 ? osVersion : unknownString}`,\n userAgent: userAgent !== null && userAgent !== void 0 ? userAgent : unknownString,\n language: language !== null && language !== void 0 ? language : unknownString,\n mobile,\n brands: brands !== null && brands !== void 0 ? brands : unknownString,\n viewportWidth: `${window.innerWidth}`,\n viewportHeight: `${window.innerHeight}`,\n },\n };\n function getBrands() {\n if (!name || !version) {\n return undefined;\n }\n if ('userAgentData' in navigator && navigator.userAgentData) {\n // userAgentData in experimental (only Chrome supports it) thus TS does not ship the respective type declarations\n return navigator.userAgentData.brands;\n }\n return undefined;\n }\n};\n//# sourceMappingURL=meta.js.map","import { browserMeta } from './browser';\nimport { pageMeta } from './page';\nexport const defaultMetas = [browserMeta, pageMeta];\n//# sourceMappingURL=const.js.map","export const pageMeta = () => ({\n page: {\n url: location.href,\n },\n});\n//# sourceMappingURL=meta.js.map","export const k6Meta = () => {\n const k6Properties = window.k6;\n return {\n k6: Object.assign({ \n // we only add the k6 meta if Faro is running inside a k6 environment, so this is always true\n isK6Browser: true }, ((k6Properties === null || k6Properties === void 0 ? void 0 : k6Properties.testRunId) && { testRunId: k6Properties === null || k6Properties === void 0 ? void 0 : k6Properties.testRunId })),\n };\n};\n//# sourceMappingURL=meta.js.map","import { BaseExtension } from '../extensions';\nexport class BaseTransport extends BaseExtension {\n isBatched() {\n return false;\n }\n getIgnoreUrls() {\n return [];\n }\n}\n//# sourceMappingURL=base.js.map","import { TransportItemType, transportItemTypeToBodyKey } from './const';\nexport function mergeResourceSpans(traces, resourceSpans) {\n var _a, _b;\n if (resourceSpans === undefined) {\n return traces;\n }\n if (traces === undefined) {\n return {\n resourceSpans,\n };\n }\n const currentResource = (_a = traces.resourceSpans) === null || _a === void 0 ? void 0 : _a[0];\n if (currentResource === undefined) {\n return traces;\n }\n const currentSpans = (currentResource === null || currentResource === void 0 ? void 0 : currentResource.scopeSpans) || [];\n const newSpans = ((_b = resourceSpans === null || resourceSpans === void 0 ? void 0 : resourceSpans[0]) === null || _b === void 0 ? void 0 : _b.scopeSpans) || [];\n return Object.assign(Object.assign({}, traces), { resourceSpans: [\n Object.assign(Object.assign({}, currentResource), { scopeSpans: [...currentSpans, ...newSpans] }),\n ] });\n}\nexport function getTransportBody(item) {\n let body = {\n meta: {},\n };\n if (item[0] !== undefined) {\n body.meta = item[0].meta;\n }\n item.forEach((currentItem) => {\n switch (currentItem.type) {\n case TransportItemType.LOG:\n case TransportItemType.EVENT:\n case TransportItemType.EXCEPTION:\n case TransportItemType.MEASUREMENT:\n const bk = transportItemTypeToBodyKey[currentItem.type];\n const signals = body[bk];\n body = Object.assign(Object.assign({}, body), { [bk]: signals === undefined ? [currentItem.payload] : [...signals, currentItem.payload] });\n break;\n case TransportItemType.TRACE:\n body = Object.assign(Object.assign({}, body), { traces: mergeResourceSpans(body.traces, currentItem.payload.resourceSpans) });\n break;\n }\n });\n return body;\n}\n//# sourceMappingURL=utils.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { BaseTransport, createPromiseBuffer, getTransportBody, noop, VERSION, } from '@grafana/faro-core';\nimport { getSessionManagerByConfig } from '../../instrumentations/session/sessionManager';\nimport { getUserSessionUpdater } from '../../instrumentations/session/sessionManager/sessionManagerUtils';\nconst DEFAULT_BUFFER_SIZE = 30;\nconst DEFAULT_CONCURRENCY = 5; // chrome supports 10 total, firefox 17\nconst DEFAULT_RATE_LIMIT_BACKOFF_MS = 5000;\nconst BEACON_BODY_SIZE_LIMIT = 60000;\nconst TOO_MANY_REQUESTS = 429;\nconst ACCEPTED = 202;\nexport class FetchTransport extends BaseTransport {\n constructor(options) {\n var _a, _b, _c, _d;\n super();\n this.options = options;\n this.name = '@grafana/faro-web-sdk:transport-fetch';\n this.version = VERSION;\n this.disabledUntil = new Date();\n this.rateLimitBackoffMs = (_a = options.defaultRateLimitBackoffMs) !== null && _a !== void 0 ? _a : DEFAULT_RATE_LIMIT_BACKOFF_MS;\n this.getNow = (_b = options.getNow) !== null && _b !== void 0 ? _b : (() => Date.now());\n this.promiseBuffer = createPromiseBuffer({\n size: (_c = options.bufferSize) !== null && _c !== void 0 ? _c : DEFAULT_BUFFER_SIZE,\n concurrency: (_d = options.concurrency) !== null && _d !== void 0 ? _d : DEFAULT_CONCURRENCY,\n });\n }\n send(items) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (this.disabledUntil > new Date(this.getNow())) {\n this.logWarn(`Dropping transport item due to too many requests. Backoff until ${this.disabledUntil}`);\n return Promise.resolve();\n }\n yield this.promiseBuffer.add(() => {\n const body = JSON.stringify(getTransportBody(items));\n const { url, requestOptions, apiKey } = this.options;\n const _a = requestOptions !== null && requestOptions !== void 0 ? requestOptions : {}, { headers } = _a, restOfRequestOptions = __rest(_a, [\"headers\"]);\n let sessionId;\n const sessionMeta = this.metas.value.session;\n if (sessionMeta != null) {\n sessionId = sessionMeta.id;\n }\n return fetch(url, Object.assign({ method: 'POST', headers: Object.assign(Object.assign(Object.assign({ 'Content-Type': 'application/json' }, (headers !== null && headers !== void 0 ? headers : {})), (apiKey ? { 'x-api-key': apiKey } : {})), (sessionId ? { 'x-faro-session-id': sessionId } : {})), body, keepalive: body.length <= BEACON_BODY_SIZE_LIMIT }, (restOfRequestOptions !== null && restOfRequestOptions !== void 0 ? restOfRequestOptions : {})))\n .then((response) => __awaiter(this, void 0, void 0, function* () {\n if (response.status === ACCEPTED) {\n const sessionExpired = response.headers.get('X-Faro-Session-Status') === 'invalid';\n if (sessionExpired) {\n this.extendFaroSession(this.config, this.logDebug);\n }\n }\n if (response.status === TOO_MANY_REQUESTS) {\n this.disabledUntil = this.getRetryAfterDate(response);\n this.logWarn(`Too many requests, backing off until ${this.disabledUntil}`);\n }\n // read the body so the connection can be closed\n response.text().catch(noop);\n return response;\n }))\n .catch((err) => {\n this.logError('Failed sending payload to the receiver\\n', JSON.parse(body), err);\n });\n });\n }\n catch (err) {\n this.logError(err);\n }\n });\n }\n getIgnoreUrls() {\n var _a;\n return [this.options.url].concat((_a = this.config.ignoreUrls) !== null && _a !== void 0 ? _a : []);\n }\n isBatched() {\n return true;\n }\n getRetryAfterDate(response) {\n const now = this.getNow();\n const retryAfterHeader = response.headers.get('Retry-After');\n if (retryAfterHeader) {\n const delay = Number(retryAfterHeader);\n if (!isNaN(delay)) {\n return new Date(delay * 1000 + now);\n }\n const date = Date.parse(retryAfterHeader);\n if (!isNaN(date)) {\n return new Date(date);\n }\n }\n return new Date(now + this.rateLimitBackoffMs);\n }\n extendFaroSession(config, logDebug) {\n const SessionExpiredString = `Session expired`;\n const sessionTrackingConfig = config.sessionTracking;\n if (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.enabled) {\n const { fetchUserSession, storeUserSession } = getSessionManagerByConfig(sessionTrackingConfig);\n getUserSessionUpdater({ fetchUserSession, storeUserSession })({ forceSessionExtend: true });\n logDebug(`${SessionExpiredString} created new session.`);\n }\n else {\n logDebug(`${SessionExpiredString}.`);\n }\n }\n}\n//# sourceMappingURL=transport.js.map","export function createPromiseBuffer(options) {\n const { size, concurrency } = options;\n const buffer = []; // pending, not-yet-started tasks\n let inProgress = 0; // counter for tasks currently in progress\n const work = () => {\n // if there's space for a task and buffer is not empty,\n // take one task from buffer and run it\n if (inProgress < concurrency && buffer.length) {\n const { producer, resolve, reject } = buffer.shift();\n inProgress++;\n producer().then((result) => {\n inProgress--;\n work();\n resolve(result);\n }, (reason) => {\n inProgress--;\n work();\n reject(reason);\n });\n }\n };\n const add = (promiseProducer) => {\n if (buffer.length + inProgress >= size) {\n throw new Error('Task buffer full');\n }\n return new Promise((resolve, reject) => {\n buffer.push({\n producer: promiseProducer,\n resolve,\n reject,\n });\n work();\n });\n };\n return {\n add,\n };\n}\n//# sourceMappingURL=promiseBuffer.js.map","import { initializeFaro as coreInit } from '@grafana/faro-core';\nimport { makeCoreConfig } from './config';\nexport function initializeFaro(config) {\n const coreConfig = makeCoreConfig(config);\n if (!coreConfig) {\n return undefined;\n }\n return coreInit(coreConfig);\n}\n//# sourceMappingURL=initialize.js.map","import { createInternalLogger, defaultBatchingConfig, defaultGlobalObjectKey, defaultInternalLoggerLevel, defaultLogArgsSerializer, defaultUnpatchedConsole, isObject, } from '@grafana/faro-core';\nimport { defaultEventDomain } from '../consts';\nimport { parseStacktrace } from '../instrumentations';\nimport { defaultSessionTrackingConfig } from '../instrumentations/session';\nimport { defaultMetas } from '../metas';\nimport { k6Meta } from '../metas/k6';\nimport { FetchTransport } from '../transports';\nimport { getWebInstrumentations } from './getWebInstrumentations';\nexport function makeCoreConfig(browserConfig) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n const transports = [];\n const internalLogger = createInternalLogger(browserConfig.unpatchedConsole, browserConfig.internalLoggerLevel);\n if (browserConfig.transports) {\n if (browserConfig.url || browserConfig.apiKey) {\n internalLogger.error('if \"transports\" is defined, \"url\" and \"apiKey\" should not be defined');\n }\n transports.push(...browserConfig.transports);\n }\n else if (browserConfig.url) {\n transports.push(new FetchTransport({\n url: browserConfig.url,\n apiKey: browserConfig.apiKey,\n }));\n }\n else {\n internalLogger.error('either \"url\" or \"transports\" must be defined');\n }\n function createMetas() {\n const initialMetas = defaultMetas;\n if (browserConfig.metas) {\n initialMetas.push(...browserConfig.metas);\n }\n const isK6BrowserSession = isObject(window.k6);\n if (isK6BrowserSession) {\n return [...initialMetas, k6Meta];\n }\n return initialMetas;\n }\n const config = {\n app: browserConfig.app,\n batching: Object.assign(Object.assign({}, defaultBatchingConfig), browserConfig.batching),\n dedupe: (_a = browserConfig.dedupe) !== null && _a !== void 0 ? _a : true,\n globalObjectKey: browserConfig.globalObjectKey || defaultGlobalObjectKey,\n instrumentations: (_b = browserConfig.instrumentations) !== null && _b !== void 0 ? _b : getWebInstrumentations(),\n internalLoggerLevel: (_c = browserConfig.internalLoggerLevel) !== null && _c !== void 0 ? _c : defaultInternalLoggerLevel,\n isolate: (_d = browserConfig.isolate) !== null && _d !== void 0 ? _d : false,\n logArgsSerializer: (_e = browserConfig.logArgsSerializer) !== null && _e !== void 0 ? _e : defaultLogArgsSerializer,\n metas: createMetas(),\n parseStacktrace,\n paused: (_f = browserConfig.paused) !== null && _f !== void 0 ? _f : false,\n preventGlobalExposure: (_g = browserConfig.preventGlobalExposure) !== null && _g !== void 0 ? _g : false,\n transports,\n unpatchedConsole: (_h = browserConfig.unpatchedConsole) !== null && _h !== void 0 ? _h : defaultUnpatchedConsole,\n beforeSend: browserConfig.beforeSend,\n eventDomain: (_j = browserConfig.eventDomain) !== null && _j !== void 0 ? _j : defaultEventDomain,\n ignoreErrors: browserConfig.ignoreErrors,\n // ignore cloud collector urls by default. These are URLs ending with /collect or /collect/ followed by alphanumeric characters.\n ignoreUrls: ((_k = browserConfig.ignoreUrls) !== null && _k !== void 0 ? _k : []).concat([/\\/collect(?:\\/[\\w]*)?$/]),\n sessionTracking: Object.assign(Object.assign({}, defaultSessionTrackingConfig), browserConfig.sessionTracking),\n user: browserConfig.user,\n view: browserConfig.view,\n trackResources: browserConfig.trackResources,\n trackWebVitalsAttribution: browserConfig.trackWebVitalsAttribution,\n consoleInstrumentation: browserConfig.consoleInstrumentation,\n };\n return config;\n}\n//# sourceMappingURL=makeCoreConfig.js.map","export const defaultEventDomain = 'browser';\n//# sourceMappingURL=consts.js.map","import { APIEvent, BrowserConfig, TransportItem, initializeFaro } from '@grafana/faro-web-sdk';\nimport { config } from '@grafana/runtime';\n\nexport enum FARO_ENV {\n DEV = 'dev',\n STAGING = 'staging',\n PROD = 'prod',\n}\n\nexport const getFaroEnv = (appUrl: string) => {\n switch (true) {\n case appUrl.endsWith('grafana-ops.net'):\n return FARO_ENV.STAGING;\n case appUrl.endsWith('grafana.net'):\n return FARO_ENV.PROD;\n case appUrl.endsWith('grafana-dev.net'):\n case appUrl.endsWith('localhost'):\n default:\n return FARO_ENV.DEV;\n }\n};\n\nexport function onBeforeSend(paths: string[], item: TransportItem): TransportItem | null {\n const isOnPluginPage = paths.some((path) => (item.meta.page?.url ?? '').indexOf(path) > 0);\n if (!isOnPluginPage) {\n return null;\n }\n\n return item;\n}\n\nexport function getAppName(pluginName: string, environment: string) {\n return `${pluginName}-${environment}`;\n}\n\ntype FaroConfig = Partial;\n\nexport function initFaro({\n version,\n paths,\n faroConfig,\n pluginName,\n getUrl,\n}: {\n version: string;\n paths: string[];\n faroConfig: FaroConfig;\n pluginName: string;\n getUrl: (environment: FARO_ENV) => string;\n}) {\n const environment = getFaroEnv(new URL(config.appUrl).hostname);\n initializeFaro({\n app: {\n name: getAppName(pluginName, environment),\n version,\n environment,\n },\n url: getUrl(environment),\n isolate: true,\n globalObjectKey: pluginName + '-faro',\n beforeSend: (item) => onBeforeSend(paths, item),\n user: {\n id: String(config.bootData.user.id),\n username: config.bootData.user.name,\n },\n ...faroConfig,\n });\n}\n","import React, { lazy, Suspense } from 'react';\n\nimport { AppPlugin, AppRootProps, PluginExtensionDataSourceConfigContext } from '@grafana/data';\nimport { getWebInstrumentations } from '@grafana/faro-web-sdk';\nimport { config } from '@grafana/runtime';\nimport { LoadingPlaceholder } from '@grafana/ui';\n\nimport { PRIVATE_NETWORKS_PATH } from 'consts';\nimport { AppJSONData } from 'feature/common/types/App';\nimport { FARO_ENV, initFaro } from 'feature/common/utils/faro';\nimport { isVersionGtOrEq } from 'feature/datasource-config/utils/version';\n\n// @ts-ignore\nimport { name, version } from '../package.json';\n\nconst LazyApp = lazy(() => import('./feature/common/components/App'));\n\nconst LazyDataSourceExtension = React.lazy(() => import('feature/datasource-config/components/DataSourceExtension'));\n\nconst App = (props: AppRootProps) => (\n }>\n \n \n);\ninitFaro({\n version,\n paths: [PRIVATE_NETWORKS_PATH],\n getUrl: (environment) => {\n switch (environment) {\n case FARO_ENV.DEV:\n return 'https://faro-collector-prod-us-central-0.grafana.net/collect/1bbded1e7fd5372f574bdb75ffad3930';\n case FARO_ENV.STAGING:\n return 'https://faro-collector-prod-us-central-0.grafana.net/collect/7e621c6b8b3a31c907b0fa165c8d25ca';\n case FARO_ENV.PROD:\n default:\n return 'https://faro-collector-prod-us-central-0.grafana.net/collect/63f0c68e559ee2063855baafd2a0be7c';\n }\n },\n faroConfig: {\n instrumentations: getWebInstrumentations(),\n },\n pluginName: name,\n});\n\nexport const plugin = new AppPlugin().setRootPage(App);\n\nconst DataSourceExtension = (props: { context: PluginExtensionDataSourceConfigContext }) => (\n }>\n \n \n);\n\nplugin.configureExtensionComponent &&\n isVersionGtOrEq(config.buildInfo.version, '10.4.0') &&\n plugin.configureExtensionComponent<{\n context: PluginExtensionDataSourceConfigContext;\n }>({\n title: 'PDC Datasource Config',\n description: 'Private data source connection settings',\n extensionPointId: 'grafana/datasources/config',\n component: DataSourceExtension,\n });\n"],"names":["inProgress","dataWebpackPrefix","Symbol","module","exports","getRawTag","objectToString","symToStringTag","toStringTag","undefined","value","Object","freeGlobal","g","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","isOwn","call","tag","unmasked","e","result","freeSelf","self","root","Function","baseGetTag","isObjectLike","PRIVATE_NETWORKS_PATH","GCLOUD_PDC_SIGNING_TOKEN_PLACEHOLDER","PDC_DOCS_URL","PDC_SQL_CONN_DEFAULT_MAX_LIFETIME_SECONDS","PDC_CONN_MAX_LIFETIME_OVERRIDE_DATASOURCES","SortType","SORT_OPTIONS","label","versionPattern","SemVersion","isGtOrEq","version","compared","i","this","comparable","length","isValid","isNumber","major","minor","patch","constructor","meta","match","exec","Number","isVersionGtOrEq","a","b","window","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","SUFFIX_BROWSER","enumerize","arr","enums","toUpperCase","has","str1","str2","lowerize","indexOf","str","toLowerCase","trim","len","replace","substring","rgxMapper","ua","arrays","j","k","p","q","matches","regex","props","test","strMapper","map","windowsVersionMap","regexes","browser","cpu","device","engine","EDGE","os","UAParser","extensions","getResult","_navigator","navigator","_ua","userAgent","_uach","userAgentData","_rgxmap","mergedRegexes","concat","extend","_isSelfNav","getBrowser","_browser","split","brave","isBrave","getCPU","_cpu","getDevice","_device","mobile","standalone","maxTouchPoints","getEngine","_engine","getOS","_os","platform","getUA","setUA","CPU","DEVICE","ENGINE","OS","$","jQuery","Zepto","parser","get","set","prop","__WEBPACK_EXTERNAL_MODULE__6089__","__WEBPACK_EXTERNAL_MODULE__7781__","__WEBPACK_EXTERNAL_MODULE__8531__","__WEBPACK_EXTERNAL_MODULE__2007__","__WEBPACK_EXTERNAL_MODULE__819__","__WEBPACK_EXTERNAL_MODULE__3241__","__WEBPACK_EXTERNAL_MODULE__1308__","__WEBPACK_EXTERNAL_MODULE__5959__","__WEBPACK_EXTERNAL_MODULE__8398__","__WEBPACK_EXTERNAL_MODULE__200__","__WEBPACK_EXTERNAL_MODULE__1159__","__WEBPACK_EXTERNAL_MODULE__7694__","__WEBPACK_EXTERNAL_MODULE__1269__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","loaded","__webpack_modules__","m","amdO","n","getter","__esModule","d","definition","key","o","defineProperty","enumerable","f","chunkId","Promise","all","keys","reduce","promises","u","globalThis","obj","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","location","origin","crossOrigin","integrity","sriHashes","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","type","target","head","appendChild","r","nmd","paths","children","installedChunks","installedChunkData","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","slice","lastIndexOf","InternalLoggerLevel","noop","defaultInternalLogger","debug","info","prefix","warn","defaultInternalLoggerLevel","ERROR","defaultUnpatchedConsole","assign","console","BaseExtension","unpatchedConsole","internalLogger","config","metas","logDebug","args","logInfo","logWarn","logError","BaseInstrumentation","super","arguments","api","transports","isTypeof","isToString","isInstanceOf","reference","err","isNull","isString","isNaN","isObject","isFunction","isArray","isEventDefined","Event","isErrorDefined","isError","valueTypeRegex","webkitLineRegex","webkitEvalRegex","webkitAddressAtString","firefoxLineRegex","firefoxEvalRegex","safariExtensionString","safariWebExtensionString","reactMinifiedRegex","buildStackFrame","filename","func","lineno","colno","stackFrame","href","function","getDataFromSafariExtensions","isSafariExtension","includes","isSafariWebExtension","getStackFramesFromError","lines","stacktrace","filter","_line","idx","stack","stackFrames","acc","line","parts","startsWith","submatch","columnNumber","String","getErrorDetails","evt","isDomErrorRes","isEventRes","isErrorEvent","isDomError","isDomException","isEvent","defaultExceptionType","registerOnerror","oldOnerror","source","eventIsString","initialStackFrame","_a","_b","groups","getValueAndTypeFromMessage","pushError","apply","registerOnunhandledrejection","addEventListener","reason","detail","isPrimitive","ErrorsInstrumentation","initialize","t","persisted","timeStamp","c","performance","getEntriesByType","responseStart","now","activationStart","prerendering","wasDiscarded","rating","delta","entries","Date","Math","floor","random","navigationType","PerformanceObserver","supportedEntryTypes","then","getEntries","observe","buffered","requestAnimationFrame","visibilityState","v","h","T","y","removeEventListener","E","firstHiddenTime","C","S","disconnect","startTime","max","reportAllChanges","L","A","I","P","M","interactionId","min","interactionCount","F","durationThreshold","D","x","Map","R","H","entryType","duration","latency","sort","splice","delete","O","requestIdleCallback","N","_","z","J","K","readyState","U","passive","capture","V","W","Z","X","cancelable","processingStart","Y","WebVitalsBasic","pushMeasurement","mapping","indicator","executor","metric","values","cls","hadRecentInput","takeRecords","fcp","fid","inp","PerformanceEventTiming","B","clear","lcp","once","ttfb","domInteractive","domContentLoadedEventStart","domComplete","nodeName","nodeType","classList","WeakMap","size","Set","nt","processingEnd","add","abs","renderTime","tt","et","it","at","ct","ut","st","dt","lt","mt","gt","pt","vt","ht","yt","Tt","eventTarget","eventType","eventTime","eventEntry","loadState","attribution","unknownString","faro","registerFaro","instrumentations","pause","unpause","isolate","configurable","writable","setInternalFaroOnGlobalObject","preventGlobalExposure","globalObjectKey","setFaroOnGlobalObject","webStorageType","isWebStorageAvailable","storage","testItem","setItem","removeItem","getItem","webStorageMechanism","isWebStorageTypeAvailable","isLocalStorageAvailable","isSessionStorageAvailable","NAVIGATION_ID_STORAGE_KEY","loadStateKey","timeToFirstByteKey","WebVitalsWithAttribution","corePushMeasurement","measureCLS","measureFCP","measureFID","measureINP","measureLCP","measureTTFB","sources","find","node","largestShiftTarget","largestShiftTime","largestShiftValue","largestShiftSource","largestShiftEntry","buildInitialValues","addIfPresent","context","buildInitialContext","timeToFirstByte","firstByteToFCP","navigationEntry","fcpEntry","interactionTarget","interactionTargetElement","interactionType","interactionTime","nextPaintTime","processedEventEntries","longAnimationFrameEntries","inputDelay","processingDuration","presentationDelay","resourceLoadDelay","resourceLoadDuration","elementRenderDelay","requestStart","responseEnd","element","lcpEntry","lcpResourceEntry","waitingDuration","cacheDuration","dnsDuration","connectionDuration","requestDuration","workerStart","fetchStart","domainLookupStart","connectStart","connectEnd","navigationEntryId","navigation_type","navigation_entry_id","WebVitalsInstrumentation","intializeWebVitalsInstrumentation","trackWebVitalsAttribution","EVENT_SESSION_START","EVENT_SESSION_RESUME","dateNow","getCurrentTimestamp","toISOString","timestampToIsoString","alphabet","genShortID","Array","from","join","isSampled","_c","sessionTracking","samplingRate","sampler","throttle","callback","delay","lastPending","timeoutBehavior","stringifyExternalJson","json","JSON","stringify","valueSeen","WeakSet","_key","getCircularDependencyReplacer","STORAGE_KEY","SESSION_INACTIVITY_TIME","defaultSessionTrackingConfig","enabled","persistent","maxSessionPersistenceTime","createUserSessionObject","sessionId","started","lastActivity","generateSessionId","isUserSessionValid","session","getUserSessionUpdater","fetchUserSession","storeUserSession","forceSessionExtend","sessionTrackingConfig","isPersistentSessions","sessionFromStorage","newSession","addSessionMetadataToNextSession","setSession","sessionMeta","onSessionChange","previousSession","_d","attributes","PersistentSessionsManager","updateSession","updateUserSession","init","removeUserSession","storageTypeLocal","storedSession","parse","addListener","sessionFromLocalStorage","userSession","VolatileSessionsManager","storageTypeSession","sessionFromSessionStorage","getSessionManagerByConfig","SessionInstrumentation","sendSessionStartEvent","notifiedSession","pushEvent","skipDedupe","createInitialSession","SessionManager","sessionsConfig","_e","lifecycleType","initialSession","createSession","registerBeforeSendHook","addBeforeSendHooks","item","newItem","newAttributes","initialSessionMeta","ViewInstrumentation","sendViewChangedEvent","view","notifiedView","fromView","toView","w3cTraceparentFormat","getSpanContextFromServerTiming","serverTimings","serverEntry","description","traceId","spanId","entryUrlIsIgnored","ignoredUrls","entryName","includePerformanceEntry","performanceEntryJSON","allowProps","allowPropKey","allowPropValue","perfEntryPropVal","createFaroResourceTiming","resourceEntryRaw","decodedBodySize","domainLookupEnd","encodedBodySize","initiatorType","nextHopProtocol","redirectEnd","redirectStart","renderBlockingStatus","rbs","responseStatus","secureConnectionStart","transferSize","toFaroPerformanceTimingString","tcpHandshakeTime","dnsLookupTime","tlsNegotiationTime","redirectTime","requestTime","responseTime","fetchTime","serviceWorkerTime","cacheHitStatus","cacheType","getCacheType","protocol","createFaroNavigationTiming","navigationEntryRaw","domContentLoadedEventEnd","loadEventEnd","loadEventStart","parserStart","timing","domLoading","timeOrigin","getDocumentParsingTime","pageLoadTime","documentParsingTime","domProcessingTime","domContentLoadHandlerTime","onLoadTime","round","DEFAULT_TRACK_RESOURCES","LogLevel","__awaiter","thisArg","_arguments","generator","fulfilled","step","next","rejected","PerformanceInstrumentation","handleReady","readyStateCompleteHandler","onDocumentReady","getIgnoreUrls","faroNavigationId","faroNavigationEntryResolve","faroNavigationEntryPromise","observedEntries","navEntryJson","toJSON","spanContext","serverTiming","faroPreviousNavigationId","faroNavigationEntry","timestampOverwriteMs","getNavigationTimings","trackResources","resourceEntryJson","faroResourceEntry","faroResourceId","observeResourceTimings","flatMap","transport","defaultLogLevel","LOG","allLogLevels","TRACE","DEBUG","INFO","WARN","defaultLogArgsSerializer","arg","ConsoleInstrumentation","options","consoleInstrumentation","level","disabledLevels","defaultDisabledLevels","consoleErrorAsLog","pushLog","getWebInstrumentations","enablePerformanceInstrumentation","unshift","captureConsole","captureConsoleDisabledLevels","TransportItemType","transportItemTypeToBodyKey","EXCEPTION","MEASUREMENT","EVENT","deepEqual","aIsArray","bIsArray","aIsObject","bIsObject","aKeys","bKeys","aKey","stacktraceParser","parseCause","cause","initializeAPI","tracesApi","_unpatchedConsole","_config","otel","getOTEL","getTraceContext","ctx","trace","getSpanContext","active","trace_id","span_id","initOTEL","isOTELInitialized","pushTraces","payload","execute","initializeTracesAPI","lastPayload","parseStacktrace","changeStacktraceParser","newStacktraceParser","getStacktraceParser","timestamp","frames","testingPayload","stackTrace","dedupe","initializeExceptionsAPI","metaSession","metaUser","metaView","setUser","user","remove","resetUser","resetSession","getSession","setView","previousView","getView","initializeMetaAPI","logArgsSerializer","initializeLogsAPI","initializeMeasurementsAPI","domain","eventDomain","initializeEventsAPI","createInternalLogger","internalLoggerLevel","OFF","VERBOSE","initializeInternalLogger","BatchExecutor","sendFn","signalBuffer","itemLimit","sendTimeout","paused","flushInterval","start","flush","addItem","setInterval","clearInterval","groupItems","items","itemMap","metaKey","currentItems","createBeforeSendHookFromIgnorePatterns","patterns","msg","pattern","shouldIgnoreEvent","initializeTransports","beforeSendHooks","applyBeforeSendHooks","filteredItems","hook","modified","Boolean","batchedSend","isBatched","send","batchExecutor","batching","newTransports","newTransport","existingTransport","newBeforeSendHooks","beforeSendHook","addIgnoreErrorsPatterns","ignoreErrorsPatterns","ignoreErrorsPattern","getBeforeSendHooks","every","filteredItem","instantSend","isPaused","transportsToRemove","transportToRemove","existingTransportIndex","removeBeforeSendHooks","beforeSendHooksToRemove","initializeUnpatchedConsole","initializeFaro","listeners","getValue","notifyListeners","listener","newItems","itemsToRemove","currentItem","removeListener","currentListener","initializeMetas","newInstrumentations","newInstrumentation","existingInstrumentation","instrumentationsToRemove","instrumentationToRemove","existingInstrumentationIndex","destroy","initializeInstrumentations","initial","sdk","app","bundleId","appName","registerInitialMetas","beforeSend","ignoreErrors","registerInitialTransports","registerInitialInstrumentations","defaultBatchingConfig","defaultMetas","osName","osVersion","language","brands","getBrands","viewportWidth","innerWidth","viewportHeight","innerHeight","page","k6Meta","k6Properties","k6","isK6Browser","testRunId","BaseTransport","mergeResourceSpans","traces","resourceSpans","currentResource","currentSpans","scopeSpans","newSpans","__rest","getOwnPropertySymbols","propertyIsEnumerable","FetchTransport","disabledUntil","rateLimitBackoffMs","defaultRateLimitBackoffMs","getNow","promiseBuffer","concurrency","buffer","work","producer","shift","promiseProducer","createPromiseBuffer","bufferSize","body","bk","signals","getTransportBody","requestOptions","apiKey","headers","restOfRequestOptions","fetch","method","keepalive","response","status","extendFaroSession","getRetryAfterDate","text","catch","ignoreUrls","retryAfterHeader","date","SessionExpiredString","coreConfig","browserConfig","_f","_g","_h","_j","_k","initialMetas","createMetas","makeCoreConfig","FARO_ENV","getAppName","pluginName","environment","LazyApp","lazy","LazyDataSourceExtension","React","faroConfig","getUrl","appUrl","endsWith","getFaroEnv","URL","hostname","path","onBeforeSend","bootData","username","initFaro","DEV","STAGING","PROD","plugin","AppPlugin","setRootPage","Suspense","fallback","LoadingPlaceholder","configureExtensionComponent","buildInfo","title","extensionPointId","component"],"sourceRoot":""}