{ "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/node_modules/stackframe/stackframe.js", "../../../node_modules/@bugsnag/node_modules/stack-generator/stack-generator.js", "../../../node_modules/@bugsnag/node_modules/error-stack-parser/error-stack-parser.js", "../../../node_modules/@bugsnag/browser/core/lib/error-stack-parser.js", "../../../node_modules/@bugsnag/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/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/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/node_modules/@bugsnag/cuid/lib/pad.js", "../../../node_modules/@bugsnag/node_modules/@bugsnag/cuid/lib/fingerprint.browser.js", "../../../node_modules/@bugsnag/node_modules/@bugsnag/cuid/lib/is-cuid.js", "../../../node_modules/@bugsnag/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", "../../../node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude", "../../../node_modules/@bugsnag/plugin-react/dist/src/index.js", "../../../node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude", "../../../node_modules/js-cookie/src/js.cookie.js", "../../javascript/lib/init_bugsnag.ts", "../../../node_modules/@sonicgarden/bugsnag-plugin-custom-error/dist/index.js", "../../javascript/lib/resize_observer_hook.ts", "../../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: (endpoints) => {\n // only apply the default value if no endpoints have been provided, otherwise prevent delivery by setting to null\n if (typeof endpoints === 'undefined') {\n return ({\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n })\n } else {\n return ({ notify: null, sessions: null })\n }\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 reportUnhandledPromiseRejectionsAsHandled: {\n defaultValue: () => false,\n message: 'should be true|false',\n validate: value => value === true || value === false\n },\n sendPayloadChecksums: {\n defaultValue: () => false,\n message: 'should be true|false',\n validate: value => value === true || value === false\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 var objectProps = ['evalOrigin'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps);\n\n function StackFrame(obj) {\n if (!obj) return;\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n\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 fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n\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('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", "(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 // preventing the __proto__ property from being used as a key\n if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n return\n }\n\n // ensure a section with this name exists\n if (!state[section]) state[section] = {}\n\n // merge the updates with the existing section\n state[section] = assign({}, 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 // preventing the __proto__ property from being used as a key\n if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n return\n }\n\n // clear a single value from a section\n if (state[section]) {\n delete state[section][key]\n }\n}\n\nmodule.exports = { add, get, clear }\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 this._correlation = 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 /**\n * Associate this event with a specific trace. This is usually done automatically when\n * using bugsnag-js-performance, but can also be set manually if required.\n *\n * @param traceId the ID of the trace the event occurred within\n * @param spanId the ID of the span that the event occurred within\n */\n setTraceCorrelation (traceId, spanId) {\n if (typeof traceId === 'string') {\n this._correlation = { traceId, ...typeof spanId === 'string' ? { spanId } : { } }\n }\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 correlation: this._correlation\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 * Check the provided value is a valid device id\n * @param {unknown} value\n * @returns\n */\nmodule.exports = function isCuid (value) {\n return typeof value === 'string' && (/^c[a-z0-9]{20,32}$/).test(value);\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 isCuid = require('./lib/is-cuid.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;\ncuid.isCuid = isCuid;\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 // sendPayloadChecksums is false by default unless custom endpoints are not specified\n if (!opts.endpoints) {\n opts.sendPayloadChecksums = 'sendPayloadChecksums' in opts ? opts.sendPayloadChecksums : true\n }\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 }\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\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 if (client._config.endpoints.notify === null) {\n const err = new Error('Event not sent due to incomplete endpoint configuration')\n return cb(err)\n }\n\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 if (client._config.endpoints.sessions === null) {\n const err = new Error('Session not sent due to incomplete endpoint configuration')\n return cb(err)\n }\n\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\nfunction getIntegrityHeaderValue (windowOrWorkerGlobalScope, requestBody) {\n if (windowOrWorkerGlobalScope.isSecureContext && windowOrWorkerGlobalScope.crypto && windowOrWorkerGlobalScope.crypto.subtle && windowOrWorkerGlobalScope.crypto.subtle.digest && typeof TextEncoder === 'function') {\n const msgUint8 = new TextEncoder().encode(requestBody)\n return windowOrWorkerGlobalScope.crypto.subtle.digest('SHA-1', msgUint8).then((hashBuffer) => {\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n const hashHex = hashArray\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n\n return 'sha1 ' + hashHex\n })\n }\n return Promise.resolve()\n}\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n try {\n const url = client._config.endpoints.notify\n if (url === null) {\n const err = new Error('Event not sent due to incomplete endpoint configuration')\n return cb(err)\n }\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\n if (client._config.sendPayloadChecksums && typeof Promise !== 'undefined' && Promise.toString().indexOf('[native code]') !== -1) {\n getIntegrityHeaderValue(win, body).then((integrity) => {\n if (integrity) {\n req.setRequestHeader('Bugsnag-Integrity', integrity)\n }\n req.send(body)\n }).catch((err) => {\n client._logger.error(err)\n req.send(body)\n })\n } else {\n req.send(body)\n }\n } catch (e) {\n client._logger.error(e)\n }\n },\n sendSession: (session, cb = () => {}) => {\n try {\n const url = client._config.endpoints.sessions\n if (url === null) {\n const err = new Error('Session not sent due to incomplete endpoint configuration')\n return cb(err)\n }\n const req = new win.XMLHttpRequest()\n const body = payload.session(session, 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('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\n if (client._config.sendPayloadChecksums && typeof Promise !== 'undefined' && Promise.toString().indexOf('[native code]') !== -1) {\n getIntegrityHeaderValue(win, body).then((integrity) => {\n if (integrity) {\n req.setRequestHeader('Bugsnag-Integrity', integrity)\n }\n req.send(body)\n }).catch((err) => {\n client._logger.error(err)\n req.send(body)\n })\n } else {\n req.send(body)\n }\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 trim = /^\\s*([^\\s][\\s\\S]{0,139}[^\\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(trim, '$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 if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win, true)\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win)\n }\n }\n\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, resetEventCount = false) => {\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 (resetEventCount && typeof client.resetEventCount === 'function') client.resetEventCount()\n // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n orig.apply(target, [state, title].concat(url !== undefined ? url : []))\n }\n if (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) || !('WeakMap' in win)) return\n\n const trackedRequests = new WeakMap()\n const requestHandlers = new WeakMap()\n\n const originalOpen = win.XMLHttpRequest.prototype.open\n win.XMLHttpRequest.prototype.open = function open (method, url) {\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n trackedRequests.set(this, { method, url })\n }\n originalOpen.apply(this, arguments)\n }\n\n const originalSend = win.XMLHttpRequest.prototype.send\n win.XMLHttpRequest.prototype.send = function send (body) {\n const requestData = trackedRequests.get(this)\n if (requestData) {\n // if we have already setup listeners then this request instance is being reused,\n // so we need to remove the listeners from the previous send\n const listeners = requestHandlers.get(this)\n if (listeners) {\n this.removeEventListener('load', listeners.load)\n this.removeEventListener('error', listeners.error)\n }\n\n const requestStart = new Date()\n const error = () => handleXHRError(requestData.method, requestData.url, getDuration(requestStart))\n const load = () => handleXHRLoad(requestData.method, requestData.url, this.status, getDuration(requestStart))\n\n this.addEventListener('load', load)\n this.addEventListener('error', error)\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n requestHandlers.set(this, { load, error })\n }\n }\n\n originalSend.apply(this, arguments)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n restoreFunctions.push(() => {\n win.XMLHttpRequest.prototype.open = originalOpen\n win.XMLHttpRequest.prototype.send = originalSend\n })\n }\n }\n\n function handleXHRLoad (method, url, status, duration) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.')\n return\n }\n\n // an XMLHttpRequest's URL can be an object as long as its 'toString'\n // returns a URL, e.g. a HTMLAnchorElement\n if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return\n }\n const metadata = {\n status,\n method: String(method),\n url: String(url),\n duration: duration\n }\n if (status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE)\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE)\n }\n }\n\n function handleXHRError (method, url, duration) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.')\n return\n }\n\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 method: String(method),\n url: String(url),\n duration: duration\n }, BREADCRUMB_TYPE)\n }\n\n // window.fetch monkey patch\n function monkeyPatchFetch () {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return\n\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 const requestStart = new Date()\n\n // pass through to native fetch\n oldFetch(...arguments)\n .then(response => {\n handleFetchSuccess(response, method, url, getDuration(requestStart))\n resolve(response)\n })\n .catch(error => {\n handleFetchError(method, url, getDuration(requestStart))\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, duration) => {\n const metadata = {\n method: String(method),\n status: response.status,\n url: String(url),\n duration: duration\n }\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE)\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE)\n }\n }\n\n const handleFetchError = (method, url, duration) => {\n client.leaveBreadcrumb('fetch() error', { method: String(method), url: String(url), duration: duration }, 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\nconst getDuration = (startTime) => startTime && new Date() - startTime\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 // Report unhandled promise rejections as handled if the user has configured it\n const unhandled = !client._config.reportUnhandledPromiseRejectionsAsHandled\n\n const event = client.Event.create(error, false, {\n severity: 'error',\n unhandled,\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 = '8.2.0'\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_11;\n\n});\n", "module.exports = require('@bugsnag/browser')\n", "(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.BugsnagPluginReact = f()}})(function(){var define,module,exports;\n", "module.exports = class BugsnagPluginReact {\n constructor (...args) {\n // Fetch React from the window object, if it exists\n const globalReact = typeof window !== 'undefined' && window.React\n\n this.name = 'react'\n this.lazy = args.length === 0 && !globalReact\n\n if (!this.lazy) {\n this.React = args[0] || globalReact\n if (!this.React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined')\n }\n }\n\n load (client) {\n if (!this.lazy) {\n const ErrorBoundary = createClass(this.React, client)\n ErrorBoundary.createErrorBoundary = () => ErrorBoundary\n return ErrorBoundary\n }\n\n const BugsnagPluginReactLazyInitializer = function () {\n throw new Error(`@bugsnag/plugin-react was used incorrectly. Valid usage is as follows:\nPass React to the plugin constructor\n\n \\`Bugsnag.start({ plugins: [new BugsnagPluginReact(React)] })\\`\nand then call \\`const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary()\\`\n\nOr if React is not available until after Bugsnag has started,\nconstruct the plugin with no arguments\n \\`Bugsnag.start({ plugins: [new BugsnagPluginReact()] })\\`,\nthen pass in React when available to construct your error boundary\n \\`const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary(React)\\``)\n }\n BugsnagPluginReactLazyInitializer.createErrorBoundary = (React) => {\n if (!React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined')\n return createClass(React, client)\n }\n return BugsnagPluginReactLazyInitializer\n }\n}\n\nconst formatComponentStack = str => {\n const lines = str.split(/\\n/g)\n let ret = ''\n for (let line = 0, len = lines.length; line < len; line++) {\n if (lines[line].length) ret += `${ret.length ? '\\n' : ''}${lines[line].trim()}`\n }\n return ret\n}\n\nconst createClass = (React, client) => class ErrorBoundary extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n error: null,\n info: null\n }\n this.handleClearError = this.handleClearError.bind(this)\n }\n\n handleClearError () {\n this.setState({ error: null, info: null })\n }\n\n componentDidCatch (error, info) {\n const { onError } = this.props\n const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n const event = client.Event.create(\n error,\n true,\n handledState,\n 1\n )\n if (info && info.componentStack) info.componentStack = formatComponentStack(info.componentStack)\n event.addMetadata('react', info)\n client._notify(event, onError)\n this.setState({ error, info })\n }\n\n render () {\n const { error } = this.state\n if (error) {\n const { FallbackComponent } = this.props\n if (FallbackComponent) return React.createElement(FallbackComponent, { ...this.state, clearError: this.handleClearError })\n return null\n }\n return this.props.children\n }\n}\n\nmodule.exports.formatComponentStack = formatComponentStack\nmodule.exports.default = module.exports\n", "\nreturn _$src_1;\n\n});\n", "/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n", "import Bugsnag from '@bugsnag/js';\nimport type { Event as BugsnagEvent } from '@bugsnag/js';\nimport BugsnagPluginReact from '@bugsnag/plugin-react';\nimport { BugsnagPluginCustomError } from '@sonicgarden/bugsnag-plugin-custom-error'\nimport hookResizeObserver from '@/lib/resize_observer_hook';\n\nconst customErrorPlugin = new BugsnagPluginCustomError({\n ResizeObserverUndeliveredNotification: [\n 'ResizeObserver loop completed with undelivered notifications',\n ],\n});\n\nexport default function initBugsnag(environment: string) {\n const bugsnagClient = Bugsnag.start({\n // API\u30AD\u30FC\u306F\u516C\u958B\u3055\u308C\u308BJS\u306B\u57CB\u3081\u8FBC\u307E\u308C\u3066\u79D8\u5BC6\u306B\u3067\u304D\u306A\u3044\u3082\u306E\u306A\u306E\u3067\u3001\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306B\u76F4\u66F8\u304D\u3057\u3066\u3057\u307E\u3063\u3066\u3082\u554F\u984C\u306A\u3044\n apiKey: '859b37bfc59dd76e97448ce64cc653d7',\n plugins: [new BugsnagPluginReact(), customErrorPlugin],\n releaseStage: environment,\n enabledReleaseStages: ['staging', 'production', 'staging-de', 'production-de'],\n onError: function (event: BugsnagEvent) {\n if (window.APP.staffId) {\n event.setUser(window.APP.staffId.toString());\n }\n }\n });\n\n // \u5225\u306E script \u30BF\u30B0\u3067\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u4E3B\u8981JS\u30B3\u30FC\u30C9\u3092\u30ED\u30FC\u30C9\u3059\u308B\u304C\u3001\u305D\u3061\u3089\u3067\u3082 Bugsnag \u3092\u4F7F\u3046\u305F\u3081\u306B\u30B0\u30ED\u30FC\u30D0\u30EB\u5909\u6570\u306B\u3059\u308B\n window.bugsnagClient = bugsnagClient;\n\n // ResizeObserver \u304C\u3069\u3053\u3067\u4F7F\u308F\u308C\u3066\u3044\u308B\u304B\u8ABF\u3079\u308B\u305F\u3081\u306E\u8ABF\u67FB\u30B3\u30FC\u30C9\n hookResizeObserver();\n}\n", "class BugsnagPluginCustomError {\n constructor(customErrors) {\n this.customErrors = customErrors;\n }\n load(client) {\n client.addOnError((event) => {\n const customError = this.detectCustomError(event.errors[0]);\n if (customError) {\n // eslint-disable-next-line no-param-reassign\n event.errors[0].errorClass = customError;\n }\n });\n }\n detectCustomError(error) {\n return Object.keys(this.customErrors).find((key) => {\n return this.customErrors[key].some((rule) => {\n if (typeof rule === 'string') {\n return error.errorMessage.includes(rule);\n }\n return rule(error);\n });\n });\n }\n}\nexport { BugsnagPluginCustomError };\n", "import Cookies from 'js-cookie';\n\n// \"ResizeObserver loop completed with undelivered notifications.\" \u3068\u3044\u3046\u30A8\u30E9\u30FC\u304C\u8D77\u304D\u3066\u3044\u308B\u304C\n// \u3069\u3053\u3067 ResizeObserver \u304C\u4F7F\u308F\u308C\u3066\u3044\u308B\u304B\u308F\u304B\u3089\u306A\u3044\u306E\u3067\u3001\u4F7F\u308F\u308C\u305F\u3068\u304D\u306B Bugsnag \u306B\u60C5\u5831\u3092\u9001\u308B\n// \u30ED\u30FC\u30AB\u30EB\u3067\u8A66\u3057\u305F\u9650\u308A\u3067\u306F\u4F7F\u308F\u308C\u3066\u3044\u308B\u3068\u3053\u308D\u306F\u306A\u3055\u305D\u3046\u306B\u898B\u3048\u308B\u306E\u3067\u3001\n// \u3082\u3057\u304B\u3057\u305F\u3089 Chrome \u62E1\u5F35\u306A\u3069\u74B0\u5883\u4F9D\u5B58\u306E\u30B3\u30FC\u30C9\u304B\u3082\u3057\u308C\u306A\u3044\u3002\n\nconst COOKIE_KEY = 'RONotify';\nconst EXPIRATION_DAYS = 7;\n\nlet oldResizeObserver: any = null;\nexport default function hookResizeObserver() {\n oldResizeObserver = window.ResizeObserver;\n const wrapper: any = function(_callback: ResizeObserverCallback) {\n try {\n // \u983B\u7E41\u306BBugsnag\u901A\u77E5\u3055\u308C\u3059\u304E\u3066\u3082\u56F0\u308B\u306E\u3067\u6570\u65E5\u306B1\u56DE\u3057\u304B\u901A\u77E5\u3057\u306A\u3044\u3088\u3046\u306B\u3059\u308B\n if (Cookies.get(COOKIE_KEY) == null) {\n // \u547C\u3070\u308C\u305F\u7B87\u6240\u3092\u8ABF\u3079\u308B\u305F\u3081\u306B Error \u3092\u901A\u3058\u3066\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9\u3092\u53D6\u5F97\u3059\u308B\n const e = new Error('ResizeObserver created');\n window.bugsnagClient?.notify(e);\n\n Cookies.set(COOKIE_KEY, 't', { expires: EXPIRATION_DAYS });\n }\n } catch(_error) {\n // \u8ABF\u67FB\u30B3\u30FC\u30C9\u306E\u305B\u3044\u3067\u672C\u6765\u306E\u30B3\u30FC\u30C9\u304C\u52D5\u304B\u306A\u3044\u3068\u56F0\u308B\u306E\u3067\u3001\u8ABF\u67FB\u30B3\u30FC\u30C9\u4E2D\u306E\u3042\u3089\u3086\u308B\u30A8\u30E9\u30FC\u3092\u7121\u8996\u3057\u3066\n // \u672C\u6765\u306E\u30B3\u30FC\u30C9\u3092\u5B9F\u884C\u3059\u308B\n }\n return new oldResizeObserver(...arguments);\n }\n window.ResizeObserver = wrapper;\n}\n", "import initBugsnag from '@/lib/init_bugsnag';\n\nconst environment = process.env.WORKFORCE_ENV;\ninitBugsnag(environment);\n"], "mappings": "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", "names": ["require_bugsnag", "__commonJSMin", "exports", "module", "f", "g", "define", "_$breadcrumbTypes_17", "_$reduce_26", "arr", "fn", "accum", "val", "i", "len", "_$filter_21", "item", "_$includes_22", "x", "_$isArray_23", "obj", "_hasDontEnumBug", "_dontEnums", "_$keys_24", "result", "prop", "_$intRange_33", "min", "max", "value", "_$listOfFunctions_34", "_$stringWithLength_35", "defaultErrorTypes", "_$config_14", "providedKeys", "defaultKeys", "k", "endpoints", "maybeType", "key", "method", "s", "p", "feature", "_$assign_20", "target", "source", "_$map_25", "schema", "_$config_10", "_extends", "getPrefixedConsole", "logger", "consoleLog", "consoleMethod", "Breadcrumb", "message", "metadata", "type", "timestamp", "_proto", "_$Breadcrumb_12", "root", "factory", "_$stackframe_9", "_isNumber", "n", "_capitalize", "str", "_getter", "booleanProps", "numericProps", "stringProps", "arrayProps", "objectProps", "props", "StackFrame", "v", "fileName", "lineNumber", "columnNumber", "functionName", "argsStartIndex", "argsEndIndex", "args", "locationString", "parts", "j", "_$stackGenerator_8", "opts", "stack", "maxStackSize", "curr", "_$errorStackParser_6", "FIREFOX_SAFARI_STACK_REGEXP", "CHROME_IE_STACK_REGEXP", "SAFARI_NATIVE_CODE_REGEXP", "error", "urlLike", "regExp", "filtered", "line", "sanitizedLine", "location", "tokens", "locationParts", "functionNameRegex", "matches", "e", "lineRE", "lines", "match", "functionCall", "argsRaw", "_$errorStackParser_19", "_$safeJsonStringify_5", "data", "replacer", "space", "redactedKeys", "redactedPaths", "prepareObjForSerialization", "MAX_DEPTH", "MAX_EDGES", "MIN_PRESERVED_DEPTH", "REPLACEMENT_NODE", "isError", "o", "throwsMessage", "err", "find", "haystack", "needle", "isDescendent", "paths", "path", "shouldRedact", "patterns", "__isArray_5", "safelyGetProp", "seen", "edges", "visit", "edgesExceeded", "fResult", "er", "eResult", "aResult", "add", "existingFeatures", "existingFeatureKeys", "name", "variant", "existingIndex", "merge", "newFeatures", "toEventApi", "featureFlags", "_ref", "flag", "clear", "features", "featuresIndex", "_$featureFlagDelegate_27", "_$hasStack_28", "_$isError_7", "__isError_7", "_$iserror_29", "__add_31", "state", "section", "keyOrObj", "maybeVal", "_updates", "updates", "__clear_31", "get", "_$metadataDelegate_31", "Event", "errorClass", "errorMessage", "stacktrace", "handledState", "originalError", "defaultHandledState", "createBugsnagError", "traceId", "spanId", "___extends_15", "id", "email", "formatStackframe", "frame", "normaliseFunctionName", "ensureString", "getCauseStack", "errorFramesToSkip", "backtraceFramesToSkip", "maybeError", "tolerateNonErrors", "component", "_normaliseError", "normaliseError", "internalFrames", "event", "makeSerialisable", "_event$errors", "causes", "normalisedCauses", "cause", "_normaliseError2", "createAndLogInputError", "reason", "verb", "hasNecessaryFields", "_$Event_15", "_$asyncEvery_16", "cb", "index", "next", "_$callbackRunner_18", "callbacks", "onCallbackError", "runMaybeAsyncCallback", "ret", "_$syncCallbackRunner_32", "callbackArg", "callbackType", "ignore", "cbs", "_$pad_4", "num", "size", "env", "globalCount", "mimeTypesLength", "clientId", "_$fingerprint_2", "_$isCuid_3", "c", "blockSize", "base", "discreteValues", "randomBlock", "safeCounter", "cuid", "letter", "counter", "print", "random", "_$cuid_1", "Session", "_$Session_36", "__add_13", "__clear_13", "__merge_13", "noop", "Client", "configuration", "internalPlugins", "notifier", "_this", "pl", "self", "notify", "plugin", "_reduce", "defaultValue", "valid", "errors", "config", "generateConfigErrorMessage", "d", "session", "front", "crumb", "types", "onError", "postReportCallback", "_this2", "originalSeverity", "shouldSend", "rawInput", "stringify", "_$Client_13", "EVENT_REDACTION_PATHS", "_$jsonPayload_30", "payload", "_$delivery_37", "client", "win", "url", "getApiUrl", "body", "req", "endpoint", "version", "isoDate", "matchPageProtocol", "pageProtocol", "getIntegrityHeaderValue", "windowOrWorkerGlobalScope", "requestBody", "msgUint8", "hashBuffer", "hashArray", "hashHex", "b", "_$delivery_38", "status", "_err", "integrity", "_err2", "appStart", "reset", "_$app_39", "now", "_$context_40", "BUGSNAG_ANONYMOUS_ID_KEY", "getDeviceId", "storage", "_$device_41", "nav", "device", "setDefaultUserId", "eventOrSession", "user", "_$request_42", "_$session_43", "sessionDelegate", "sessionClient", "_$clientIp_44", "_$consoleBreadcrumbs_45", "isDev", "CONSOLE_LOG_METHODS", "original", "_len", "_key", "arg", "stringified", "MAX_LINE_LENGTH", "MAX_SCRIPT_LENGTH", "_$inlineScriptContent_46", "doc", "originalLocation", "html", "isOldIe", "DOMContentLoaded", "getHtml", "prev", "_lastScript", "updateLastScript", "script", "getCurrentScript", "scripts", "addSurroundingCode", "htmlLines", "zeroBasedLine", "start", "end", "cleanUrl", "currentScript", "content", "_map", "__proxy", "__traceOriginalScript", "_setTimeout", "eventTargetCallbackAccessor", "callbackAccessor", "alsoCallOriginal", "cba", "host", "replacement", "isEventHandlerObj", "_$interactionBreadcrumbs_47", "targetText", "targetSelector", "getNodeText", "getNodeSelector", "trim", "el", "text", "_$navigationBreadcrumbs_48", "drop", "relativeLocation", "getCurrentState", "wrapHistoryFn", "a", "stateChangeToMetadata", "title", "currentPath", "resetEventCount", "orig", "BREADCRUMB_TYPE", "_$networkBreadcrumbs_49", "_ignoredUrls", "restoreFunctions", "ignoredUrls", "monkeyPatchXMLHttpRequest", "monkeyPatchFetch", "trackedRequests", "requestHandlers", "originalOpen", "originalSend", "requestData", "listeners", "requestStart", "handleXHRError", "getDuration", "load", "handleXHRLoad", "duration", "oldFetch", "_arguments", "urlOrRequest", "options", "resolve", "reject", "response", "handleFetchSuccess", "handleFetchError", "startTime", "_$throttle_50", "_$stripQueryString_51", "allFrames", "strip", "_$onerror_52", "onerror", "messageOrEvent", "lineNo", "charNo", "decorateStack", "prevOnError", "culprit", "isActualNumber", "_listener", "_$unhandledRejection_53", "listener", "evt", "isBluebird", "unhandled", "fixBluebirdStacktrace", "_event$addMetadata", "promise", "__schema_11", "Bugsnag", "bugsnag", "m", "_$notifier_11", "require_notifier", "__commonJSMin", "exports", "module", "require_bugsnag_react", "__commonJSMin", "exports", "module", "f", "g", "define", "_$src_1", "BugsnagPluginReact", "globalReact", "_proto", "client", "ErrorBoundary", "createClass", "BugsnagPluginReactLazyInitializer", "React", "formatComponentStack", "str", "lines", "ret", "line", "len", "_React$Component", "_inheritsLoose", "props", "_this", "_assertThisInitialized", "_proto2", "error", "info", "onError", "handledState", "event", "FallbackComponent", "_extends", "require_js_cookie", "__commonJSMin", "exports", "module", "factory", "registeredInModuleLoader", "OldCookies", "api", "extend", "i", "result", "attributes", "key", "decode", "s", "init", "converter", "set", "value", "stringifiedAttributes", "attributeName", "get", "json", "jar", "cookies", "parts", "cookie", "name", "import_js", "import_plugin_react", "BugsnagPluginCustomError", "customErrors", "client", "event", "customError", "error", "key", "rule", "import_js_cookie", "COOKIE_KEY", "EXPIRATION_DAYS", "oldResizeObserver", "hookResizeObserver", "wrapper", "_callback", "Cookies", "e", "customErrorPlugin", "BugsnagPluginCustomError", "initBugsnag", "environment", "bugsnagClient", "Bugsnag", "BugsnagPluginReact", "event", "hookResizeObserver", "environment", "initBugsnag"] }