{"version":3,"file":"js/28-9c3e8743e968046d927d.js","mappings":"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","sources":["webpack://avala/./node_modules/@honeybadger-io/js/dist/browser/honeybadger.js"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Honeybadger = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var UNKNOWN_FUNCTION = '';\n /**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\n function parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n }\n var chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n var chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n function parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n }\n\n var winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\n function parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n }\n\n var geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\n var geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\n function parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n }\n\n var javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\n function parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n }\n\n var nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\n function parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n }\n\n function merge(obj1, obj2) {\n var result = {};\n for (var k in obj1) {\n result[k] = obj1[k];\n }\n for (var k in obj2) {\n result[k] = obj2[k];\n }\n return result;\n }\n function mergeNotice(notice1, notice2) {\n var result = merge(notice1, notice2);\n if (notice1.context && notice2.context) {\n result.context = merge(notice1.context, notice2.context);\n }\n return result;\n }\n function objectIsEmpty(obj) {\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k)) {\n return false;\n }\n }\n return true;\n }\n function objectIsExtensible(obj) {\n if (typeof Object.isExtensible !== 'function') {\n return true;\n }\n return Object.isExtensible(obj);\n }\n function makeBacktrace(stack, shift) {\n if (shift === void 0) { shift = 0; }\n try {\n var backtrace = parse(stack).map(function (line) {\n return {\n file: line.file,\n method: line.methodName,\n number: line.lineNumber,\n column: line.column\n };\n });\n backtrace.splice(0, shift);\n return backtrace;\n }\n catch (_err) {\n // TODO: log error\n return [];\n }\n }\n function runBeforeNotifyHandlers(notice, handlers) {\n for (var i = 0, len = handlers.length; i < len; i++) {\n var handler = handlers[i];\n if (handler(notice) === false) {\n return false;\n }\n }\n return true;\n }\n function runAfterNotifyHandlers(notice, handlers, error) {\n if (error === void 0) { error = undefined; }\n for (var i = 0, len = handlers.length; i < len; i++) {\n handlers[i](error, notice);\n }\n return true;\n }\n // Returns a new object with properties from other object.\n function shallowClone(obj) {\n if (typeof (obj) !== 'object' || obj === null) {\n return {};\n }\n var result = {};\n for (var k in obj) {\n result[k] = obj[k];\n }\n return result;\n }\n function sanitize(obj, maxDepth) {\n if (maxDepth === void 0) { maxDepth = 8; }\n var seenObjects = [];\n function seen(obj) {\n if (!obj || typeof (obj) !== 'object') {\n return false;\n }\n for (var i = 0; i < seenObjects.length; i++) {\n var value = seenObjects[i];\n if (value === obj) {\n return true;\n }\n }\n seenObjects.push(obj);\n return false;\n }\n function canSerialize(obj) {\n var typeOfObj = typeof obj;\n // Functions are TMI\n if (/function/.test(typeOfObj)) {\n // Let special toJSON method pass as it's used by JSON.stringify (#722)\n return obj.name === 'toJSON';\n }\n // Symbols can't convert to strings.\n if (/symbol/.test(typeOfObj)) {\n return false;\n }\n if (obj === null) {\n return false;\n }\n // No prototype, likely created with `Object.create(null)`.\n if (typeof obj === 'object' && typeof obj.hasOwnProperty === 'undefined') {\n return false;\n }\n return true;\n }\n function serialize(obj, depth) {\n if (depth === void 0) { depth = 0; }\n if (depth >= maxDepth) {\n return '[DEPTH]';\n }\n // Inspect invalid types\n if (!canSerialize(obj)) {\n return Object.prototype.toString.call(obj);\n }\n // Halt circular references\n if (seen(obj)) {\n return '[RECURSION]';\n }\n // Serialize inside arrays\n if (Array.isArray(obj)) {\n return obj.map(function (o) { return safeSerialize(o, depth + 1); });\n }\n // Serialize inside objects\n if (typeof (obj) === 'object') {\n var ret = {};\n for (var k in obj) {\n var v = obj[k];\n if (Object.prototype.hasOwnProperty.call(obj, k) && (k != null) && (v != null)) {\n ret[k] = safeSerialize(v, depth + 1);\n }\n }\n return ret;\n }\n // Return everything else untouched\n return obj;\n }\n function safeSerialize(obj, depth) {\n if (depth === void 0) { depth = 0; }\n try {\n return serialize(obj, depth);\n }\n catch (e) {\n return \"[ERROR] \" + e;\n }\n }\n return safeSerialize(obj);\n }\n function logger(client) {\n var log = function (method) {\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (method === 'debug' && !client.config.debug) {\n return;\n }\n args.unshift('[Honeybadger]');\n (_a = client.config.logger)[method].apply(_a, args);\n };\n };\n return {\n log: log('log'),\n info: log('info'),\n debug: log('debug'),\n warn: log('warn'),\n error: log('error')\n };\n }\n /**\n * Converts any object into a notice object (which at minimum has the same\n * properties as Error, but supports additional Honeybadger properties.)\n */\n function makeNotice(thing) {\n var notice;\n if (!thing) {\n notice = {};\n }\n else if (Object.prototype.toString.call(thing) === '[object Error]') {\n var e = thing;\n notice = merge(thing, { name: e.name, message: e.message, stack: e.stack });\n }\n else if (typeof thing === 'object') {\n notice = shallowClone(thing);\n }\n else {\n var m = String(thing);\n notice = { message: m };\n }\n return notice;\n }\n /**\n * Instrument an existing function inside an object (usually global).\n * @param {!Object} object\n * @param {!String} name\n * @param {!Function} replacement\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function instrument(object, name, replacement) {\n if (!object || !name || !replacement || !(name in object)) {\n return;\n }\n var original = object[name];\n while (original && original.__hb_original) {\n original = original.__hb_original;\n }\n try {\n object[name] = replacement(original);\n object[name].__hb_original = original;\n }\n catch (_e) {\n // Ignores errors like this one:\n // Error: TypeError: Cannot set property onunhandledrejection of [object Object] which has only a getter\n // User-Agent: Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-G960F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/12.1 Chrome/79.0.3945.136 Mobile Safari/537.36\n }\n }\n function endpoint(config, path) {\n var endpoint = config.endpoint.trim().replace(/\\/$/, '');\n path = path.trim().replace(/(^\\/|\\/$)/g, '');\n return endpoint + \"/\" + path;\n }\n function generateStackTrace() {\n try {\n throw new Error('');\n }\n catch (e) {\n if (e.stack) {\n return e.stack;\n }\n }\n var maxStackSize = 10;\n var stack = [];\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize) {\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(RegExp.$1 || '');\n }\n else {\n stack.push('');\n }\n try {\n curr = curr.caller;\n }\n catch (e) {\n break;\n }\n }\n return stack.join('\\n');\n }\n function filter(obj, filters) {\n if (!is('Object', obj)) {\n return;\n }\n if (!is('Array', filters)) {\n filters = [];\n }\n var seen = [];\n function filter(obj) {\n var k, newObj;\n if (is('Object', obj) || is('Array', obj)) {\n if (seen.indexOf(obj) !== -1) {\n return '[CIRCULAR DATA STRUCTURE]';\n }\n seen.push(obj);\n }\n if (is('Object', obj)) {\n newObj = {};\n for (k in obj) {\n if (filterMatch(k, filters)) {\n newObj[k] = '[FILTERED]';\n }\n else {\n newObj[k] = filter(obj[k]);\n }\n }\n return newObj;\n }\n if (is('Array', obj)) {\n return obj.map(function (v) { return filter(v); });\n }\n if (is('Function', obj)) {\n return '[FUNC]';\n }\n return obj;\n }\n return filter(obj);\n }\n function filterMatch(key, filters) {\n for (var i = 0; i < filters.length; i++) {\n if (key.toLowerCase().indexOf(filters[i].toLowerCase()) !== -1) {\n return true;\n }\n }\n return false;\n }\n function is(type, obj) {\n var klass = Object.prototype.toString.call(obj).slice(8, -1);\n return obj !== undefined && obj !== null && klass === type;\n }\n function filterUrl(url, filters) {\n if (!filters) {\n return url;\n }\n if (typeof url !== 'string') {\n return url;\n }\n var query = url.split(/\\?/, 2)[1];\n if (!query) {\n return url;\n }\n var result = url;\n query.split(/[&]\\s?/).forEach(function (pair) {\n var _a = pair.split('=', 2), key = _a[0], value = _a[1];\n if (filterMatch(key, filters)) {\n result = result.replace(key + \"=\" + value, key + \"=[FILTERED]\");\n }\n });\n return result;\n }\n function formatCGIData(vars, prefix) {\n if (prefix === void 0) { prefix = ''; }\n var formattedVars = {};\n Object.keys(vars).forEach(function (key) {\n var formattedKey = prefix + key.replace(/\\W/g, '_').toUpperCase();\n formattedVars[formattedKey] = vars[key];\n });\n return formattedVars;\n }\n\n var notifier = {\n name: 'honeybadger-js',\n url: 'https://github.com/honeybadger-io/honeybadger-js',\n version: '3.2.9'\n };\n // Split at commas\n var TAG_SEPARATOR = /,/;\n // Removes any non-word characters\n var TAG_SANITIZER = /[^\\w]/g;\n // Checks for blank strings\n var STRING_EMPTY = '';\n // Checks for non-blank characters\n var NOT_BLANK = /\\S/;\n var Client = /** @class */ (function () {\n function Client(opts) {\n if (opts === void 0) { opts = {}; }\n /** @internal */\n this.__pluginsExecuted = false;\n /** @internal */\n this.__context = {};\n /** @internal */\n this.__breadcrumbs = [];\n /** @internal */\n this.__beforeNotifyHandlers = [];\n /** @internal */\n this.__afterNotifyHandlers = [];\n this.config = __assign({ apiKey: null, endpoint: 'https://api.honeybadger.io', environment: null, hostname: null, projectRoot: null, component: null, action: null, revision: null, reportData: null, breadcrumbsEnabled: true, maxBreadcrumbs: 40, maxObjectDepth: 8, logger: console, developmentEnvironments: ['dev', 'development', 'test'], disabled: false, debug: false, tags: null, enableUncaught: true, enableUnhandledRejection: true, afterUncaught: function () { return true; }, filters: ['creditcard', 'password'], __plugins: [] }, opts);\n this.logger = logger(this);\n }\n Client.prototype.factory = function (_opts) {\n throw (new Error('Must implement __factory in subclass'));\n };\n Client.prototype.getVersion = function () {\n return notifier.version;\n };\n Client.prototype.configure = function (opts) {\n var _this = this;\n if (opts === void 0) { opts = {}; }\n for (var k in opts) {\n this.config[k] = opts[k];\n }\n if (!this.__pluginsExecuted) {\n this.__pluginsExecuted = true;\n this.config.__plugins.forEach(function (plugin) { return plugin.load(_this); });\n }\n return this;\n };\n Client.prototype.beforeNotify = function (handler) {\n this.__beforeNotifyHandlers.push(handler);\n return this;\n };\n Client.prototype.afterNotify = function (handler) {\n this.__afterNotifyHandlers.push(handler);\n return this;\n };\n Client.prototype.setContext = function (context) {\n if (typeof context === 'object') {\n this.__context = merge(this.__context, context);\n }\n return this;\n };\n Client.prototype.resetContext = function (context) {\n this.logger.warn('Deprecation warning: `Honeybadger.resetContext()` has been deprecated; please use `Honeybadger.clear()` instead.');\n if (typeof context === 'object' && context !== null) {\n this.__context = merge({}, context);\n }\n else {\n this.__context = {};\n }\n return this;\n };\n Client.prototype.clear = function () {\n this.__context = {};\n this.__breadcrumbs = [];\n return this;\n };\n Client.prototype.notify = function (notice, name, extra) {\n if (name === void 0) { name = undefined; }\n if (extra === void 0) { extra = undefined; }\n if (this.config.disabled) {\n this.logger.warn('Deprecation warning: instead of `disabled: true`, use `reportData: false` to explicitly disable Honeybadger reporting. (Dropping notice: honeybadger.js is disabled)');\n return false;\n }\n if (!this.__reportData()) {\n this.logger.debug('Dropping notice: honeybadger.js is in development mode');\n return false;\n }\n if (!this.config.apiKey) {\n this.logger.warn('Unable to send error report: no API key has been configured');\n return false;\n }\n notice = makeNotice(notice);\n if (name && !(typeof name === 'object')) {\n var n = String(name);\n name = { name: n };\n }\n if (name) {\n notice = mergeNotice(notice, name);\n }\n if (typeof extra === 'object' && extra !== null) {\n notice = mergeNotice(notice, extra);\n }\n if (objectIsEmpty(notice)) {\n return false;\n }\n var noticeTags = this.__constructTags(notice.tags);\n var contextTags = this.__constructTags(this.__context[\"tags\"]);\n var configTags = this.__constructTags(this.config.tags);\n // Turning into a Set will remove duplicates\n var tags = noticeTags.concat(contextTags).concat(configTags);\n var uniqueTags = tags.filter(function (item, index) { return tags.indexOf(item) === index; });\n notice = merge(notice, {\n name: notice.name || 'Error',\n context: merge(this.__context, notice.context),\n projectRoot: notice.projectRoot || this.config.projectRoot,\n environment: notice.environment || this.config.environment,\n component: notice.component || this.config.component,\n action: notice.action || this.config.action,\n revision: notice.revision || this.config.revision,\n tags: uniqueTags\n });\n var backtraceShift = 0;\n if (typeof notice.stack !== 'string' || !notice.stack.trim()) {\n notice.stack = generateStackTrace();\n backtraceShift = 2;\n }\n notice.backtrace = makeBacktrace(notice.stack, backtraceShift);\n if (!runBeforeNotifyHandlers(notice, this.__beforeNotifyHandlers)) {\n return false;\n }\n this.addBreadcrumb('Honeybadger Notice', {\n category: 'notice',\n metadata: {\n message: notice.message,\n name: notice.name,\n stack: notice.stack\n }\n });\n notice.__breadcrumbs = this.config.breadcrumbsEnabled ? this.__breadcrumbs.slice() : [];\n return this.__send(notice);\n };\n Client.prototype.addBreadcrumb = function (message, opts) {\n if (!this.config.breadcrumbsEnabled) {\n return;\n }\n opts = opts || {};\n var metadata = shallowClone(opts.metadata);\n var category = opts.category || 'custom';\n var timestamp = new Date().toISOString();\n this.__breadcrumbs.push({\n category: category,\n message: message,\n metadata: metadata,\n timestamp: timestamp\n });\n var limit = this.config.maxBreadcrumbs;\n if (this.__breadcrumbs.length > limit) {\n this.__breadcrumbs = this.__breadcrumbs.slice(this.__breadcrumbs.length - limit);\n }\n return this;\n };\n /** @internal */\n Client.prototype.__reportData = function () {\n if (this.config.reportData !== null) {\n return this.config.reportData;\n }\n return !(this.config.environment && this.config.developmentEnvironments.includes(this.config.environment));\n };\n /** @internal */\n Client.prototype.__send = function (_notice) {\n throw (new Error('Must implement send in subclass'));\n };\n /** @internal */\n Client.prototype.__buildPayload = function (notice) {\n var headers = filter(notice.headers, this.config.filters) || {};\n var cgiData = filter(__assign(__assign({}, notice.cgiData), formatCGIData(headers, 'HTTP_')), this.config.filters);\n return {\n notifier: notifier,\n breadcrumbs: {\n enabled: !!this.config.breadcrumbsEnabled,\n trail: notice.__breadcrumbs || []\n },\n error: {\n class: notice.name,\n message: notice.message,\n backtrace: notice.backtrace,\n fingerprint: notice.fingerprint,\n tags: notice.tags\n },\n request: {\n url: filterUrl(notice.url, this.config.filters),\n component: notice.component,\n action: notice.action,\n context: notice.context,\n cgi_data: cgiData,\n params: filter(notice.params, this.config.filters) || {},\n session: filter(notice.session, this.config.filters) || {}\n },\n server: {\n project_root: notice.projectRoot,\n environment_name: notice.environment,\n revision: notice.revision,\n hostname: this.config.hostname,\n time: new Date().toUTCString()\n },\n details: notice.details || {}\n };\n };\n /** @internal */\n Client.prototype.__constructTags = function (tags) {\n if (!tags) {\n return [];\n }\n return tags.toString().split(TAG_SEPARATOR).map(function (tag) {\n return tag.replace(TAG_SANITIZER, STRING_EMPTY);\n }).filter(function (tag) { return NOT_BLANK.test(tag); });\n };\n return Client;\n }());\n\n /**\n * Converts an HTMLElement into a human-readable string.\n * @param {!HTMLElement} element\n * @return {string}\n */\n function stringNameOfElement(element) {\n if (!element || !element.tagName) {\n return '';\n }\n var name = element.tagName.toLowerCase();\n // Ignore the root element in selectors and events.\n if (name === 'html') {\n return '';\n }\n if (element.id) {\n name += \"#\" + element.id;\n }\n var stringClassNames = element.getAttribute('class');\n if (stringClassNames) {\n stringClassNames.split(/\\s+/).forEach(function (className) {\n name += \".\" + className;\n });\n }\n ['alt', 'name', 'title', 'type'].forEach(function (attrName) {\n var attr = element.getAttribute(attrName);\n if (attr) {\n name += \"[\" + attrName + \"=\\\"\" + attr + \"\\\"]\";\n }\n });\n var siblings = getSiblings(element);\n if (siblings.length > 1) {\n name += \":nth-child(\" + (Array.prototype.indexOf.call(siblings, element) + 1) + \")\";\n }\n return name;\n }\n function stringSelectorOfElement(element) {\n var name = stringNameOfElement(element);\n if (element.parentNode && element.parentNode.tagName) {\n var parentName = stringSelectorOfElement(element.parentNode);\n if (parentName.length > 0) {\n return parentName + \" > \" + name;\n }\n }\n return name;\n }\n function stringTextOfElement(element) {\n var text = element.textContent || element.innerText || '';\n if (!text && (element.type === 'submit' || element.type === 'button')) {\n text = element.value;\n }\n return truncate(text.trim(), 300);\n }\n function nativeFetch() {\n if (!window.fetch) {\n return false;\n }\n if (isNative(window.fetch)) {\n return true;\n }\n // If fetch isn't native, it may be wrapped by someone else. Try to get\n // a pristine function from an iframe.\n try {\n var sandbox = document.createElement('iframe');\n sandbox.style.display = 'none';\n document.head.appendChild(sandbox);\n var result = sandbox.contentWindow.fetch && isNative(sandbox.contentWindow.fetch);\n document.head.removeChild(sandbox);\n return result;\n }\n catch (err) {\n if (console && console.warn) {\n console.warn('failed to detect native fetch via iframe: ' + err);\n }\n }\n return false;\n }\n function isNative(func) {\n return func.toString().indexOf('native') !== -1;\n }\n function parseURL(url) {\n // Regexp: https://tools.ietf.org/html/rfc3986#appendix-B\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/) || {};\n return {\n protocol: match[2],\n host: match[4],\n pathname: match[5]\n };\n }\n function localURLPathname(url) {\n var parsed = parseURL(url);\n var parsedDocURL = parseURL(document.URL);\n // URL must be relative\n if (!parsed.host || !parsed.protocol) {\n return parsed.pathname;\n }\n // Same domain\n if (parsed.protocol === parsedDocURL.protocol && parsed.host === parsedDocURL.host) {\n return parsed.pathname;\n }\n // x-domain\n return parsed.protocol + \"://\" + parsed.host + parsed.pathname;\n }\n function decodeCookie(string) {\n var result = {};\n string.split(/[;,]\\s?/).forEach(function (pair) {\n var _a = pair.split('=', 2), key = _a[0], value = _a[1];\n result[key] = value;\n });\n return result;\n }\n function encodeCookie(object) {\n if (typeof object !== 'object') {\n return undefined;\n }\n var cookies = [];\n for (var k in object) {\n cookies.push(k + '=' + object[k]);\n }\n return cookies.join(';');\n }\n // Helpers\n function getSiblings(element) {\n try {\n var nodes = element.parentNode.childNodes;\n var siblings_1 = [];\n Array.prototype.forEach.call(nodes, function (node) {\n if (node.tagName && node.tagName === element.tagName) {\n siblings_1.push(node);\n }\n });\n return siblings_1;\n }\n catch (e) {\n return [];\n }\n }\n function truncate(string, length) {\n if (string.length > length) {\n string = string.substr(0, length) + '...';\n }\n return string;\n }\n // Used to decide which error handling method to use when wrapping async\n // handlers: try/catch, or `window.onerror`. When available, `window.onerror`\n // will provide more information in modern browsers.\n var preferCatch = (function () {\n var preferCatch = true;\n // IE < 10\n if (!window.atob) {\n preferCatch = false;\n }\n // Modern browsers support the full ErrorEvent API\n // See https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent\n if (window.ErrorEvent) {\n try {\n if ((new window.ErrorEvent('')).colno === 0) {\n preferCatch = false;\n }\n // eslint-disable-next-line no-empty\n }\n catch (_e) { }\n }\n return preferCatch;\n })();\n\n /* eslint-disable prefer-rest-params */\n var ignoreOnError = 0;\n var currentTimeout;\n function ignoreNextOnError() {\n ignoreOnError += 1;\n clearTimeout(currentTimeout);\n currentTimeout = setTimeout(function () {\n ignoreOnError = 0;\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function onError(_window) {\n if (_window === void 0) { _window = window; }\n return {\n load: function (client) {\n instrument(_window, 'onerror', function (original) {\n var onerror = function (msg, url, line, col, err) {\n client.logger.debug('window.onerror callback invoked', arguments);\n if (ignoreOnError > 0) {\n client.logger.debug('Ignoring window.onerror (error likely reported earlier)', arguments);\n ignoreOnError -= 1;\n return;\n }\n if (!client.config.enableUncaught) {\n return;\n }\n if (line === 0 && /Script error\\.?/.test(msg)) {\n // See https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers/onerror#Notes\n client.logger.info('Ignoring cross-domain script error: enable CORS to track these types of errors', arguments);\n return;\n }\n var notice = makeNotice(err);\n if (!notice.name) {\n notice.name = 'window.onerror';\n }\n if (!notice.message) {\n notice.message = msg;\n }\n if (!notice.stack) {\n // Simulate v8 stack\n notice.stack = [notice.message, '\\n at ? (', url || 'unknown', ':', line || 0, ':', col || 0, ')'].join('');\n }\n client.addBreadcrumb((notice.name === 'window.onerror' || !notice.name) ? 'window.onerror' : \"window.onerror: \" + notice.name, {\n category: 'error',\n metadata: {\n name: notice.name,\n message: notice.message,\n stack: notice.stack\n }\n });\n client.notify(notice);\n };\n return function (msg, url, line, col, err) {\n onerror(msg, url, line, col, err);\n if (typeof original === 'function') {\n return original.apply(window, arguments);\n }\n return false;\n };\n });\n }\n };\n }\n\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function onUnhandledRejection (_window) {\n if (_window === void 0) { _window = window; }\n return {\n load: function (client) {\n if (!client.config.enableUnhandledRejection) {\n return;\n }\n instrument(_window, 'onunhandledrejection', function (original) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event\n function onunhandledrejection(promiseRejectionEvent) {\n var _a;\n client.logger.debug('window.onunhandledrejection callback invoked', arguments);\n if (!client.config.enableUnhandledRejection) {\n return;\n }\n var reason = promiseRejectionEvent.reason;\n if (reason instanceof Error) {\n // simulate v8 stack\n // const fileName = reason.fileName || 'unknown'\n // const lineNumber = reason.lineNumber || 0\n var fileName = 'unknown';\n var lineNumber = 0;\n var stackFallback = reason.message + \"\\n at ? (\" + fileName + \":\" + lineNumber + \")\";\n var stack = reason.stack || stackFallback;\n var err = {\n name: reason.name,\n message: \"UnhandledPromiseRejectionWarning: \" + reason,\n stack: stack\n };\n client.addBreadcrumb(\"window.onunhandledrejection: \" + err.name, {\n category: 'error',\n metadata: err\n });\n client.notify(err);\n return;\n }\n var message = typeof reason === 'string' ? reason : ((_a = JSON.stringify(reason)) !== null && _a !== void 0 ? _a : 'Unspecified reason');\n client.notify({\n name: 'window.onunhandledrejection',\n message: \"UnhandledPromiseRejectionWarning: \" + message\n });\n }\n return function (promiseRejectionEvent) {\n onunhandledrejection(promiseRejectionEvent);\n if (typeof original === 'function') {\n original.apply(this, arguments);\n }\n };\n });\n }\n };\n }\n\n /* eslint-disable prefer-rest-params */\n function breadcrumbs (_window) {\n if (_window === void 0) { _window = window; }\n return {\n load: function (client) {\n function breadcrumbsEnabled(type) {\n if (client.config.breadcrumbsEnabled === true) {\n return true;\n }\n if (type) {\n return client.config.breadcrumbsEnabled[type] === true;\n }\n return client.config.breadcrumbsEnabled !== false;\n }\n // Breadcrumbs: instrument console\n (function () {\n if (!breadcrumbsEnabled('console')) {\n return;\n }\n function inspectArray(obj) {\n if (!Array.isArray(obj)) {\n return '';\n }\n return obj.map(function (value) {\n try {\n return String(value);\n }\n catch (e) {\n return '[unknown]';\n }\n }).join(' ');\n }\n ['debug', 'info', 'warn', 'error', 'log'].forEach(function (level) {\n instrument(_window.console, level, function (original) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var message = inspectArray(args);\n var opts = {\n category: 'log',\n metadata: {\n level: level,\n arguments: sanitize(args, 3)\n }\n };\n client.addBreadcrumb(message, opts);\n if (typeof original === 'function') {\n Function.prototype.apply.call(original, _window.console, arguments);\n }\n };\n });\n });\n })();\n // Breadcrumbs: instrument click events\n (function () {\n if (!breadcrumbsEnabled('dom')) {\n return;\n }\n _window.addEventListener('click', function (event) {\n var message, selector, text;\n try {\n message = stringNameOfElement(event.target);\n selector = stringSelectorOfElement(event.target);\n text = stringTextOfElement(event.target);\n }\n catch (e) {\n message = 'UI Click';\n selector = '[unknown]';\n text = '[unknown]';\n }\n // There's nothing to display\n if (message.length === 0) {\n return;\n }\n client.addBreadcrumb(message, {\n category: 'ui.click',\n metadata: {\n selector: selector,\n text: text,\n event: event\n }\n });\n }, true);\n })();\n // Breadcrumbs: instrument XMLHttpRequest\n (function () {\n if (!breadcrumbsEnabled('network')) {\n return;\n }\n // -- On xhr.open: capture initial metadata\n instrument(XMLHttpRequest.prototype, 'open', function (original) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = arguments[1];\n var method = typeof arguments[0] === 'string' ? arguments[0].toUpperCase() : arguments[0];\n var message = method + \" \" + localURLPathname(url);\n this.__hb_xhr = {\n type: 'xhr',\n method: method,\n url: url,\n message: message\n };\n if (typeof original === 'function') {\n original.apply(xhr, arguments);\n }\n };\n });\n // -- On xhr.send: set up xhr.onreadystatechange to report breadcrumb\n instrument(XMLHttpRequest.prototype, 'send', function (original) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n function onreadystatechangeHandler() {\n if (xhr.readyState === 4) {\n var message = void 0;\n if (xhr.__hb_xhr) {\n xhr.__hb_xhr.status_code = xhr.status;\n message = xhr.__hb_xhr.message;\n delete xhr.__hb_xhr.message;\n }\n client.addBreadcrumb(message || 'XMLHttpRequest', {\n category: 'request',\n metadata: xhr.__hb_xhr\n });\n }\n }\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n instrument(xhr, 'onreadystatechange', function (original) {\n return function () {\n onreadystatechangeHandler();\n if (typeof original === 'function') {\n // eslint-disable-next-line prefer-rest-params\n original.apply(this, arguments);\n }\n };\n });\n }\n else {\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line prefer-rest-params\n original.apply(xhr, arguments);\n }\n };\n });\n })();\n // Breadcrumbs: instrument fetch\n (function () {\n if (!breadcrumbsEnabled('network')) {\n return;\n }\n if (!nativeFetch()) {\n // Polyfills use XHR.\n return;\n }\n instrument(_window, 'fetch', function (original) {\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var input = arguments[0];\n var method = 'GET';\n var url;\n if (typeof input === 'string') {\n url = input;\n }\n else if ('Request' in _window && input instanceof Request) {\n url = input.url;\n if (input.method) {\n method = input.method;\n }\n }\n else {\n url = String(input);\n }\n if (arguments[1] && arguments[1].method) {\n method = arguments[1].method;\n }\n if (typeof method === 'string') {\n method = method.toUpperCase();\n }\n var message = method + \" \" + localURLPathname(url);\n var metadata = {\n type: 'fetch',\n method: method,\n url: url\n };\n return original\n .apply(this, arguments)\n .then(function (response) {\n metadata['status_code'] = response.status;\n client.addBreadcrumb(message, {\n category: 'request',\n metadata: metadata\n });\n return response;\n })\n .catch(function (error) {\n client.addBreadcrumb('fetch error', {\n category: 'error',\n metadata: metadata\n });\n throw error;\n });\n };\n });\n })();\n // Breadcrumbs: instrument navigation\n (function () {\n if (!breadcrumbsEnabled('navigation')) {\n return;\n }\n // The last known href of the current page\n var lastHref = _window.location.href;\n function recordUrlChange(from, to) {\n lastHref = to;\n client.addBreadcrumb('Page changed', {\n category: 'navigation',\n metadata: {\n from: from,\n to: to\n }\n });\n }\n // https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n instrument(_window, 'onpopstate', function (original) {\n return function () {\n recordUrlChange(lastHref, _window.location.href);\n if (original) {\n return original.apply(this, arguments);\n }\n };\n });\n // https://developer.mozilla.org/en-US/docs/Web/API/History/pushState\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n function historyWrapper(original) {\n return function () {\n var url = arguments.length > 2 ? arguments[2] : undefined;\n if (url) {\n recordUrlChange(lastHref, String(url));\n }\n return original.apply(this, arguments);\n };\n }\n instrument(_window.history, 'pushState', historyWrapper);\n instrument(_window.history, 'replaceState', historyWrapper);\n })();\n }\n };\n }\n\n /* eslint-disable prefer-rest-params */\n function timers (_window) {\n if (_window === void 0) { _window = window; }\n return {\n load: function (client) {\n // Wrap timers\n (function () {\n function instrumentTimer(wrapOpts) {\n return function (original) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout\n return function (func, delay) {\n if (typeof func === 'function') {\n var args_1 = Array.prototype.slice.call(arguments, 2);\n func = client.__wrap(func, wrapOpts);\n return original(function () {\n func.apply(void 0, args_1);\n }, delay);\n }\n else {\n return original(func, delay);\n }\n };\n };\n }\n instrument(_window, 'setTimeout', instrumentTimer({ component: 'setTimeout' }));\n instrument(_window, 'setInterval', instrumentTimer({ component: 'setInterval' }));\n })();\n }\n };\n }\n\n function eventListeners (_window) {\n if (_window === void 0) { _window = window; }\n return {\n load: function (client) {\n // Wrap event listeners\n // Event targets borrowed from bugsnag-js:\n // See https://github.com/bugsnag/bugsnag-js/blob/d55af916a4d3c7757f979d887f9533fe1a04cc93/src/bugsnag.js#L542\n var targets = ['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'];\n targets.forEach(function (prop) {\n var prototype = _window[prop] && _window[prop].prototype;\n if (prototype && Object.prototype.hasOwnProperty.call(prototype, 'addEventListener')) {\n instrument(prototype, 'addEventListener', function (original) {\n var wrapOpts = { component: prop + \".prototype.addEventListener\" };\n // See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n return function (type, listener, useCapture, wantsUntrusted) {\n try {\n if (listener && listener.handleEvent != null) {\n listener.handleEvent = client.__wrap(listener.handleEvent, wrapOpts);\n }\n }\n catch (e) {\n // Ignore 'Permission denied to access property \"handleEvent\"' errors.\n client.logger.error(e);\n }\n return original.call(this, type, client.__wrap(listener, wrapOpts), useCapture, wantsUntrusted);\n };\n });\n instrument(prototype, 'removeEventListener', function (original) {\n return function (type, listener, useCapture, wantsUntrusted) {\n original.call(this, type, listener, useCapture, wantsUntrusted);\n return original.call(this, type, client.__wrap(listener), useCapture, wantsUntrusted);\n };\n });\n }\n });\n }\n };\n }\n\n var Honeybadger = /** @class */ (function (_super) {\n __extends(Honeybadger, _super);\n function Honeybadger(opts) {\n if (opts === void 0) { opts = {}; }\n var _this = _super.call(this, __assign({ async: true, maxErrors: null, projectRoot: window.location.protocol + '//' + window.location.host }, opts)) || this;\n /** @internal */\n _this.__errorsSent = 0;\n /** @internal */\n _this.__lastWrapErr = undefined;\n /** @internal */\n _this.__beforeNotifyHandlers = [\n function (notice) {\n if (_this.__exceedsMaxErrors()) {\n _this.logger.debug('Dropping notice: max errors exceeded', notice);\n return false;\n }\n if (!notice.url) {\n notice.url = document.URL;\n }\n return true;\n }\n ];\n return _this;\n }\n Honeybadger.prototype.configure = function (opts) {\n if (opts === void 0) { opts = {}; }\n return _super.prototype.configure.call(this, opts);\n };\n Honeybadger.prototype.resetMaxErrors = function () {\n return (this.__errorsSent = 0);\n };\n Honeybadger.prototype.factory = function (opts) {\n return new Honeybadger(opts);\n };\n /** @internal */\n Honeybadger.prototype.__buildPayload = function (notice) {\n var cgiData = {\n HTTP_USER_AGENT: undefined,\n HTTP_REFERER: undefined,\n HTTP_COOKIE: undefined\n };\n cgiData.HTTP_USER_AGENT = navigator.userAgent;\n if (document.referrer.match(/\\S/)) {\n cgiData.HTTP_REFERER = document.referrer;\n }\n var cookiesObject;\n if (typeof notice.cookies === 'string') {\n cookiesObject = decodeCookie(notice.cookies);\n }\n else {\n cookiesObject = notice.cookies;\n }\n if (cookiesObject) {\n cgiData.HTTP_COOKIE = encodeCookie(filter(cookiesObject, this.config.filters));\n }\n var payload = _super.prototype.__buildPayload.call(this, notice);\n payload.request.cgi_data = merge(cgiData, payload.request.cgi_data);\n return payload;\n };\n /** @internal */\n Honeybadger.prototype.__send = function (notice) {\n var _this = this;\n this.__incrementErrorsCount();\n var payload = this.__buildPayload(notice);\n var handlers = Array.prototype.slice.call(this.__afterNotifyHandlers);\n if (notice.afterNotify) {\n handlers.unshift(notice.afterNotify);\n }\n try {\n var x_1 = new XMLHttpRequest();\n x_1.open('POST', endpoint(this.config, '/v1/notices/js'), this.config.async);\n x_1.setRequestHeader('X-API-Key', this.config.apiKey);\n x_1.setRequestHeader('Content-Type', 'application/json');\n x_1.setRequestHeader('Accept', 'text/json, application/json');\n x_1.send(JSON.stringify(sanitize(payload, this.config.maxObjectDepth)));\n x_1.onload = function () {\n if (x_1.status !== 201) {\n runAfterNotifyHandlers(notice, handlers, new Error(\"Bad HTTP response: \" + x_1.status));\n _this.logger.debug(\"Unable to send error report: \" + x_1.status + \": \" + x_1.statusText, x_1, notice);\n return;\n }\n runAfterNotifyHandlers(merge(notice, {\n id: JSON.parse(x_1.response).id\n }), handlers);\n _this.logger.debug('Error report sent', notice);\n };\n }\n catch (err) {\n runAfterNotifyHandlers(notice, handlers, err);\n this.logger.error('Unable to send error report: error while initializing request', err, notice);\n }\n return true;\n };\n /**\n * wrap always returns the same function so that callbacks can be removed via\n * removeEventListener.\n * @internal\n */\n Honeybadger.prototype.__wrap = function (f, opts) {\n if (opts === void 0) { opts = {}; }\n var func = f;\n if (!opts) {\n opts = {};\n }\n try {\n if (typeof func !== 'function') {\n return func;\n }\n if (!objectIsExtensible(func)) {\n return func;\n }\n if (!func.___hb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var client_1 = this;\n func.___hb = function () {\n var onErrorEnabled = client_1.config.enableUncaught;\n // Catch if:\n // 1. We explicitly want to catch (i.e. if the error could be\n // caught before reaching window.onerror)\n // 2. The browser provides less information via the window.onerror\n // handler\n // 3. The window.onerror handler is unavailable\n if (opts.catch || preferCatch || !onErrorEnabled) {\n try {\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n catch (err) {\n if (client_1.__lastWrapErr === err) {\n throw (err);\n }\n client_1.__lastWrapErr = err;\n ignoreNextOnError();\n client_1.addBreadcrumb(opts.component ? opts.component + \": \" + err.name : err.name, {\n category: 'error',\n metadata: {\n message: err.message,\n name: err.name,\n stack: err.stack\n }\n });\n client_1.notify(err);\n throw (err);\n }\n }\n else {\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n };\n }\n func.___hb.___hb = func.___hb;\n return func.___hb;\n }\n catch (_e) {\n return func;\n }\n };\n /** @internal */\n Honeybadger.prototype.__incrementErrorsCount = function () {\n return this.__errorsSent++;\n };\n /** @internal */\n Honeybadger.prototype.__exceedsMaxErrors = function () {\n return this.config.maxErrors && this.__errorsSent >= this.config.maxErrors;\n };\n return Honeybadger;\n }(Client));\n var browser = new Honeybadger({\n __plugins: [\n onError(),\n onUnhandledRejection(),\n timers(),\n eventListeners(),\n breadcrumbs()\n ]\n });\n\n return browser;\n\n})));\n//# sourceMappingURL=honeybadger.js.map\n"],"names":["module","exports","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","UNKNOWN_FUNCTION","parse","stackString","split","reduce","stack","line","parseResult","parseChrome","parseWinjs","parseGecko","parseNode","parseJSC","push","chromeRe","chromeEvalRe","parts","exec","isNative","indexOf","isEval","submatch","file","methodName","lineNumber","column","winjsRe","geckoRe","geckoEvalRe","javaScriptCoreRe","nodeRe","merge","obj1","obj2","result","k","mergeNotice","notice1","notice2","context","objectIsEmpty","obj","objectIsExtensible","isExtensible","makeBacktrace","shift","backtrace","map","method","number","splice","_err","runBeforeNotifyHandlers","notice","handlers","len","handler","runAfterNotifyHandlers","error","undefined","shallowClone","sanitize","maxDepth","seenObjects","seen","canSerialize","typeOfObj","test","name","serialize","depth","toString","isArray","o","safeSerialize","ret","v","e","logger","client","log","_a","args","_i","config","debug","unshift","info","warn","makeNotice","thing","message","instrument","object","replacement","original","__hb_original","_e","endpoint","path","trim","replace","generateStackTrace","Error","maxStackSize","curr","callee","RegExp","$1","caller","join","filter","filters","is","newObj","filterMatch","key","toLowerCase","type","klass","slice","filterUrl","url","query","forEach","pair","value","formatCGIData","vars","prefix","formattedVars","keys","formattedKey","toUpperCase","notifier","version","TAG_SEPARATOR","TAG_SANITIZER","STRING_EMPTY","NOT_BLANK","Client","opts","__pluginsExecuted","__context","__breadcrumbs","__beforeNotifyHandlers","__afterNotifyHandlers","apiKey","environment","hostname","projectRoot","component","action","revision","reportData","breadcrumbsEnabled","maxBreadcrumbs","maxObjectDepth","console","developmentEnvironments","disabled","tags","enableUncaught","enableUnhandledRejection","afterUncaught","__plugins","factory","_opts","getVersion","configure","_this","plugin","load","beforeNotify","afterNotify","setContext","resetContext","clear","notify","extra","__reportData","noticeTags","__constructTags","contextTags","configTags","concat","uniqueTags","item","index","backtraceShift","addBreadcrumb","category","metadata","__send","timestamp","Date","toISOString","limit","includes","_notice","__buildPayload","headers","cgiData","breadcrumbs","enabled","trail","class","fingerprint","request","cgi_data","params","session","server","project_root","environment_name","time","toUTCString","details","tag","stringNameOfElement","element","tagName","id","stringClassNames","getAttribute","className","attrName","attr","siblings","getSiblings","stringSelectorOfElement","parentNode","parentName","stringTextOfElement","text","textContent","innerText","truncate","nativeFetch","window","fetch","sandbox","document","createElement","style","display","head","appendChild","contentWindow","removeChild","err","func","parseURL","match","protocol","host","pathname","localURLPathname","parsed","parsedDocURL","URL","decodeCookie","string","encodeCookie","cookies","nodes","childNodes","siblings_1","node","substr","currentTimeout","preferCatch","atob","ErrorEvent","colno","ignoreOnError","ignoreNextOnError","clearTimeout","setTimeout","onError","_window","onerror","msg","col","onUnhandledRejection","onunhandledrejection","promiseRejectionEvent","reason","fileName","stackFallback","JSON","stringify","inspectArray","level","Function","addEventListener","event","selector","target","XMLHttpRequest","xhr","__hb_xhr","onreadystatechangeHandler","readyState","status_code","status","onreadystatechange","input","Request","then","response","catch","lastHref","location","href","recordUrlChange","history","historyWrapper","from","to","timers","instrumentTimer","wrapOpts","delay","args_1","__wrap","eventListeners","prop","listener","useCapture","wantsUntrusted","handleEvent","Honeybadger","_super","async","maxErrors","__errorsSent","__lastWrapErr","__exceedsMaxErrors","resetMaxErrors","cookiesObject","HTTP_USER_AGENT","HTTP_REFERER","HTTP_COOKIE","navigator","userAgent","referrer","payload","__incrementErrorsCount","x_1","open","setRequestHeader","send","onload","statusText","f","___hb","client_1","onErrorEnabled"],"sourceRoot":""}