{ "version": 3, "sources": ["../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/request-tracker/index.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/stackframe/stackframe.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/es-utils/reduce.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/es-utils/filter.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/es-utils/keys.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/es-utils/is-array.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/es-utils/includes.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/validators/int-range.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/validators/string-with-length.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/validators/list-of-functions.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/breadcrumb-types.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/config.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/error-stack-parser/error-stack-parser.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/es-utils/assign.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/error-stack-parser.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/stack-generator/stack-generator.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/has-stack.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/es-utils/map.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/metadata-delegate.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/@bugsnag/safe-json-stringify/index.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/feature-flag-delegate.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/iserror/index.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/iserror.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/event.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/breadcrumb.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/@bugsnag/cuid/dist/lib/pad.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/@bugsnag/cuid/dist/lib/fingerprint.browser.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/@bugsnag/cuid/dist/lib/is-cuid.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/@bugsnag/cuid/dist/lib/cuid.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/@bugsnag/cuid/dist/index.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/session.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/async-every.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/callback-runner.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/sync-callback-runner.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/client.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/dist/src/config.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-window-onerror/onerror.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-window-unhandled-rejection/unhandled-rejection.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-app-duration/app.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-browser-device/device.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-browser-context/context.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-browser-request/request.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-simple-throttle/throttle.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-console-breadcrumbs/console-breadcrumbs.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/request-tracker/lib/request-tracker.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/request-tracker/lib/headers-to-object.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/request-tracker/lib/fetch-tracker.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/request-tracker/lib/xhr-header-string-to-object.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/request-tracker/lib/xhr-response-parser.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/request-tracker/lib/xhr-tracker.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/request-tracker/lib/url-helpers.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-network-breadcrumbs/network-breadcrumbs.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-navigation-breadcrumbs/navigation-breadcrumbs.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-interaction-breadcrumbs/interaction-breadcrumbs.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-inline-script-content/inline-script-content.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-browser-session/session.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-client-ip/client-ip.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/plugin-strip-query-string/strip-query-string.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/core/lib/json-payload.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/delivery-x-domain-request/delivery.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/delivery-xml-http-request/delivery.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/browser/dist/src/notifier.js", "../../../node_modules/.pnpm/@bugsnag+browser@9.1.0/node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude", "../../../node_modules/.pnpm/@bugsnag+js@9.1.0/node_modules/@bugsnag/js/browser/notifier.js", "../../../node_modules/.pnpm/@bugsnag+plugin-react@9.1.0_@bugsnag+core@9.1.0/node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude", "../../../node_modules/.pnpm/@bugsnag+plugin-react@9.1.0_@bugsnag+core@9.1.0/node_modules/@bugsnag/plugin-react/dist/src/index.js", "../../../node_modules/.pnpm/@bugsnag+plugin-react@9.1.0_@bugsnag+core@9.1.0/node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude", "../../javascript/lib/init_bugsnag.ts", "../../../node_modules/.pnpm/@sonicgarden+bugsnag-plugin-custom-error@https+++codeload.github.com+SonicGarden+bugsna_511cb05d7fb10afa0acc649fa321bfee/node_modules/@sonicgarden/bugsnag-plugin-custom-error/dist/index.js", "../../javascript/bugsnag.js"], "sourcesContent": ["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\nvar createModuleFactory = function createModuleFactory(t){var e;return function(r){return e||t(e={exports:{},parent:r},e.exports),e.exports}};\n", "const RequestTracker = require('./lib/request-tracker')\nconst createFetchTracker = require('./lib/fetch-tracker')\nconst createXhrTracker = require('./lib/xhr-tracker')\nconst { createUrlFilter, getDuration } = require('./lib/url-helpers')\n\n/**\n * Create an auto-loading request tracker plugin\n * @param {Array} ignoredUrls - Additional URLs to ignore\n * @param {Object} global - Global object (window or global)\n * @returns {Object} Bugsnag plugin\n */\nfunction createRequestTrackerPlugin (ignoredUrls = [], global = window) {\n return {\n name: 'requestTracker',\n load: (client) => {\n try {\n const fetchTracker = createFetchTracker(global)\n const xhrTracker = createXhrTracker(global)\n const urlFilter = createUrlFilter(client, ignoredUrls)\n\n return {\n fetchTracker,\n xhrTracker,\n urlFilter,\n getDuration\n }\n } catch (error) {\n client._logger.error('Failed to load request tracker:', error)\n throw new Error('Request tracking is not available: ' + error.message)\n }\n }\n }\n}\n\nmodule.exports = {\n RequestTracker,\n createFetchTracker,\n createXhrTracker,\n createUrlFilter,\n getDuration,\n createRequestTrackerPlugin\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('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", "// 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", "/* 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", "// Array#isArray\nmodule.exports = obj => Object.prototype.toString.call(obj) === '[object Array]'\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", "module.exports = (min = 1, max = Infinity) => value =>\n typeof value === 'number' &&\n parseInt('' + value, 10) === value &&\n value >= min && value <= max\n", "module.exports = value => typeof value === 'string' && !!value.length\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 = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual']\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", "(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, '(').replace(/^.*?\\s+/, '');\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(/ (\\(.+\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n // if a location was matched, pass it to extractLocation() otherwise pass all sanitizedLine\n // because this line doesn't have function name\n var locationParts = this.extractLocation(location ? location[1] : sanitizedLine);\n var functionName = location && sanitizedLine || 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", "// 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", "var ErrorStackParser = require('error-stack-parser')\nvar assign = require('./es-utils/assign')\n\nmodule.exports = assign({}, ErrorStackParser, {\n parse: function (error) {\n var frames = ErrorStackParser.parse.call(this, error)\n for (var index = 0; index < frames.length; index++) {\n var frame = frames[index]\n if ((frame.functionName === undefined || frame.functionName === null || frame.functionName === '') &&\n typeof frame.fileName === 'string' && /^async\\s+/.test(frame.fileName)) {\n frame.fileName = frame.fileName.replace(/^async\\s+/, '')\n frame.functionName = 'async'\n }\n }\n return frames\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('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", "// 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", "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 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", "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", "\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 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 this.response = {}\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 this._groupingDiscriminator = 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 getGroupingDiscriminator () {\n return this._groupingDiscriminator\n }\n\n setGroupingDiscriminator (value) {\n const previousValue = this._groupingDiscriminator\n if (typeof value === 'string' || value === null || value === undefined) this._groupingDiscriminator = value\n return previousValue\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 response: this.response,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n groupingDiscriminator: this._groupingDiscriminator,\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", "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", "'use strict';\n\nfunction pad (num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n}\n\nmodule.exports = pad;\n", "'use strict';\n\nconst 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\nfunction fingerprint () {\n return clientId;\n}\n\nmodule.exports = fingerprint;\n", "'use strict';\n\n/**\n * Check the provided value is a valid device id\n * @param {unknown} value\n * @returns\n */\nfunction isCuid (value) {\n return typeof value === 'string' && (/^c[a-z0-9]{20,32}$/).test(value);\n}\n\nmodule.exports = isCuid;\n", "'use strict';\n\nconst isCuid = require('./is-cuid.js');\nconst pad = require('./pad.js');\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\nfunction createCuid (fingerprint) {\n const blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\n let c = 0;\n\n function randomBlock () {\n return pad((Math.random() *\n discreteValues << 0)\n .toString(base), blockSize);\n }\n\n function safeCounter () {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n return c - 1;\n }\n\n function 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\n cuid.fingerprint = fingerprint;\n cuid.isCuid = isCuid;\n\n return cuid;\n}\n\nmodule.exports = createCuid;\n", "'use strict';\n\nconst fingerprint = require('./lib/fingerprint.js');\nconst cuid$1 = require('./lib/cuid.js');\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\nconst cuid = cuid$1(fingerprint);\n\nmodule.exports = cuid;\n", "const cuid = require('@bugsnag/cuid')\n\nclass Session {\n constructor () {\n this.id = cuid()\n this.startedAt = new Date()\n this._handled = 0\n this._unhandled = 0\n this._user = {}\n this.app = {}\n this.device = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: { handled: this._handled, unhandled: this._unhandled }\n }\n }\n\n _track (event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1\n }\n}\n\nmodule.exports = Session\n", "// 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", "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')\nconst SECONDARY_ENDPOINT_API_KEY_PREFIX = '00000'\nconst SECONDARY_NOTIFY_ENDPOINT = 'https://notify.bugsnag.smartbear.com'\nconst SECONDARY_SESSIONS_ENDPOINT = 'https://sessions.bugsnag.smartbear.com'\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 this._groupingDiscriminator = undefined\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 getGroupingDiscriminator () {\n return this._groupingDiscriminator\n }\n\n setGroupingDiscriminator (value) {\n const previousValue = this._groupingDiscriminator\n if (typeof value === 'string' || value === null || value === undefined) this._groupingDiscriminator = value\n return previousValue\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 if (opts.endpoints === undefined && config.apiKey.indexOf(SECONDARY_ENDPOINT_API_KEY_PREFIX) === 0) {\n config.endpoints = {\n notify: SECONDARY_NOTIFY_ENDPOINT,\n sessions: SECONDARY_SESSIONS_ENDPOINT\n }\n }\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 event.setGroupingDiscriminator(this._groupingDiscriminator)\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 { 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", "/*\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 try { prevOnError.apply(this, arguments) } catch (e) {}\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", "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", "const assign = require('@bugsnag/core/lib/es-utils/assign')\nconst BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id'\nconst cuid = require('@bugsnag/cuid')\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\n if (id && cuid.isCuid(id)) {\n return id\n }\n\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", "/*\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')\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 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", "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", "/**\n * Singleton RequestTracker class for managing HTTP request instrumentation\n * Allows multiple plugins to register callbacks for the same requests\n */\nclass RequestTracker {\n constructor () {\n this.callbacks = []\n }\n\n /**\n * Register a callback to be called when a request starts\n * @param {Function} callback - Function to call with request context\n */\n onStart (callback) {\n if (typeof callback !== 'function') {\n throw new Error('RequestTracker onStart callback must be a function')\n }\n this.callbacks.push(callback)\n }\n\n /**\n * Notify all registered callbacks about a request start\n * @param {Object} context - Request start context\n * @returns {Object} Combined result with onRequestEnd callbacks\n */\n start (context) {\n const results = this.callbacks\n .map(callback => {\n try {\n return callback(context)\n } catch (error) {\n // Isolate plugin errors - don't let one plugin break others\n console.error('RequestTracker callback error:', error)\n return null\n }\n })\n .filter(result => result && typeof result === 'object')\n\n return {\n onRequestEnd: (endContext) => {\n results.forEach(result => {\n if (typeof result.onRequestEnd === 'function') {\n try {\n result.onRequestEnd(endContext)\n } catch (error) {\n console.error('RequestTracker onRequestEnd callback error:', error)\n }\n }\n })\n },\n extraRequestHeaders: results\n .map(result => result.extraRequestHeaders)\n .filter(headers => headers && typeof headers === 'object')\n .reduce((combined, headers) => Object.assign(combined, headers), {})\n }\n }\n\n /**\n * Reset tracker (for testing)\n */\n _reset () {\n this.callbacks = []\n }\n}\n\nmodule.exports = RequestTracker\n", "/**\n * Convert Headers object to plain object\n * @param {Headers} headers - Headers object\n * @returns {Object} Plain object with header key-value pairs\n */\nmodule.exports = function (headers) {\n if (!headers) return {}\n\n const obj = {}\n if (typeof headers.entries === 'function') {\n const iterator = headers.entries()\n let entry = iterator.next()\n while (!entry.done) {\n const [key, value] = entry.value\n obj[key] = value\n entry = iterator.next()\n }\n } else if (headers.forEach) {\n headers.forEach((value, key) => {\n obj[key] = value\n })\n }\n return obj\n}\n", "const headersToObject = require('./headers-to-object')\nconst RequestTracker = require('./request-tracker')\n\n/**\n * Create fetch request tracker with singleton pattern\n * @param {Object} global - Global object (window or global)\n * @param {Object} options - Configuration options\n * @returns {Object} Tracker instance\n */\nfunction createFetchTracker (global, options = {}) {\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 global) || global.fetch.polyfill) return\n\n // Use singleton pattern - one tracker per global context\n if (!global.__bugsnag_fetch_tracker__) {\n const tracker = new RequestTracker()\n const originalFetch = global.fetch\n\n global.fetch = function wrappedFetch (urlOrRequest, options = {}) {\n let url = null\n let method = 'GET'\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 let requestHeaders = {}\n if (options && options.headers) {\n if (options.headers instanceof Headers) {\n requestHeaders = headersToObject(options.headers)\n } else if (typeof options.headers === 'object') {\n requestHeaders = options.headers\n }\n }\n\n const startTime = Date.now()\n const context = {\n url: String(url),\n method: String(method),\n startTime,\n type: 'fetch',\n input: urlOrRequest,\n headers: requestHeaders,\n body: options ? options.body : undefined\n }\n\n const { onRequestEnd } = tracker.start(context)\n\n // Call original fetch\n return originalFetch.call(this, ...arguments).then(\n response => {\n onRequestEnd({\n endTime: Date.now(),\n status: response.status,\n state: 'success',\n headers: headersToObject(response.headers)\n })\n return response\n },\n error => {\n onRequestEnd({\n endTime: Date.now(),\n state: 'error',\n error\n })\n throw error\n }\n )\n }\n\n // Store tracker and mark as active\n global.__bugsnag_fetch_tracker__ = tracker\n\n // Restore function for development\n if (process.env.NODE_ENV !== 'production') {\n tracker._restore = () => {\n global.fetch = originalFetch\n delete global.__bugsnag_fetch_tracker__\n }\n }\n }\n\n return global.__bugsnag_fetch_tracker__\n}\n\nmodule.exports = createFetchTracker\n", "\n/**\n * Converts an XHR header string to an object\n * @param {string} headersString\n * @returns {Object}\n */\nmodule.exports = function (headersString) {\n if (!headersString) return {}\n const arr = headersString.trim().split(/[\\r\\n]+/)\n const headerMap = {}\n arr.forEach((line) => {\n const parts = line.split(': ')\n const header = parts.shift()\n const value = parts.join(': ')\n headerMap[header] = value\n })\n return headerMap\n}\n", "/**\n * Receives the XHR response and parses it based on the responseType\n * @param {XMLHttpRequest} xhr The XHR instance\n * @returns {string | undefined} The parsed response\n */\nmodule.exports = function xhrResponseParser ({ response, responseType }) {\n if (response === null || response === undefined) {\n return undefined\n }\n\n switch (responseType) {\n case 'arraybuffer':\n case 'blob':\n return '[Binary Data]'\n case 'document':\n return '[Document]'\n case 'json':\n try {\n return JSON.stringify(response)\n } catch (e) {\n return '[Unserializable JSON]'\n }\n case 'text':\n case '':\n default:\n return String(response)\n }\n}\n", "const RequestTracker = require('./request-tracker')\nconst xhrHeaderStringToObject = require('./xhr-header-string-to-object')\nconst xhrResponseParser = require('./xhr-response-parser')\n\n/**\n * Create XHR request tracker with singleton pattern\n * @param {Object} global - Global object (window or global)\n * @param {Object} options - Configuration options\n * @returns {Object} Tracker instance\n */\nfunction createXhrTracker (global, options = {}) {\n if (!('addEventListener' in global.XMLHttpRequest.prototype) || !('WeakMap' in global)) return\n\n // Use singleton pattern - one tracker per global context\n if (!global.__bugsnag_xhr_tracker__) {\n const tracker = new RequestTracker()\n\n const trackedRequests = new WeakMap()\n const requestHandlers = new WeakMap()\n\n const originalOpen = global.XMLHttpRequest.prototype.open\n const originalSend = global.XMLHttpRequest.prototype.send\n const originalSetRequestHeader = global.XMLHttpRequest.prototype.setRequestHeader\n\n global.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: String(method), url: String(url) })\n }\n originalOpen.apply(this, arguments)\n }\n\n global.XMLHttpRequest.prototype.setRequestHeader = function setRequestHeader (header, value) {\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n const requestData = trackedRequests.get(this)\n if (requestData) {\n requestData.headers = requestData.headers || {}\n requestData.headers[String(header)] = (requestData.headers[String(header)] || '') + String(value)\n }\n }\n originalSetRequestHeader.apply(this, arguments)\n }\n\n global.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 startTime = Date.now()\n const context = {\n url: requestData.url,\n method: requestData.method,\n startTime,\n type: 'xmlhttprequest',\n body,\n headers: requestData.headers\n }\n\n const { onRequestEnd } = tracker.start(context)\n\n const getResponseHeaders = () => xhrHeaderStringToObject(this.getAllResponseHeaders())\n\n const handleLoad = () => {\n onRequestEnd({\n endTime: Date.now(),\n status: this.status,\n state: 'success',\n headers: getResponseHeaders(),\n body: xhrResponseParser(this)\n })\n }\n\n const handleError = () => {\n onRequestEnd({\n endTime: Date.now(),\n state: 'error',\n headers: getResponseHeaders(),\n body: xhrResponseParser(this)\n })\n }\n\n this.addEventListener('load', handleLoad)\n this.addEventListener('error', handleError)\n\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: handleLoad, error: handleError })\n }\n }\n\n originalSend.apply(this, arguments)\n }\n\n // Store tracker and mark as active\n global.__bugsnag_xhr_tracker__ = tracker\n\n // Restore function for development\n if (process.env.NODE_ENV !== 'production') {\n tracker._restore = () => {\n global.XMLHttpRequest.prototype.open = originalOpen\n global.XMLHttpRequest.prototype.send = originalSend\n global.XMLHttpRequest.prototype.setRequestHeader = originalSetRequestHeader\n delete global.__bugsnag_xhr_tracker__\n }\n }\n }\n\n return global.__bugsnag_xhr_tracker__\n}\n\nmodule.exports = createXhrTracker\n", "const includes = require('@bugsnag/core/lib/es-utils/includes')\n\n/**\n * Check if a URL should be ignored for tracking\n * @param {string} url - URL to check\n * @param {Array} ignoredUrls - Array of URLs to ignore\n * @returns {boolean} True if URL should be ignored\n */\nfunction shouldIgnoreUrl (url, ignoredUrls = []) {\n if (!url || typeof url !== 'string') return true\n\n // Remove query parameters for comparison\n const urlWithoutQuery = url.replace(/\\?.*$/, '')\n\n return includes(ignoredUrls, urlWithoutQuery)\n}\n\n/**\n * Create URL filtering function for Bugsnag endpoints and custom ignored URLs\n * @param {Object} client - Bugsnag client instance\n * @param {Array} additionalIgnoredUrls - Additional URLs to ignore\n * @returns {Function} URL filtering function\n */\nfunction createUrlFilter (client, additionalIgnoredUrls = []) {\n const ignoredUrls = [\n client._config.endpoints.notify,\n client._config.endpoints.sessions\n ].concat(additionalIgnoredUrls).filter(Boolean)\n\n return (url) => shouldIgnoreUrl(url, ignoredUrls)\n}\n\n/**\n * Calculate duration from start time\n * @param {number} startTime - Start timestamp\n * @returns {number} Duration in milliseconds\n */\nfunction getDuration (startTime) {\n return startTime && Date.now() - startTime\n}\n\nmodule.exports = {\n shouldIgnoreUrl,\n createUrlFilter,\n getDuration\n}\n", "const BREADCRUMB_TYPE = 'request'\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 // Try to get existing request tracker\n let requestTrackerPlugin = client.getPlugin('requestTracker')\n\n // Auto-load request tracker if not present\n if (!requestTrackerPlugin) {\n try {\n const { createRequestTrackerPlugin } = require('@bugsnag/request-tracker')\n const trackerPlugin = createRequestTrackerPlugin(_ignoredUrls, win)\n client._loadPlugin(trackerPlugin)\n requestTrackerPlugin = client.getPlugin('requestTracker')\n } catch (error) {\n client._logger.warn('Failed to auto-load request tracker, falling back to direct monkey-patching:', error.message)\n }\n }\n\n if (requestTrackerPlugin) {\n return useSharedRequestTracker(requestTrackerPlugin)\n }\n\n function useSharedRequestTracker (trackerPlugin) {\n const { fetchTracker, xhrTracker, urlFilter, getDuration } = trackerPlugin\n\n const handleRequest = (startContext) => {\n if (urlFilter(startContext.url)) return\n\n return {\n onRequestEnd: (response) => {\n const duration = getDuration(startContext.startTime)\n const metadata = {\n method: startContext.method,\n status: response.status,\n url: startContext.url,\n duration\n }\n\n const request = startContext.type === 'fetch' ? 'fetch()' : 'XMLHttpRequest'\n\n if (response.state === 'error') {\n client.leaveBreadcrumb(`${request} error`, { method: startContext.method, url: startContext.url, duration }, BREADCRUMB_TYPE)\n } else if (response.status >= 400) {\n client.leaveBreadcrumb(`${request} failed`, metadata, BREADCRUMB_TYPE)\n } else {\n client.leaveBreadcrumb(`${request} succeeded`, metadata, BREADCRUMB_TYPE)\n }\n }\n }\n }\n\n if (fetchTracker) {\n fetchTracker.onStart(handleRequest)\n restoreFunctions.push(fetchTracker._restore)\n }\n if (xhrTracker) {\n xhrTracker.onStart(handleRequest)\n restoreFunctions.push(xhrTracker._restore)\n }\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", "/*\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", "/*\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", "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 'MediaSource', 'MediaRecorder', 'MediaStream', 'ServiceWorker', 'ServiceWorkerContainer',\n 'ServiceWorkerRegistration', 'BroadcastChannel', 'RTCPeerConnection', 'RTCDataChannel', 'AbortSignal',\n 'MediaQueryList', 'ShadowRoot', 'FontFaceSet', 'Animation', 'PermissionStatus', 'PaymentRequest', 'VideoTrackList'\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 (...args) {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\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__ (...cbArgs) {\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, cbArgs)\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", "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", "/*\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", "const jsonStringify = require('@bugsnag/safe-json-stringify')\nconst EVENT_REDACTION_PATHS = [\n 'events.[].metaData',\n 'events.[].breadcrumbs.[].metaData',\n 'events.[].request',\n 'events.[].response'\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", "const name = 'Bugsnag JavaScript'\nconst version = '9.1.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_12;\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", "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'\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", "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 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", "createModuleFactory", "t", "e", "r", "_$requestTracker_55", "createUrlFilter", "_$urlHelpers_59", "getDuration", "createRequestTrackerPlugin", "ignoredUrls", "global", "client", "fetchTracker", "_$createFetchTracker_56", "xhrTracker", "_$createXhrTracker_62", "urlFilter", "error", "_$RequestTracker_58", "root", "factory", "_isNumber", "n", "_capitalize", "str", "_getter", "p", "booleanProps", "numericProps", "stringProps", "arrayProps", "objectProps", "props", "StackFrame", "obj", "i", "v", "fileName", "lineNumber", "columnNumber", "functionName", "argsStartIndex", "argsEndIndex", "args", "locationString", "parts", "j", "k", "_$reduce_27", "arr", "fn", "accum", "val", "len", "_$filter_22", "item", "_hasDontEnumBug", "_dontEnums", "_$keys_25", "result", "prop", "_$isArray_24", "_$includes_23", "x", "_$intRange_34", "min", "max", "value", "_$stringWithLength_36", "_$listOfFunctions_35", "_$breadcrumbTypes_18", "defaultErrorTypes", "_$config_15", "providedKeys", "defaultKeys", "endpoints", "maybeType", "key", "method", "s", "feature", "_$errorStackParser_7", "_$stackframe_10", "FIREFOX_SAFARI_STACK_REGEXP", "CHROME_IE_STACK_REGEXP", "SAFARI_NATIVE_CODE_REGEXP", "urlLike", "regExp", "filtered", "line", "sanitizedLine", "location", "locationParts", "functionNameRegex", "matches", "lineRE", "lines", "match", "tokens", "functionCall", "argsRaw", "_$assign_21", "target", "source", "_$errorStackParser_20", "frames", "index", "frame", "_$stackGenerator_9", "opts", "stack", "maxStackSize", "curr", "_$hasStack_29", "err", "_$map_26", "add", "state", "section", "keyOrObj", "maybeVal", "_updates", "updates", "clear", "get", "_$metadataDelegate_32", "_$safeJsonStringify_6", "data", "replacer", "space", "redactedKeys", "redactedPaths", "prepareObjForSerialization", "MAX_DEPTH", "MAX_EDGES", "MIN_PRESERVED_DEPTH", "REPLACEMENT_NODE", "isError", "o", "throwsMessage", "find", "haystack", "needle", "isDescendent", "paths", "path", "shouldRedact", "patterns", "__isArray_6", "safelyGetProp", "seen", "edges", "visit", "edgesExceeded", "fResult", "er", "eResult", "aResult", "__add_28", "existingFeatures", "existingFeatureKeys", "name", "variant", "existingIndex", "merge", "newFeatures", "toEventApi", "featureFlags", "_ref", "flag", "__clear_28", "features", "featuresIndex", "_$featureFlagDelegate_28", "_$isError_8", "__isError_8", "_$iserror_30", "Event", "errorClass", "errorMessage", "stacktrace", "handledState", "originalError", "defaultHandledState", "createBugsnagError", "_proto", "traceId", "spanId", "_extends", "previousValue", "id", "email", "formatStackframe", "normaliseFunctionName", "ensureString", "type", "getCauseStack", "errorFramesToSkip", "backtraceFramesToSkip", "maybeError", "tolerateNonErrors", "component", "logger", "_normaliseError", "normaliseError", "internalFrames", "event", "makeSerialisable", "_event$errors", "causes", "normalisedCauses", "cause", "_normaliseError2", "createAndLogInputError", "reason", "verb", "hasNecessaryFields", "_$Event_16", "Breadcrumb", "message", "metadata", "timestamp", "_$Breadcrumb_13", "pad", "num", "size", "_$pad_5", "env", "globalCount", "mimeTypesLength", "clientId", "fingerprint", "_$fingerprint_3", "isCuid", "_$isCuid_4", "createCuid", "blockSize", "base", "discreteValues", "c", "randomBlock", "safeCounter", "cuid", "letter", "counter", "print", "random", "_$createCuid_2", "_$cuid_1", "Session", "_$Session_37", "_$asyncEvery_17", "cb", "next", "_$callbackRunner_19", "callbacks", "onCallbackError", "runMaybeAsyncCallback", "ret", "_$syncCallbackRunner_33", "callbackArg", "callbackType", "ignore", "cbs", "__add_14", "__clear_14", "__merge_14", "SECONDARY_ENDPOINT_API_KEY_PREFIX", "SECONDARY_NOTIFY_ENDPOINT", "SECONDARY_SESSIONS_ENDPOINT", "noop", "Client", "configuration", "schema", "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_14", "_$config_11", "___extends_11", "getPrefixedConsole", "consoleLog", "consoleMethod", "_$onerror_53", "win", "onerror", "messageOrEvent", "url", "lineNo", "charNo", "decorateStack", "prevOnError", "culprit", "isActualNumber", "_listener", "_$unhandledRejection_54", "listener", "evt", "isBluebird", "unhandled", "fixBluebirdStacktrace", "_event$addMetadata", "promise", "appStart", "reset", "_$app_40", "now", "BUGSNAG_ANONYMOUS_ID_KEY", "getDeviceId", "storage", "_$device_42", "nav", "device", "setDefaultUserId", "eventOrSession", "user", "_$context_41", "_$request_43", "_$throttle_51", "_$consoleBreadcrumbs_46", "isDev", "CONSOLE_LOG_METHODS", "original", "_len", "_key", "arg", "stringified", "RequestTracker", "callback", "context", "results", "endContext", "headers", "combined", "_$headersToObject_57", "iterator", "entry", "_entry$value", "createFetchTracker", "options", "tracker", "originalFetch", "urlOrRequest", "requestHeaders", "startTime", "_tracker$start", "onRequestEnd", "response", "_$xhrHeaderStringToObject_60", "headersString", "headerMap", "header", "_$xhrResponseParser_61", "responseType", "createXhrTracker", "trackedRequests", "requestHandlers", "originalOpen", "originalSend", "originalSetRequestHeader", "requestData", "body", "listeners", "getResponseHeaders", "handleLoad", "handleError", "shouldIgnoreUrl", "urlWithoutQuery", "additionalIgnoredUrls", "BREADCRUMB_TYPE", "_$networkBreadcrumbs_50", "_ignoredUrls", "restoreFunctions", "requestTrackerPlugin", "_require", "trackerPlugin", "useSharedRequestTracker", "handleRequest", "startContext", "duration", "request", "_$navigationBreadcrumbs_49", "drop", "relativeLocation", "getCurrentState", "wrapHistoryFn", "a", "stateChangeToMetadata", "title", "currentPath", "resetEventCount", "orig", "_$interactionBreadcrumbs_48", "targetText", "targetSelector", "getNodeText", "getNodeSelector", "trim", "el", "text", "MAX_LINE_LENGTH", "MAX_SCRIPT_LENGTH", "_$inlineScriptContent_47", "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", "_len2", "cbArgs", "_key2", "host", "replacement", "isEventHandlerObj", "_$session_44", "sessionDelegate", "sessionClient", "_$clientIp_45", "_$stripQueryString_52", "allFrames", "strip", "EVENT_REDACTION_PATHS", "_$jsonPayload_31", "payload", "_$delivery_38", "getApiUrl", "req", "endpoint", "version", "isoDate", "matchPageProtocol", "pageProtocol", "getIntegrityHeaderValue", "windowOrWorkerGlobalScope", "requestBody", "msgUint8", "hashBuffer", "hashArray", "hashHex", "b", "_$delivery_39", "status", "_err", "integrity", "_err2", "__schema_12", "Bugsnag", "bugsnag", "m", "_$notifier_12", "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", "props", "_this", "_inheritsLoose", "_proto2", "error", "info", "onError", "handledState", "event", "FallbackComponent", "_extends", "import_js", "import_plugin_react", "BugsnagPluginCustomError", "customErrors", "client", "event", "customError", "error", "key", "rule", "customErrorPlugin", "BugsnagPluginCustomError", "initBugsnag", "environment", "bugsnagClient", "Bugsnag", "BugsnagPluginReact", "event", "environment", "initBugsnag"] }