{"version":3,"file":"bugsnag-CRC5Adah.js","sources":["../../../node_modules/@bugsnag/browser/dist/bugsnag.js","../../../node_modules/@bugsnag/js/browser/notifier.js","../../../node_modules/@bugsnag/plugin-vue/dist/bugsnag-vue.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\nvar _$breadcrumbTypes_17 = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual'];\n\n// Array#reduce\nvar _$reduce_26 = function (arr, fn, accum) {\n var val = accum;\n for (var i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr);\n return val;\n};\n\n/* removed: var _$reduce_26 = require('./reduce'); */;\n\n// Array#filter\nvar _$filter_21 = function (arr, fn) {\n return _$reduce_26(arr, function (accum, item, i, arr) {\n return !fn(item, i, arr) ? accum : accum.concat(item);\n }, []);\n};\n\n/* removed: var _$reduce_26 = require('./reduce'); */;\n// Array#includes\nvar _$includes_22 = function (arr, x) {\n return _$reduce_26(arr, function (accum, item, i, arr) {\n return accum === true || item === x;\n }, false);\n};\n\n// Array#isArray\nvar _$isArray_23 = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\n/* eslint-disable-next-line no-prototype-builtins */\nvar _hasDontEnumBug = !{\n toString: null\n}.propertyIsEnumerable('toString');\nvar _dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\n// Object#keys\nvar _$keys_24 = function (obj) {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n var result = [];\n var prop;\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop);\n }\n if (!_hasDontEnumBug) return result;\n for (var i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i]);\n }\n return result;\n};\n\nvar _$intRange_33 = function (min, max) {\n if (min === void 0) {\n min = 1;\n }\n if (max === void 0) {\n max = Infinity;\n }\n return function (value) {\n return typeof value === 'number' && parseInt('' + value, 10) === value && value >= min && value <= max;\n };\n};\n\n/* removed: var _$filter_21 = require('../es-utils/filter'); */;\n/* removed: var _$isArray_23 = require('../es-utils/is-array'); */;\nvar _$listOfFunctions_34 = function (value) {\n return typeof value === 'function' || _$isArray_23(value) && _$filter_21(value, function (f) {\n return typeof f === 'function';\n }).length === value.length;\n};\n\nvar _$stringWithLength_35 = function (value) {\n return typeof value === 'string' && !!value.length;\n};\n\nvar _$config_14 = {};\n/* removed: var _$filter_21 = require('./lib/es-utils/filter'); */;\n/* removed: var _$reduce_26 = require('./lib/es-utils/reduce'); */;\n/* removed: var _$keys_24 = require('./lib/es-utils/keys'); */;\n/* removed: var _$isArray_23 = require('./lib/es-utils/is-array'); */;\n/* removed: var _$includes_22 = require('./lib/es-utils/includes'); */;\n/* removed: var _$intRange_33 = require('./lib/validators/int-range'); */;\n/* removed: var _$stringWithLength_35 = require('./lib/validators/string-with-length'); */;\n/* removed: var _$listOfFunctions_34 = require('./lib/validators/list-of-functions'); */;\n/* removed: var _$breadcrumbTypes_17 = require('./lib/breadcrumb-types'); */;\nvar defaultErrorTypes = function () {\n return {\n unhandledExceptions: true,\n unhandledRejections: true\n };\n};\n_$config_14.schema = {\n apiKey: {\n defaultValue: function () {\n return null;\n },\n message: 'is required',\n validate: _$stringWithLength_35\n },\n appVersion: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || _$stringWithLength_35(value);\n }\n },\n appType: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || _$stringWithLength_35(value);\n }\n },\n autoDetectErrors: {\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n },\n enabledErrorTypes: {\n defaultValue: function () {\n return defaultErrorTypes();\n },\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: function (value) {\n // ensure we have an object\n if (typeof value !== 'object' || !value) return false;\n var providedKeys = _$keys_24(value);\n var defaultKeys = _$keys_24(defaultErrorTypes());\n // ensure it only has a subset of the allowed keys\n if (_$filter_21(providedKeys, function (k) {\n return _$includes_22(defaultKeys, k);\n }).length < providedKeys.length) return false;\n // ensure all of the values are boolean\n if (_$filter_21(_$keys_24(value), function (k) {\n return typeof value[k] !== 'boolean';\n }).length > 0) return false;\n return true;\n }\n },\n onError: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_34\n },\n onSession: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_34\n },\n onBreadcrumb: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_34\n },\n endpoints: {\n defaultValue: function (endpoints) {\n // only apply the default value if no endpoints have been provided, otherwise prevent delivery by setting to null\n if (typeof endpoints === 'undefined') {\n return {\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n };\n } else {\n return {\n notify: null,\n sessions: null\n };\n }\n },\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: function (val) {\n return (\n // first, ensure it's an object\n val && typeof val === 'object' &&\n // notify and sessions must always be set\n _$stringWithLength_35(val.notify) && _$stringWithLength_35(val.sessions) &&\n // ensure no keys other than notify/session are set on endpoints object\n _$filter_21(_$keys_24(val), function (k) {\n return !_$includes_22(['notify', 'sessions'], k);\n }).length === 0\n );\n }\n },\n autoTrackSessions: {\n defaultValue: function (val) {\n return true;\n },\n message: 'should be true|false',\n validate: function (val) {\n return val === true || val === false;\n }\n },\n enabledReleaseStages: {\n defaultValue: function () {\n return null;\n },\n message: 'should be an array of strings',\n validate: function (value) {\n return value === null || _$isArray_23(value) && _$filter_21(value, function (f) {\n return typeof f === 'string';\n }).length === value.length;\n }\n },\n releaseStage: {\n defaultValue: function () {\n return 'production';\n },\n message: 'should be a string',\n validate: function (value) {\n return typeof value === 'string' && value.length;\n }\n },\n maxBreadcrumbs: {\n defaultValue: function () {\n return 25;\n },\n message: 'should be a number ≤100',\n validate: function (value) {\n return _$intRange_33(0, 100)(value);\n }\n },\n enabledBreadcrumbTypes: {\n defaultValue: function () {\n return _$breadcrumbTypes_17;\n },\n message: \"should be null or a list of available breadcrumb types (\" + _$breadcrumbTypes_17.join(',') + \")\",\n validate: function (value) {\n return value === null || _$isArray_23(value) && _$reduce_26(value, function (accum, maybeType) {\n if (accum === false) return accum;\n return _$includes_22(_$breadcrumbTypes_17, maybeType);\n }, true);\n }\n },\n context: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || typeof value === 'string';\n }\n },\n user: {\n defaultValue: function () {\n return {};\n },\n message: 'should be an object with { id, email, name } properties',\n validate: function (value) {\n return value === null || value && _$reduce_26(_$keys_24(value), function (accum, key) {\n return accum && _$includes_22(['id', 'email', 'name'], key);\n }, true);\n }\n },\n metadata: {\n defaultValue: function () {\n return {};\n },\n message: 'should be an object',\n validate: function (value) {\n return typeof value === 'object' && value !== null;\n }\n },\n logger: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: function (value) {\n return !value || value && _$reduce_26(['debug', 'info', 'warn', 'error'], function (accum, method) {\n return accum && typeof value[method] === 'function';\n }, true);\n }\n },\n redactedKeys: {\n defaultValue: function () {\n return ['password'];\n },\n message: 'should be an array of strings|regexes',\n validate: function (value) {\n return _$isArray_23(value) && value.length === _$filter_21(value, function (s) {\n return typeof s === 'string' || s && typeof s.test === 'function';\n }).length;\n }\n },\n plugins: {\n defaultValue: function () {\n return [];\n },\n message: 'should be an array of plugin objects',\n validate: function (value) {\n return _$isArray_23(value) && value.length === _$filter_21(value, function (p) {\n return p && typeof p === 'object' && typeof p.load === 'function';\n }).length;\n }\n },\n featureFlags: {\n defaultValue: function () {\n return [];\n },\n message: 'should be an array of objects that have a \"name\" property',\n validate: function (value) {\n return _$isArray_23(value) && value.length === _$filter_21(value, function (feature) {\n return feature && typeof feature === 'object' && typeof feature.name === 'string';\n }).length;\n }\n },\n reportUnhandledPromiseRejectionsAsHandled: {\n defaultValue: function () {\n return false;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n }\n};\n\n// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nvar _$assign_20 = function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n/* removed: var _$reduce_26 = require('./reduce'); */;\n\n// Array#map\nvar _$map_25 = function (arr, fn) {\n return _$reduce_26(arr, function (accum, item, i, arr) {\n return accum.concat(fn(item, i, arr));\n }, []);\n};\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar schema = _$config_14.schema;\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\nvar _$config_10 = {\n releaseStage: _$assign_20({}, schema.releaseStage, {\n defaultValue: function () {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development';\n return 'production';\n }\n }),\n appType: _extends({}, schema.appType, {\n defaultValue: function () {\n return 'browser';\n }\n }),\n logger: _$assign_20({}, schema.logger, {\n defaultValue: function () {\n return (\n // set logger based on browser capability\n typeof console !== 'undefined' && typeof console.debug === 'function' ? getPrefixedConsole() : undefined\n );\n }\n })\n};\nvar getPrefixedConsole = function () {\n var logger = {};\n var consoleLog = console.log;\n _$map_25(['debug', 'info', 'warn', 'error'], function (method) {\n var consoleMethod = console[method];\n logger[method] = typeof consoleMethod === 'function' ? consoleMethod.bind(console, '[bugsnag]') : consoleLog.bind(console, '[bugsnag]');\n });\n return logger;\n};\n\nvar Breadcrumb = /*#__PURE__*/function () {\n function Breadcrumb(message, metadata, type, timestamp) {\n if (timestamp === void 0) {\n timestamp = new Date();\n }\n this.type = type;\n this.message = message;\n this.metadata = metadata;\n this.timestamp = timestamp;\n }\n var _proto = Breadcrumb.prototype;\n _proto.toJSON = function toJSON() {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n };\n };\n return Breadcrumb;\n}();\nvar _$Breadcrumb_12 = Breadcrumb;\n\nvar _$stackframe_9 = {};\n(function (root, factory) {\n 'use strict';\n\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof _$stackframe_9 === 'object') {\n _$stackframe_9 = factory();\n } else {\n root.StackFrame = factory();\n }\n})(this, function () {\n 'use strict';\n\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n function _getter(p) {\n return function () {\n return this[p];\n };\n }\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var objectProps = ['evalOrigin'];\n var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps);\n function StackFrame(obj) {\n if (!obj) return;\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n StackFrame.prototype = {\n getArgs: function () {\n return this.args;\n },\n setArgs: function (v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n getEvalOrigin: function () {\n return this.evalOrigin;\n },\n setEvalOrigin: function (v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n toString: function () {\n var fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = function (p) {\n return function (v) {\n this[p] = Boolean(v);\n };\n }(booleanProps[i]);\n }\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = function (p) {\n return function (v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n }(numericProps[j]);\n }\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = function (p) {\n return function (v) {\n this[p] = String(v);\n };\n }(stringProps[k]);\n }\n return StackFrame;\n});\n\nvar _$stackGenerator_8 = {};\n(function (root, factory) {\n 'use strict';\n\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof _$stackGenerator_8 === 'object') {\n _$stackGenerator_8 = factory(_$stackframe_9);\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n})(this, function (StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({\n functionName: RegExp.$1 || undefined,\n args: args\n }));\n } else {\n stack.push(new StackFrame({\n args: args\n }));\n }\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n return stack;\n }\n };\n});\n\nvar _$errorStackParser_6 = {};\n(function (root, factory) {\n 'use strict';\n\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof _$errorStackParser_6 === 'object') {\n _$errorStackParser_6 = factory(_$stackframe_9);\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n})(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n // if a location was matched, pass it to extractLocation() otherwise pop the last token\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function (line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || e.message.indexOf('\\n') > -1 && e.message.split('\\n').length > e.stacktrace.split('\\n').length) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n return result;\n },\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n return result;\n },\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n return filtered.map(function (line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || '';\n var functionName = functionCall.replace(//, '$2').replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = argsRaw === undefined || argsRaw === '[arguments not available]' ? undefined : argsRaw.split(',');\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n});\n\nvar _$errorStackParser_19 = _$errorStackParser_6;\n\nvar _$safeJsonStringify_5 = function (data, replacer, space, opts) {\n var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : [];\n var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : [];\n return JSON.stringify(prepareObjForSerialization(data, redactedKeys, redactedPaths), replacer, space);\n};\nvar MAX_DEPTH = 20;\nvar MAX_EDGES = 25000;\nvar MIN_PRESERVED_DEPTH = 8;\nvar REPLACEMENT_NODE = '...';\nfunction isError(o) {\n return o instanceof Error || /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o));\n}\nfunction throwsMessage(err) {\n return '[Throws: ' + (err ? err.message : '?') + ']';\n}\nfunction find(haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true;\n }\n return false;\n}\n\n// returns true if the string `path` starts with any of the provided `paths`\nfunction isDescendent(paths, path) {\n for (var i = 0, len = paths.length; i < len; i++) {\n if (path.indexOf(paths[i]) === 0) return true;\n }\n return false;\n}\nfunction shouldRedact(patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true;\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true;\n }\n return false;\n}\nfunction __isArray_5(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\nfunction safelyGetProp(obj, prop) {\n try {\n return obj[prop];\n } catch (err) {\n return throwsMessage(err);\n }\n}\nfunction prepareObjForSerialization(obj, redactedKeys, redactedPaths) {\n var seen = []; // store references to objects we have seen before\n var edges = 0;\n function visit(obj, path) {\n function edgesExceeded() {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES;\n }\n edges++;\n if (path.length > MAX_DEPTH) return REPLACEMENT_NODE;\n if (edgesExceeded()) return REPLACEMENT_NODE;\n if (obj === null || typeof obj !== 'object') return obj;\n if (find(seen, obj)) return '[Circular]';\n seen.push(obj);\n if (typeof obj.toJSON === 'function') {\n try {\n // we're not going to count this as an edge because it\n // replaces the value of the currently visited object\n edges--;\n var fResult = visit(obj.toJSON(), path);\n seen.pop();\n return fResult;\n } catch (err) {\n return throwsMessage(err);\n }\n }\n var er = isError(obj);\n if (er) {\n edges--;\n var eResult = visit({\n name: obj.name,\n message: obj.message\n }, path);\n seen.pop();\n return eResult;\n }\n if (__isArray_5(obj)) {\n var aResult = [];\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE);\n break;\n }\n aResult.push(visit(obj[i], path.concat('[]')));\n }\n seen.pop();\n return aResult;\n }\n var result = {};\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue;\n if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n result[prop] = '[REDACTED]';\n continue;\n }\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE;\n break;\n }\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop));\n }\n } catch (e) {}\n seen.pop();\n return result;\n }\n return visit(obj, []);\n}\n\n/* removed: var _$map_25 = require('./es-utils/map'); */;\n/* removed: var _$filter_21 = require('./es-utils/filter'); */;\n/* removed: var _$isArray_23 = require('./es-utils/is-array'); */;\n/* removed: var _$safeJsonStringify_5 = require('@bugsnag/safe-json-stringify'); */;\nfunction add(existingFeatures, existingFeatureKeys, name, variant) {\n if (typeof name !== 'string') {\n return;\n }\n if (variant === undefined) {\n variant = null;\n } else if (variant !== null && typeof variant !== 'string') {\n variant = _$safeJsonStringify_5(variant);\n }\n var existingIndex = existingFeatureKeys[name];\n if (typeof existingIndex === 'number') {\n existingFeatures[existingIndex] = {\n name: name,\n variant: variant\n };\n return;\n }\n existingFeatures.push({\n name: name,\n variant: variant\n });\n existingFeatureKeys[name] = existingFeatures.length - 1;\n}\nfunction merge(existingFeatures, newFeatures, existingFeatureKeys) {\n if (!_$isArray_23(newFeatures)) {\n return;\n }\n for (var i = 0; i < newFeatures.length; ++i) {\n var feature = newFeatures[i];\n if (feature === null || typeof feature !== 'object') {\n continue;\n }\n\n // 'add' will handle if 'name' doesn't exist & 'variant' is optional\n add(existingFeatures, existingFeatureKeys, feature.name, feature.variant);\n }\n return existingFeatures;\n}\n\n// convert feature flags from a map of 'name -> variant' into the format required\n// by the Bugsnag Event API:\n// [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }]\nfunction toEventApi(featureFlags) {\n return _$map_25(_$filter_21(featureFlags, Boolean), function (_ref) {\n var name = _ref.name,\n variant = _ref.variant;\n var flag = {\n featureFlag: name\n };\n\n // don't add a 'variant' property unless there's actually a value\n if (typeof variant === 'string') {\n flag.variant = variant;\n }\n return flag;\n });\n}\nfunction clear(features, featuresIndex, name) {\n var existingIndex = featuresIndex[name];\n if (typeof existingIndex === 'number') {\n features[existingIndex] = null;\n delete featuresIndex[name];\n }\n}\nvar _$featureFlagDelegate_27 = {\n add: add,\n clear: clear,\n merge: merge,\n toEventApi: toEventApi\n};\n\n// Given `err` which may be an error, does it have a stack property which is a string?\nvar _$hasStack_28 = function (err) {\n return !!err && (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) && typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' && err.stack !== err.name + \": \" + err.message;\n};\n\n/**\n * Expose `isError`.\n */\n\nvar _$isError_7 = __isError_7;\n\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction __isError_7(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return value instanceof Error;\n }\n}\n\nvar _$iserror_29 = _$isError_7;\n\n/* removed: var _$assign_20 = require('./es-utils/assign'); */;\nvar __add_31 = function (state, section, keyOrObj, maybeVal) {\n var _updates;\n if (!section) return;\n var updates;\n\n // addMetadata(\"section\", null) -> clears section\n if (keyOrObj === null) return __clear_31(state, section);\n\n // normalise the two supported input types into object form\n if (typeof keyOrObj === 'object') updates = keyOrObj;\n if (typeof keyOrObj === 'string') updates = (_updates = {}, _updates[keyOrObj] = maybeVal, _updates);\n\n // exit if we don't have an updates object at this point\n if (!updates) return;\n\n // preventing the __proto__ property from being used as a key\n if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n return;\n }\n\n // ensure a section with this name exists\n if (!state[section]) state[section] = {};\n\n // merge the updates with the existing section\n state[section] = _$assign_20({}, state[section], updates);\n};\nvar get = function (state, section, key) {\n if (typeof section !== 'string') return undefined;\n if (!key) {\n return state[section];\n }\n if (state[section]) {\n return state[section][key];\n }\n return undefined;\n};\nvar __clear_31 = function (state, section, key) {\n if (typeof section !== 'string') return;\n\n // clear an entire section\n if (!key) {\n delete state[section];\n return;\n }\n\n // preventing the __proto__ property from being used as a key\n if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n return;\n }\n\n // clear a single value from a section\n if (state[section]) {\n delete state[section][key];\n }\n};\nvar _$metadataDelegate_31 = {\n add: __add_31,\n get: get,\n clear: __clear_31\n};\n\nfunction ___extends_15() { ___extends_15 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return ___extends_15.apply(this, arguments); }\n/* removed: var _$errorStackParser_19 = require('./lib/error-stack-parser'); */;\n/* removed: var _$stackGenerator_8 = require('stack-generator'); */;\n/* removed: var _$hasStack_28 = require('./lib/has-stack'); */;\n/* removed: var _$map_25 = require('./lib/es-utils/map'); */;\n/* removed: var _$reduce_26 = require('./lib/es-utils/reduce'); */;\n/* removed: var _$filter_21 = require('./lib/es-utils/filter'); */;\n/* removed: var _$assign_20 = require('./lib/es-utils/assign'); */;\n/* removed: var _$metadataDelegate_31 = require('./lib/metadata-delegate'); */;\n/* removed: var _$featureFlagDelegate_27 = require('./lib/feature-flag-delegate'); */;\n/* removed: var _$iserror_29 = require('./lib/iserror'); */;\nvar Event = /*#__PURE__*/function () {\n function Event(errorClass, errorMessage, stacktrace, handledState, originalError) {\n if (stacktrace === void 0) {\n stacktrace = [];\n }\n if (handledState === void 0) {\n handledState = defaultHandledState();\n }\n this.apiKey = undefined;\n this.context = undefined;\n this.groupingHash = undefined;\n this.originalError = originalError;\n this._handledState = handledState;\n this.severity = this._handledState.severity;\n this.unhandled = this._handledState.unhandled;\n this.app = {};\n this.device = {};\n this.request = {};\n this.breadcrumbs = [];\n this.threads = [];\n this._metadata = {};\n this._features = [];\n this._featuresIndex = {};\n this._user = {};\n this._session = undefined;\n this._correlation = undefined;\n this.errors = [createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)];\n\n // Flags.\n // Note these are not initialised unless they are used\n // to save unnecessary bytes in the browser bundle\n\n /* this.attemptImmediateDelivery, default: true */\n }\n var _proto = Event.prototype;\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_31.add(this._metadata, section, keyOrObj, maybeVal);\n }\n\n /**\n * Associate this event with a specific trace. This is usually done automatically when\n * using bugsnag-js-performance, but can also be set manually if required.\n *\n * @param traceId the ID of the trace the event occurred within\n * @param spanId the ID of the span that the event occurred within\n */;\n _proto.setTraceCorrelation = function setTraceCorrelation(traceId, spanId) {\n if (typeof traceId === 'string') {\n this._correlation = ___extends_15({\n traceId: traceId\n }, typeof spanId === 'string' ? {\n spanId: spanId\n } : {});\n }\n };\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_31.get(this._metadata, section, key);\n };\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_31.clear(this._metadata, section, key);\n };\n _proto.addFeatureFlag = function addFeatureFlag(name, variant) {\n if (variant === void 0) {\n variant = null;\n }\n _$featureFlagDelegate_27.add(this._features, this._featuresIndex, name, variant);\n };\n _proto.addFeatureFlags = function addFeatureFlags(featureFlags) {\n _$featureFlagDelegate_27.merge(this._features, featureFlags, this._featuresIndex);\n };\n _proto.getFeatureFlags = function getFeatureFlags() {\n return _$featureFlagDelegate_27.toEventApi(this._features);\n };\n _proto.clearFeatureFlag = function clearFeatureFlag(name) {\n _$featureFlagDelegate_27.clear(this._features, this._featuresIndex, name);\n };\n _proto.clearFeatureFlags = function clearFeatureFlags() {\n this._features = [];\n this._featuresIndex = {};\n };\n _proto.getUser = function getUser() {\n return this._user;\n };\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n _proto.toJSON = function toJSON() {\n return {\n payloadVersion: '4',\n exceptions: _$map_25(this.errors, function (er) {\n return _$assign_20({}, er, {\n message: er.errorMessage\n });\n }),\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n request: this.request,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n metaData: this._metadata,\n user: this._user,\n session: this._session,\n featureFlags: this.getFeatureFlags(),\n correlation: this._correlation\n };\n };\n return Event;\n}(); // takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\nvar formatStackframe = function (frame) {\n var f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined\n };\n // Some instances result in no file:\n // - calling notify() from chrome's terminal results in no file/method.\n // - non-error exception thrown from global code in FF\n // This adds one.\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code';\n }\n return f;\n};\nvar normaliseFunctionName = function (name) {\n return /^global code$/i.test(name) ? 'global code' : name;\n};\nvar defaultHandledState = function () {\n return {\n unhandled: false,\n severity: 'warning',\n severityReason: {\n type: 'handledException'\n }\n };\n};\nvar ensureString = function (str) {\n return typeof str === 'string' ? str : '';\n};\nfunction createBugsnagError(errorClass, errorMessage, type, stacktrace) {\n return {\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type: type,\n stacktrace: _$reduce_26(stacktrace, function (accum, frame) {\n var f = formatStackframe(frame);\n // don't include a stackframe if none of its properties are defined\n try {\n if (JSON.stringify(f) === '{}') return accum;\n return accum.concat(f);\n } catch (e) {\n return accum;\n }\n }, [])\n };\n}\nfunction getCauseStack(error) {\n if (error.cause) {\n return [error].concat(getCauseStack(error.cause));\n } else {\n return [error];\n }\n}\n\n// Helpers\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (_$hasStack_28(error)) return _$errorStackParser_19.parse(error).slice(errorFramesToSkip);\n // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n try {\n return _$filter_21(_$stackGenerator_8.backtrace(), function (frame) {\n return (frame.functionName || '').indexOf('StackGenerator$$') === -1;\n }).slice(1 + backtraceFramesToSkip);\n } catch (e) {\n return [];\n }\n};\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip, logger) {\n if (errorFramesToSkip === void 0) {\n errorFramesToSkip = 0;\n }\n var _normaliseError = normaliseError(maybeError, tolerateNonErrors, component, logger),\n error = _normaliseError[0],\n internalFrames = _normaliseError[1];\n var event;\n try {\n var stacktrace = Event.getStacktrace(error,\n // if an error was created/throw in the normaliseError() function, we need to\n // tell the getStacktrace() function to skip the number of frames we know will\n // be from our own functions. This is added to the number of frames deep we\n // were told about\n internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0,\n // if there's no stacktrace, the callstack may be walked to generated one.\n // this is how many frames should be removed because they come from our library\n 1 + errorFramesToSkip);\n event = new Event(error.name, error.message, stacktrace, handledState, maybeError);\n } catch (e) {\n event = new Event(error.name, error.message, [], handledState, maybeError);\n }\n if (error.name === 'InvalidError') {\n event.addMetadata(\"\" + component, 'non-error parameter', makeSerialisable(maybeError));\n }\n if (error.cause) {\n var _event$errors;\n var causes = getCauseStack(error).slice(1);\n var normalisedCauses = _$map_25(causes, function (cause) {\n // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n var stacktrace = _$iserror_29(cause) && _$hasStack_28(cause) ? _$errorStackParser_19.parse(cause) : [];\n var _normaliseError2 = normaliseError(cause, true, 'error cause'),\n error = _normaliseError2[0];\n if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause));\n return createBugsnagError(error.name, error.message, Event.__type, stacktrace);\n });\n (_event$errors = event.errors).push.apply(_event$errors, normalisedCauses);\n }\n return event;\n};\nvar makeSerialisable = function (err) {\n if (err === null) return 'null';\n if (err === undefined) return 'undefined';\n return err;\n};\nvar normaliseError = function (maybeError, tolerateNonErrors, component, logger) {\n var error;\n var internalFrames = 0;\n var createAndLogInputError = function (reason) {\n var verb = component === 'error cause' ? 'was' : 'received';\n if (logger) logger.warn(component + \" \" + verb + \" a non-error: \\\"\" + reason + \"\\\"\");\n var err = new Error(component + \" \" + verb + \" a non-error. See \\\"\" + component + \"\\\" tab for more detail.\");\n err.name = 'InvalidError';\n return err;\n };\n\n // In some cases:\n //\n // - the promise rejection handler (both in the browser and node)\n // - the node uncaughtException handler\n //\n // We are really limited in what we can do to get a stacktrace. So we use the\n // tolerateNonErrors option to ensure that the resulting error communicates as\n // such.\n if (!tolerateNonErrors) {\n if (_$iserror_29(maybeError)) {\n error = maybeError;\n } else {\n error = createAndLogInputError(typeof maybeError);\n internalFrames += 2;\n }\n } else {\n switch (typeof maybeError) {\n case 'string':\n case 'number':\n case 'boolean':\n error = new Error(String(maybeError));\n internalFrames += 1;\n break;\n case 'function':\n error = createAndLogInputError('function');\n internalFrames += 2;\n break;\n case 'object':\n if (maybeError !== null && _$iserror_29(maybeError)) {\n error = maybeError;\n } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n error = new Error(maybeError.message || maybeError.errorMessage);\n error.name = maybeError.name || maybeError.errorClass;\n internalFrames += 1;\n } else {\n error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object');\n internalFrames += 2;\n }\n break;\n default:\n error = createAndLogInputError('nothing');\n internalFrames += 2;\n }\n }\n if (!_$hasStack_28(error)) {\n // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n try {\n throw error;\n } catch (e) {\n if (_$hasStack_28(e)) {\n error = e;\n // if the error only got a stacktrace after we threw it here, we know it\n // will only have one extra internal frame from this function, regardless\n // of whether it went through createAndLogInputError() or not\n internalFrames = 1;\n }\n }\n }\n return [error, internalFrames];\n};\n\n// default value for stacktrace.type\nEvent.__type = 'browserjs';\nvar hasNecessaryFields = function (error) {\n return (typeof error.name === 'string' || typeof error.errorClass === 'string') && (typeof error.message === 'string' || typeof error.errorMessage === 'string');\n};\nvar _$Event_15 = Event;\n\n// This is a heavily modified/simplified version of\n// https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n// - fn(item, cb) => calls cb(null, false)\n// - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nvar _$asyncEvery_16 = function (arr, fn, cb) {\n var index = 0;\n var next = function () {\n if (index >= arr.length) return cb(null, true);\n fn(arr[index], function (err, result) {\n if (err) return cb(err);\n if (result === false) return cb(null, false);\n index++;\n next();\n });\n };\n next();\n};\n\n/* removed: var _$asyncEvery_16 = require('./async-every'); */;\nvar _$callbackRunner_18 = function (callbacks, event, onCallbackError, cb) {\n // This function is how we support different kinds of callback:\n // - synchronous - return value\n // - node-style async with callback - cb(err, value)\n // - promise/thenable - resolve(value)\n // It normalises each of these into the lowest common denominator – a node-style callback\n var runMaybeAsyncCallback = function (fn, cb) {\n if (typeof fn !== 'function') return cb(null);\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n var ret = fn(event);\n // check if it returned a \"thenable\" (promise)\n if (ret && typeof ret.then === 'function') {\n return ret.then(\n // resolve\n function (val) {\n return setTimeout(function () {\n return cb(null, val);\n });\n },\n // reject\n function (err) {\n setTimeout(function () {\n onCallbackError(err);\n return cb(null, true);\n });\n });\n }\n return cb(null, ret);\n }\n // if function is async…\n fn(event, function (err, result) {\n if (err) {\n onCallbackError(err);\n return cb(null);\n }\n cb(null, result);\n });\n } catch (e) {\n onCallbackError(e);\n cb(null);\n }\n };\n _$asyncEvery_16(callbacks, runMaybeAsyncCallback, cb);\n};\n\nvar _$syncCallbackRunner_32 = function (callbacks, callbackArg, callbackType, logger) {\n var ignore = false;\n var cbs = callbacks.slice();\n while (!ignore) {\n if (!cbs.length) break;\n try {\n ignore = cbs.pop()(callbackArg) === false;\n } catch (e) {\n logger.error(\"Error occurred in \" + callbackType + \" callback, continuing anyway\\u2026\");\n logger.error(e);\n }\n }\n return ignore;\n};\n\nvar _$pad_4 = function pad(num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n};\n\n/* removed: var _$pad_4 = require('./pad.js'); */;\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\nfor (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = _$pad_4((mimeTypesLength + navigator.userAgent.length).toString(36) + globalCount.toString(36), 4);\nvar _$fingerprint_2 = function fingerprint() {\n return clientId;\n};\n\n/**\n * Check the provided value is a valid device id\n * @param {unknown} value\n * @returns\n */\nvar _$isCuid_3 = function isCuid(value) {\n return typeof value === 'string' && /^c[a-z0-9]{20,32}$/.test(value);\n};\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\n/* removed: var _$fingerprint_2 = require('./lib/fingerprint.js'); */;\n/* removed: var _$isCuid_3 = require('./lib/is-cuid.js'); */;\n/* removed: var _$pad_4 = require('./lib/pad.js'); */;\nvar c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\nfunction randomBlock() {\n return _$pad_4((Math.random() * discreteValues << 0).toString(base), blockSize);\n}\nfunction safeCounter() {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n return c - 1;\n}\nfunction cuid() {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c',\n // hard-coded allows for sequential access\n\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = new Date().getTime().toString(base),\n // Prevent same-machine collisions.\n counter = _$pad_4(safeCounter().toString(base), blockSize),\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = _$fingerprint_2(),\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n return letter + timestamp + counter + print + random;\n}\ncuid.fingerprint = _$fingerprint_2;\ncuid.isCuid = _$isCuid_3;\nvar _$cuid_1 = cuid;\n\n/* removed: var _$cuid_1 = require('@bugsnag/cuid'); */;\nvar Session = /*#__PURE__*/function () {\n function Session() {\n this.id = _$cuid_1();\n this.startedAt = new Date();\n this._handled = 0;\n this._unhandled = 0;\n this._user = {};\n this.app = {};\n this.device = {};\n }\n var _proto = Session.prototype;\n _proto.getUser = function getUser() {\n return this._user;\n };\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n _proto.toJSON = function toJSON() {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: {\n handled: this._handled,\n unhandled: this._unhandled\n }\n };\n };\n _proto._track = function _track(event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1;\n };\n return Session;\n}();\nvar _$Session_36 = Session;\n\n/* removed: var _$config_14 = require('./config'); */;\n/* removed: var _$Event_15 = require('./event'); */;\n/* removed: var _$Breadcrumb_12 = require('./breadcrumb'); */;\n/* removed: var _$Session_36 = require('./session'); */;\n/* removed: var _$map_25 = require('./lib/es-utils/map'); */;\n/* removed: var _$includes_22 = require('./lib/es-utils/includes'); */;\n/* removed: var _$filter_21 = require('./lib/es-utils/filter'); */;\n/* removed: var _$reduce_26 = require('./lib/es-utils/reduce'); */;\n/* removed: var _$keys_24 = require('./lib/es-utils/keys'); */;\n/* removed: var _$assign_20 = require('./lib/es-utils/assign'); */;\n/* removed: var _$callbackRunner_18 = require('./lib/callback-runner'); */;\n/* removed: var _$metadataDelegate_31 = require('./lib/metadata-delegate'); */;\n/* removed: var _$syncCallbackRunner_32 = require('./lib/sync-callback-runner'); */;\n/* removed: var _$breadcrumbTypes_17 = require('./lib/breadcrumb-types'); */;\nvar __add_13 = _$featureFlagDelegate_27.add,\n __clear_13 = _$featureFlagDelegate_27.clear,\n __merge_13 = _$featureFlagDelegate_27.merge;\nvar noop = function () {};\nvar Client = /*#__PURE__*/function () {\n function Client(configuration, schema, internalPlugins, notifier) {\n var _this = this;\n if (schema === void 0) {\n schema = _$config_14.schema;\n }\n if (internalPlugins === void 0) {\n internalPlugins = [];\n }\n // notifier id\n this._notifier = notifier;\n\n // intialise opts and config\n this._config = {};\n this._schema = schema;\n\n // i/o\n this._delivery = {\n sendSession: noop,\n sendEvent: noop\n };\n this._logger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop\n };\n\n // plugins\n this._plugins = {};\n\n // state\n this._breadcrumbs = [];\n this._session = null;\n this._metadata = {};\n this._featuresIndex = {};\n this._features = [];\n this._context = undefined;\n this._user = {};\n\n // callbacks:\n // e: onError\n // s: onSession\n // sp: onSessionPayload\n // b: onBreadcrumb\n // (note these names are minified by hand because object\n // properties are not safe to minify automatically)\n this._cbs = {\n e: [],\n s: [],\n sp: [],\n b: []\n };\n\n // expose internal constructors\n this.Client = Client;\n this.Event = _$Event_15;\n this.Breadcrumb = _$Breadcrumb_12;\n this.Session = _$Session_36;\n this._config = this._configure(configuration, internalPlugins);\n _$map_25(internalPlugins.concat(this._config.plugins), function (pl) {\n if (pl) _this._loadPlugin(pl);\n });\n\n // when notify() is called we need to know how many frames are from our own source\n // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n // bound to have the client as its `this` value – see below.\n this._depth = 1;\n var self = this;\n var notify = this.notify;\n this.notify = function () {\n return notify.apply(self, arguments);\n };\n }\n var _proto = Client.prototype;\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_31.add(this._metadata, section, keyOrObj, maybeVal);\n };\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_31.get(this._metadata, section, key);\n };\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_31.clear(this._metadata, section, key);\n };\n _proto.addFeatureFlag = function addFeatureFlag(name, variant) {\n if (variant === void 0) {\n variant = null;\n }\n __add_13(this._features, this._featuresIndex, name, variant);\n };\n _proto.addFeatureFlags = function addFeatureFlags(featureFlags) {\n __merge_13(this._features, featureFlags, this._featuresIndex);\n };\n _proto.clearFeatureFlag = function clearFeatureFlag(name) {\n __clear_13(this._features, this._featuresIndex, name);\n };\n _proto.clearFeatureFlags = function clearFeatureFlags() {\n this._features = [];\n this._featuresIndex = {};\n };\n _proto.getContext = function getContext() {\n return this._context;\n };\n _proto.setContext = function setContext(c) {\n this._context = c;\n };\n _proto._configure = function _configure(opts, internalPlugins) {\n var schema = _$reduce_26(internalPlugins, function (schema, plugin) {\n if (plugin && plugin.configSchema) return _$assign_20({}, schema, plugin.configSchema);\n return schema;\n }, this._schema);\n\n // accumulate configuration and error messages\n var _reduce = _$reduce_26(_$keys_24(schema), function (accum, key) {\n var defaultValue = schema[key].defaultValue(opts[key]);\n if (opts[key] !== undefined) {\n var valid = schema[key].validate(opts[key]);\n if (!valid) {\n accum.errors[key] = schema[key].message;\n accum.config[key] = defaultValue;\n } else {\n if (schema[key].allowPartialObject) {\n accum.config[key] = _$assign_20(defaultValue, opts[key]);\n } else {\n accum.config[key] = opts[key];\n }\n }\n } else {\n accum.config[key] = defaultValue;\n }\n return accum;\n }, {\n errors: {},\n config: {}\n }),\n errors = _reduce.errors,\n config = _reduce.config;\n if (schema.apiKey) {\n // missing api key is the only fatal error\n if (!config.apiKey) throw new Error('No Bugsnag API Key set');\n // warn about an apikey that is not of the expected format\n if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters';\n }\n\n // update and elevate some options\n this._metadata = _$assign_20({}, config.metadata);\n __merge_13(this._features, config.featureFlags, this._featuresIndex);\n this._user = _$assign_20({}, config.user);\n this._context = config.context;\n if (config.logger) this._logger = config.logger;\n\n // add callbacks\n if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError);\n if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb);\n if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession);\n\n // finally warn about any invalid config where we fell back to the default\n if (_$keys_24(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts));\n }\n return config;\n };\n _proto.getUser = function getUser() {\n return this._user;\n };\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n _proto._loadPlugin = function _loadPlugin(plugin) {\n var result = plugin.load(this);\n // JS objects are not the safest way to store arbitrarily keyed values,\n // so bookend the key with some characters that prevent tampering with\n // stuff like __proto__ etc. (only store the result if the plugin had a\n // name)\n if (plugin.name) this._plugins[\"~\" + plugin.name + \"~\"] = result;\n };\n _proto.getPlugin = function getPlugin(name) {\n return this._plugins[\"~\" + name + \"~\"];\n };\n _proto._setDelivery = function _setDelivery(d) {\n this._delivery = d(this);\n };\n _proto.startSession = function startSession() {\n var session = new _$Session_36();\n session.app.releaseStage = this._config.releaseStage;\n session.app.version = this._config.appVersion;\n session.app.type = this._config.appType;\n session._user = _$assign_20({}, this._user);\n\n // run onSession callbacks\n var ignore = _$syncCallbackRunner_32(this._cbs.s, session, 'onSession', this._logger);\n if (ignore) {\n this._logger.debug('Session not started due to onSession callback');\n return this;\n }\n return this._sessionDelegate.startSession(this, session);\n };\n _proto.addOnError = function addOnError(fn, front) {\n if (front === void 0) {\n front = false;\n }\n this._cbs.e[front ? 'unshift' : 'push'](fn);\n };\n _proto.removeOnError = function removeOnError(fn) {\n this._cbs.e = _$filter_21(this._cbs.e, function (f) {\n return f !== fn;\n });\n };\n _proto._addOnSessionPayload = function _addOnSessionPayload(fn) {\n this._cbs.sp.push(fn);\n };\n _proto.addOnSession = function addOnSession(fn) {\n this._cbs.s.push(fn);\n };\n _proto.removeOnSession = function removeOnSession(fn) {\n this._cbs.s = _$filter_21(this._cbs.s, function (f) {\n return f !== fn;\n });\n };\n _proto.addOnBreadcrumb = function addOnBreadcrumb(fn, front) {\n if (front === void 0) {\n front = false;\n }\n this._cbs.b[front ? 'unshift' : 'push'](fn);\n };\n _proto.removeOnBreadcrumb = function removeOnBreadcrumb(fn) {\n this._cbs.b = _$filter_21(this._cbs.b, function (f) {\n return f !== fn;\n });\n };\n _proto.pauseSession = function pauseSession() {\n return this._sessionDelegate.pauseSession(this);\n };\n _proto.resumeSession = function resumeSession() {\n return this._sessionDelegate.resumeSession(this);\n };\n _proto.leaveBreadcrumb = function leaveBreadcrumb(message, metadata, type) {\n // coerce bad values so that the defaults get set\n message = typeof message === 'string' ? message : '';\n type = typeof type === 'string' && _$includes_22(_$breadcrumbTypes_17, type) ? type : 'manual';\n metadata = typeof metadata === 'object' && metadata !== null ? metadata : {};\n\n // if no message, discard\n if (!message) return;\n var crumb = new _$Breadcrumb_12(message, metadata, type);\n\n // run onBreadcrumb callbacks\n var ignore = _$syncCallbackRunner_32(this._cbs.b, crumb, 'onBreadcrumb', this._logger);\n if (ignore) {\n this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback');\n return;\n }\n\n // push the valid crumb onto the queue and maintain the length\n this._breadcrumbs.push(crumb);\n if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs);\n }\n };\n _proto._isBreadcrumbTypeEnabled = function _isBreadcrumbTypeEnabled(type) {\n var types = this._config.enabledBreadcrumbTypes;\n return types === null || _$includes_22(types, type);\n };\n _proto.notify = function notify(maybeError, onError, postReportCallback) {\n if (postReportCallback === void 0) {\n postReportCallback = noop;\n }\n var event = _$Event_15.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger);\n this._notify(event, onError, postReportCallback);\n };\n _proto._notify = function _notify(event, onError, postReportCallback) {\n var _this2 = this;\n if (postReportCallback === void 0) {\n postReportCallback = noop;\n }\n event.app = _$assign_20({}, event.app, {\n releaseStage: this._config.releaseStage,\n version: this._config.appVersion,\n type: this._config.appType\n });\n event.context = event.context || this._context;\n event._metadata = _$assign_20({}, event._metadata, this._metadata);\n event._user = _$assign_20({}, event._user, this._user);\n event.breadcrumbs = this._breadcrumbs.slice();\n __merge_13(event._features, this._features, event._featuresIndex);\n\n // exit early if events should not be sent on the current releaseStage\n if (this._config.enabledReleaseStages !== null && !_$includes_22(this._config.enabledReleaseStages, this._config.releaseStage)) {\n this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration');\n return postReportCallback(null, event);\n }\n var originalSeverity = event.severity;\n var onCallbackError = function (err) {\n // errors in callbacks are tolerated but we want to log them out\n _this2._logger.error('Error occurred in onError callback, continuing anyway…');\n _this2._logger.error(err);\n };\n var callbacks = [].concat(this._cbs.e).concat(onError);\n _$callbackRunner_18(callbacks, event, onCallbackError, function (err, shouldSend) {\n if (err) onCallbackError(err);\n if (!shouldSend) {\n _this2._logger.debug('Event not sent due to onError callback');\n return postReportCallback(null, event);\n }\n if (_this2._isBreadcrumbTypeEnabled('error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(_this2, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error');\n }\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = {\n type: 'userCallbackSetSeverity'\n };\n }\n if (event.unhandled !== event._handledState.unhandled) {\n event._handledState.severityReason.unhandledOverridden = true;\n event._handledState.unhandled = event.unhandled;\n }\n if (_this2._session) {\n _this2._session._track(event);\n event._session = _this2._session;\n }\n _this2._delivery.sendEvent({\n apiKey: event.apiKey || _this2._config.apiKey,\n notifier: _this2._notifier,\n events: [event]\n }, function (err) {\n return postReportCallback(err, event);\n });\n });\n };\n return Client;\n}();\nvar generateConfigErrorMessage = function (errors, rawInput) {\n var er = new Error(\"Invalid configuration\\n\" + _$map_25(_$keys_24(errors), function (key) {\n return \" - \" + key + \" \" + errors[key] + \", got \" + stringify(rawInput[key]);\n }).join('\\n\\n'));\n return er;\n};\nvar stringify = function (val) {\n switch (typeof val) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val);\n default:\n return String(val);\n }\n};\nvar _$Client_13 = Client;\n\nvar _$jsonPayload_30 = {};\n/* removed: var _$safeJsonStringify_5 = require('@bugsnag/safe-json-stringify'); */;\nvar EVENT_REDACTION_PATHS = ['events.[].metaData', 'events.[].breadcrumbs.[].metaData', 'events.[].request'];\n_$jsonPayload_30.event = function (event, redactedKeys) {\n var payload = _$safeJsonStringify_5(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier: \"WARNING!\\nSerialized payload was \" + payload.length / 10e5 + \"MB (limit = 1MB)\\nmetadata was removed\"\n };\n payload = _$safeJsonStringify_5(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n }\n return payload;\n};\n_$jsonPayload_30.session = function (session, redactedKeys) {\n var payload = _$safeJsonStringify_5(session, null, null);\n return payload;\n};\n\nvar _$delivery_37 = {};\n/* removed: var _$jsonPayload_30 = require('@bugsnag/core/lib/json-payload'); */;\n_$delivery_37 = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n return {\n sendEvent: function (event, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n if (client._config.endpoints.notify === null) {\n var err = new Error('Event not sent due to incomplete endpoint configuration');\n return cb(err);\n }\n var url = getApiUrl(client._config, 'notify', '4', win);\n var body = _$jsonPayload_30.event(event, client._config.redactedKeys);\n var req = new win.XDomainRequest();\n req.onload = function () {\n cb(null);\n };\n req.onerror = function () {\n var err = new Error('Event failed to send');\n client._logger.error('Event failed to send…', err);\n if (body.length > 10e5) {\n client._logger.warn(\"Event oversized (\" + (body.length / 10e5).toFixed(2) + \" MB)\");\n }\n cb(err);\n };\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(body);\n } catch (e) {\n client._logger.error(e);\n cb(e);\n }\n }, 0);\n },\n sendSession: function (session, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n if (client._config.endpoints.sessions === null) {\n var err = new Error('Session not sent due to incomplete endpoint configuration');\n return cb(err);\n }\n var url = getApiUrl(client._config, 'sessions', '1', win);\n var req = new win.XDomainRequest();\n req.onload = function () {\n cb(null);\n };\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_30.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n cb(e);\n }\n }, 0);\n }\n };\n};\nvar getApiUrl = function (config, endpoint, version, win) {\n // IE8 doesn't support Date.prototype.toISOstring(), but it does convert a date\n // to an ISO string when you use JSON stringify. Simply parsing the result of\n // JSON.stringify is smaller than using a toISOstring() polyfill.\n var isoDate = JSON.parse(JSON.stringify(new Date()));\n var url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol);\n return url + \"?apiKey=\" + encodeURIComponent(config.apiKey) + \"&payloadVersion=\" + version + \"&sentAt=\" + encodeURIComponent(isoDate);\n};\nvar matchPageProtocol = _$delivery_37._matchPageProtocol = function (endpoint, pageProtocol) {\n return pageProtocol === 'http:' ? endpoint.replace(/^https:/, 'http:') : endpoint;\n};\n\n/* removed: var _$jsonPayload_30 = require('@bugsnag/core/lib/json-payload'); */;\nvar _$delivery_38 = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n return {\n sendEvent: function (event, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n try {\n var url = client._config.endpoints.notify;\n if (url === null) {\n var err = new Error('Event not sent due to incomplete endpoint configuration');\n return cb(err);\n }\n var req = new win.XMLHttpRequest();\n var body = _$jsonPayload_30.event(event, client._config.redactedKeys);\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n var status = req.status;\n if (status === 0 || status >= 400) {\n var _err = new Error(\"Request failed with status \" + status);\n client._logger.error('Event failed to send…', _err);\n if (body.length > 10e5) {\n client._logger.warn(\"Event oversized (\" + (body.length / 10e5).toFixed(2) + \" MB)\");\n }\n cb(_err);\n } else {\n cb(null);\n }\n }\n };\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '4');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n req.send(body);\n } catch (e) {\n client._logger.error(e);\n }\n },\n sendSession: function (session, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n try {\n var url = client._config.endpoints.sessions;\n if (url === null) {\n var err = new Error('Session not sent due to incomplete endpoint configuration');\n return cb(err);\n }\n var req = new win.XMLHttpRequest();\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n var status = req.status;\n if (status === 0 || status >= 400) {\n var _err2 = new Error(\"Request failed with status \" + status);\n client._logger.error('Session failed to send…', _err2);\n cb(_err2);\n } else {\n cb(null);\n }\n }\n };\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '1');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n req.send(_$jsonPayload_30.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n }\n }\n };\n};\n\nvar appStart = new Date();\nvar reset = function () {\n appStart = new Date();\n};\nvar _$app_39 = {\n name: 'appDuration',\n load: function (client) {\n client.addOnError(function (event) {\n var now = new Date();\n event.app.duration = now - appStart;\n }, true);\n return {\n reset: reset\n };\n }\n};\n\n/*\n * Sets the default context to be the current URL\n */\nvar _$context_40 = function (win) {\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n client.addOnError(function (event) {\n if (event.context !== undefined) return;\n event.context = win.location.pathname;\n }, true);\n }\n };\n};\n\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\nvar BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id';\nvar getDeviceId = function (win) {\n try {\n var storage = win.localStorage;\n var id = storage.getItem(BUGSNAG_ANONYMOUS_ID_KEY);\n\n // If we get an ID, make sure it looks like a valid cuid. The length can\n // fluctuate slightly, so some leeway is built in\n if (id && /^c[a-z0-9]{20,32}$/.test(id)) {\n return id;\n }\n /* removed: var _$cuid_1 = require('@bugsnag/cuid'); */;\n id = _$cuid_1();\n storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id);\n return id;\n } catch (err) {\n // If localStorage is not available (e.g. because it's disabled) then give up\n }\n};\n\n/*\n * Automatically detects browser device details\n */\nvar _$device_41 = function (nav, win) {\n if (nav === void 0) {\n nav = navigator;\n }\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n var device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n };\n if (win && win.screen && win.screen.orientation && win.screen.orientation.type) {\n device.orientation = win.screen.orientation.type;\n } else if (win && win.document) {\n device.orientation = win.document.documentElement.clientWidth > win.document.documentElement.clientHeight ? 'landscape' : 'portrait';\n }\n if (client._config.generateAnonymousId) {\n device.id = getDeviceId(win);\n }\n client.addOnSession(function (session) {\n session.device = _$assign_20({}, session.device, device);\n // only set device id if collectUserIp is false\n if (!client._config.collectUserIp) setDefaultUserId(session);\n });\n\n // add time just as the event is sent\n client.addOnError(function (event) {\n event.device = _$assign_20({}, event.device, device, {\n time: new Date()\n });\n if (!client._config.collectUserIp) setDefaultUserId(event);\n }, true);\n },\n configSchema: {\n generateAnonymousId: {\n validate: function (value) {\n return value === true || value === false;\n },\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n};\nvar setDefaultUserId = function (eventOrSession) {\n // device id is also used to populate the user id field, if it's not already set\n var user = eventOrSession.getUser();\n if (!user || !user.id) {\n eventOrSession.setUser(eventOrSession.device.id);\n }\n};\n\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\n/*\n * Sets the event request: { url } to be the current href\n */\nvar _$request_42 = function (win) {\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n client.addOnError(function (event) {\n if (event.request && event.request.url) return;\n event.request = _$assign_20({}, event.request, {\n url: win.location.href\n });\n }, true);\n }\n };\n};\n\n/* removed: var _$includes_22 = require('@bugsnag/core/lib/es-utils/includes'); */;\nvar _$session_43 = {\n load: function (client) {\n client._sessionDelegate = sessionDelegate;\n }\n};\nvar sessionDelegate = {\n startSession: function (client, session) {\n var sessionClient = client;\n sessionClient._session = session;\n sessionClient._pausedSession = null;\n\n // exit early if the current releaseStage is not enabled\n if (sessionClient._config.enabledReleaseStages !== null && !_$includes_22(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration');\n return sessionClient;\n }\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [{\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }]\n });\n return sessionClient;\n },\n resumeSession: function (client) {\n // Do nothing if there's already an active session\n if (client._session) {\n return client;\n }\n\n // If we have a paused session then make it the active session\n if (client._pausedSession) {\n client._session = client._pausedSession;\n client._pausedSession = null;\n return client;\n }\n\n // Otherwise start a new session\n return client.startSession();\n },\n pauseSession: function (client) {\n client._pausedSession = client._session;\n client._session = null;\n }\n};\n\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\n/*\n * Prevent collection of user IPs\n */\nvar _$clientIp_44 = {\n load: function (client) {\n if (client._config.collectUserIp) return;\n client.addOnError(function (event) {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (event._user && typeof event._user.id === 'undefined') delete event._user.id;\n event._user = _$assign_20({\n id: '[REDACTED]'\n }, event._user);\n event.request = _$assign_20({\n clientIp: '[REDACTED]'\n }, event.request);\n });\n },\n configSchema: {\n collectUserIp: {\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n }\n }\n};\n\nvar _$consoleBreadcrumbs_45 = {};\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$reduce_26 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n/* removed: var _$filter_21 = require('@bugsnag/core/lib/es-utils/filter'); */;\n\n/*\n * Leaves breadcrumbs when console log methods are called\n */\n_$consoleBreadcrumbs_45.load = function (client) {\n var isDev = /^(local-)?dev(elopment)?$/.test(client._config.releaseStage);\n if (isDev || !client._isBreadcrumbTypeEnabled('log')) return;\n _$map_25(CONSOLE_LOG_METHODS, function (method) {\n var original = console[method];\n console[method] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n client.leaveBreadcrumb('Console output', _$reduce_26(args, function (accum, arg, i) {\n // do the best/simplest stringification of each argument\n var stringified = '[Unknown value]';\n // this may fail if the input is:\n // - an object whose [[Prototype]] is null (no toString)\n // - an object with a broken toString or @@toPrimitive implementation\n try {\n stringified = String(arg);\n } catch (e) {}\n // if it stringifies to [object Object] attempt to JSON stringify\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try {\n stringified = JSON.stringify(arg);\n } catch (e) {}\n }\n accum[\"[\" + i + \"]\"] = stringified;\n return accum;\n }, {\n severity: method.indexOf('group') === 0 ? 'log' : method\n }), 'log');\n original.apply(console, args);\n };\n console[method]._restore = function () {\n console[method] = original;\n };\n });\n};\nif (\"production\" !== 'production') {\n _$consoleBreadcrumbs_45.destroy = function () {\n return CONSOLE_LOG_METHODS.forEach(function (method) {\n if (typeof console[method]._restore === 'function') console[method]._restore();\n });\n };\n}\nvar CONSOLE_LOG_METHODS = _$filter_21(['log', 'debug', 'info', 'warn', 'error'], function (method) {\n return typeof console !== 'undefined' && typeof console[method] === 'function';\n});\n\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$reduce_26 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n/* removed: var _$filter_21 = require('@bugsnag/core/lib/es-utils/filter'); */;\nvar MAX_LINE_LENGTH = 200;\nvar MAX_SCRIPT_LENGTH = 500000;\nvar _$inlineScriptContent_46 = function (doc, win) {\n if (doc === void 0) {\n doc = document;\n }\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n if (!client._config.trackInlineScripts) return;\n var originalLocation = win.location.href;\n var html = '';\n\n // in IE8-10 the 'interactive' state can fire too soon (before scripts have finished executing), so in those\n // we wait for the 'complete' state before assuming that synchronous scripts are no longer executing\n var isOldIe = !!doc.attachEvent;\n var DOMContentLoaded = isOldIe ? doc.readyState === 'complete' : doc.readyState !== 'loading';\n var getHtml = function () {\n return doc.documentElement.outerHTML;\n };\n\n // get whatever HTML exists at this point in time\n html = getHtml();\n var prev = doc.onreadystatechange;\n // then update it when the DOM content has loaded\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml();\n DOMContentLoaded = true;\n }\n try {\n prev.apply(this, arguments);\n } catch (e) {}\n };\n var _lastScript = null;\n var updateLastScript = function (script) {\n _lastScript = script;\n };\n var getCurrentScript = function () {\n var script = doc.currentScript || _lastScript;\n if (!script && !DOMContentLoaded) {\n var scripts = doc.scripts || doc.getElementsByTagName('script');\n script = scripts[scripts.length - 1];\n }\n return script;\n };\n var addSurroundingCode = function (lineNumber) {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml();\n // simulate the raw html\n var htmlLines = [''].concat(html.split('\\n'));\n var zeroBasedLine = lineNumber - 1;\n var start = Math.max(zeroBasedLine - 3, 0);\n var end = Math.min(zeroBasedLine + 3, htmlLines.length);\n return _$reduce_26(htmlLines.slice(start, end), function (accum, line, i) {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH);\n return accum;\n }, {});\n };\n client.addOnError(function (event) {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n event.errors[0].stacktrace = _$filter_21(event.errors[0].stacktrace, function (f) {\n return !/__trace__$/.test(f.method);\n });\n var frame = event.errors[0].stacktrace[0];\n\n // remove hash and query string from url\n var cleanUrl = function (url) {\n return url.replace(/#.*$/, '').replace(/\\?.*$/, '');\n };\n\n // if frame.file exists and is not the original location of the page, this can't be an inline script\n if (frame && frame.file && cleanUrl(frame.file) !== cleanUrl(originalLocation)) return;\n\n // grab the last script known to have run\n var currentScript = getCurrentScript();\n if (currentScript) {\n var content = currentScript.innerHTML;\n event.addMetadata('script', 'content', content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH));\n\n // only attempt to grab some surrounding code if we have a line number\n if (frame && frame.lineNumber) {\n frame.code = addSurroundingCode(frame.lineNumber);\n }\n }\n }, true);\n\n // Proxy all the timer functions whose callback is their 0th argument.\n // Keep a reference to the original setTimeout because we need it later\n var _map = _$map_25(['setTimeout', 'setInterval', 'setImmediate', 'requestAnimationFrame'], function (fn) {\n return __proxy(win, fn, function (original) {\n return __traceOriginalScript(original, function (args) {\n return {\n get: function () {\n return args[0];\n },\n replace: function (fn) {\n args[0] = fn;\n }\n };\n });\n });\n }),\n _setTimeout = _map[0];\n\n // Proxy all the host objects whose prototypes have an addEventListener function\n _$map_25(['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'], function (o) {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return;\n __proxy(win[o].prototype, 'addEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor);\n });\n __proxy(win[o].prototype, 'removeEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor, true);\n });\n });\n function __traceOriginalScript(fn, callbackAccessor, alsoCallOriginal) {\n if (alsoCallOriginal === void 0) {\n alsoCallOriginal = false;\n }\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n var args = [].slice.call(arguments);\n try {\n var cba = callbackAccessor(args);\n var cb = cba.get();\n if (alsoCallOriginal) fn.apply(this, args);\n if (typeof cb !== 'function') return fn.apply(this, args);\n if (cb.__trace__) {\n cba.replace(cb.__trace__);\n } else {\n var script = getCurrentScript();\n // this function mustn't be annonymous due to a bug in the stack\n // generation logic, meaning it gets tripped up\n // see: https://github.com/stacktracejs/stack-generator/issues/6\n cb.__trace__ = function __trace__() {\n // set the script that called this function\n updateLastScript(script);\n // immediately unset the currentScript synchronously below, however\n // if this cb throws an error the line after will not get run so schedule\n // an almost-immediate aysnc update too\n _setTimeout(function () {\n updateLastScript(null);\n }, 0);\n var ret = cb.apply(this, arguments);\n updateLastScript(null);\n return ret;\n };\n cb.__trace__.__trace__ = cb.__trace__;\n cba.replace(cb.__trace__);\n }\n } catch (e) {\n // swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n }\n // IE8 doesn't let you call .apply() on setTimeout/setInterval\n if (fn.apply) return fn.apply(this, args);\n switch (args.length) {\n case 1:\n return fn(args[0]);\n case 2:\n return fn(args[0], args[1]);\n default:\n return fn();\n }\n };\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: function (value) {\n return value === true || value === false;\n },\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n};\nfunction __proxy(host, name, replacer) {\n var original = host[name];\n if (!original) return original;\n var replacement = replacer(original);\n host[name] = replacement;\n return original;\n}\nfunction eventTargetCallbackAccessor(args) {\n var isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function';\n return {\n get: function () {\n return isEventHandlerObj ? args[1].handleEvent : args[1];\n },\n replace: function (fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn;\n } else {\n args[1] = fn;\n }\n }\n };\n}\n\n/*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\nvar _$interactionBreadcrumbs_47 = function (win) {\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n if (!('addEventListener' in win)) return;\n if (!client._isBreadcrumbTypeEnabled('user')) return;\n win.addEventListener('click', function (event) {\n var targetText, targetSelector;\n try {\n targetText = getNodeText(event.target);\n targetSelector = getNodeSelector(event.target, win);\n } catch (e) {\n targetText = '[hidden]';\n targetSelector = '[hidden]';\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z');\n }\n client.leaveBreadcrumb('UI click', {\n targetText: targetText,\n targetSelector: targetSelector\n }, 'user');\n }, true);\n }\n };\n};\nvar trim = /^\\s*([^\\s][\\s\\S]{0,139}[^\\s])?\\s*/;\nfunction getNodeText(el) {\n var text = el.textContent || el.innerText || '';\n if (!text && (el.type === 'submit' || el.type === 'button')) {\n text = el.value;\n }\n text = text.replace(trim, '$1');\n if (text.length > 140) {\n return text.slice(0, 135) + '(...)';\n }\n return text;\n}\n\n// Create a label from tagname, id and css class of the element\nfunction getNodeSelector(el, win) {\n var parts = [el.tagName];\n if (el.id) parts.push('#' + el.id);\n if (el.className && el.className.length) parts.push(\".\" + el.className.split(' ').join('.'));\n // Can't get much more advanced with the current browser\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('');\n try {\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('');\n } catch (e) {\n // Sometimes the query selector can be invalid just return it as-is\n return parts.join('');\n }\n // try to get a more specific selector if this one matches more than one element\n if (el.parentNode.childNodes.length > 1) {\n var index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1;\n parts.push(\":nth-child(\" + index + \")\");\n }\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('');\n // try prepending the parent node selector\n if (el.parentNode) return getNodeSelector(el.parentNode, win) + \" > \" + parts.join('');\n return parts.join('');\n}\n\nvar _$navigationBreadcrumbs_48 = {};\n/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\n_$navigationBreadcrumbs_48 = function (win) {\n if (win === void 0) {\n win = window;\n }\n var plugin = {\n load: function (client) {\n if (!('addEventListener' in win)) return;\n if (!client._isBreadcrumbTypeEnabled('navigation')) return;\n\n // returns a function that will drop a breadcrumb with a given name\n var drop = function (name) {\n return function () {\n return client.leaveBreadcrumb(name, {}, 'navigation');\n };\n };\n\n // simple drops – just names, no meta\n win.addEventListener('pagehide', drop('Page hidden'), true);\n win.addEventListener('pageshow', drop('Page shown'), true);\n win.addEventListener('load', drop('Page loaded'), true);\n win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true);\n // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n win.addEventListener('load', function () {\n return win.addEventListener('popstate', drop('Navigated back'), true);\n });\n\n // hashchange has some metadata that we care about\n win.addEventListener('hashchange', function (event) {\n var metadata = event.oldURL ? {\n from: relativeLocation(event.oldURL, win),\n to: relativeLocation(event.newURL, win),\n state: getCurrentState(win)\n } : {\n to: relativeLocation(win.location.href, win)\n };\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation');\n }, true);\n\n // the only way to know about replaceState/pushState is to wrap them… >_<\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win, true);\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win);\n }\n };\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n win.history.replaceState._restore();\n win.history.pushState._restore();\n };\n }\n return plugin;\n};\nif (\"production\" !== 'production') {\n _$navigationBreadcrumbs_48.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n win.history.replaceState._restore();\n win.history.pushState._restore();\n };\n}\n\n// takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n// just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\nvar relativeLocation = function (url, win) {\n var a = win.document.createElement('A');\n a.href = url;\n return \"\" + a.pathname + a.search + a.hash;\n};\nvar stateChangeToMetadata = function (win, state, title, url) {\n var currentPath = relativeLocation(win.location.href, win);\n return {\n title: title,\n state: state,\n prevState: getCurrentState(win),\n to: url || currentPath,\n from: currentPath\n };\n};\nvar wrapHistoryFn = function (client, target, fn, win, resetEventCount) {\n if (resetEventCount === void 0) {\n resetEventCount = false;\n }\n var orig = target[fn];\n target[fn] = function (state, title, url) {\n client.leaveBreadcrumb(\"History \" + fn, stateChangeToMetadata(win, state, title, url), 'navigation');\n // if throttle plugin is in use, reset the event sent count\n if (resetEventCount && typeof client.resetEventCount === 'function') client.resetEventCount();\n // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n orig.apply(target, [state, title].concat(url !== undefined ? url : []));\n };\n if (\"production\" !== 'production') {\n target[fn]._restore = function () {\n target[fn] = orig;\n };\n }\n};\nvar getCurrentState = function (win) {\n try {\n return win.history.state;\n } catch (e) {}\n};\n\nvar BREADCRUMB_TYPE = 'request';\n/* removed: var _$includes_22 = require('@bugsnag/core/lib/es-utils/includes'); */;\n\n/*\n * Leaves breadcrumbs when network requests occur\n */\nvar _$networkBreadcrumbs_49 = function (_ignoredUrls, win) {\n if (_ignoredUrls === void 0) {\n _ignoredUrls = [];\n }\n if (win === void 0) {\n win = window;\n }\n var restoreFunctions = [];\n var plugin = {\n load: function (client) {\n if (!client._isBreadcrumbTypeEnabled('request')) return;\n var ignoredUrls = [client._config.endpoints.notify, client._config.endpoints.sessions].concat(_ignoredUrls);\n monkeyPatchXMLHttpRequest();\n monkeyPatchFetch();\n\n // XMLHttpRequest monkey patch\n function monkeyPatchXMLHttpRequest() {\n if (!('addEventListener' in win.XMLHttpRequest.prototype) || !('WeakMap' in win)) return;\n var trackedRequests = new WeakMap();\n var requestHandlers = new WeakMap();\n var originalOpen = win.XMLHttpRequest.prototype.open;\n win.XMLHttpRequest.prototype.open = function open(method, url) {\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n trackedRequests.set(this, {\n method: method,\n url: url\n });\n }\n originalOpen.apply(this, arguments);\n };\n var originalSend = win.XMLHttpRequest.prototype.send;\n win.XMLHttpRequest.prototype.send = function send(body) {\n var _this = this;\n var requestData = trackedRequests.get(this);\n if (requestData) {\n // if we have already setup listeners then this request instance is being reused,\n // so we need to remove the listeners from the previous send\n var listeners = requestHandlers.get(this);\n if (listeners) {\n this.removeEventListener('load', listeners.load);\n this.removeEventListener('error', listeners.error);\n }\n var requestStart = new Date();\n var error = function () {\n return handleXHRError(requestData.method, requestData.url, getDuration(requestStart));\n };\n var load = function () {\n return handleXHRLoad(requestData.method, requestData.url, _this.status, getDuration(requestStart));\n };\n this.addEventListener('load', load);\n this.addEventListener('error', error);\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n requestHandlers.set(this, {\n load: load,\n error: error\n });\n }\n }\n originalSend.apply(this, arguments);\n };\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.XMLHttpRequest.prototype.open = originalOpen;\n win.XMLHttpRequest.prototype.send = originalSend;\n });\n }\n }\n function handleXHRLoad(method, url, status, duration) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.');\n return;\n }\n\n // an XMLHttpRequest's URL can be an object as long as its 'toString'\n // returns a URL, e.g. a HTMLAnchorElement\n if (typeof url === 'string' && _$includes_22(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n }\n var metadata = {\n status: status,\n method: String(method),\n url: String(url),\n duration: duration\n };\n if (status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE);\n }\n }\n function handleXHRError(method, url, duration) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.');\n return;\n }\n if (typeof url === 'string' && _$includes_22(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n }\n\n // failed to contact server\n client.leaveBreadcrumb('XMLHttpRequest error', {\n method: String(method),\n url: String(url),\n duration: duration\n }, BREADCRUMB_TYPE);\n }\n\n // window.fetch monkey patch\n function monkeyPatchFetch() {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return;\n var oldFetch = win.fetch;\n win.fetch = function fetch() {\n var _arguments = arguments;\n var urlOrRequest = arguments[0];\n var options = arguments[1];\n var method;\n var url = null;\n if (urlOrRequest && typeof urlOrRequest === 'object') {\n url = urlOrRequest.url;\n if (options && 'method' in options) {\n method = options.method;\n } else if (urlOrRequest && 'method' in urlOrRequest) {\n method = urlOrRequest.method;\n }\n } else {\n url = urlOrRequest;\n if (options && 'method' in options) {\n method = options.method;\n }\n }\n if (method === undefined) {\n method = 'GET';\n }\n return new Promise(function (resolve, reject) {\n var requestStart = new Date();\n\n // pass through to native fetch\n oldFetch.apply(void 0, _arguments).then(function (response) {\n handleFetchSuccess(response, method, url, getDuration(requestStart));\n resolve(response);\n })[\"catch\"](function (error) {\n handleFetchError(method, url, getDuration(requestStart));\n reject(error);\n });\n });\n };\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.fetch = oldFetch;\n });\n }\n }\n var handleFetchSuccess = function (response, method, url, duration) {\n var metadata = {\n method: String(method),\n status: response.status,\n url: String(url),\n duration: duration\n };\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE);\n }\n };\n var handleFetchError = function (method, url, duration) {\n client.leaveBreadcrumb('fetch() error', {\n method: String(method),\n url: String(url),\n duration: duration\n }, BREADCRUMB_TYPE);\n };\n }\n };\n if (\"production\" !== 'production') {\n plugin.destroy = function () {\n restoreFunctions.forEach(function (fn) {\n return fn();\n });\n restoreFunctions = [];\n };\n }\n return plugin;\n};\nvar getDuration = function (startTime) {\n return startTime && new Date() - startTime;\n};\n\n/* removed: var _$intRange_33 = require('@bugsnag/core/lib/validators/int-range'); */;\n\n/*\n * Throttles and dedupes events\n */\n\nvar _$throttle_50 = {\n load: function (client) {\n // track sent events for each init of the plugin\n var n = 0;\n\n // add onError hook\n client.addOnError(function (event) {\n // have max events been sent already?\n if (n >= client._config.maxEvents) {\n client._logger.warn(\"Cancelling event send due to maxEvents per session limit of \" + client._config.maxEvents + \" being reached\");\n return false;\n }\n n++;\n });\n client.resetEventCount = function () {\n n = 0;\n };\n },\n configSchema: {\n maxEvents: {\n defaultValue: function () {\n return 10;\n },\n message: 'should be a positive integer ≤100',\n validate: function (val) {\n return _$intRange_33(1, 100)(val);\n }\n }\n }\n};\n\nvar _$stripQueryString_51 = {};\n/*\n * Remove query strings (and fragments) from stacktraces\n */\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$reduce_26 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n_$stripQueryString_51 = {\n load: function (client) {\n client.addOnError(function (event) {\n var allFrames = _$reduce_26(event.errors, function (accum, er) {\n return accum.concat(er.stacktrace);\n }, []);\n _$map_25(allFrames, function (frame) {\n frame.file = strip(frame.file);\n });\n });\n }\n};\nvar strip = _$stripQueryString_51._strip = function (str) {\n return typeof str === 'string' ? str.replace(/\\?.*$/, '').replace(/#.*$/, '') : str;\n};\n\n/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\nvar _$onerror_52 = function (win, component) {\n if (win === void 0) {\n win = window;\n }\n if (component === void 0) {\n component = 'window onerror';\n }\n return {\n load: function (client) {\n if (!client._config.autoDetectErrors) return;\n if (!client._config.enabledErrorTypes.unhandledExceptions) return;\n function onerror(messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z');\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event;\n\n // window.onerror can be called in a number of ways. This big if-else is how we\n // figure out which arguments were supplied, and what kind of values it received.\n\n if (error) {\n // if the last parameter (error) was supplied, this is a modern browser's\n // way of saying \"this value was thrown and not caught\"\n event = client.Event.create(error, true, handledState, component, 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n } else if (\n // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n typeof messageOrEvent === 'object' && messageOrEvent !== null && (!url || typeof url !== 'string') && !lineNo && !charNo && !error) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n var name = messageOrEvent.type ? \"Event: \" + messageOrEvent.type : 'Error';\n // attempt to find a message from one of the conventional properties, but\n // default to empty string (the event will fill it with a placeholder)\n var message = messageOrEvent.message || messageOrEvent.detail || '';\n event = client.Event.create({\n name: name,\n message: message\n }, true, handledState, component, 1);\n\n // provide the original thing onerror received – not our error-like object we passed to _notify\n event.originalError = messageOrEvent;\n\n // include the raw input as metadata – it might contain more info than we extracted\n event.addMetadata(component, {\n event: messageOrEvent,\n extraParameters: url\n });\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n event = client.Event.create(messageOrEvent, true, handledState, component, 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n }\n client._notify(event);\n }\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments);\n }\n var prevOnError = win.onerror;\n win.onerror = onerror;\n }\n };\n};\n\n// Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\nvar decorateStack = function (stack, url, lineNo, charNo) {\n if (!stack[0]) stack.push({});\n var culprit = stack[0];\n if (!culprit.file && typeof url === 'string') culprit.file = url;\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo;\n if (!culprit.columnNumber) {\n if (isActualNumber(charNo)) {\n culprit.columnNumber = charNo;\n } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n culprit.columnNumber = window.event.errorCharacter;\n }\n }\n};\nvar isActualNumber = function (n) {\n return typeof n === 'number' && String.call(n) !== 'NaN';\n};\n\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$iserror_29 = require('@bugsnag/core/lib/iserror'); */;\nvar _listener;\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\nvar _$unhandledRejection_53 = function (win) {\n if (win === void 0) {\n win = window;\n }\n var plugin = {\n load: function (client) {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return;\n var listener = function (evt) {\n var error = evt.reason;\n var isBluebird = false;\n\n // accessing properties on evt.detail can throw errors (see #394)\n try {\n if (evt.detail && evt.detail.reason) {\n error = evt.detail.reason;\n isBluebird = true;\n }\n } catch (e) {}\n\n // Report unhandled promise rejections as handled if the user has configured it\n var unhandled = !client._config.reportUnhandledPromiseRejectionsAsHandled;\n var event = client.Event.create(error, false, {\n severity: 'error',\n unhandled: unhandled,\n severityReason: {\n type: 'unhandledPromiseRejection'\n }\n }, 'unhandledrejection handler', 1, client._logger);\n if (isBluebird) {\n _$map_25(event.errors[0].stacktrace, fixBluebirdStacktrace(error));\n }\n client._notify(event, function (event) {\n if (_$iserror_29(event.originalError) && !event.originalError.stack) {\n var _event$addMetadata;\n event.addMetadata('unhandledRejection handler', (_event$addMetadata = {}, _event$addMetadata[Object.prototype.toString.call(event.originalError)] = {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }, _event$addMetadata));\n }\n });\n };\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener);\n } else {\n win.onunhandledrejection = function (reason, promise) {\n listener({\n detail: {\n reason: reason,\n promise: promise\n }\n });\n };\n }\n _listener = listener;\n }\n };\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener);\n } else {\n win.onunhandledrejection = null;\n }\n }\n _listener = null;\n };\n }\n return plugin;\n};\n\n// The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n// b@http://localhost:5000/bluebird.html:22:24\n// a@http://localhost:5000/bluebird.html:18:9\n// @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n// […]\n// 0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n// 1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n// 2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n// 3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\nvar fixBluebirdStacktrace = function (error) {\n return function (frame) {\n if (frame.file === error.toString()) return;\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '');\n }\n };\n};\n\nvar _$notifier_11 = {};\nvar name = 'Bugsnag JavaScript';\nvar version = '8.1.2';\nvar url = 'https://github.com/bugsnag/bugsnag-js';\n/* removed: var _$Client_13 = require('@bugsnag/core/client'); */;\n/* removed: var _$Event_15 = require('@bugsnag/core/event'); */;\n/* removed: var _$Session_36 = require('@bugsnag/core/session'); */;\n/* removed: var _$Breadcrumb_12 = require('@bugsnag/core/breadcrumb'); */;\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$keys_24 = require('@bugsnag/core/lib/es-utils/keys'); */;\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\n// extend the base config schema with some browser-specific options\nvar __schema_11 = _$assign_20({}, _$config_14.schema, _$config_10);\n/* removed: var _$onerror_52 = require('@bugsnag/plugin-window-onerror'); */;\n/* removed: var _$unhandledRejection_53 = require('@bugsnag/plugin-window-unhandled-rejection'); */;\n/* removed: var _$app_39 = require('@bugsnag/plugin-app-duration'); */;\n/* removed: var _$device_41 = require('@bugsnag/plugin-browser-device'); */;\n/* removed: var _$context_40 = require('@bugsnag/plugin-browser-context'); */;\n/* removed: var _$request_42 = require('@bugsnag/plugin-browser-request'); */;\n/* removed: var _$throttle_50 = require('@bugsnag/plugin-simple-throttle'); */;\n/* removed: var _$consoleBreadcrumbs_45 = require('@bugsnag/plugin-console-breadcrumbs'); */;\n/* removed: var _$networkBreadcrumbs_49 = require('@bugsnag/plugin-network-breadcrumbs'); */;\n/* removed: var _$navigationBreadcrumbs_48 = require('@bugsnag/plugin-navigation-breadcrumbs'); */;\n/* removed: var _$interactionBreadcrumbs_47 = require('@bugsnag/plugin-interaction-breadcrumbs'); */;\n/* removed: var _$inlineScriptContent_46 = require('@bugsnag/plugin-inline-script-content'); */;\n/* removed: var _$session_43 = require('@bugsnag/plugin-browser-session'); */;\n/* removed: var _$clientIp_44 = require('@bugsnag/plugin-client-ip'); */;\n/* removed: var _$stripQueryString_51 = require('@bugsnag/plugin-strip-query-string'); */;\n\n// delivery mechanisms\n/* removed: var _$delivery_37 = require('@bugsnag/delivery-x-domain-request'); */;\n/* removed: var _$delivery_38 = require('@bugsnag/delivery-xml-http-request'); */;\nvar Bugsnag = {\n _client: null,\n createClient: function (opts) {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = {\n apiKey: opts\n };\n if (!opts) opts = {};\n var internalPlugins = [\n // add browser-specific plugins\n _$app_39, _$device_41(), _$context_40(), _$request_42(), _$throttle_50, _$session_43, _$clientIp_44, _$stripQueryString_51, _$onerror_52(), _$unhandledRejection_53(), _$navigationBreadcrumbs_48(), _$interactionBreadcrumbs_47(), _$networkBreadcrumbs_49(), _$consoleBreadcrumbs_45,\n // this one added last to avoid wrapping functionality before bugsnag uses it\n _$inlineScriptContent_46()];\n\n // configure a client with user supplied options\n var bugsnag = new _$Client_13(opts, __schema_11, internalPlugins, {\n name: name,\n version: version,\n url: url\n });\n\n // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n bugsnag._setDelivery(window.XDomainRequest ? _$delivery_37 : _$delivery_38);\n bugsnag._logger.debug('Loaded!');\n bugsnag.leaveBreadcrumb('Bugsnag loaded', {}, 'state');\n return bugsnag._config.autoTrackSessions ? bugsnag.startSession() : bugsnag;\n },\n start: function (opts) {\n if (Bugsnag._client) {\n Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.');\n return Bugsnag._client;\n }\n Bugsnag._client = Bugsnag.createClient(opts);\n return Bugsnag._client;\n },\n isStarted: function () {\n return Bugsnag._client != null;\n }\n};\n_$map_25(['resetEventCount'].concat(_$keys_24(_$Client_13.prototype)), function (m) {\n if (/^_/.test(m)) return;\n Bugsnag[m] = function () {\n if (!Bugsnag._client) return console.log(\"Bugsnag.\" + m + \"() was called before Bugsnag.start()\");\n Bugsnag._client._depth += 1;\n var ret = Bugsnag._client[m].apply(Bugsnag._client, arguments);\n Bugsnag._client._depth -= 1;\n return ret;\n };\n});\n_$notifier_11 = Bugsnag;\n_$notifier_11.Client = _$Client_13;\n_$notifier_11.Event = _$Event_15;\n_$notifier_11.Session = _$Session_36;\n_$notifier_11.Breadcrumb = _$Breadcrumb_12;\n\n// Export a \"default\" property for compatibility with ESM imports\n_$notifier_11[\"default\"] = Bugsnag;\n\nreturn _$notifier_11;\n\n});\n//# sourceMappingURL=bugsnag.js.map\n","module.exports = require('@bugsnag/browser')\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.BugsnagPluginVue = f()}})(function(){var define,module,exports;\nvar _this = this,\n _ErrorTypeStrings;\nvar _$vue_2 = function (app, client) {\n var prev = app.config.errorHandler;\n var handler = function (err, vm, info) {\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event = client.Event.create(err, true, handledState, 'vue error handler', 1);\n\n // In Vue 3.4+, the info param is a link to the Vue error docs in prod, so we need to extract the error code from it\n // https://github.com/vuejs/core/pull/9165/commits/c261beab2c0a26e401f2c3d5eae2e4c41de6fe4d\n var code = typeof info === 'string' && info.indexOf('runtime-') > 0 ? info.split('runtime-')[1] : info;\n var errorInfo = ErrorTypeStrings[code] || info;\n event.addMetadata('vue', {\n errorInfo: errorInfo,\n component: vm ? formatComponentName(vm, true) : undefined,\n props: vm && vm.$options ? vm.$options.propsData : undefined\n });\n client._notify(event);\n if (typeof console !== 'undefined' && typeof console.error === 'function') console.error(err);\n if (typeof prev === 'function') prev.call(_this, err, vm, info);\n };\n app.config.errorHandler = handler;\n};\nfunction formatComponentName(vm) {\n if (vm.$parent === null) return 'App';\n return vm.$options && vm.$options.name ? vm.$options.name : 'Anonymous';\n}\n\n// We copy in the following data structures from Vue's source so we can map the \"info\" parameter in the errorhandler\n// callback (which is supplied as either a string or int) back to something meaningful\n\n// https://github.com/vuejs/core/blob/f1068fc60ca511f68ff0aaedcc18b39124791d29/packages/runtime-core/src/enums.ts\nvar LifecycleHooks = {\n BEFORE_CREATE: 'bc',\n CREATED: 'c',\n BEFORE_MOUNT: 'bm',\n MOUNTED: 'm',\n BEFORE_UPDATE: 'bu',\n UPDATED: 'u',\n BEFORE_UNMOUNT: 'bum',\n UNMOUNTED: 'um',\n DEACTIVATED: 'da',\n ACTIVATED: 'a',\n RENDER_TRIGGERED: 'rtg',\n RENDER_TRACKED: 'rtc',\n ERROR_CAPTURED: 'ec',\n SERVER_PREFETCH: 'sp'\n};\n\n// https://github.com/vuejs/core/blob/f1068fc60ca511f68ff0aaedcc18b39124791d29/packages/runtime-core/src/errorHandling.ts#L7-L25\nvar ErrorCodes = {\n SETUP_FUNCTION: 0,\n RENDER_FUNCTION: 1,\n WATCH_GETTER: 2,\n WATCH_CALLBACK: 3,\n WATCH_CLEANUP: 4,\n NATIVE_EVENT_HANDLER: 5,\n COMPONENT_EVENT_HANDLER: 6,\n VNODE_HOOK: 7,\n DIRECTIVE_HOOK: 8,\n TRANSITION_HOOK: 9,\n APP_ERROR_HANDLER: 10,\n APP_WARN_HANDLER: 11,\n FUNCTION_REF: 12,\n ASYNC_COMPONENT_LOADER: 13,\n SCHEDULER: 14\n};\n\n// https://github.com/vuejs/core/blob/f1068fc60ca511f68ff0aaedcc18b39124791d29/packages/runtime-core/src/errorHandling.ts#L27-L59\nvar ErrorTypeStrings = (_ErrorTypeStrings = {}, _ErrorTypeStrings[LifecycleHooks.SERVER_PREFETCH] = 'serverPrefetch hook', _ErrorTypeStrings[LifecycleHooks.BEFORE_CREATE] = 'beforeCreate hook', _ErrorTypeStrings[LifecycleHooks.CREATED] = 'created hook', _ErrorTypeStrings[LifecycleHooks.BEFORE_MOUNT] = 'beforeMount hook', _ErrorTypeStrings[LifecycleHooks.MOUNTED] = 'mounted hook', _ErrorTypeStrings[LifecycleHooks.BEFORE_UPDATE] = 'beforeUpdate hook', _ErrorTypeStrings[LifecycleHooks.UPDATED] = 'updated', _ErrorTypeStrings[LifecycleHooks.BEFORE_UNMOUNT] = 'beforeUnmount hook', _ErrorTypeStrings[LifecycleHooks.UNMOUNTED] = 'unmounted hook', _ErrorTypeStrings[LifecycleHooks.ACTIVATED] = 'activated hook', _ErrorTypeStrings[LifecycleHooks.DEACTIVATED] = 'deactivated hook', _ErrorTypeStrings[LifecycleHooks.ERROR_CAPTURED] = 'errorCaptured hook', _ErrorTypeStrings[LifecycleHooks.RENDER_TRACKED] = 'renderTracked hook', _ErrorTypeStrings[LifecycleHooks.RENDER_TRIGGERED] = 'renderTriggered hook', _ErrorTypeStrings[ErrorCodes.SETUP_FUNCTION] = 'setup function', _ErrorTypeStrings[ErrorCodes.RENDER_FUNCTION] = 'render function', _ErrorTypeStrings[ErrorCodes.WATCH_GETTER] = 'watcher getter', _ErrorTypeStrings[ErrorCodes.WATCH_CALLBACK] = 'watcher callback', _ErrorTypeStrings[ErrorCodes.WATCH_CLEANUP] = 'watcher cleanup function', _ErrorTypeStrings[ErrorCodes.NATIVE_EVENT_HANDLER] = 'native event handler', _ErrorTypeStrings[ErrorCodes.COMPONENT_EVENT_HANDLER] = 'component event handler', _ErrorTypeStrings[ErrorCodes.VNODE_HOOK] = 'vnode hook', _ErrorTypeStrings[ErrorCodes.DIRECTIVE_HOOK] = 'directive hook', _ErrorTypeStrings[ErrorCodes.TRANSITION_HOOK] = 'transition hook', _ErrorTypeStrings[ErrorCodes.APP_ERROR_HANDLER] = 'app errorHandler', _ErrorTypeStrings[ErrorCodes.APP_WARN_HANDLER] = 'app warnHandler', _ErrorTypeStrings[ErrorCodes.FUNCTION_REF] = 'ref function', _ErrorTypeStrings[ErrorCodes.ASYNC_COMPONENT_LOADER] = 'async component loader', _ErrorTypeStrings[ErrorCodes.SCHEDULER] = 'scheduler flush. This is likely a Vue internals bug. ' + 'Please open an issue at https://github.com/vuejs/core .', _ErrorTypeStrings);\n\nvar _$vue2_3 = {};\nvar ___this_3 = this;\n_$vue2_3 = function (Vue, client) {\n var prev = Vue.config.errorHandler;\n var handler = function (err, vm, info) {\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event = client.Event.create(err, true, handledState, 'vue error handler', 1);\n event.addMetadata('vue', {\n errorInfo: info,\n component: vm ? __formatComponentName_3(vm, true) : undefined,\n props: vm ? vm.$options.propsData : undefined\n });\n client._notify(event);\n if (typeof console !== 'undefined' && typeof console.error === 'function') console.error(err);\n if (typeof prev === 'function') prev.call(___this_3, err, vm, info);\n };\n Vue.config.errorHandler = handler;\n};\n\n// taken and reworked from Vue.js source\nvar __formatComponentName_3 = function (vm, includeFile) {\n if (vm.$root === vm) return '';\n var options = typeof vm === 'function' && vm.cid != null ? vm.options : vm._isVue ? vm.$options || vm.constructor.options : vm || {};\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n return (name ? '<' + classify(name) + '>' : '') + (file && includeFile !== false ? ' at ' + file : '');\n};\n\n// taken and reworked from Vue.js source\nvar classify = _$vue2_3.classify = function (str) {\n return str.replace(/(?:^|[-_])(\\w)/g, function (c) {\n return c.toUpperCase();\n }).replace(/[-_]/g, '');\n};\n\nvar _$src_1 = {};\n/* removed: var _$vue2_3 = require('./vue2'); */;\n/* removed: var _$vue_2 = require('./vue'); */;\n_$src_1 = /*#__PURE__*/function () {\n function BugsnagPluginVue() {\n // Fetch Vue from the window object, if it exists\n var globalVue = typeof window !== 'undefined' && window.Vue;\n this.name = 'vue';\n this.lazy = arguments.length === 0 && !globalVue;\n if (!this.lazy) {\n this.Vue = (arguments.length <= 0 ? undefined : arguments[0]) || globalVue;\n if (!this.Vue) throw new Error('@bugsnag/plugin-vue reference to `Vue` was undefined');\n }\n }\n var _proto = BugsnagPluginVue.prototype;\n _proto.load = function load(client) {\n if (this.Vue && this.Vue.config) {\n _$vue2_3(this.Vue, client);\n return {\n installVueErrorHandler: function () {\n return client._logger.warn('installVueErrorHandler() was called unnecessarily');\n }\n };\n }\n return {\n install: function (app) {\n if (!app) client._logger.error(new Error('@bugsnag/plugin-vue reference to Vue `app` was undefined'));\n _$vue_2(app, client);\n },\n installVueErrorHandler: function (Vue) {\n if (!Vue) client._logger.error(new Error('@bugsnag/plugin-vue reference to `Vue` was undefined'));\n _$vue2_3(Vue, client);\n }\n };\n };\n return BugsnagPluginVue;\n}();\n\n// add a default export for ESM modules without interop\n_$src_1[\"default\"] = _$src_1;\n\nreturn _$src_1;\n\n});\n//# sourceMappingURL=bugsnag-vue.js.map\n"],"names":["_$breadcrumbTypes_17","_$reduce_26","arr","fn","accum","val","i","len","length","_$filter_21","item","concat","_$includes_22","x","_$isArray_23","obj","Object","prototype","toString","call","_hasDontEnumBug","propertyIsEnumerable","_dontEnums","_$keys_24","prop","result","hasOwnProperty","push","_$intRange_33","min","max","value","parseInt","_$listOfFunctions_34","f","_$stringWithLength_35","_$config_14","defaultErrorTypes","unhandledExceptions","unhandledRejections","schema","apiKey","defaultValue","message","validate","appVersion","appType","autoDetectErrors","enabledErrorTypes","allowPartialObject","providedKeys","defaultKeys","k","onError","onSession","onBreadcrumb","endpoints","notify","sessions","autoTrackSessions","enabledReleaseStages","releaseStage","maxBreadcrumbs","enabledBreadcrumbTypes","join","maybeType","context","user","key","metadata","logger","method","redactedKeys","s","test","plugins","p","load","featureFlags","feature","name","reportUnhandledPromiseRejectionsAsHandled","_$assign_20","target","arguments","source","_$map_25","_extends","assign","bind","apply","this","root","factory","_$config_10","window","location","host","console","debug","getPrefixedConsole","consoleLog","log","consoleMethod","_$Breadcrumb_12","Breadcrumb","type","timestamp","Date","toJSON","metaData","_$stackframe_9","_isNumber","n","isNaN","parseFloat","isFinite","_capitalize","str","charAt","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","arrayProps","objectProps","props","StackFrame","getArgs","args","setArgs","v","TypeError","getEvalOrigin","evalOrigin","setEvalOrigin","fileName","getFileName","lineNumber","getLineNumber","columnNumber","getColumnNumber","functionName","getFunctionName","getIsEval","fromString","argsStartIndex","indexOf","argsEndIndex","lastIndexOf","split","locationString","parts","exec","Boolean","j","Number","String","_$stackGenerator_8","StackGenerator","backtrace","opts","stack","maxStackSize","curr","callee","Array","RegExp","$1","caller","e","_$errorStackParser_6","ErrorStackParser","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","error","stacktrace","parseOpera","match","parseV8OrIE","parseFFOrSafari","Error","extractLocation","urlLike","replace","filter","line","map","sanitizedLine","tokens","slice","locationParts","pop","functionNameRegex","matches","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","argsRaw","functionCall","shift","_$errorStackParser_19","_$safeJsonStringify_5","data","replacer","space","redactedPaths","JSON","stringify","prepareObjForSerialization","MAX_DEPTH","MAX_EDGES","MIN_PRESERVED_DEPTH","REPLACEMENT_NODE","isError","o","throwsMessage","err","find","haystack","needle","isDescendent","paths","path","shouldRedact","patterns","toLowerCase","__isArray_5","safelyGetProp","seen","edges","visit","edgesExceeded","fResult","eResult","aResult","add","existingFeatures","existingFeatureKeys","variant","existingIndex","merge","newFeatures","toEventApi","_ref","flag","featureFlag","clear","features","featuresIndex","_$featureFlagDelegate_27","_$hasStack_28","__isError_7","_$iserror_29","__add_31","state","section","keyOrObj","maybeVal","_updates","updates","__clear_31","_$metadataDelegate_31","get","___extends_15","Event","errorClass","errorMessage","handledState","originalError","defaultHandledState","groupingHash","_handledState","severity","unhandled","app","device","request","breadcrumbs","threads","_metadata","_features","_featuresIndex","_user","_session","_correlation","errors","createBugsnagError","__type","_proto","addMetadata","setTraceCorrelation","traceId","spanId","getMetadata","clearMetadata","addFeatureFlag","addFeatureFlags","getFeatureFlags","clearFeatureFlag","clearFeatureFlags","getUser","setUser","id","email","payloadVersion","exceptions","er","severityReason","session","correlation","formatStackframe","frame","file","normaliseFunctionName","code","inProject","ensureString","getCauseStack","cause","getStacktrace","errorFramesToSkip","backtraceFramesToSkip","create","maybeError","tolerateNonErrors","component","event","_normaliseError","normaliseError","internalFrames","makeSerialisable","_event$errors","causes","normalisedCauses","createAndLogInputError","reason","verb","warn","hasNecessaryFields","_$Event_15","_$asyncEvery_16","cb","index","next","_$callbackRunner_18","callbacks","onCallbackError","ret","then","setTimeout","_$syncCallbackRunner_32","callbackArg","callbackType","ignore","cbs","_$pad_4","num","size","substr","env","self","globalCount","mimeTypesLength","navigator","mimeTypes","clientId","userAgent","_$fingerprint_2","_$isCuid_3","c","blockSize","base","discreteValues","Math","pow","randomBlock","random","safeCounter","cuid","getTime","fingerprint","isCuid","_$cuid_1","_$Session_36","Session","startedAt","_handled","_unhandled","events","handled","_track","__add_13","__clear_13","__merge_13","noop","Client","configuration","internalPlugins","notifier","_this","_notifier","_config","_schema","_delivery","sendSession","sendEvent","_logger","info","_plugins","_breadcrumbs","_context","_cbs","sp","b","_configure","pl","_loadPlugin","_depth","getContext","setContext","plugin","configSchema","_reduce","config","generateConfigErrorMessage","getPlugin","_setDelivery","d","startSession","version","_sessionDelegate","addOnError","front","removeOnError","_addOnSessionPayload","addOnSession","removeOnSession","addOnBreadcrumb","removeOnBreadcrumb","pauseSession","resumeSession","leaveBreadcrumb","crumb","_isBreadcrumbTypeEnabled","types","postReportCallback","_notify","_this2","originalSeverity","shouldSend","unhandledOverridden","rawInput","_$Client_13","_$jsonPayload_30","EVENT_REDACTION_PATHS","payload","_$delivery_37","client","win","url","getApiUrl","body","req","XDomainRequest","onload","onerror","toFixed","open","send","endpoint","isoDate","matchPageProtocol","protocol","encodeURIComponent","_matchPageProtocol","pageProtocol","_$delivery_38","XMLHttpRequest","onreadystatechange","readyState","DONE","status","_err","setRequestHeader","toISOString","_err2","appStart","reset","_$app_39","now","duration","_$context_40","pathname","BUGSNAG_ANONYMOUS_ID_KEY","getDeviceId","storage","localStorage","getItem","setItem","_$device_41","nav","locale","browserLanguage","systemLanguage","userLanguage","language","screen","orientation","document","documentElement","clientWidth","clientHeight","generateAnonymousId","collectUserIp","time","setDefaultUserId","eventOrSession","_$request_42","href","_$session_43","sessionDelegate","sessionClient","_pausedSession","_$clientIp_44","clientIp","_$consoleBreadcrumbs_45","CONSOLE_LOG_METHODS","original","_len","_key","arg","stringified","_restore","MAX_LINE_LENGTH","MAX_SCRIPT_LENGTH","_$inlineScriptContent_46","doc","trackInlineScripts","originalLocation","html","DOMContentLoaded","attachEvent","getHtml","outerHTML","prev","_lastScript","updateLastScript","script","getCurrentScript","currentScript","scripts","getElementsByTagName","addSurroundingCode","htmlLines","zeroBasedLine","start","end","cleanUrl","content","innerHTML","_setTimeout","__proxy","__traceOriginalScript","eventTargetCallbackAccessor","callbackAccessor","alsoCallOriginal","cba","__trace__","replacement","isEventHandlerObj","handleEvent","_$interactionBreadcrumbs_47","addEventListener","targetText","targetSelector","getNodeText","getNodeSelector","trim","el","text","textContent","innerText","tagName","className","querySelectorAll","parentNode","childNodes","_$navigationBreadcrumbs_48","drop","oldURL","from","relativeLocation","to","newURL","getCurrentState","history","pushState","wrapHistoryFn","replaceState","a","createElement","search","hash","stateChangeToMetadata","title","currentPath","prevState","resetEventCount","orig","BREADCRUMB_TYPE","_$networkBreadcrumbs_49","_ignoredUrls","ignoredUrls","monkeyPatchXMLHttpRequest","monkeyPatchFetch","handleFetchSuccess","response","handleFetchError","trackedRequests","WeakMap","requestHandlers","originalOpen","set","originalSend","requestData","listeners","removeEventListener","requestStart","handleXHRError","getDuration","handleXHRLoad","fetch","polyfill","oldFetch","_arguments","urlOrRequest","options","Promise","resolve","reject","startTime","_$throttle_50","maxEvents","_$stripQueryString_51","strip","allFrames","_strip","_$onerror_52","prevOnError","messageOrEvent","lineNo","charNo","decorateStack","detail","extraParameters","culprit","isActualNumber","errorCharacter","_$unhandledRejection_53","listener","evt","isBluebird","fixBluebirdStacktrace","_event$addMetadata","onunhandledrejection","promise","_$notifier_11","__schema_11","Bugsnag","_client","createClient","bugsnag","isStarted","m","require$$0","_ErrorTypeStrings","_$vue_2","errorHandler","handler","vm","errorInfo","ErrorTypeStrings","formatComponentName","$options","propsData","$parent","LifecycleHooks","BEFORE_CREATE","CREATED","BEFORE_MOUNT","MOUNTED","BEFORE_UPDATE","UPDATED","BEFORE_UNMOUNT","UNMOUNTED","DEACTIVATED","ACTIVATED","RENDER_TRIGGERED","RENDER_TRACKED","ERROR_CAPTURED","SERVER_PREFETCH","ErrorCodes","SETUP_FUNCTION","RENDER_FUNCTION","WATCH_GETTER","WATCH_CALLBACK","WATCH_CLEANUP","NATIVE_EVENT_HANDLER","COMPONENT_EVENT_HANDLER","VNODE_HOOK","DIRECTIVE_HOOK","TRANSITION_HOOK","APP_ERROR_HANDLER","APP_WARN_HANDLER","FUNCTION_REF","ASYNC_COMPONENT_LOADER","SCHEDULER","_$vue2_3","___this_3","Vue","__formatComponentName_3","includeFile","$root","cid","_isVue","constructor","_componentTag","__file","classify","_$src_1","BugsnagPluginVue","globalVue","lazy","installVueErrorHandler","install"],"mappings":"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","x_google_ignoreList":[0,1,2]}