{ "version": 3, "sources": ["../../../node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude", "../../../node_modules/@bugsnag/browser/core/lib/breadcrumb-types.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/reduce.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/filter.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/includes.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/is-array.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/keys.js", "../../../node_modules/@bugsnag/browser/core/lib/validators/int-range.js", "../../../node_modules/@bugsnag/browser/core/lib/validators/list-of-functions.js", "../../../node_modules/@bugsnag/browser/core/lib/validators/string-with-length.js", "../../../node_modules/@bugsnag/browser/core/config.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/assign.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/map.js", "../../../node_modules/@bugsnag/browser/dist/src/config.js", "../../../node_modules/@bugsnag/browser/core/breadcrumb.js", "../../../node_modules/@bugsnag/browser/core/node_modules/stackframe/stackframe.js", "../../../node_modules/@bugsnag/browser/core/node_modules/error-stack-parser/error-stack-parser.js", "../../../node_modules/@bugsnag/browser/core/lib/error-stack-parser.js", "../../../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/safe-json-stringify/index.js", "../../../node_modules/@bugsnag/browser/core/lib/feature-flag-delegate.js", "../../../node_modules/@bugsnag/browser/core/lib/has-stack.js", "../../../node_modules/@bugsnag/browser/core/node_modules/iserror/index.js", "../../../node_modules/@bugsnag/browser/core/lib/iserror.js", "../../../node_modules/@bugsnag/browser/core/lib/metadata-delegate.js", "../../../node_modules/@bugsnag/browser/core/node_modules/stack-generator/stack-generator.js", "../../../node_modules/@bugsnag/browser/core/event.js", "../../../node_modules/@bugsnag/browser/core/lib/async-every.js", "../../../node_modules/@bugsnag/browser/core/lib/callback-runner.js", "../../../node_modules/@bugsnag/browser/core/lib/sync-callback-runner.js", "../../../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/lib/pad.js", "../../../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/lib/fingerprint.browser.js", "../../../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/index.js", "../../../node_modules/@bugsnag/browser/core/session.js", "../../../node_modules/@bugsnag/browser/core/client.js", "../../../node_modules/@bugsnag/browser/core/lib/json-payload.js", "../../../node_modules/@bugsnag/browser/delivery-x-domain-request/delivery.js", "../../../node_modules/@bugsnag/browser/delivery-xml-http-request/delivery.js", "../../../node_modules/@bugsnag/browser/plugin-app-duration/app.js", "../../../node_modules/@bugsnag/browser/plugin-browser-context/context.js", "../../../node_modules/@bugsnag/browser/plugin-browser-device/device.js", "../../../node_modules/@bugsnag/browser/plugin-browser-request/request.js", "../../../node_modules/@bugsnag/browser/plugin-browser-session/session.js", "../../../node_modules/@bugsnag/browser/plugin-client-ip/client-ip.js", "../../../node_modules/@bugsnag/browser/plugin-console-breadcrumbs/console-breadcrumbs.js", "../../../node_modules/@bugsnag/browser/plugin-inline-script-content/inline-script-content.js", "../../../node_modules/@bugsnag/browser/plugin-interaction-breadcrumbs/interaction-breadcrumbs.js", "../../../node_modules/@bugsnag/browser/plugin-navigation-breadcrumbs/navigation-breadcrumbs.js", "../../../node_modules/@bugsnag/browser/plugin-network-breadcrumbs/network-breadcrumbs.js", "../../../node_modules/@bugsnag/browser/plugin-simple-throttle/throttle.js", "../../../node_modules/@bugsnag/browser/plugin-strip-query-string/strip-query-string.js", "../../../node_modules/@bugsnag/browser/plugin-window-onerror/onerror.js", "../../../node_modules/@bugsnag/browser/plugin-window-unhandled-rejection/unhandled-rejection.js", "../../../node_modules/@bugsnag/browser/dist/src/notifier.js", "../../../node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude", "../../../node_modules/@bugsnag/js/browser/notifier.js", "../../javascript/bugsnag.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;\n", "module.exports = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual']\n", "// Array#reduce\nmodule.exports = (arr, fn, accum) => {\n let val = accum\n for (let i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr)\n return val\n}\n", "const reduce = require('./reduce')\n\n// Array#filter\nmodule.exports = (arr, fn) =>\n reduce(arr, (accum, item, i, arr) => !fn(item, i, arr) ? accum : accum.concat(item), [])\n", "const reduce = require('./reduce')\n// Array#includes\nmodule.exports = (arr, x) =>\n reduce(arr, (accum, item, i, arr) => accum === true || item === x, false)\n", "// Array#isArray\nmodule.exports = obj => Object.prototype.toString.call(obj) === '[object Array]'\n", "/* eslint-disable-next-line no-prototype-builtins */\nconst _hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString')\nconst _dontEnums = [\n 'toString', 'toLocaleString', 'valueOf', 'hasOwnProperty',\n 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'\n]\n\n// Object#keys\nmodule.exports = obj => {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n const result = []\n let 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 (let 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", "module.exports = (min = 1, max = Infinity) => value =>\n typeof value === 'number' &&\n parseInt('' + value, 10) === value &&\n value >= min && value <= max\n", "const filter = require('../es-utils/filter')\nconst isArray = require('../es-utils/is-array')\n\nmodule.exports = value => typeof value === 'function' || (isArray(value) && filter(value, f => typeof f === 'function').length === value.length)\n", "module.exports = value => typeof value === 'string' && !!value.length\n", "const filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst isArray = require('./lib/es-utils/is-array')\nconst includes = require('./lib/es-utils/includes')\nconst intRange = require('./lib/validators/int-range')\nconst stringWithLength = require('./lib/validators/string-with-length')\nconst listOfFunctions = require('./lib/validators/list-of-functions')\n\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst defaultErrorTypes = () => ({ unhandledExceptions: true, unhandledRejections: true })\n\nmodule.exports.schema = {\n apiKey: {\n defaultValue: () => null,\n message: 'is required',\n validate: stringWithLength\n },\n appVersion: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || stringWithLength(value)\n },\n appType: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || stringWithLength(value)\n },\n autoDetectErrors: {\n defaultValue: () => true,\n message: 'should be true|false',\n validate: value => value === true || value === false\n },\n enabledErrorTypes: {\n defaultValue: () => defaultErrorTypes(),\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: value => {\n // ensure we have an object\n if (typeof value !== 'object' || !value) return false\n const providedKeys = keys(value)\n const defaultKeys = keys(defaultErrorTypes())\n // ensure it only has a subset of the allowed keys\n if (filter(providedKeys, k => includes(defaultKeys, k)).length < providedKeys.length) return false\n // ensure all of the values are boolean\n if (filter(keys(value), k => typeof value[k] !== 'boolean').length > 0) return false\n return true\n }\n },\n onError: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n onSession: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n onBreadcrumb: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n endpoints: {\n defaultValue: () => ({\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n }),\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: val =>\n // first, ensure it's an object\n (val && typeof val === 'object') &&\n (\n // notify and sessions must always be set\n stringWithLength(val.notify) && stringWithLength(val.sessions)\n ) &&\n // ensure no keys other than notify/session are set on endpoints object\n filter(keys(val), k => !includes(['notify', 'sessions'], k)).length === 0\n },\n autoTrackSessions: {\n defaultValue: val => true,\n message: 'should be true|false',\n validate: val => val === true || val === false\n },\n enabledReleaseStages: {\n defaultValue: () => null,\n message: 'should be an array of strings',\n validate: value => value === null || (isArray(value) && filter(value, f => typeof f === 'string').length === value.length)\n },\n releaseStage: {\n defaultValue: () => 'production',\n message: 'should be a string',\n validate: value => typeof value === 'string' && value.length\n },\n maxBreadcrumbs: {\n defaultValue: () => 25,\n message: 'should be a number ≤100',\n validate: value => intRange(0, 100)(value)\n },\n enabledBreadcrumbTypes: {\n defaultValue: () => BREADCRUMB_TYPES,\n message: `should be null or a list of available breadcrumb types (${BREADCRUMB_TYPES.join(',')})`,\n validate: value => value === null || (isArray(value) && reduce(value, (accum, maybeType) => {\n if (accum === false) return accum\n return includes(BREADCRUMB_TYPES, maybeType)\n }, true))\n },\n context: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || typeof value === 'string'\n },\n user: {\n defaultValue: () => ({}),\n message: 'should be an object with { id, email, name } properties',\n validate: value =>\n (value === null) ||\n (value && reduce(\n keys(value),\n (accum, key) => accum && includes(['id', 'email', 'name'], key),\n true\n ))\n },\n metadata: {\n defaultValue: () => ({}),\n message: 'should be an object',\n validate: (value) => typeof value === 'object' && value !== null\n },\n logger: {\n defaultValue: () => undefined,\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: value =>\n (!value) ||\n (value && reduce(\n ['debug', 'info', 'warn', 'error'],\n (accum, method) => accum && typeof value[method] === 'function',\n true\n ))\n },\n redactedKeys: {\n defaultValue: () => ['password'],\n message: 'should be an array of strings|regexes',\n validate: value =>\n isArray(value) && value.length === filter(value, s =>\n (typeof s === 'string' || (s && typeof s.test === 'function'))\n ).length\n },\n plugins: {\n defaultValue: () => ([]),\n message: 'should be an array of plugin objects',\n validate: value =>\n isArray(value) && value.length === filter(value, p =>\n (p && typeof p === 'object' && typeof p.load === 'function')\n ).length\n },\n featureFlags: {\n defaultValue: () => [],\n message: 'should be an array of objects that have a \"name\" property',\n validate: value =>\n isArray(value) && value.length === filter(value, feature =>\n feature && typeof feature === 'object' && typeof feature.name === 'string'\n ).length\n }\n}\n", "// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nmodule.exports = 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", "const reduce = require('./reduce')\n\n// Array#map\nmodule.exports = (arr, fn) =>\n reduce(arr, (accum, item, i, arr) => accum.concat(fn(item, i, arr)), [])\n", "const { schema } = require('@bugsnag/core/config')\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\nmodule.exports = {\n releaseStage: assign({}, schema.releaseStage, {\n defaultValue: () => {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development'\n return 'production'\n }\n }),\n appType: {\n ...schema.appType,\n defaultValue: () => 'browser'\n },\n logger: assign({}, schema.logger, {\n defaultValue: () =>\n // set logger based on browser capability\n (typeof console !== 'undefined' && typeof console.debug === 'function')\n ? getPrefixedConsole()\n : undefined\n })\n}\n\nconst getPrefixedConsole = () => {\n const logger = {}\n const consoleLog = console.log\n map(['debug', 'info', 'warn', 'error'], (method) => {\n const consoleMethod = console[method]\n logger[method] = typeof consoleMethod === 'function'\n ? consoleMethod.bind(console, '[bugsnag]')\n : consoleLog.bind(console, '[bugsnag]')\n })\n return logger\n}\n", "class Breadcrumb {\n constructor (message, metadata, type, timestamp = new Date()) {\n this.type = type\n this.message = message\n this.metadata = metadata\n this.timestamp = timestamp\n }\n\n toJSON () {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n }\n }\n}\n\nmodule.exports = Breadcrumb\n", "(function(root, factory) {\n 'use strict';\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 exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\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\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\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\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\n toString: function() {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? ('@' + this.getFileName()) : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\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\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\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\n return StackFrame;\n}));\n", "(function(root, factory) {\n 'use strict';\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 exports === 'object') {\n module.exports = factory(require('stackframe'));\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\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\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\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\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\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\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\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\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\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\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\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\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n 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\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\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\n return result;\n },\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\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(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\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\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\n .replace(//, '$2')\n .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]') ?\n undefined : argsRaw.split(',');\n\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", "module.exports = require('error-stack-parser')\n", "module.exports = 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(\n prepareObjForSerialization(data, redactedKeys, redactedPaths),\n replacer,\n space\n )\n}\n\nvar MAX_DEPTH = 20\nvar MAX_EDGES = 25000\nvar MIN_PRESERVED_DEPTH = 8\n\nvar REPLACEMENT_NODE = '...'\n\nfunction isError (o) {\n return o instanceof Error ||\n /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o))\n}\n\nfunction throwsMessage (err) {\n return '[Throws: ' + (err ? err.message : '?') + ']'\n}\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}\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}\n\nfunction isArray (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nfunction safelyGetProp (obj, prop) {\n try {\n return obj[prop]\n } catch (err) {\n return throwsMessage(err)\n }\n}\n\nfunction prepareObjForSerialization (obj, redactedKeys, redactedPaths) {\n var seen = [] // store references to objects we have seen before\n var edges = 0\n\n function visit (obj, path) {\n function edgesExceeded () {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES\n }\n\n edges++\n\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\n seen.push(obj)\n\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\n var er = isError(obj)\n if (er) {\n edges--\n var eResult = visit({ name: obj.name, message: obj.message }, path)\n seen.pop()\n return eResult\n }\n\n if (isArray(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\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\n return visit(obj, [])\n}\n", "const map = require('./es-utils/map')\nconst filter = require('./es-utils/filter')\nconst isArray = require('./es-utils/is-array')\nconst jsonStringify = require('@bugsnag/safe-json-stringify')\n\nfunction add (existingFeatures, existingFeatureKeys, name, variant) {\n if (typeof name !== 'string') {\n return\n }\n\n if (variant === undefined) {\n variant = null\n } else if (variant !== null && typeof variant !== 'string') {\n variant = jsonStringify(variant)\n }\n\n const existingIndex = existingFeatureKeys[name]\n if (typeof existingIndex === 'number') {\n existingFeatures[existingIndex] = { name, variant }\n return\n }\n\n existingFeatures.push({ name, variant })\n existingFeatureKeys[name] = existingFeatures.length - 1\n}\n\nfunction merge (existingFeatures, newFeatures, existingFeatureKeys) {\n if (!isArray(newFeatures)) {\n return\n }\n\n for (let i = 0; i < newFeatures.length; ++i) {\n const feature = newFeatures[i]\n\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\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(\n filter(featureFlags, Boolean),\n ({ name, variant }) => {\n const flag = { featureFlag: name }\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\n return flag\n }\n )\n}\n\nfunction clear (features, featuresIndex, name) {\n const existingIndex = featuresIndex[name]\n if (typeof existingIndex === 'number') {\n features[existingIndex] = null\n delete featuresIndex[name]\n }\n}\n\nmodule.exports = { add, clear, merge, toEventApi }\n", "// Given `err` which may be an error, does it have a stack property which is a string?\nmodule.exports = err =>\n !!err &&\n (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) &&\n typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' &&\n err.stack !== `${err.name}: ${err.message}`\n", "\n/**\n * Expose `isError`.\n */\n\nmodule.exports = isError;\n\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction isError(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]': return true;\n case '[object Exception]': return true;\n case '[object DOMException]': return true;\n default: return value instanceof Error;\n }\n}\n", "module.exports = require('iserror')\n", "const assign = require('./es-utils/assign')\n\nconst add = (state, section, keyOrObj, maybeVal) => {\n if (!section) return\n let updates\n\n // addMetadata(\"section\", null) -> clears section\n if (keyOrObj === null) return clear(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 = { [keyOrObj]: maybeVal }\n\n // exit if we don't have an updates object at this point\n if (!updates) return\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({}, state[section], updates)\n}\n\nconst get = (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}\n\nconst clear = (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 // clear a single value from a section\n if (state[section]) {\n delete state[section][key]\n }\n}\n\nmodule.exports = { add, get, clear }\n", "(function(root, factory) {\n 'use strict';\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 exports === 'object') {\n module.exports = factory(require('stackframe'));\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\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\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({functionName: RegExp.$1 || undefined, args: args}));\n } else {\n stack.push(new StackFrame({args: args}));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n return stack;\n }\n };\n}));\n", "const ErrorStackParser = require('./lib/error-stack-parser')\nconst StackGenerator = require('stack-generator')\nconst hasStack = require('./lib/has-stack')\nconst map = require('./lib/es-utils/map')\nconst reduce = require('./lib/es-utils/reduce')\nconst filter = require('./lib/es-utils/filter')\nconst assign = require('./lib/es-utils/assign')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst featureFlagDelegate = require('./lib/feature-flag-delegate')\nconst isError = require('./lib/iserror')\n\nclass Event {\n constructor (errorClass, errorMessage, stacktrace = [], handledState = defaultHandledState(), originalError) {\n this.apiKey = undefined\n this.context = undefined\n this.groupingHash = undefined\n this.originalError = originalError\n\n this._handledState = handledState\n this.severity = this._handledState.severity\n this.unhandled = this._handledState.unhandled\n\n this.app = {}\n this.device = {}\n this.request = {}\n\n this.breadcrumbs = []\n this.threads = []\n\n this._metadata = {}\n this._features = []\n this._featuresIndex = {}\n this._user = {}\n this._session = undefined\n\n this.errors = [\n createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)\n ]\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\n addMetadata (section, keyOrObj, maybeVal) {\n return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n }\n\n getMetadata (section, key) {\n return metadataDelegate.get(this._metadata, section, key)\n }\n\n clearMetadata (section, key) {\n return metadataDelegate.clear(this._metadata, section, key)\n }\n\n addFeatureFlag (name, variant = null) {\n featureFlagDelegate.add(this._features, this._featuresIndex, name, variant)\n }\n\n addFeatureFlags (featureFlags) {\n featureFlagDelegate.merge(this._features, featureFlags, this._featuresIndex)\n }\n\n getFeatureFlags () {\n return featureFlagDelegate.toEventApi(this._features)\n }\n\n clearFeatureFlag (name) {\n featureFlagDelegate.clear(this._features, this._featuresIndex, name)\n }\n\n clearFeatureFlags () {\n this._features = []\n this._featuresIndex = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n payloadVersion: '4',\n exceptions: map(this.errors, er => assign({}, er, { message: er.errorMessage })),\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 }\n }\n}\n\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)\nconst formatStackframe = frame => {\n const 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}\n\nconst normaliseFunctionName = name => /^global code$/i.test(name) ? 'global code' : name\n\nconst defaultHandledState = () => ({\n unhandled: false,\n severity: 'warning',\n severityReason: { type: 'handledException' }\n})\n\nconst ensureString = (str) => typeof str === 'string' ? str : ''\n\nfunction createBugsnagError (errorClass, errorMessage, type, stacktrace) {\n return {\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type,\n stacktrace: reduce(stacktrace, (accum, frame) => {\n const 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}\n\nfunction getCauseStack (error) {\n if (error.cause) {\n return [error, ...getCauseStack(error.cause)]\n } else {\n return [error]\n }\n}\n\n// Helpers\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (hasStack(error)) return ErrorStackParser.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(StackGenerator.backtrace(), frame =>\n (frame.functionName || '').indexOf('StackGenerator$$') === -1\n ).slice(1 + backtraceFramesToSkip)\n } catch (e) {\n return []\n }\n}\n\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip = 0, logger) {\n const [error, internalFrames] = normaliseError(maybeError, tolerateNonErrors, component, logger)\n let event\n try {\n const stacktrace = Event.getStacktrace(\n 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 )\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 const causes = getCauseStack(error).slice(1)\n const normalisedCauses = map(causes, (cause) => {\n // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n const stacktrace = (isError(cause) && hasStack(cause)) ? ErrorStackParser.parse(cause) : []\n const [error] = normaliseError(cause, true, 'error cause')\n if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause))\n return createBugsnagError(error.name, error.message, Event.__type, stacktrace)\n })\n\n event.errors.push(...normalisedCauses)\n }\n\n return event\n}\n\nconst makeSerialisable = (err) => {\n if (err === null) return 'null'\n if (err === undefined) return 'undefined'\n return err\n}\n\nconst normaliseError = (maybeError, tolerateNonErrors, component, logger) => {\n let error\n let internalFrames = 0\n\n const createAndLogInputError = (reason) => {\n const verb = (component === 'error cause' ? 'was' : 'received')\n if (logger) logger.warn(`${component} ${verb} a non-error: \"${reason}\"`)\n const 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(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(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\n if (!hasStack(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(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\n return [error, internalFrames]\n}\n\n// default value for stacktrace.type\nEvent.__type = 'browserjs'\n\nconst hasNecessaryFields = error =>\n (typeof error.name === 'string' || typeof error.errorClass === 'string') &&\n (typeof error.message === 'string' || typeof error.errorMessage === 'string')\n\nmodule.exports = Event\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)\nmodule.exports = (arr, fn, cb) => {\n let index = 0\n\n const next = () => {\n if (index >= arr.length) return cb(null, true)\n fn(arr[index], (err, result) => {\n if (err) return cb(err)\n if (result === false) return cb(null, false)\n index++\n next()\n })\n }\n\n next()\n}\n", "const some = require('./async-every')\n\nmodule.exports = (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 const runMaybeAsyncCallback = (fn, cb) => {\n if (typeof fn !== 'function') return cb(null)\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n const 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 val => setTimeout(() => cb(null, val)),\n // reject\n err => {\n setTimeout(() => {\n onCallbackError(err)\n return cb(null, true)\n })\n }\n )\n }\n return cb(null, ret)\n }\n // if function is async…\n fn(event, (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\n some(callbacks, runMaybeAsyncCallback, cb)\n}\n", "module.exports = (callbacks, callbackArg, callbackType, logger) => {\n let ignore = false\n const 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…`)\n logger.error(e)\n }\n }\n return ignore\n}\n", "module.exports = function pad (num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n};\n", "var pad = require('./pad.js');\n\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((mimeTypesLength +\n navigator.userAgent.length).toString(36) +\n globalCount.toString(36), 4);\n\nmodule.exports = function fingerprint () {\n return clientId;\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\nvar fingerprint = require('./lib/fingerprint.js');\nvar pad = require('./lib/pad.js');\n\nvar c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\nfunction randomBlock () {\n return pad((Math.random() *\n discreteValues << 0)\n .toString(base), blockSize);\n}\n\nfunction safeCounter () {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n return c - 1;\n}\n\nfunction cuid () {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c', // 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\n // Prevent same-machine collisions.\n counter = pad(safeCounter().toString(base), blockSize),\n\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(),\n\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n\n return letter + timestamp + counter + print + random;\n}\n\ncuid.fingerprint = fingerprint;\n\nmodule.exports = cuid;\n", "const cuid = require('@bugsnag/cuid')\n\nclass Session {\n constructor () {\n this.id = cuid()\n this.startedAt = new Date()\n this._handled = 0\n this._unhandled = 0\n this._user = {}\n this.app = {}\n this.device = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: { handled: this._handled, unhandled: this._unhandled }\n }\n }\n\n _track (event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1\n }\n}\n\nmodule.exports = Session\n", "const config = require('./config')\nconst Event = require('./event')\nconst Breadcrumb = require('./breadcrumb')\nconst Session = require('./session')\nconst map = require('./lib/es-utils/map')\nconst includes = require('./lib/es-utils/includes')\nconst filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst assign = require('./lib/es-utils/assign')\nconst runCallbacks = require('./lib/callback-runner')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst runSyncCallbacks = require('./lib/sync-callback-runner')\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst { add, clear, merge } = require('./lib/feature-flag-delegate')\n\nconst noop = () => {}\n\nclass Client {\n constructor (configuration, schema = config.schema, internalPlugins = [], notifier) {\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 = { sendSession: noop, sendEvent: noop }\n this._logger = { debug: noop, info: noop, warn: noop, error: noop }\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\n this.Breadcrumb = Breadcrumb\n this.Session = Session\n\n this._config = this._configure(configuration, internalPlugins)\n map(internalPlugins.concat(this._config.plugins), 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\n const self = this\n const notify = this.notify\n this.notify = function () {\n return notify.apply(self, arguments)\n }\n }\n\n addMetadata (section, keyOrObj, maybeVal) {\n return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n }\n\n getMetadata (section, key) {\n return metadataDelegate.get(this._metadata, section, key)\n }\n\n clearMetadata (section, key) {\n return metadataDelegate.clear(this._metadata, section, key)\n }\n\n addFeatureFlag (name, variant = null) {\n add(this._features, this._featuresIndex, name, variant)\n }\n\n addFeatureFlags (featureFlags) {\n merge(this._features, featureFlags, this._featuresIndex)\n }\n\n clearFeatureFlag (name) {\n clear(this._features, this._featuresIndex, name)\n }\n\n clearFeatureFlags () {\n this._features = []\n this._featuresIndex = {}\n }\n\n getContext () {\n return this._context\n }\n\n setContext (c) {\n this._context = c\n }\n\n _configure (opts, internalPlugins) {\n const schema = reduce(internalPlugins, (schema, plugin) => {\n if (plugin && plugin.configSchema) return assign({}, schema, plugin.configSchema)\n return schema\n }, this._schema)\n\n // accumulate configuration and error messages\n const { errors, config } = reduce(keys(schema), (accum, key) => {\n const defaultValue = schema[key].defaultValue(opts[key])\n\n if (opts[key] !== undefined) {\n const 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(defaultValue, opts[key])\n } else {\n accum.config[key] = opts[key]\n }\n }\n } else {\n accum.config[key] = defaultValue\n }\n\n return accum\n }, { errors: {}, config: {} })\n\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({}, config.metadata)\n merge(this._features, config.featureFlags, this._featuresIndex)\n this._user = assign({}, 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(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts))\n }\n\n return config\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n _loadPlugin (plugin) {\n const 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 return this\n }\n\n getPlugin (name) {\n return this._plugins[`~${name}~`]\n }\n\n _setDelivery (d) {\n this._delivery = d(this)\n }\n\n startSession () {\n const session = new Session()\n\n session.app.releaseStage = this._config.releaseStage\n session.app.version = this._config.appVersion\n session.app.type = this._config.appType\n\n session._user = assign({}, this._user)\n\n // run onSession callbacks\n const ignore = runSyncCallbacks(this._cbs.s, session, 'onSession', this._logger)\n\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\n addOnError (fn, front = false) {\n this._cbs.e[front ? 'unshift' : 'push'](fn)\n }\n\n removeOnError (fn) {\n this._cbs.e = filter(this._cbs.e, f => f !== fn)\n }\n\n _addOnSessionPayload (fn) {\n this._cbs.sp.push(fn)\n }\n\n addOnSession (fn) {\n this._cbs.s.push(fn)\n }\n\n removeOnSession (fn) {\n this._cbs.s = filter(this._cbs.s, f => f !== fn)\n }\n\n addOnBreadcrumb (fn, front = false) {\n this._cbs.b[front ? 'unshift' : 'push'](fn)\n }\n\n removeOnBreadcrumb (fn) {\n this._cbs.b = filter(this._cbs.b, f => f !== fn)\n }\n\n pauseSession () {\n return this._sessionDelegate.pauseSession(this)\n }\n\n resumeSession () {\n return this._sessionDelegate.resumeSession(this)\n }\n\n 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(BREADCRUMB_TYPES, type)) ? type : 'manual'\n metadata = typeof metadata === 'object' && metadata !== null ? metadata : {}\n\n // if no message, discard\n if (!message) return\n\n const crumb = new Breadcrumb(message, metadata, type)\n\n // run onBreadcrumb callbacks\n const ignore = runSyncCallbacks(this._cbs.b, crumb, 'onBreadcrumb', this._logger)\n\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\n _isBreadcrumbTypeEnabled (type) {\n const types = this._config.enabledBreadcrumbTypes\n\n return types === null || includes(types, type)\n }\n\n notify (maybeError, onError, postReportCallback = noop) {\n const event = Event.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger)\n this._notify(event, onError, postReportCallback)\n }\n\n _notify (event, onError, postReportCallback = noop) {\n event.app = assign({}, 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({}, event._metadata, this._metadata)\n event._user = assign({}, event._user, this._user)\n event.breadcrumbs = this._breadcrumbs.slice()\n merge(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(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\n const originalSeverity = event.severity\n\n const onCallbackError = err => {\n // errors in callbacks are tolerated but we want to log them out\n this._logger.error('Error occurred in onError callback, continuing anyway…')\n this._logger.error(err)\n }\n\n const callbacks = [].concat(this._cbs.e).concat(onError)\n runCallbacks(callbacks, event, onCallbackError, (err, shouldSend) => {\n if (err) onCallbackError(err)\n\n if (!shouldSend) {\n this._logger.debug('Event not sent due to onError callback')\n return postReportCallback(null, event)\n }\n\n if (this._isBreadcrumbTypeEnabled('error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(this, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error')\n }\n\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = { 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\n if (this._session) {\n this._session._track(event)\n event._session = this._session\n }\n\n this._delivery.sendEvent({\n apiKey: event.apiKey || this._config.apiKey,\n notifier: this._notifier,\n events: [event]\n }, (err) => postReportCallback(err, event))\n })\n }\n}\n\nconst generateConfigErrorMessage = (errors, rawInput) => {\n const er = new Error(\n `Invalid configuration\\n${map(keys(errors), key => ` - ${key} ${errors[key]}, got ${stringify(rawInput[key])}`).join('\\n\\n')}`)\n return er\n}\n\nconst stringify = val => {\n switch (typeof val) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val)\n default: return String(val)\n }\n}\n\nmodule.exports = Client\n", "const jsonStringify = require('@bugsnag/safe-json-stringify')\nconst EVENT_REDACTION_PATHS = [\n 'events.[].metaData',\n 'events.[].breadcrumbs.[].metaData',\n 'events.[].request'\n]\n\nmodule.exports.event = (event, redactedKeys) => {\n let payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier:\n`WARNING!\nSerialized payload was ${payload.length / 10e5}MB (limit = 1MB)\nmetadata was removed`\n }\n payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n }\n return payload\n}\n\nmodule.exports.session = (session, redactedKeys) => {\n const payload = jsonStringify(session, null, null)\n return payload\n}\n", "const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n const url = getApiUrl(client._config, 'notify', '4', win)\n const body = payload.event(event, client._config.redactedKeys)\n\n const req = new win.XDomainRequest()\n req.onload = function () {\n cb(null)\n }\n req.onerror = function () {\n const 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(() => {\n try {\n req.send(body)\n } catch (e) {\n client._logger.error(e)\n cb(e)\n }\n }, 0)\n },\n sendSession: (session, cb = () => {}) => {\n const url = getApiUrl(client._config, 'sessions', '1', win)\n const req = new win.XDomainRequest()\n req.onload = function () {\n cb(null)\n }\n req.open('POST', url)\n setTimeout(() => {\n try {\n req.send(payload.session(session, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n cb(e)\n }\n }, 0)\n }\n})\n\nconst getApiUrl = (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 const isoDate = JSON.parse(JSON.stringify(new Date()))\n const url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol)\n return `${url}?apiKey=${encodeURIComponent(config.apiKey)}&payloadVersion=${version}&sentAt=${encodeURIComponent(isoDate)}`\n}\n\nconst matchPageProtocol = module.exports._matchPageProtocol = (endpoint, pageProtocol) =>\n pageProtocol === 'http:'\n ? endpoint.replace(/^https:/, 'http:')\n : endpoint\n", "const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n try {\n const url = client._config.endpoints.notify\n const req = new win.XMLHttpRequest()\n const body = payload.event(event, client._config.redactedKeys)\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n const status = req.status\n if (status === 0 || status >= 400) {\n const 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\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: (session, cb = () => {}) => {\n try {\n const url = client._config.endpoints.sessions\n const req = new win.XMLHttpRequest()\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n const status = req.status\n if (status === 0 || status >= 400) {\n const err = new Error(`Request failed with status ${status}`)\n client._logger.error('Session failed to send…', err)\n cb(err)\n } else {\n cb(null)\n }\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(payload.session(session, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n }\n }\n})\n", "let appStart = new Date()\nconst reset = () => { appStart = new Date() }\n\nmodule.exports = {\n name: 'appDuration',\n load: client => {\n client.addOnError(event => {\n const now = new Date()\n\n event.app.duration = now - appStart\n }, true)\n\n return { reset }\n }\n}\n", "/*\n * Sets the default context to be the current URL\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n client.addOnError(event => {\n if (event.context !== undefined) return\n event.context = win.location.pathname\n }, true)\n }\n})\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\nconst BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id'\n\nconst getDeviceId = (win) => {\n try {\n const storage = win.localStorage\n\n let 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\n const cuid = require('@bugsnag/cuid')\n id = cuid()\n\n storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id)\n\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 */\nmodule.exports = (nav = navigator, win = window) => ({\n load: (client) => {\n const device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n }\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 =\n win.document.documentElement.clientWidth > win.document.documentElement.clientHeight\n ? 'landscape'\n : 'portrait'\n }\n\n if (client._config.generateAnonymousId) {\n device.id = getDeviceId(win)\n }\n\n client.addOnSession(session => {\n session.device = assign({}, 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((event) => {\n event.device = assign({},\n event.device,\n device,\n { time: new Date() }\n )\n if (!client._config.collectUserIp) setDefaultUserId(event)\n }, true)\n },\n configSchema: {\n generateAnonymousId: {\n validate: value => value === true || value === false,\n defaultValue: () => true,\n message: 'should be true|false'\n }\n }\n})\n\nconst setDefaultUserId = (eventOrSession) => {\n // device id is also used to populate the user id field, if it's not already set\n const user = eventOrSession.getUser()\n if (!user || !user.id) {\n eventOrSession.setUser(eventOrSession.device.id)\n }\n}\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Sets the event request: { url } to be the current href\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n client.addOnError(event => {\n if (event.request && event.request.url) return\n event.request = assign({}, event.request, { url: win.location.href })\n }, true)\n }\n})\n", "const includes = require('@bugsnag/core/lib/es-utils/includes')\n\nmodule.exports = {\n load: client => { client._sessionDelegate = sessionDelegate }\n}\n\nconst sessionDelegate = {\n startSession: (client, session) => {\n const 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(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration')\n return sessionClient\n }\n\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [\n {\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }\n ]\n })\n return sessionClient\n },\n resumeSession: (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\n return client\n }\n\n // Otherwise start a new session\n return client.startSession()\n },\n pauseSession: (client) => {\n client._pausedSession = client._session\n client._session = null\n }\n}\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Prevent collection of user IPs\n */\nmodule.exports = {\n load: (client) => {\n if (client._config.collectUserIp) return\n\n client.addOnError(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({ id: '[REDACTED]' }, event._user)\n event.request = assign({ clientIp: '[REDACTED]' }, event.request)\n })\n },\n configSchema: {\n collectUserIp: {\n defaultValue: () => true,\n message: 'should be true|false',\n validate: value => value === true || value === false\n }\n }\n}\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\n/*\n * Leaves breadcrumbs when console log methods are called\n */\nexports.load = (client) => {\n const isDev = /^(local-)?dev(elopment)?$/.test(client._config.releaseStage)\n\n if (isDev || !client._isBreadcrumbTypeEnabled('log')) return\n\n map(CONSOLE_LOG_METHODS, method => {\n const original = console[method]\n console[method] = (...args) => {\n client.leaveBreadcrumb('Console output', reduce(args, (accum, arg, i) => {\n // do the best/simplest stringification of each argument\n let 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 { stringified = String(arg) } 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 { stringified = JSON.stringify(arg) } 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 = () => { console[method] = original }\n })\n}\n\nif (process.env.NODE_ENV !== 'production') {\n exports.destroy = () => CONSOLE_LOG_METHODS.forEach(method => {\n if (typeof console[method]._restore === 'function') console[method]._restore()\n })\n}\n\nconst CONSOLE_LOG_METHODS = filter(['log', 'debug', 'info', 'warn', 'error'], method =>\n typeof console !== 'undefined' && typeof console[method] === 'function'\n)\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\nconst MAX_LINE_LENGTH = 200\nconst MAX_SCRIPT_LENGTH = 500000\n\nmodule.exports = (doc = document, win = window) => ({\n load: (client) => {\n if (!client._config.trackInlineScripts) return\n\n const originalLocation = win.location.href\n let 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 const isOldIe = !!doc.attachEvent\n let DOMContentLoaded = isOldIe ? doc.readyState === 'complete' : doc.readyState !== 'loading'\n const getHtml = () => doc.documentElement.outerHTML\n\n // get whatever HTML exists at this point in time\n html = getHtml()\n const 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 { prev.apply(this, arguments) } catch (e) {}\n }\n\n let _lastScript = null\n const updateLastScript = script => {\n _lastScript = script\n }\n\n const getCurrentScript = () => {\n let script = doc.currentScript || _lastScript\n if (!script && !DOMContentLoaded) {\n const scripts = doc.scripts || doc.getElementsByTagName('script')\n script = scripts[scripts.length - 1]\n }\n return script\n }\n\n const addSurroundingCode = lineNumber => {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml()\n // simulate the raw html\n const htmlLines = [''].concat(html.split('\\n'))\n const zeroBasedLine = lineNumber - 1\n const start = Math.max(zeroBasedLine - 3, 0)\n const end = Math.min(zeroBasedLine + 3, htmlLines.length)\n return reduce(htmlLines.slice(start, end), (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\n client.addOnError(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(event.errors[0].stacktrace, f => !(/__trace__$/.test(f.method)))\n\n const frame = event.errors[0].stacktrace[0]\n\n // remove hash and query string from url\n const cleanUrl = (url) => url.replace(/#.*$/, '').replace(/\\?.*$/, '')\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 const currentScript = getCurrentScript()\n if (currentScript) {\n const content = currentScript.innerHTML\n event.addMetadata(\n 'script',\n 'content',\n content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH)\n )\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 const [_setTimeout] = map([\n 'setTimeout',\n 'setInterval',\n 'setImmediate',\n 'requestAnimationFrame'\n ], fn =>\n __proxy(win, fn, original =>\n __traceOriginalScript(original, args => ({\n get: () => args[0],\n replace: fn => { args[0] = fn }\n }))\n )\n )\n\n // Proxy all the host objects whose prototypes have an addEventListener function\n map([\n 'EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode',\n 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase',\n 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow',\n 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList',\n 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'\n ], o => {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return\n __proxy(win[o].prototype, 'addEventListener', original =>\n __traceOriginalScript(original, eventTargetCallbackAccessor)\n )\n __proxy(win[o].prototype, 'removeEventListener', original =>\n __traceOriginalScript(original, eventTargetCallbackAccessor, true)\n )\n })\n\n function __traceOriginalScript (fn, callbackAccessor, alsoCallOriginal = false) {\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 const args = [].slice.call(arguments)\n try {\n const cba = callbackAccessor(args)\n const 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 const 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 () { updateLastScript(null) }, 0)\n const 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: return fn(args[0])\n case 2: return fn(args[0], args[1])\n default: return fn()\n }\n }\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: value => value === true || value === false,\n defaultValue: () => true,\n message: 'should be true|false'\n }\n }\n})\n\nfunction __proxy (host, name, replacer) {\n const original = host[name]\n if (!original) return original\n const replacement = replacer(original)\n host[name] = replacement\n return original\n}\n\nfunction eventTargetCallbackAccessor (args) {\n const 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 * Leaves breadcrumbs when the user interacts with the DOM\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n if (!('addEventListener' in win)) return\n if (!client._isBreadcrumbTypeEnabled('user')) return\n\n win.addEventListener('click', (event) => {\n let 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', { targetText, targetSelector }, 'user')\n }, true)\n }\n})\n\nconst trimStart = /^\\s+/\nconst trimEnd = /(^|[^\\s])\\s+$/\n\nfunction getNodeText (el) {\n let text = el.textContent || el.innerText || ''\n\n if (!text && (el.type === 'submit' || el.type === 'button')) {\n text = el.value\n }\n\n text = text.replace(trimStart, '').replace(trimEnd, '$1')\n\n if (text.length > 140) {\n return text.slice(0, 135) + '(...)'\n }\n\n return text\n}\n\n// Create a label from tagname, id and css class of the element\nfunction getNodeSelector (el, win) {\n const 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 const 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", "/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\nmodule.exports = (win = window) => {\n const plugin = {\n load: (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 const drop = name => () => client.leaveBreadcrumb(name, {}, 'navigation')\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', () => win.addEventListener('popstate', drop('Navigated back'), true))\n\n // hashchange has some metadata that we care about\n win.addEventListener('hashchange', event => {\n const metadata = event.oldURL\n ? { from: relativeLocation(event.oldURL, win), to: relativeLocation(event.newURL, win), state: getCurrentState(win) }\n : { to: relativeLocation(win.location.href, win) }\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation')\n }, true)\n\n // the only way to know about replaceState/pushState is to wrap them… >_<\n\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win)\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = (win = window) => {\n win.history.replaceState._restore()\n win.history.pushState._restore()\n }\n }\n\n return plugin\n}\n\nif (process.env.NODE_ENV !== 'production') {\n exports.destroy = (win = window) => {\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\nconst relativeLocation = (url, win) => {\n const a = win.document.createElement('A')\n a.href = url\n return `${a.pathname}${a.search}${a.hash}`\n}\n\nconst stateChangeToMetadata = (win, state, title, url) => {\n const currentPath = relativeLocation(win.location.href, win)\n return { title, state, prevState: getCurrentState(win), to: url || currentPath, from: currentPath }\n}\n\nconst wrapHistoryFn = (client, target, fn, win) => {\n const orig = target[fn]\n target[fn] = (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 (typeof client.resetEventCount === 'function') client.resetEventCount()\n // if the client is operating in auto session-mode, a new route should trigger a new session\n if (client._config.autoTrackSessions) client.startSession()\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 (process.env.NODE_ENV !== 'production') {\n target[fn]._restore = () => { target[fn] = orig }\n }\n}\n\nconst getCurrentState = (win) => {\n try {\n return win.history.state\n } catch (e) {}\n}\n", "const BREADCRUMB_TYPE = 'request'\n\nconst includes = require('@bugsnag/core/lib/es-utils/includes')\n\n/*\n * Leaves breadcrumbs when network requests occur\n */\nmodule.exports = (_ignoredUrls = [], win = window) => {\n let restoreFunctions = []\n const plugin = {\n load: client => {\n if (!client._isBreadcrumbTypeEnabled('request')) return\n\n const ignoredUrls = [\n client._config.endpoints.notify,\n client._config.endpoints.sessions\n ].concat(_ignoredUrls)\n\n monkeyPatchXMLHttpRequest()\n monkeyPatchFetch()\n\n // XMLHttpRequest monkey patch\n function monkeyPatchXMLHttpRequest () {\n if (!('addEventListener' in win.XMLHttpRequest.prototype)) return\n const nativeOpen = win.XMLHttpRequest.prototype.open\n\n // override native open()\n win.XMLHttpRequest.prototype.open = function open (method, url) {\n let requestSetupKey = false\n\n const error = () => handleXHRError(method, url)\n const load = () => handleXHRLoad(method, url, this.status)\n\n // if we have already setup listeners, it means open() was called twice, we need to remove\n // the listeners and recreate them\n if (requestSetupKey) {\n this.removeEventListener('load', load)\n this.removeEventListener('error', error)\n }\n\n // attach load event listener\n this.addEventListener('load', load)\n // attach error event listener\n this.addEventListener('error', error)\n\n requestSetupKey = true\n\n nativeOpen.apply(this, arguments)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n restoreFunctions.push(() => {\n win.XMLHttpRequest.prototype.open = nativeOpen\n })\n }\n }\n\n function handleXHRLoad (method, url, status) {\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(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return\n }\n const metadata = {\n status: status,\n request: `${method} ${url}`\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\n function handleXHRError (method, url) {\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 if (typeof url === 'string' && includes(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 request: `${method} ${url}`\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\n const oldFetch = win.fetch\n win.fetch = function fetch () {\n const urlOrRequest = arguments[0]\n const options = arguments[1]\n\n let method\n let url = null\n\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\n if (method === undefined) {\n method = 'GET'\n }\n\n return new Promise((resolve, reject) => {\n // pass through to native fetch\n oldFetch(...arguments)\n .then(response => {\n handleFetchSuccess(response, method, url)\n resolve(response)\n })\n .catch(error => {\n handleFetchError(method, url)\n reject(error)\n })\n })\n }\n\n if (process.env.NODE_ENV !== 'production') {\n restoreFunctions.push(() => {\n win.fetch = oldFetch\n })\n }\n }\n\n const handleFetchSuccess = (response, method, url) => {\n const metadata = {\n status: response.status,\n request: `${method} ${url}`\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\n const handleFetchError = (method, url) => {\n client.leaveBreadcrumb('fetch() error', { request: `${method} ${url}` }, BREADCRUMB_TYPE)\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = () => {\n restoreFunctions.forEach(fn => fn())\n restoreFunctions = []\n }\n }\n\n return plugin\n}\n", "const intRange = require('@bugsnag/core/lib/validators/int-range')\n\n/*\n * Throttles and dedupes events\n */\n\nmodule.exports = {\n load: (client) => {\n // track sent events for each init of the plugin\n let n = 0\n\n // add onError hook\n client.addOnError((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\n client.resetEventCount = () => { n = 0 }\n },\n configSchema: {\n maxEvents: {\n defaultValue: () => 10,\n message: 'should be a positive integer ≤100',\n validate: val => intRange(1, 100)(val)\n }\n }\n}\n", "/*\n * Remove query strings (and fragments) from stacktraces\n */\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\n\nmodule.exports = {\n load: (client) => {\n client.addOnError(event => {\n const allFrames = reduce(event.errors, (accum, er) => accum.concat(er.stacktrace), [])\n map(allFrames, frame => {\n frame.file = strip(frame.file)\n })\n })\n }\n}\n\nconst strip = module.exports._strip = str =>\n typeof str === 'string'\n ? str.replace(/\\?.*$/, '').replace(/#.*$/, '')\n : str\n", "/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\nmodule.exports = (win = window, component = 'window onerror') => ({\n load: (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 const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n\n let 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) &&\n (!url || typeof url !== 'string') &&\n !lineNo && !charNo && !error\n ) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n const 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 const message = messageOrEvent.message || messageOrEvent.detail || ''\n\n event = client.Event.create({ name, message }, 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, { event: messageOrEvent, extraParameters: url })\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\n client._notify(event)\n }\n\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments)\n }\n\n const prevOnError = win.onerror\n win.onerror = onerror\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.\nconst decorateStack = (stack, url, lineNo, charNo) => {\n if (!stack[0]) stack.push({})\n const 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}\n\nconst isActualNumber = (n) => typeof n === 'number' && String.call(n) !== 'NaN'\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst isError = require('@bugsnag/core/lib/iserror')\n\nlet _listener\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\nmodule.exports = (win = window) => {\n const plugin = {\n load: (client) => {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return\n const listener = evt => {\n let error = evt.reason\n let 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 const event = client.Event.create(error, false, {\n severity: 'error',\n unhandled: true,\n severityReason: { type: 'unhandledPromiseRejection' }\n }, 'unhandledrejection handler', 1, client._logger)\n\n if (isBluebird) {\n map(event.errors[0].stacktrace, fixBluebirdStacktrace(error))\n }\n\n client._notify(event, (event) => {\n if (isError(event.originalError) && !event.originalError.stack) {\n event.addMetadata('unhandledRejection handler', {\n [Object.prototype.toString.call(event.originalError)]: {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }\n })\n }\n })\n }\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener)\n } else {\n win.onunhandledrejection = (reason, promise) => {\n listener({ detail: { reason, promise } })\n }\n }\n _listener = listener\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = (win = window) => {\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\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\nconst fixBluebirdStacktrace = (error) => (frame) => {\n if (frame.file === error.toString()) return\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '')\n }\n}\n", "const name = 'Bugsnag JavaScript'\nconst version = '7.20.2'\nconst url = 'https://github.com/bugsnag/bugsnag-js'\n\nconst Client = require('@bugsnag/core/client')\nconst Event = require('@bugsnag/core/event')\nconst Session = require('@bugsnag/core/session')\nconst Breadcrumb = require('@bugsnag/core/breadcrumb')\n\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst keys = require('@bugsnag/core/lib/es-utils/keys')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\n// extend the base config schema with some browser-specific options\nconst schema = assign({}, require('@bugsnag/core/config').schema, require('./config'))\n\nconst pluginWindowOnerror = require('@bugsnag/plugin-window-onerror')\nconst pluginUnhandledRejection = require('@bugsnag/plugin-window-unhandled-rejection')\nconst pluginApp = require('@bugsnag/plugin-app-duration')\nconst pluginDevice = require('@bugsnag/plugin-browser-device')\nconst pluginContext = require('@bugsnag/plugin-browser-context')\nconst pluginRequest = require('@bugsnag/plugin-browser-request')\nconst pluginThrottle = require('@bugsnag/plugin-simple-throttle')\nconst pluginConsoleBreadcrumbs = require('@bugsnag/plugin-console-breadcrumbs')\nconst pluginNetworkBreadcrumbs = require('@bugsnag/plugin-network-breadcrumbs')\nconst pluginNavigationBreadcrumbs = require('@bugsnag/plugin-navigation-breadcrumbs')\nconst pluginInteractionBreadcrumbs = require('@bugsnag/plugin-interaction-breadcrumbs')\nconst pluginInlineScriptContent = require('@bugsnag/plugin-inline-script-content')\nconst pluginSession = require('@bugsnag/plugin-browser-session')\nconst pluginIp = require('@bugsnag/plugin-client-ip')\nconst pluginStripQueryString = require('@bugsnag/plugin-strip-query-string')\n\n// delivery mechanisms\nconst dXDomainRequest = require('@bugsnag/delivery-x-domain-request')\nconst dXMLHttpRequest = require('@bugsnag/delivery-xml-http-request')\n\nconst Bugsnag = {\n _client: null,\n createClient: (opts) => {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = { apiKey: opts }\n if (!opts) opts = {}\n\n const internalPlugins = [\n // add browser-specific plugins\n pluginApp,\n pluginDevice(),\n pluginContext(),\n pluginRequest(),\n pluginThrottle,\n pluginSession,\n pluginIp,\n pluginStripQueryString,\n pluginWindowOnerror(),\n pluginUnhandledRejection(),\n pluginNavigationBreadcrumbs(),\n pluginInteractionBreadcrumbs(),\n pluginNetworkBreadcrumbs(),\n pluginConsoleBreadcrumbs,\n\n // this one added last to avoid wrapping functionality before bugsnag uses it\n pluginInlineScriptContent()\n ]\n\n // configure a client with user supplied options\n const bugsnag = new Client(opts, schema, internalPlugins, { name, version, url })\n\n // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n bugsnag._setDelivery(window.XDomainRequest ? dXDomainRequest : dXMLHttpRequest)\n\n bugsnag._logger.debug('Loaded!')\n bugsnag.leaveBreadcrumb('Bugsnag loaded', {}, 'state')\n\n return bugsnag._config.autoTrackSessions\n ? bugsnag.startSession()\n : bugsnag\n },\n start: (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: () => {\n return Bugsnag._client != null\n }\n}\n\nmap(['resetEventCount'].concat(keys(Client.prototype)), (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 const ret = Bugsnag._client[m].apply(Bugsnag._client, arguments)\n Bugsnag._client._depth -= 1\n return ret\n }\n})\n\nmodule.exports = Bugsnag\n\nmodule.exports.Client = Client\nmodule.exports.Event = Event\nmodule.exports.Session = Session\nmodule.exports.Breadcrumb = Breadcrumb\n\n// Export a \"default\" property for compatibility with ESM imports\nmodule.exports.default = Bugsnag\n", "\nreturn _$notifier_2;\n\n});\n", "module.exports = require('@bugsnag/browser')\n", "import Bugsnag from '@bugsnag/js'\n\n// NOTE: \u30C6\u30B9\u30C8\u5B9F\u884C\u6642\u306E notifyReleaseStages \u8B66\u544A\u304C\u90AA\u9B54\u3060\u304B\u3089\u30ED\u30B0\u7121\u52B9\u5316\nconst options = process.env.NODE_ENV === 'test' ? { logger: null } : {}\n\nconst { user } = window.APP.rails\nconst userForReport = user ? { id: user.id, email: user.email } : null\n\nBugsnag.start({\n apiKey: 'c1d4d68df1d64881f7a1a1e17cb31d91',\n releaseStage: process.env.NODE_ENV,\n enabledReleaseStages: ['production', 'staging'],\n user: userForReport,\n ...options\n})\n"], "mappings": "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", "names": ["define", "module", "exports", "arr", "prop", "Breadcrumb", "i", "obj", "name", "Event", "stacktrace", "error", "cb", "Session", "Client", "schema", "self", "c", "err", "url", "version", "user", "fn", "win", "options", "event", "Bugsnag", "Bugsnag"] }