{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@bugsnag/js/browser/notifier.js","webpack:///./app/javascript/packs/bugsnag.js","webpack:///./node_modules/@bugsnag/browser/dist/bugsnag.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","Bugsnag","start","appType","apiKey","appVersion","getAppInfo","version","onError","event","userId","getMyUserIdentifier","setUser","f","_typeof","iterator","obj","constructor","_$breadcrumbTypes_8","_$reduce_17","arr","fn","accum","val","len","length","_$filter_12","item","concat","_$includes_13","x","_$isArray_14","toString","_hasDontEnumBug","propertyIsEnumerable","_dontEnums","_$keys_15","prop","result","push","_$intRange_24","min","max","Infinity","parseInt","_$listOfFunctions_25","_$stringWithLength_26","_$config_5","schema","defaultValue","message","validate","undefined","autoDetectErrors","enabledErrorTypes","unhandledExceptions","unhandledRejections","allowPartialObject","providedKeys","defaultKeys","k","onSession","onBreadcrumb","endpoints","notify","sessions","autoTrackSessions","enabledReleaseStages","releaseStage","maxBreadcrumbs","enabledBreadcrumbTypes","join","maybeType","context","user","metadata","logger","method","redactedKeys","test","plugins","load","_$assign_11","target","arguments","source","_$map_16","_$config_1","window","location","host","console","debug","getPrefixedConsole","consoleLog","log","consoleMethod","_$Breadcrumb_3","Breadcrumb","type","timestamp","Date","this","toJSON","metaData","_$stackframe_34","root","factory","StackFrame","_isNumber","isNaN","parseFloat","isFinite","_capitalize","str","charAt","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","props","getArgs","args","setArgs","v","TypeError","getEvalOrigin","evalOrigin","setEvalOrigin","getFunctionName","getFileName","getLineNumber","getColumnNumber","Boolean","j","Number","String","_$errorStackParser_31","ErrorStackParser","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","error","stacktrace","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","Error","extractLocation","urlLike","indexOf","parts","exec","replace","split","filter","line","map","sanitizedLine","tokens","slice","locationParts","pop","functionName","fileName","lineNumber","columnNumber","functionNameRegex","matches","e","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","argsRaw","functionCall","shift","_$errorStackParser_10","_$hasStack_18","err","_$iserror_19","clear","state","section","_$metadataDelegate_22","add","keyOrObj","maybeVal","_updates","updates","_$stackGenerator_33","StackGenerator","backtrace","opts","maxStackSize","curr","callee","Array","RegExp","$1","caller","Event","errorClass","errorMessage","handledState","originalError","defaultHandledState","groupingHash","_handledState","severity","unhandled","app","device","request","breadcrumbs","_metadata","_user","_session","errors","ensureString","frame","formatStackframe","JSON","stringify","_proto","addMetadata","getMetadata","clearMetadata","getUser","id","email","payloadVersion","exceptions","er","severityReason","session","file","normaliseFunctionName","code","inProject","getStacktrace","errorFramesToSkip","backtraceFramesToSkip","maybeError","tolerateNonErrors","component","_normaliseError","normaliseError","internalFrames","makeSerialisable","createAndLogInputError","reason","warn","hasNecessaryFields","_$Event_6","_$syncCallbackRunner_23","callbacks","callbackArg","callbackType","ignore","cbs","_$pad_29","num","size","substr","env","self","globalCount","mimeTypesLength","navigator","mimeTypes","clientId","userAgent","_$fingerprint_28","discreteValues","Math","pow","randomBlock","random","cuid","getTime","fingerprint","_$cuid_27","_$Session_35","Session","startedAt","_handled","_unhandled","events","handled","_track","noop","Client","configuration","internalPlugins","notifier","_this","_notifier","_config","_schema","_delivery","sendSession","sendEvent","_logger","info","_plugins","_breadcrumbs","_context","_cbs","sp","b","_configure","pl","_loadPlugin","_depth","apply","getContext","setContext","plugin","configSchema","_reduce","config","generateConfigErrorMessage","getPlugin","_setDelivery","startSession","_sessionDelegate","addOnError","front","removeOnError","_addOnSessionPayload","addOnSession","removeOnSession","addOnBreadcrumb","removeOnBreadcrumb","pauseSession","resumeSession","leaveBreadcrumb","crumb","cb","_notify","_this2","originalSeverity","onCallbackError","index","next","_$asyncEvery_7","ret","then","setTimeout","_$callbackRunner_9","shouldSend","rawInput","_$Client_4","_$safeJsonStringify_30","data","replacer","space","redactedPaths","seen","edges","visit","path","edgesExceeded","haystack","needle","find","fResult","throwsMessage","eResult","__isArray_30","aResult","isDescendent","shouldRedact","safelyGetProp","prepareObjForSerialization","paths","patterns","_$delivery_36","_$jsonPayload_21","EVENT_REDACTION_PATHS","payload","client","win","url","getApiUrl","req","XDomainRequest","onload","open","send","endpoint","isoDate","matchPageProtocol","protocol","encodeURIComponent","_matchPageProtocol","pageProtocol","_$delivery_37","XMLHttpRequest","onreadystatechange","readyState","DONE","setRequestHeader","toISOString","_$request_40","href","_$session_41","sessionDelegate","sessionClient","_pausedSession","_$clientIp_42","collectUserIp","clientIp","_$consoleBreadcrumbs_43","isDev","CONSOLE_LOG_METHODS","original","_len","_key","arg","stringified","_restore","_$inlineScriptContent_44","doc","document","trackInlineScripts","originalLocation","html","DOMContentLoaded","getHtml","documentElement","outerHTML","prev","_lastScript","updateLastScript","script","getCurrentScript","currentScript","scripts","getElementsByTagName","content","innerHTML","htmlLines","zeroBasedLine","end","addSurroundingCode","_setTimeout","__proxy","__traceOriginalScript","eventTargetCallbackAccessor","callbackAccessor","alsoCallOriginal","cba","__trace__","replacement","isEventHandlerObj","handleEvent","_$navigationBreadcrumbs_46","_$interactionBreadcrumbs_45","addEventListener","targetText","targetSelector","getNodeText","getNodeSelector","el","tagName","className","querySelectorAll","parentNode","childNodes","text","textContent","innerText","drop","oldURL","from","relativeLocation","to","newURL","getCurrentState","history","replaceState","wrapHistoryFn","pushState","a","createElement","pathname","search","hash","orig","title","currentPath","prevState","stateChangeToMetadata","resetEventCount","_$networkBreadcrumbs_47","_ignoredUrls","ignoredUrls","nativeOpen","removeEventListener","handleXHRLoad","handleXHRError","monkeyPatchXMLHttpRequest","fetch","polyfill","oldFetch","_arguments","urlOrRequest","options","Promise","resolve","reject","response","handleFetchSuccess","handleFetchError","monkeyPatchFetch","status","_$throttle_48","maxEvents","_$stripQueryString_49","strip","allFrames","_strip","_$onerror_50","prevOnError","onerror","messageOrEvent","lineNo","charNo","decorateStack","detail","extraParameters","culprit","isActualNumber","errorCharacter","_$unhandledRejection_51","listener","evt","isBluebird","fixBluebirdStacktrace","_event$addMetadata","onunhandledrejection","promise","_$notifier_2","__schema_2","_client","createClient","nav","locale","browserLanguage","systemLanguage","userLanguage","language","time","bugsnag"],"mappings":"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","file":"js/bugsnag-11402a33e6a89f9aceac.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = require('@bugsnag/browser');","import Bugsnag from '@bugsnag/js'\n\nBugsnag.start({\n appType: 'client',\n apiKey: \"6bf93f850e4077cdf17d80a6d45b52b8\",\n appVersion: getAppInfo().version,\n onError: function(event) {\n var userId = getMyUserIdentifier()\n event.setUser(userId)\n }\n\n})","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (f) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\") {\n module.exports = f();\n } else if (typeof define === \"function\" && define.amd) {\n define([], f);\n } else {\n var g;\n\n if (typeof window !== \"undefined\") {\n g = window;\n } else if (typeof global !== \"undefined\") {\n g = global;\n } else if (typeof self !== \"undefined\") {\n g = self;\n } else {\n g = this;\n }\n\n g.Bugsnag = f();\n }\n})(function () {\n var define, module, exports;\n var _$breadcrumbTypes_8 = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual']; // Array#reduce\n\n var _$reduce_17 = function _$reduce_17(arr, fn, accum) {\n var val = accum;\n\n for (var i = 0, len = arr.length; i < len; i++) {\n val = fn(val, arr[i], i, arr);\n }\n\n return val;\n };\n /* removed: var _$reduce_17 = require('./reduce'); */\n\n\n ; // Array#filter\n\n var _$filter_12 = function _$filter_12(arr, fn) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return !fn(item, i, arr) ? accum : accum.concat(item);\n }, []);\n };\n /* removed: var _$reduce_17 = require('./reduce'); */\n\n\n ; // Array#includes\n\n var _$includes_13 = function _$includes_13(arr, x) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return accum === true || item === x;\n }, false);\n }; // Array#isArray\n\n\n var _$isArray_14 = function _$isArray_14(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n /* eslint-disable-next-line no-prototype-builtins */\n\n\n var _hasDontEnumBug = !{\n toString: null\n }.propertyIsEnumerable('toString');\n\n var _dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor']; // Object#keys\n\n var _$keys_15 = function _$keys_15(obj) {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n var result = [];\n var prop;\n\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop);\n }\n\n if (!_hasDontEnumBug) return result;\n\n for (var i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i]);\n }\n\n return result;\n };\n\n var _$intRange_24 = function _$intRange_24(min, max) {\n if (min === void 0) {\n min = 1;\n }\n\n if (max === void 0) {\n max = Infinity;\n }\n\n return function (value) {\n return typeof value === 'number' && parseInt('' + value, 10) === value && value >= min && value <= max;\n };\n };\n /* removed: var _$filter_12 = require('../es-utils/filter'); */\n\n\n ;\n /* removed: var _$isArray_14 = require('../es-utils/is-array'); */\n\n ;\n\n var _$listOfFunctions_25 = function _$listOfFunctions_25(value) {\n return typeof value === 'function' || _$isArray_14(value) && _$filter_12(value, function (f) {\n return typeof f === 'function';\n }).length === value.length;\n };\n\n var _$stringWithLength_26 = function _$stringWithLength_26(value) {\n return typeof value === 'string' && !!value.length;\n };\n\n var _$config_5 = {};\n /* removed: var _$filter_12 = require('./lib/es-utils/filter'); */\n\n ;\n /* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */\n\n ;\n /* removed: var _$keys_15 = require('./lib/es-utils/keys'); */\n\n ;\n /* removed: var _$isArray_14 = require('./lib/es-utils/is-array'); */\n\n ;\n /* removed: var _$includes_13 = require('./lib/es-utils/includes'); */\n\n ;\n /* removed: var _$intRange_24 = require('./lib/validators/int-range'); */\n\n ;\n /* removed: var _$stringWithLength_26 = require('./lib/validators/string-with-length'); */\n\n ;\n /* removed: var _$listOfFunctions_25 = require('./lib/validators/list-of-functions'); */\n\n ;\n /* removed: var _$breadcrumbTypes_8 = require('./lib/breadcrumb-types'); */\n\n ;\n\n var defaultErrorTypes = function defaultErrorTypes() {\n return {\n unhandledExceptions: true,\n unhandledRejections: true\n };\n };\n\n _$config_5.schema = {\n apiKey: {\n defaultValue: function defaultValue() {\n return null;\n },\n message: 'is required',\n validate: _$stringWithLength_26\n },\n appVersion: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n message: 'should be a string',\n validate: function validate(value) {\n return value === undefined || _$stringWithLength_26(value);\n }\n },\n appType: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n message: 'should be a string',\n validate: function validate(value) {\n return value === undefined || _$stringWithLength_26(value);\n }\n },\n autoDetectErrors: {\n defaultValue: function defaultValue() {\n return true;\n },\n message: 'should be true|false',\n validate: function validate(value) {\n return value === true || value === false;\n }\n },\n enabledErrorTypes: {\n defaultValue: function defaultValue() {\n return defaultErrorTypes();\n },\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: function validate(value) {\n // ensure we have an object\n if (_typeof(value) !== 'object' || !value) return false;\n\n var providedKeys = _$keys_15(value);\n\n var defaultKeys = _$keys_15(defaultErrorTypes()); // ensure it only has a subset of the allowed keys\n\n\n if (_$filter_12(providedKeys, function (k) {\n return _$includes_13(defaultKeys, k);\n }).length < providedKeys.length) return false; // ensure all of the values are boolean\n\n if (_$filter_12(_$keys_15(value), function (k) {\n return typeof value[k] !== 'boolean';\n }).length > 0) return false;\n return true;\n }\n },\n onError: {\n defaultValue: function defaultValue() {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n onSession: {\n defaultValue: function defaultValue() {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n onBreadcrumb: {\n defaultValue: function defaultValue() {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n endpoints: {\n defaultValue: function defaultValue() {\n return {\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n };\n },\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: function validate(val) {\n return (// first, ensure it's an object\n val && _typeof(val) === 'object' && // notify and sessions must always be set\n _$stringWithLength_26(val.notify) && _$stringWithLength_26(val.sessions) && // ensure no keys other than notify/session are set on endpoints object\n _$filter_12(_$keys_15(val), function (k) {\n return !_$includes_13(['notify', 'sessions'], k);\n }).length === 0\n );\n }\n },\n autoTrackSessions: {\n defaultValue: function defaultValue(val) {\n return true;\n },\n message: 'should be true|false',\n validate: function validate(val) {\n return val === true || val === false;\n }\n },\n enabledReleaseStages: {\n defaultValue: function defaultValue() {\n return null;\n },\n message: 'should be an array of strings',\n validate: function validate(value) {\n return value === null || _$isArray_14(value) && _$filter_12(value, function (f) {\n return typeof f === 'string';\n }).length === value.length;\n }\n },\n releaseStage: {\n defaultValue: function defaultValue() {\n return 'production';\n },\n message: 'should be a string',\n validate: function validate(value) {\n return typeof value === 'string' && value.length;\n }\n },\n maxBreadcrumbs: {\n defaultValue: function defaultValue() {\n return 25;\n },\n message: 'should be a number ≤100',\n validate: function validate(value) {\n return _$intRange_24(0, 100)(value);\n }\n },\n enabledBreadcrumbTypes: {\n defaultValue: function defaultValue() {\n return _$breadcrumbTypes_8;\n },\n message: \"should be null or a list of available breadcrumb types (\" + _$breadcrumbTypes_8.join(',') + \")\",\n validate: function validate(value) {\n return value === null || _$isArray_14(value) && _$reduce_17(value, function (accum, maybeType) {\n if (accum === false) return accum;\n return _$includes_13(_$breadcrumbTypes_8, maybeType);\n }, true);\n }\n },\n context: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n message: 'should be a string',\n validate: function validate(value) {\n return value === undefined || typeof value === 'string';\n }\n },\n user: {\n defaultValue: function defaultValue() {\n return {};\n },\n message: 'should be an object with { id, email, name } properties',\n validate: function validate(value) {\n return value === null || value && _$reduce_17(_$keys_15(value), function (accum, key) {\n return accum && _$includes_13(['id', 'email', 'name'], key);\n }, true);\n }\n },\n metadata: {\n defaultValue: function defaultValue() {\n return {};\n },\n message: 'should be an object',\n validate: function validate(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n },\n logger: {\n defaultValue: function defaultValue() {\n return undefined;\n },\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: function validate(value) {\n return !value || value && _$reduce_17(['debug', 'info', 'warn', 'error'], function (accum, method) {\n return accum && typeof value[method] === 'function';\n }, true);\n }\n },\n redactedKeys: {\n defaultValue: function defaultValue() {\n return ['password'];\n },\n message: 'should be an array of strings|regexes',\n validate: function validate(value) {\n return _$isArray_14(value) && value.length === _$filter_12(value, function (s) {\n return typeof s === 'string' || s && typeof s.test === 'function';\n }).length;\n }\n },\n plugins: {\n defaultValue: function defaultValue() {\n return [];\n },\n message: 'should be an array of plugin objects',\n validate: function validate(value) {\n return _$isArray_14(value) && value.length === _$filter_12(value, function (p) {\n return p && _typeof(p) === 'object' && typeof p.load === 'function';\n }).length;\n }\n }\n }; // extends helper from babel\n // https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\n\n var _$assign_11 = function _$assign_11(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n /* removed: var _$reduce_17 = require('./reduce'); */\n\n\n ; // Array#map\n\n var _$map_16 = function _$map_16(arr, fn) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return accum.concat(fn(item, i, arr));\n }, []);\n };\n\n var schema = _$config_5.schema;\n /* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */\n\n ;\n /* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */\n\n ;\n var _$config_1 = {\n releaseStage: _$assign_11({}, schema.releaseStage, {\n defaultValue: function defaultValue() {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development';\n return 'production';\n }\n }),\n logger: _$assign_11({}, schema.logger, {\n defaultValue: function defaultValue() {\n return (// set logger based on browser capability\n typeof console !== 'undefined' && typeof console.debug === 'function' ? getPrefixedConsole() : undefined\n );\n }\n })\n };\n\n var getPrefixedConsole = function getPrefixedConsole() {\n var logger = {};\n var consoleLog = console.log;\n\n _$map_16(['debug', 'info', 'warn', 'error'], function (method) {\n var consoleMethod = console[method];\n logger[method] = typeof consoleMethod === 'function' ? consoleMethod.bind(console, '[bugsnag]') : consoleLog.bind(console, '[bugsnag]');\n });\n\n return logger;\n };\n\n var Breadcrumb = /*#__PURE__*/function () {\n function Breadcrumb(message, metadata, type, timestamp) {\n if (timestamp === void 0) {\n timestamp = new Date();\n }\n\n this.type = type;\n this.message = message;\n this.metadata = metadata;\n this.timestamp = timestamp;\n }\n\n var _proto = Breadcrumb.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n };\n };\n\n return Breadcrumb;\n }();\n\n var _$Breadcrumb_3 = Breadcrumb;\n var _$stackframe_34 = {};\n\n (function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (_typeof(_$stackframe_34) === 'object') {\n _$stackframe_34 = factory();\n } else {\n root.StackFrame = factory();\n }\n })(this, function () {\n 'use strict';\n\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\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 props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function getArgs() {\n return this.args;\n },\n setArgs: function setArgs(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n\n this.args = v;\n },\n getEvalOrigin: function getEvalOrigin() {\n return this.evalOrigin;\n },\n setEvalOrigin: function setEvalOrigin(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n toString: function toString() {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? '@' + this.getFileName() : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? ':' + this.getLineNumber() : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? ':' + this.getColumnNumber() : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n\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\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\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\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\n var _$errorStackParser_31 = {};\n\n (function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (_typeof(_$errorStackParser_31) === 'object') {\n _$errorStackParser_31 = factory(_$stackframe_34);\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n })(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '('); // 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\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/); // remove the parenthesized location from the line, if it was matched\n\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1); // if a location was matched, pass it to extractLocation() otherwise pop the last token\n\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function (line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || e.message.indexOf('\\n') > -1 && e.message.split('\\n').length > e.stacktrace.split('\\n').length) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\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 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\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n return filtered.map(function (line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || '';\n var functionName = functionCall.replace(//, '$2').replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n\n var args = argsRaw === undefined || argsRaw === '[arguments not available]' ? undefined : argsRaw.split(',');\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n });\n\n var _$errorStackParser_10 = _$errorStackParser_31; // Given `err` which may be an error, does it have a stack property which is a string?\n\n var _$hasStack_18 = function _$hasStack_18(err) {\n return !!err && (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) && typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' && err.stack !== err.name + \": \" + err.message;\n };\n /**\n * Expose `isError`.\n */\n\n\n var _$isError_32 = isError;\n /**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\n function isError(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]':\n return true;\n\n case '[object Exception]':\n return true;\n\n case '[object DOMException]':\n return true;\n\n default:\n return value instanceof Error;\n }\n }\n\n var _$iserror_19 = _$isError_32;\n\n var _$jsRuntime_20 = \"yes\" ? 'browserjs' : typeof navigator !== 'undefined' && navigator.product === 'ReactNative' ? typeof Expo !== 'undefined' ? 'expojs' : 'reactnativejs' : 'nodejs';\n /* removed: var _$assign_11 = require('./es-utils/assign'); */\n\n\n ;\n\n var add = function add(state, section, keyOrObj, maybeVal) {\n var _updates;\n\n if (!section) return;\n var updates; // addMetadata(\"section\", null) -> clears section\n\n if (keyOrObj === null) return clear(state, section); // normalise the two supported input types into object form\n\n if (_typeof(keyOrObj) === 'object') updates = keyOrObj;\n if (typeof keyOrObj === 'string') updates = (_updates = {}, _updates[keyOrObj] = maybeVal, _updates); // exit if we don't have an updates object at this point\n\n if (!updates) return; // ensure a section with this name exists\n\n if (!state[section]) state[section] = {}; // merge the updates with the existing section\n\n state[section] = _$assign_11({}, state[section], updates);\n };\n\n var get = function get(state, section, key) {\n if (typeof section !== 'string') return undefined;\n\n if (!key) {\n return state[section];\n }\n\n if (state[section]) {\n return state[section][key];\n }\n\n return undefined;\n };\n\n var clear = function clear(state, section, key) {\n if (typeof section !== 'string') return; // clear an entire section\n\n if (!key) {\n delete state[section];\n return;\n } // clear a single value from a section\n\n\n if (state[section]) {\n delete state[section][key];\n }\n };\n\n var _$metadataDelegate_22 = {\n add: add,\n get: get,\n clear: clear\n };\n var _$stackGenerator_33 = {};\n\n (function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (_typeof(_$stackGenerator_33) === 'object') {\n _$stackGenerator_33 = factory(_$stackframe_34);\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\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({\n functionName: RegExp.$1 || undefined,\n args: args\n }));\n } else {\n stack.push(new StackFrame({\n args: args\n }));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n\n return stack;\n }\n };\n });\n /* removed: var _$errorStackParser_10 = require('./lib/error-stack-parser'); */\n\n\n ;\n /* removed: var _$stackGenerator_33 = require('stack-generator'); */\n\n ;\n /* removed: var _$hasStack_18 = require('./lib/has-stack'); */\n\n ;\n /* removed: var _$map_16 = require('./lib/es-utils/map'); */\n\n ;\n /* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */\n\n ;\n /* removed: var _$filter_12 = require('./lib/es-utils/filter'); */\n\n ;\n /* removed: var _$assign_11 = require('./lib/es-utils/assign'); */\n\n ;\n /* removed: var _$jsRuntime_20 = require('./lib/js-runtime'); */\n\n ;\n /* removed: var _$metadataDelegate_22 = require('./lib/metadata-delegate'); */\n\n ;\n /* removed: var _$iserror_19 = require('./lib/iserror'); */\n\n ;\n\n var Event = /*#__PURE__*/function () {\n function Event(errorClass, errorMessage, stacktrace, handledState, originalError) {\n if (stacktrace === void 0) {\n stacktrace = [];\n }\n\n if (handledState === void 0) {\n handledState = defaultHandledState();\n }\n\n this.apiKey = undefined;\n this.context = undefined;\n this.groupingHash = undefined;\n this.originalError = originalError;\n this._handledState = handledState;\n this.severity = this._handledState.severity;\n this.unhandled = this._handledState.unhandled;\n this.app = {};\n this.device = {};\n this.request = {};\n this.breadcrumbs = [];\n this._metadata = {};\n this._user = {};\n this._session = undefined;\n this.errors = [{\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type: _$jsRuntime_20,\n stacktrace: _$reduce_17(stacktrace, function (accum, frame) {\n var f = formatStackframe(frame); // don't include a stackframe if none of its properties are defined\n\n try {\n if (JSON.stringify(f) === '{}') return accum;\n return accum.concat(f);\n } catch (e) {\n return accum;\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 var _proto = Event.prototype;\n\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_22.add(this._metadata, section, keyOrObj, maybeVal);\n };\n\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_22.get(this._metadata, section, key);\n };\n\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_22.clear(this._metadata, section, key);\n };\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto.toJSON = function toJSON() {\n return {\n payloadVersion: '4',\n exceptions: _$map_16(this.errors, function (er) {\n return _$assign_11({}, er, {\n message: er.errorMessage\n });\n }),\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n request: this.request,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n metaData: this._metadata,\n user: this._user,\n session: this._session\n };\n };\n\n return Event;\n }(); // takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n // and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\n\n\n var formatStackframe = function formatStackframe(frame) {\n var f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined\n }; // 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\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code';\n }\n\n return f;\n };\n\n var normaliseFunctionName = function normaliseFunctionName(name) {\n return /^global code$/i.test(name) ? 'global code' : name;\n };\n\n var defaultHandledState = function defaultHandledState() {\n return {\n unhandled: false,\n severity: 'warning',\n severityReason: {\n type: 'handledException'\n }\n };\n };\n\n var ensureString = function ensureString(str) {\n return typeof str === 'string' ? str : '';\n }; // Helpers\n\n\n Event.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (_$hasStack_18(error)) return _$errorStackParser_10.parse(error).slice(errorFramesToSkip); // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n\n try {\n return _$filter_12(_$stackGenerator_33.backtrace(), function (frame) {\n return (frame.functionName || '').indexOf('StackGenerator$$') === -1;\n }).slice(1 + backtraceFramesToSkip);\n } catch (e) {\n return [];\n }\n };\n\n Event.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip, logger) {\n if (errorFramesToSkip === void 0) {\n errorFramesToSkip = 0;\n }\n\n var _normaliseError = normaliseError(maybeError, tolerateNonErrors, component, logger),\n error = _normaliseError[0],\n internalFrames = _normaliseError[1];\n\n var event;\n\n try {\n var stacktrace = Event.getStacktrace(error, // 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, // if there's no stacktrace, the callstack may be walked to generated one.\n // this is how many frames should be removed because they come from our library\n 1 + errorFramesToSkip);\n event = new Event(error.name, error.message, stacktrace, handledState, maybeError);\n } catch (e) {\n event = new Event(error.name, error.message, [], handledState, maybeError);\n }\n\n if (error.name === 'InvalidError') {\n event.addMetadata(\"\" + component, 'non-error parameter', makeSerialisable(maybeError));\n }\n\n return event;\n };\n\n var makeSerialisable = function makeSerialisable(err) {\n if (err === null) return 'null';\n if (err === undefined) return 'undefined';\n return err;\n };\n\n var normaliseError = function normaliseError(maybeError, tolerateNonErrors, component, logger) {\n var error;\n var internalFrames = 0;\n\n var createAndLogInputError = function createAndLogInputError(reason) {\n if (logger) logger.warn(component + \" received a non-error: \\\"\" + reason + \"\\\"\");\n var err = new Error(component + \" received a non-error. See \\\"\" + component + \"\\\" tab for more detail.\");\n err.name = 'InvalidError';\n return err;\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\n\n if (!tolerateNonErrors) {\n if (_$iserror_19(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\n case 'function':\n error = createAndLogInputError('function');\n internalFrames += 2;\n break;\n\n case 'object':\n if (maybeError !== null && _$iserror_19(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\n break;\n\n default:\n error = createAndLogInputError('nothing');\n internalFrames += 2;\n }\n }\n\n if (!_$hasStack_18(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_18(e)) {\n error = e; // 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\n internalFrames = 1;\n }\n }\n }\n\n return [error, internalFrames];\n };\n\n var hasNecessaryFields = function hasNecessaryFields(error) {\n return (typeof error.name === 'string' || typeof error.errorClass === 'string') && (typeof error.message === 'string' || typeof error.errorMessage === 'string');\n };\n\n var _$Event_6 = Event; // 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 // 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)\n\n var _$asyncEvery_7 = function _$asyncEvery_7(arr, fn, cb) {\n var index = 0;\n\n var next = function next() {\n if (index >= arr.length) return cb(null, true);\n fn(arr[index], function (err, result) {\n if (err) return cb(err);\n if (result === false) return cb(null, false);\n index++;\n next();\n });\n };\n\n next();\n };\n /* removed: var _$asyncEvery_7 = require('./async-every'); */\n\n\n ;\n\n var _$callbackRunner_9 = function _$callbackRunner_9(callbacks, event, onCallbackError, cb) {\n // This function is how we support different kinds of callback:\n // - synchronous - return value\n // - node-style async with callback - cb(err, value)\n // - promise/thenable - resolve(value)\n // It normalises each of these into the lowest common denominator – a node-style callback\n var runMaybeAsyncCallback = function runMaybeAsyncCallback(fn, cb) {\n if (typeof fn !== 'function') return cb(null);\n\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n var ret = fn(event); // check if it returned a \"thenable\" (promise)\n\n if (ret && typeof ret.then === 'function') {\n return ret.then( // resolve\n function (val) {\n return setTimeout(function () {\n return cb(null, val);\n });\n }, // reject\n function (err) {\n setTimeout(function () {\n onCallbackError(err);\n return cb(null, true);\n });\n });\n }\n\n return cb(null, ret);\n } // if function is async…\n\n\n fn(event, function (err, result) {\n if (err) {\n onCallbackError(err);\n return cb(null);\n }\n\n cb(null, result);\n });\n } catch (e) {\n onCallbackError(e);\n cb(null);\n }\n };\n\n _$asyncEvery_7(callbacks, runMaybeAsyncCallback, cb);\n };\n\n var _$syncCallbackRunner_23 = function _$syncCallbackRunner_23(callbacks, callbackArg, callbackType, logger) {\n var ignore = false;\n var cbs = callbacks.slice();\n\n while (!ignore) {\n if (!cbs.length) break;\n\n try {\n ignore = cbs.pop()(callbackArg) === false;\n } catch (e) {\n logger.error(\"Error occurred in \" + callbackType + \" callback, continuing anyway\\u2026\");\n logger.error(e);\n }\n }\n\n return ignore;\n };\n\n var _$pad_29 = function pad(num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n };\n /* removed: var _$pad_29 = require('./pad.js'); */\n\n\n ;\n var env = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? window : self;\n var globalCount = 0;\n\n for (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n }\n\n var mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\n\n var clientId = _$pad_29((mimeTypesLength + navigator.userAgent.length).toString(36) + globalCount.toString(36), 4);\n\n var _$fingerprint_28 = function fingerprint() {\n return clientId;\n };\n /**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\n /* removed: var _$fingerprint_28 = require('./lib/fingerprint.js'); */\n\n\n ;\n /* removed: var _$pad_29 = require('./lib/pad.js'); */\n\n ;\n var c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\n function randomBlock() {\n return _$pad_29((Math.random() * discreteValues << 0).toString(base), blockSize);\n }\n\n function safeCounter() {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n\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',\n // hard-coded allows for sequential access\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = new Date().getTime().toString(base),\n // Prevent same-machine collisions.\n counter = _$pad_29(safeCounter().toString(base), blockSize),\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = _$fingerprint_28(),\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_28;\n var _$cuid_27 = cuid;\n /* removed: var _$cuid_27 = require('@bugsnag/cuid'); */\n\n ;\n\n var Session = /*#__PURE__*/function () {\n function Session() {\n this.id = _$cuid_27();\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 var _proto = Session.prototype;\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto.toJSON = function toJSON() {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: {\n handled: this._handled,\n unhandled: this._unhandled\n }\n };\n };\n\n _proto._track = function _track(event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1;\n };\n\n return Session;\n }();\n\n var _$Session_35 = Session;\n /* removed: var _$config_5 = require('./config'); */\n\n ;\n /* removed: var _$Event_6 = require('./event'); */\n\n ;\n /* removed: var _$Breadcrumb_3 = require('./breadcrumb'); */\n\n ;\n /* removed: var _$Session_35 = require('./session'); */\n\n ;\n /* removed: var _$map_16 = require('./lib/es-utils/map'); */\n\n ;\n /* removed: var _$includes_13 = require('./lib/es-utils/includes'); */\n\n ;\n /* removed: var _$filter_12 = require('./lib/es-utils/filter'); */\n\n ;\n /* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */\n\n ;\n /* removed: var _$keys_15 = require('./lib/es-utils/keys'); */\n\n ;\n /* removed: var _$assign_11 = require('./lib/es-utils/assign'); */\n\n ;\n /* removed: var _$callbackRunner_9 = require('./lib/callback-runner'); */\n\n ;\n /* removed: var _$metadataDelegate_22 = require('./lib/metadata-delegate'); */\n\n ;\n /* removed: var _$syncCallbackRunner_23 = require('./lib/sync-callback-runner'); */\n\n ;\n /* removed: var _$breadcrumbTypes_8 = require('./lib/breadcrumb-types'); */\n\n ;\n\n var noop = function noop() {};\n\n var Client = /*#__PURE__*/function () {\n function Client(configuration, schema, internalPlugins, notifier) {\n var _this = this;\n\n if (schema === void 0) {\n schema = _$config_5.schema;\n }\n\n if (internalPlugins === void 0) {\n internalPlugins = [];\n } // notifier id\n\n\n this._notifier = notifier; // intialise opts and config\n\n this._config = {};\n this._schema = schema; // i/o\n\n this._delivery = {\n sendSession: noop,\n sendEvent: noop\n };\n this._logger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop\n }; // plugins\n\n this._plugins = {}; // state\n\n this._breadcrumbs = [];\n this._session = null;\n this._metadata = {};\n this._context = undefined;\n this._user = {}; // 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\n this._cbs = {\n e: [],\n s: [],\n sp: [],\n b: []\n }; // expose internal constructors\n\n this.Client = Client;\n this.Event = _$Event_6;\n this.Breadcrumb = _$Breadcrumb_3;\n this.Session = _$Session_35;\n this._config = this._configure(configuration, internalPlugins);\n\n _$map_16(internalPlugins.concat(this._config.plugins), function (pl) {\n if (pl) _this._loadPlugin(pl);\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\n\n this._depth = 1;\n var self = this;\n var notify = this.notify;\n\n this.notify = function () {\n return notify.apply(self, arguments);\n };\n }\n\n var _proto = Client.prototype;\n\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_22.add(this._metadata, section, keyOrObj, maybeVal);\n };\n\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_22.get(this._metadata, section, key);\n };\n\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_22.clear(this._metadata, section, key);\n };\n\n _proto.getContext = function getContext() {\n return this._context;\n };\n\n _proto.setContext = function setContext(c) {\n this._context = c;\n };\n\n _proto._configure = function _configure(opts, internalPlugins) {\n var schema = _$reduce_17(internalPlugins, function (schema, plugin) {\n if (plugin && plugin.configSchema) return _$assign_11({}, schema, plugin.configSchema);\n return schema;\n }, this._schema); // accumulate configuration and error messages\n\n\n var _reduce = _$reduce_17(_$keys_15(schema), function (accum, key) {\n var defaultValue = schema[key].defaultValue(opts[key]);\n\n if (opts[key] !== undefined) {\n var valid = schema[key].validate(opts[key]);\n\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_11(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 }, {\n errors: {},\n config: {}\n }),\n errors = _reduce.errors,\n config = _reduce.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'); // warn about an apikey that is not of the expected format\n\n if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters';\n } // update and elevate some options\n\n\n this._metadata = _$assign_11({}, config.metadata);\n this._user = _$assign_11({}, config.user);\n this._context = config.context;\n if (config.logger) this._logger = config.logger; // add callbacks\n\n if (config.onError && config.onError.length) this._cbs.e = this._cbs.e.concat(config.onError);\n if (config.onBreadcrumb && config.onBreadcrumb.length) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb);\n if (config.onSession && config.onSession.length) this._cbs.s = this._cbs.s.concat(config.onSession); // finally warn about any invalid config where we fell back to the default\n\n if (_$keys_15(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts));\n }\n\n return config;\n };\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto._loadPlugin = function _loadPlugin(plugin) {\n var result = plugin.load(this); // 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\n if (plugin.name) this._plugins[\"~\" + plugin.name + \"~\"] = result;\n return this;\n };\n\n _proto.getPlugin = function getPlugin(name) {\n return this._plugins[\"~\" + name + \"~\"];\n };\n\n _proto._setDelivery = function _setDelivery(d) {\n this._delivery = d(this);\n };\n\n _proto.startSession = function startSession() {\n var session = new _$Session_35();\n session.app.releaseStage = this._config.releaseStage;\n session.app.version = this._config.appVersion;\n session.app.type = this._config.appType;\n session._user = _$assign_11({}, this._user); // run onSession callbacks\n\n var ignore = _$syncCallbackRunner_23(this._cbs.s, session, 'onSession', this._logger);\n\n if (ignore) {\n this._logger.debug('Session not started due to onSession callback');\n\n return this;\n }\n\n return this._sessionDelegate.startSession(this, session);\n };\n\n _proto.addOnError = function addOnError(fn, front) {\n if (front === void 0) {\n front = false;\n }\n\n this._cbs.e[front ? 'unshift' : 'push'](fn);\n };\n\n _proto.removeOnError = function removeOnError(fn) {\n this._cbs.e = _$filter_12(this._cbs.e, function (f) {\n return f !== fn;\n });\n };\n\n _proto._addOnSessionPayload = function _addOnSessionPayload(fn) {\n this._cbs.sp.push(fn);\n };\n\n _proto.addOnSession = function addOnSession(fn) {\n this._cbs.s.push(fn);\n };\n\n _proto.removeOnSession = function removeOnSession(fn) {\n this._cbs.s = _$filter_12(this._cbs.s, function (f) {\n return f !== fn;\n });\n };\n\n _proto.addOnBreadcrumb = function addOnBreadcrumb(fn) {\n this._cbs.b.push(fn);\n };\n\n _proto.removeOnBreadcrumb = function removeOnBreadcrumb(fn) {\n this._cbs.b = _$filter_12(this._cbs.b, function (f) {\n return f !== fn;\n });\n };\n\n _proto.pauseSession = function pauseSession() {\n return this._sessionDelegate.pauseSession(this);\n };\n\n _proto.resumeSession = function resumeSession() {\n return this._sessionDelegate.resumeSession(this);\n };\n\n _proto.leaveBreadcrumb = function leaveBreadcrumb(message, metadata, type) {\n // coerce bad values so that the defaults get set\n message = typeof message === 'string' ? message : '';\n type = typeof type === 'string' && _$includes_13(_$breadcrumbTypes_8, type) ? type : 'manual';\n metadata = _typeof(metadata) === 'object' && metadata !== null ? metadata : {}; // if no message, discard\n\n if (!message) return;\n var crumb = new _$Breadcrumb_3(message, metadata, type); // run onBreadcrumb callbacks\n\n var ignore = _$syncCallbackRunner_23(this._cbs.b, crumb, 'onBreadcrumb', this._logger);\n\n if (ignore) {\n this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback');\n\n return;\n } // push the valid crumb onto the queue and maintain the length\n\n\n this._breadcrumbs.push(crumb);\n\n if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs);\n }\n };\n\n _proto.notify = function notify(maybeError, onError, cb) {\n if (cb === void 0) {\n cb = noop;\n }\n\n var event = _$Event_6.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger);\n\n this._notify(event, onError, cb);\n };\n\n _proto._notify = function _notify(event, onError, cb) {\n var _this2 = this;\n\n if (cb === void 0) {\n cb = noop;\n }\n\n event.app = _$assign_11({}, 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_11({}, event._metadata, this._metadata);\n event._user = _$assign_11({}, event._user, this._user);\n event.breadcrumbs = this._breadcrumbs.slice();\n\n if (this._session) {\n this._session._track(event);\n\n event._session = this._session;\n } // exit early if events should not be sent on the current releaseStage\n\n\n if (this._config.enabledReleaseStages !== null && !_$includes_13(this._config.enabledReleaseStages, this._config.releaseStage)) {\n this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration');\n\n return cb(null, event);\n }\n\n var originalSeverity = event.severity;\n\n var onCallbackError = function onCallbackError(err) {\n // errors in callbacks are tolerated but we want to log them out\n _this2._logger.error('Error occurred in onError callback, continuing anyway…');\n\n _this2._logger.error(err);\n };\n\n var callbacks = [].concat(this._cbs.e).concat(onError);\n\n _$callbackRunner_9(callbacks, event, onCallbackError, function (err, shouldSend) {\n if (err) onCallbackError(err);\n\n if (!shouldSend) {\n _this2._logger.debug('Event not sent due to onError callback');\n\n return cb(null, event);\n }\n\n if (_$includes_13(_this2._config.enabledBreadcrumbTypes, 'error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(_this2, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error');\n }\n\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = {\n type: 'userCallbackSetSeverity'\n };\n }\n\n _this2._delivery.sendEvent({\n apiKey: event.apiKey || _this2._config.apiKey,\n notifier: _this2._notifier,\n events: [event]\n }, function (err) {\n return cb(err, event);\n });\n });\n };\n\n return Client;\n }();\n\n var generateConfigErrorMessage = function generateConfigErrorMessage(errors, rawInput) {\n var er = new Error(\"Invalid configuration\\n\" + _$map_16(_$keys_15(errors), function (key) {\n return \" - \" + key + \" \" + errors[key] + \", got \" + stringify(rawInput[key]);\n }).join('\\n\\n'));\n return er;\n };\n\n var stringify = function stringify(val) {\n switch (_typeof(val)) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val);\n\n default:\n return String(val);\n }\n };\n\n var _$Client_4 = Client;\n\n var _$safeJsonStringify_30 = function _$safeJsonStringify_30(data, replacer, space, opts) {\n var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : [];\n var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : [];\n return JSON.stringify(prepareObjForSerialization(data, redactedKeys, redactedPaths), replacer, space);\n };\n\n var MAX_DEPTH = 20;\n var MAX_EDGES = 25000;\n var MIN_PRESERVED_DEPTH = 8;\n var REPLACEMENT_NODE = '...';\n\n function __isError_30(o) {\n return o instanceof Error || /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o));\n }\n\n function throwsMessage(err) {\n return '[Throws: ' + (err ? err.message : '?') + ']';\n }\n\n function find(haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true;\n }\n\n return false;\n } // returns true if the string `path` starts with any of the provided `paths`\n\n\n function 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\n return false;\n }\n\n function shouldRedact(patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i] === key) return true;\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true;\n }\n\n return false;\n }\n\n function __isArray_30(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n }\n\n function safelyGetProp(obj, prop) {\n try {\n return obj[prop];\n } catch (err) {\n return throwsMessage(err);\n }\n }\n\n function prepareObjForSerialization(obj, redactedKeys, redactedPaths) {\n var seen = []; // store references to objects we have seen before\n\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 if (path.length > MAX_DEPTH) return REPLACEMENT_NODE;\n if (edgesExceeded()) return REPLACEMENT_NODE;\n if (obj === null || _typeof(obj) !== 'object') return obj;\n if (find(seen, obj)) return '[Circular]';\n seen.push(obj);\n\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_30(obj);\n\n if (er) {\n edges--;\n var eResult = visit({\n name: obj.name,\n message: obj.message\n }, path);\n seen.pop();\n return eResult;\n }\n\n if (__isArray_30(obj)) {\n var aResult = [];\n\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE);\n break;\n }\n\n aResult.push(visit(obj[i], path.concat('[]')));\n }\n\n seen.pop();\n return aResult;\n }\n\n var result = {};\n\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue;\n\n if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n result[prop] = '[REDACTED]';\n continue;\n }\n\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE;\n break;\n }\n\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop));\n }\n } catch (e) {}\n\n seen.pop();\n return result;\n }\n\n return visit(obj, []);\n }\n\n var _$jsonPayload_21 = {};\n /* removed: var _$safeJsonStringify_30 = require('@bugsnag/safe-json-stringify'); */\n\n ;\n var EVENT_REDACTION_PATHS = ['events.[].metaData', 'events.[].breadcrumbs.[].metaData', 'events.[].request'];\n\n _$jsonPayload_21.event = function (event, redactedKeys) {\n var payload = _$safeJsonStringify_30(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier: \"WARNING!\\nSerialized payload was \" + payload.length / 10e5 + \"MB (limit = 1MB)\\nmetadata was removed\"\n };\n payload = _$safeJsonStringify_30(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit');\n }\n\n return payload;\n };\n\n _$jsonPayload_21.session = function (event, redactedKeys) {\n var payload = _$safeJsonStringify_30(event, null, null);\n\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit');\n return payload;\n };\n\n var _$delivery_36 = {};\n /* removed: var _$jsonPayload_21 = require('@bugsnag/core/lib/json-payload'); */\n\n ;\n\n _$delivery_36 = function _$delivery_36(client, win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n sendEvent: function sendEvent(event, cb) {\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n var url = getApiUrl(client._config, 'notify', '4', win);\n var req = new win.XDomainRequest();\n\n req.onload = function () {\n cb(null);\n };\n\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_21.event(event, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n\n cb(e);\n }\n }, 0);\n },\n sendSession: function sendSession(session, cb) {\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n var url = getApiUrl(client._config, 'sessions', '1', win);\n var req = new win.XDomainRequest();\n\n req.onload = function () {\n cb(null);\n };\n\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_21.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n\n cb(e);\n }\n }, 0);\n }\n };\n };\n\n var getApiUrl = function 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 var isoDate = JSON.parse(JSON.stringify(new Date()));\n var url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol);\n return url + \"?apiKey=\" + encodeURIComponent(config.apiKey) + \"&payloadVersion=\" + version + \"&sentAt=\" + encodeURIComponent(isoDate);\n };\n\n var matchPageProtocol = _$delivery_36._matchPageProtocol = function (endpoint, pageProtocol) {\n return pageProtocol === 'http:' ? endpoint.replace(/^https:/, 'http:') : endpoint;\n };\n /* removed: var _$jsonPayload_21 = require('@bugsnag/core/lib/json-payload'); */\n\n\n ;\n\n var _$delivery_37 = function _$delivery_37(client, win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n sendEvent: function sendEvent(event, cb) {\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n try {\n var url = client._config.endpoints.notify;\n var req = new win.XMLHttpRequest();\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null);\n };\n\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '4');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n req.send(_$jsonPayload_21.event(event, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n }\n },\n sendSession: function sendSession(session, cb) {\n if (cb === void 0) {\n cb = function cb() {};\n }\n\n try {\n var url = client._config.endpoints.sessions;\n var req = new win.XMLHttpRequest();\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null);\n };\n\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '1');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n req.send(_$jsonPayload_21.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n }\n }\n };\n };\n /*\n * Sets the default context to be the current URL\n */\n\n\n var _$context_38 = function _$context_38(win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function load(client) {\n client.addOnError(function (event) {\n if (event.context !== undefined) return;\n event.context = win.location.pathname;\n }, true);\n }\n };\n };\n /* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */\n\n\n ;\n /*\n * Automatically detects browser device details\n */\n\n var _$device_39 = function _$device_39(nav) {\n if (nav === void 0) {\n nav = navigator;\n }\n\n return {\n load: function load(client) {\n var device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n };\n client.addOnSession(function (session) {\n session.device = _$assign_11({}, session.device, device);\n }); // add time just as the event is sent\n\n client.addOnError(function (event) {\n event.device = _$assign_11({}, event.device, device, {\n time: new Date()\n });\n }, true);\n }\n };\n };\n /* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */\n\n\n ;\n /*\n * Sets the event request: { url } to be the current href\n */\n\n var _$request_40 = function _$request_40(win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function load(client) {\n client.addOnError(function (event) {\n if (event.request && event.request.url) return;\n event.request = _$assign_11({}, event.request, {\n url: win.location.href\n });\n }, true);\n }\n };\n };\n /* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */\n\n\n ;\n var _$session_41 = {\n load: function load(client) {\n client._sessionDelegate = sessionDelegate;\n }\n };\n var sessionDelegate = {\n startSession: function startSession(client, session) {\n var sessionClient = client;\n sessionClient._session = session;\n sessionClient._pausedSession = null; // exit early if the current releaseStage is not enabled\n\n if (sessionClient._config.enabledReleaseStages !== null && !_$includes_13(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration');\n\n return sessionClient;\n }\n\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [{\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }]\n });\n\n return sessionClient;\n },\n resumeSession: function resumeSession(client) {\n if (client._pausedSession) {\n client._session = client._pausedSession;\n client._pausedSession = null;\n return client;\n } else {\n return client.startSession();\n }\n },\n pauseSession: function pauseSession(client) {\n client._pausedSession = client._session;\n client._session = null;\n }\n };\n /* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */\n\n ;\n /*\n * Prevent collection of user IPs\n */\n\n var _$clientIp_42 = {\n load: function load(client) {\n if (client._config.collectUserIp) return;\n client.addOnError(function (event) {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (event._user && typeof event._user.id === 'undefined') delete event._user.id;\n event._user = _$assign_11({\n id: '[REDACTED]'\n }, event._user);\n event.request = _$assign_11({\n clientIp: '[REDACTED]'\n }, event.request);\n });\n },\n configSchema: {\n collectUserIp: {\n defaultValue: function defaultValue() {\n return true;\n },\n message: 'should be true|false',\n validate: function validate(value) {\n return value === true || value === false;\n }\n }\n }\n };\n var _$consoleBreadcrumbs_43 = {};\n /* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */\n\n ;\n /* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */\n\n ;\n /* removed: var _$filter_12 = require('@bugsnag/core/lib/es-utils/filter'); */\n\n ;\n /* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */\n\n ;\n /*\n * Leaves breadcrumbs when console log methods are called\n */\n\n _$consoleBreadcrumbs_43.load = function (client) {\n var isDev = /^dev(elopment)?$/.test(client._config.releaseStage);\n if (!client._config.enabledBreadcrumbTypes || !_$includes_13(client._config.enabledBreadcrumbTypes, 'log') || isDev) return;\n\n _$map_16(CONSOLE_LOG_METHODS, function (method) {\n var original = console[method];\n\n console[method] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n client.leaveBreadcrumb('Console output', _$reduce_17(args, function (accum, arg, i) {\n // do the best/simplest stringification of each argument\n var stringified = '[Unknown value]'; // 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\n try {\n stringified = String(arg);\n } catch (e) {} // if it stringifies to [object Object] attempt to JSON stringify\n\n\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try {\n stringified = JSON.stringify(arg);\n } catch (e) {}\n }\n\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\n console[method]._restore = function () {\n console[method] = original;\n };\n });\n };\n\n if (\"production\" !== 'production') {\n _$consoleBreadcrumbs_43.destroy = function () {\n return CONSOLE_LOG_METHODS.forEach(function (method) {\n if (typeof console[method]._restore === 'function') console[method]._restore();\n });\n };\n }\n\n var CONSOLE_LOG_METHODS = _$filter_12(['log', 'debug', 'info', 'warn', 'error'], function (method) {\n return typeof console !== 'undefined' && typeof console[method] === 'function';\n });\n /* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */\n\n\n ;\n /* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */\n\n ;\n /* removed: var _$filter_12 = require('@bugsnag/core/lib/es-utils/filter'); */\n\n ;\n var MAX_LINE_LENGTH = 200;\n var MAX_SCRIPT_LENGTH = 500000;\n\n var _$inlineScriptContent_44 = function _$inlineScriptContent_44(doc, win) {\n if (doc === void 0) {\n doc = document;\n }\n\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function load(client) {\n if (!client._config.trackInlineScripts) return;\n var originalLocation = win.location.href;\n var html = '';\n var DOMContentLoaded = false;\n\n var getHtml = function getHtml() {\n return doc.documentElement.outerHTML;\n }; // get whatever HTML exists at this point in time\n\n\n html = getHtml();\n var prev = doc.onreadystatechange; // then update it when the DOM content has loaded\n\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml();\n DOMContentLoaded = true;\n }\n\n try {\n prev.apply(this, arguments);\n } catch (e) {}\n };\n\n var _lastScript = null;\n\n var updateLastScript = function updateLastScript(script) {\n _lastScript = script;\n };\n\n var getCurrentScript = function getCurrentScript() {\n var script = doc.currentScript || _lastScript;\n\n if (!script && !DOMContentLoaded) {\n var scripts = doc.scripts || doc.getElementsByTagName('script');\n script = scripts[scripts.length - 1];\n }\n\n return script;\n };\n\n var addSurroundingCode = function addSurroundingCode(lineNumber) {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml(); // simulate the raw html\n\n var htmlLines = [''].concat(html.split('\\n'));\n var zeroBasedLine = lineNumber - 1;\n var start = Math.max(zeroBasedLine - 3, 0);\n var end = Math.min(zeroBasedLine + 3, htmlLines.length);\n return _$reduce_17(htmlLines.slice(start, end), function (accum, line, i) {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH);\n return accum;\n }, {});\n };\n\n client.addOnError(function (event) {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n event.errors[0].stacktrace = _$filter_12(event.errors[0].stacktrace, function (f) {\n return !/__trace__$/.test(f.method);\n });\n var frame = event.errors[0].stacktrace[0]; // if frame.file exists and is not the original location of the page, this can't be an inline script\n\n if (frame && frame.file && frame.file.replace(/#.*$/, '') !== originalLocation.replace(/#.*$/, '')) return; // grab the last script known to have run\n\n var currentScript = getCurrentScript();\n\n if (currentScript) {\n var content = currentScript.innerHTML;\n event.addMetadata('script', 'content', content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH));\n } // only attempt to grab some surrounding code if we have a line number\n\n\n if (!frame || !frame.lineNumber) return;\n frame.code = addSurroundingCode(frame.lineNumber);\n }, true); // 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\n var _map = _$map_16(['setTimeout', 'setInterval', 'setImmediate', 'requestAnimationFrame'], function (fn) {\n return __proxy(win, fn, function (original) {\n return __traceOriginalScript(original, function (args) {\n return {\n get: function get() {\n return args[0];\n },\n replace: function replace(fn) {\n args[0] = fn;\n }\n };\n });\n });\n }),\n _setTimeout = _map[0]; // Proxy all the host objects whose prototypes have an addEventListener function\n\n\n _$map_16(['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'], function (o) {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return;\n\n __proxy(win[o].prototype, 'addEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor);\n });\n\n __proxy(win[o].prototype, 'removeEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor, true);\n });\n });\n\n function __traceOriginalScript(fn, callbackAccessor, alsoCallOriginal) {\n if (alsoCallOriginal === void 0) {\n alsoCallOriginal = false;\n }\n\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n var args = [].slice.call(arguments);\n\n try {\n var cba = callbackAccessor(args);\n var cb = cba.get();\n if (alsoCallOriginal) fn.apply(this, args);\n if (typeof cb !== 'function') return fn.apply(this, args);\n\n if (cb.__trace__) {\n cba.replace(cb.__trace__);\n } else {\n var script = getCurrentScript(); // 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\n cb.__trace__ = function __trace__() {\n // set the script that called this function\n updateLastScript(script); // 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\n _setTimeout(function () {\n updateLastScript(null);\n }, 0);\n\n var ret = cb.apply(this, arguments);\n updateLastScript(null);\n return ret;\n };\n\n cb.__trace__.__trace__ = cb.__trace__;\n cba.replace(cb.__trace__);\n }\n } catch (e) {} // swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n // IE8 doesn't let you call .apply() on setTimeout/setInterval\n\n\n if (fn.apply) return fn.apply(this, args);\n\n switch (args.length) {\n case 1:\n return fn(args[0]);\n\n case 2:\n return fn(args[0], args[1]);\n\n default:\n return fn();\n }\n };\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: function validate(value) {\n return value === true || value === false;\n },\n defaultValue: function defaultValue() {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n };\n\n function __proxy(host, name, replacer) {\n var original = host[name];\n if (!original) return original;\n var replacement = replacer(original);\n host[name] = replacement;\n return original;\n }\n\n function eventTargetCallbackAccessor(args) {\n var isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function';\n return {\n get: function get() {\n return isEventHandlerObj ? args[1].handleEvent : args[1];\n },\n replace: function replace(fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn;\n } else {\n args[1] = fn;\n }\n }\n };\n }\n /* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */\n\n\n ;\n /*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\n\n var _$interactionBreadcrumbs_45 = function _$interactionBreadcrumbs_45(win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function load(client) {\n if (!('addEventListener' in win)) return;\n if (!client._config.enabledBreadcrumbTypes || !_$includes_13(client._config.enabledBreadcrumbTypes, 'user')) return;\n win.addEventListener('click', function (event) {\n var targetText, targetSelector;\n\n try {\n targetText = getNodeText(event.target);\n targetSelector = getNodeSelector(event.target, win);\n } catch (e) {\n targetText = '[hidden]';\n targetSelector = '[hidden]';\n\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z');\n }\n\n client.leaveBreadcrumb('UI click', {\n targetText: targetText,\n targetSelector: targetSelector\n }, 'user');\n }, true);\n }\n };\n }; // extract text content from a element\n\n\n var getNodeText = function getNodeText(el) {\n var text = el.textContent || el.innerText || '';\n if (!text && (el.type === 'submit' || el.type === 'button')) text = el.value;\n text = text.replace(/^\\s+|\\s+$/g, ''); // trim whitespace\n\n return truncate(text, 140);\n }; // Create a label from tagname, id and css class of the element\n\n\n function getNodeSelector(el, win) {\n var parts = [el.tagName];\n if (el.id) parts.push('#' + el.id);\n if (el.className && el.className.length) parts.push(\".\" + el.className.split(' ').join('.')); // Can't get much more advanced with the current browser\n\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('');\n\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 } // try to get a more specific selector if this one matches more than one element\n\n\n if (el.parentNode.childNodes.length > 1) {\n var index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1;\n parts.push(\":nth-child(\" + index + \")\");\n }\n\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join(''); // try prepending the parent node selector\n\n if (el.parentNode) return getNodeSelector(el.parentNode, win) + \" > \" + parts.join('');\n return parts.join('');\n }\n\n function truncate(value, length) {\n var ommision = '(...)';\n if (value && value.length <= length) return value;\n return value.slice(0, length - ommision.length) + ommision;\n }\n\n var _$navigationBreadcrumbs_46 = {};\n /* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */\n\n ;\n /*\n * Leaves breadcrumbs when navigation methods are called or events are emitted\n */\n\n _$navigationBreadcrumbs_46 = function _$navigationBreadcrumbs_46(win) {\n if (win === void 0) {\n win = window;\n }\n\n var plugin = {\n load: function load(client) {\n if (!('addEventListener' in win)) return;\n if (!client._config.enabledBreadcrumbTypes || !_$includes_13(client._config.enabledBreadcrumbTypes, 'navigation')) return; // returns a function that will drop a breadcrumb with a given name\n\n var drop = function drop(name) {\n return function () {\n return client.leaveBreadcrumb(name, {}, 'navigation');\n };\n }; // simple drops – just names, no meta\n\n\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); // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n\n win.addEventListener('load', function () {\n return win.addEventListener('popstate', drop('Navigated back'), true);\n }); // hashchange has some metadata that we care about\n\n win.addEventListener('hashchange', function (event) {\n var metadata = event.oldURL ? {\n from: relativeLocation(event.oldURL, win),\n to: relativeLocation(event.newURL, win),\n state: getCurrentState(win)\n } : {\n to: relativeLocation(win.location.href, win)\n };\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation');\n }, true); // the only way to know about replaceState/pushState is to wrap them… >_<\n\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win);\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win);\n client.leaveBreadcrumb('Bugsnag loaded', {}, 'navigation');\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n win.history.replaceState._restore();\n\n win.history.pushState._restore();\n };\n }\n\n return plugin;\n };\n\n if (\"production\" !== 'production') {\n _$navigationBreadcrumbs_46.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n win.history.replaceState._restore();\n\n win.history.pushState._restore();\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\n\n\n var relativeLocation = function relativeLocation(url, win) {\n var a = win.document.createElement('A');\n a.href = url;\n return \"\" + a.pathname + a.search + a.hash;\n };\n\n var stateChangeToMetadata = function stateChangeToMetadata(win, state, title, url) {\n var currentPath = relativeLocation(win.location.href, win);\n return {\n title: title,\n state: state,\n prevState: getCurrentState(win),\n to: url || currentPath,\n from: currentPath\n };\n };\n\n var wrapHistoryFn = function wrapHistoryFn(client, target, fn, win) {\n var orig = target[fn];\n\n target[fn] = function (state, title, url) {\n client.leaveBreadcrumb(\"History \" + fn, stateChangeToMetadata(win, state, title, url), 'navigation'); // if throttle plugin is in use, reset the event sent count\n\n if (typeof client.resetEventCount === 'function') client.resetEventCount(); // if the client is operating in auto session-mode, a new route should trigger a new session\n\n if (client._config.autoTrackSessions) client.startSession(); // 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\n orig.apply(target, [state, title].concat(url !== undefined ? url : []));\n };\n\n if (\"production\" !== 'production') {\n target[fn]._restore = function () {\n target[fn] = orig;\n };\n }\n };\n\n var getCurrentState = function getCurrentState(win) {\n try {\n return win.history.state;\n } catch (e) {}\n };\n\n var BREADCRUMB_TYPE = 'request'; // keys to safely store metadata on the request object\n\n var REQUEST_SETUP_KEY = 'BS~~S';\n var REQUEST_URL_KEY = 'BS~~U';\n var REQUEST_METHOD_KEY = 'BS~~M';\n /* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */\n\n ;\n /*\n * Leaves breadcrumbs when network requests occur\n */\n\n var _$networkBreadcrumbs_47 = function _$networkBreadcrumbs_47(_ignoredUrls, win) {\n if (_ignoredUrls === void 0) {\n _ignoredUrls = [];\n }\n\n if (win === void 0) {\n win = window;\n }\n\n var restoreFunctions = [];\n var plugin = {\n load: function load(client) {\n if (!client._config.enabledBreadcrumbTypes || !_$includes_13(client._config.enabledBreadcrumbTypes, 'request')) return;\n var ignoredUrls = [client._config.endpoints.notify, client._config.endpoints.sessions].concat(_ignoredUrls);\n monkeyPatchXMLHttpRequest();\n monkeyPatchFetch(); // XMLHttpRequest monkey patch\n\n function monkeyPatchXMLHttpRequest() {\n if (!('addEventListener' in win.XMLHttpRequest.prototype)) return;\n var nativeOpen = win.XMLHttpRequest.prototype.open; // override native open()\n\n win.XMLHttpRequest.prototype.open = function open(method, url) {\n // store url and HTTP method for later\n this[REQUEST_URL_KEY] = url;\n this[REQUEST_METHOD_KEY] = method; // if we have already setup listeners, it means open() was called twice, we need to remove\n // the listeners and recreate them\n\n if (this[REQUEST_SETUP_KEY]) {\n this.removeEventListener('load', handleXHRLoad);\n this.removeEventListener('error', handleXHRError);\n } // attach load event listener\n\n\n this.addEventListener('load', handleXHRLoad); // attach error event listener\n\n this.addEventListener('error', handleXHRError);\n this[REQUEST_SETUP_KEY] = true;\n nativeOpen.apply(this, arguments);\n };\n\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.XMLHttpRequest.prototype.open = nativeOpen;\n });\n }\n }\n\n function handleXHRLoad() {\n if (_$includes_13(ignoredUrls, this[REQUEST_URL_KEY])) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n }\n\n var metadata = {\n status: this.status,\n request: this[REQUEST_METHOD_KEY] + \" \" + this[REQUEST_URL_KEY]\n };\n\n if (this.status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE);\n }\n }\n\n function handleXHRError() {\n if (_$includes_13(ignoredUrls, this[REQUEST_URL_KEY])) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n } // failed to contact server\n\n\n client.leaveBreadcrumb('XMLHttpRequest error', {\n request: this[REQUEST_METHOD_KEY] + \" \" + this[REQUEST_URL_KEY]\n }, BREADCRUMB_TYPE);\n } // window.fetch monkey patch\n\n\n function monkeyPatchFetch() {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return;\n var oldFetch = win.fetch;\n\n win.fetch = function fetch() {\n var _arguments = arguments;\n var urlOrRequest = arguments[0];\n var options = arguments[1];\n var method;\n var url = null;\n\n if (urlOrRequest && _typeof(urlOrRequest) === 'object') {\n url = urlOrRequest.url;\n\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\n if (options && 'method' in options) {\n method = options.method;\n }\n }\n\n if (method === undefined) {\n method = 'GET';\n }\n\n return new Promise(function (resolve, reject) {\n // pass through to native fetch\n oldFetch.apply(void 0, _arguments).then(function (response) {\n handleFetchSuccess(response, method, url);\n resolve(response);\n })[\"catch\"](function (error) {\n handleFetchError(method, url);\n reject(error);\n });\n });\n };\n\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.fetch = oldFetch;\n });\n }\n }\n\n var handleFetchSuccess = function handleFetchSuccess(response, method, url) {\n var metadata = {\n status: response.status,\n request: method + \" \" + url\n };\n\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE);\n }\n };\n\n var handleFetchError = function handleFetchError(method, url) {\n client.leaveBreadcrumb('fetch() error', {\n request: method + \" \" + url\n }, BREADCRUMB_TYPE);\n };\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function () {\n restoreFunctions.forEach(function (fn) {\n return fn();\n });\n restoreFunctions = [];\n };\n }\n\n return plugin;\n };\n /* removed: var _$intRange_24 = require('@bugsnag/core/lib/validators/int-range'); */\n\n\n ;\n /*\n * Throttles and dedupes events\n */\n\n var _$throttle_48 = {\n load: function load(client) {\n // track sent events for each init of the plugin\n var n = 0; // add onError hook\n\n client.addOnError(function (event) {\n // have max events been sent already?\n if (n >= client._config.maxEvents) return false;\n n++;\n });\n\n client.resetEventCount = function () {\n n = 0;\n };\n },\n configSchema: {\n maxEvents: {\n defaultValue: function defaultValue() {\n return 10;\n },\n message: 'should be a positive integer ≤100',\n validate: function validate(val) {\n return _$intRange_24(1, 100)(val);\n }\n }\n }\n };\n var _$stripQueryString_49 = {};\n /*\n * Remove query strings (and fragments) from stacktraces\n */\n\n /* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */\n\n ;\n /* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */\n\n ;\n _$stripQueryString_49 = {\n load: function load(client) {\n client.addOnError(function (event) {\n var allFrames = _$reduce_17(event.errors, function (accum, er) {\n return accum.concat(er.stacktrace);\n }, []);\n\n _$map_16(allFrames, function (frame) {\n frame.file = strip(frame.file);\n });\n });\n }\n };\n\n var strip = _$stripQueryString_49._strip = function (str) {\n return typeof str === 'string' ? str.replace(/\\?.*$/, '').replace(/#.*$/, '') : str;\n };\n /*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\n\n var _$onerror_50 = function _$onerror_50(win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function load(client) {\n if (!client._config.autoDetectErrors) return;\n if (!client._config.enabledErrorTypes.unhandledExceptions) return;\n\n function onerror(messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z');\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event; // 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, 'window onerror', 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n } else if ( // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n _typeof(messageOrEvent) === 'object' && messageOrEvent !== null && (!url || typeof url !== 'string') && !lineNo && !charNo && !error) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n var name = messageOrEvent.type ? \"Event: \" + messageOrEvent.type : 'Error'; // 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\n var message = messageOrEvent.message || messageOrEvent.detail || '';\n event = client.Event.create({\n name: name,\n message: message\n }, true, handledState, 'window onerror', 1); // provide the original thing onerror received – not our error-like object we passed to _notify\n\n event.originalError = messageOrEvent; // include the raw input as metadata – it might contain more info than we extracted\n\n event.addMetadata('window onerror', {\n event: messageOrEvent,\n extraParameters: url\n });\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n event = client.Event.create(messageOrEvent, true, handledState, 'window onerror', 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n }\n\n client._notify(event);\n }\n\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments);\n }\n\n var prevOnError = win.onerror;\n win.onerror = onerror;\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.\n\n\n var decorateStack = function decorateStack(stack, url, lineNo, charNo) {\n if (!stack[0]) stack.push({});\n var culprit = stack[0];\n if (!culprit.file && typeof url === 'string') culprit.file = url;\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo;\n\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\n var isActualNumber = function isActualNumber(n) {\n return typeof n === 'number' && String.call(n) !== 'NaN';\n };\n /* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */\n\n\n ;\n /* removed: var _$iserror_19 = require('@bugsnag/core/lib/iserror'); */\n\n ;\n\n var _listener;\n /*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\n\n\n var _$unhandledRejection_51 = function _$unhandledRejection_51(win) {\n if (win === void 0) {\n win = window;\n }\n\n var plugin = {\n load: function load(client) {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return;\n\n var listener = function listener(evt) {\n var error = evt.reason;\n var isBluebird = false; // accessing properties on evt.detail can throw errors (see #394)\n\n try {\n if (evt.detail && evt.detail.reason) {\n error = evt.detail.reason;\n isBluebird = true;\n }\n } catch (e) {}\n\n var event = client.Event.create(error, false, {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledPromiseRejection'\n }\n }, 'unhandledrejection handler', 1, client._logger);\n\n if (isBluebird) {\n _$map_16(event.errors[0].stacktrace, fixBluebirdStacktrace(error));\n }\n\n client._notify(event, function (event) {\n if (_$iserror_19(event.originalError) && !event.originalError.stack) {\n var _event$addMetadata;\n\n event.addMetadata('unhandledRejection handler', (_event$addMetadata = {}, _event$addMetadata[Object.prototype.toString.call(event.originalError)] = {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }, _event$addMetadata));\n }\n });\n };\n\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener);\n } else {\n win.onunhandledrejection = function (reason, promise) {\n listener({\n detail: {\n reason: reason,\n promise: promise\n }\n });\n };\n }\n\n _listener = listener;\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener);\n } else {\n win.onunhandledrejection = null;\n }\n }\n\n _listener = null;\n };\n }\n\n return plugin;\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\n\n\n var fixBluebirdStacktrace = function fixBluebirdStacktrace(error) {\n return function (frame) {\n if (frame.file === error.toString()) return;\n\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '');\n }\n };\n };\n\n var _$notifier_2 = {};\n var name = 'Bugsnag JavaScript';\n var version = '7.0.1';\n var url = 'https://github.com/bugsnag/bugsnag-js';\n /* removed: var _$Client_4 = require('@bugsnag/core/client'); */\n\n ;\n /* removed: var _$Event_6 = require('@bugsnag/core/event'); */\n\n ;\n /* removed: var _$Session_35 = require('@bugsnag/core/session'); */\n\n ;\n /* removed: var _$Breadcrumb_3 = require('@bugsnag/core/breadcrumb'); */\n\n ;\n /* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */\n\n ;\n /* removed: var _$keys_15 = require('@bugsnag/core/lib/es-utils/keys'); */\n\n ;\n /* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */\n\n ; // extend the base config schema with some browser-specific options\n\n var __schema_2 = _$assign_11({}, _$config_5.schema, _$config_1);\n /* removed: var _$onerror_50 = require('@bugsnag/plugin-window-onerror'); */\n\n\n ;\n /* removed: var _$unhandledRejection_51 = require('@bugsnag/plugin-window-unhandled-rejection'); */\n\n ;\n /* removed: var _$device_39 = require('@bugsnag/plugin-browser-device'); */\n\n ;\n /* removed: var _$context_38 = require('@bugsnag/plugin-browser-context'); */\n\n ;\n /* removed: var _$request_40 = require('@bugsnag/plugin-browser-request'); */\n\n ;\n /* removed: var _$throttle_48 = require('@bugsnag/plugin-simple-throttle'); */\n\n ;\n /* removed: var _$consoleBreadcrumbs_43 = require('@bugsnag/plugin-console-breadcrumbs'); */\n\n ;\n /* removed: var _$networkBreadcrumbs_47 = require('@bugsnag/plugin-network-breadcrumbs'); */\n\n ;\n /* removed: var _$navigationBreadcrumbs_46 = require('@bugsnag/plugin-navigation-breadcrumbs'); */\n\n ;\n /* removed: var _$interactionBreadcrumbs_45 = require('@bugsnag/plugin-interaction-breadcrumbs'); */\n\n ;\n /* removed: var _$inlineScriptContent_44 = require('@bugsnag/plugin-inline-script-content'); */\n\n ;\n /* removed: var _$session_41 = require('@bugsnag/plugin-browser-session'); */\n\n ;\n /* removed: var _$clientIp_42 = require('@bugsnag/plugin-client-ip'); */\n\n ;\n /* removed: var _$stripQueryString_49 = require('@bugsnag/plugin-strip-query-string'); */\n\n ; // delivery mechanisms\n\n /* removed: var _$delivery_36 = require('@bugsnag/delivery-x-domain-request'); */\n\n ;\n /* removed: var _$delivery_37 = require('@bugsnag/delivery-xml-http-request'); */\n\n ;\n var Bugsnag = {\n _client: null,\n createClient: function createClient(opts) {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = {\n apiKey: opts\n };\n if (!opts) opts = {};\n var internalPlugins = [// add browser-specific plugins\n _$device_39(), _$context_38(), _$request_40(), _$throttle_48, _$session_41, _$clientIp_42, _$stripQueryString_49, _$onerror_50(), _$unhandledRejection_51(), _$navigationBreadcrumbs_46(), _$interactionBreadcrumbs_45(), _$networkBreadcrumbs_47(), _$consoleBreadcrumbs_43, // this one added last to avoid wrapping functionality before bugsnag uses it\n _$inlineScriptContent_44()]; // configure a client with user supplied options\n\n var bugsnag = new _$Client_4(opts, __schema_2, internalPlugins, {\n name: name,\n version: version,\n url: url\n }); // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n\n bugsnag._setDelivery(window.XDomainRequest ? _$delivery_36 : _$delivery_37);\n\n bugsnag._logger.debug('Loaded!');\n\n return bugsnag._config.autoTrackSessions ? bugsnag.startSession() : bugsnag;\n },\n start: function start(opts) {\n if (Bugsnag._client) {\n Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.');\n\n return Bugsnag._client;\n }\n\n Bugsnag._client = Bugsnag.createClient(opts);\n return Bugsnag._client;\n }\n };\n\n _$map_16(['resetEventCount'].concat(_$keys_15(_$Client_4.prototype)), function (m) {\n if (/^_/.test(m)) return;\n\n Bugsnag[m] = function () {\n if (!Bugsnag._client) return console.log(\"Bugsnag.\" + m + \"() was called before Bugsnag.start()\");\n Bugsnag._client._depth += 1;\n\n var ret = Bugsnag._client[m].apply(Bugsnag._client, arguments);\n\n Bugsnag._client._depth -= 1;\n return ret;\n };\n });\n\n _$notifier_2 = Bugsnag;\n _$notifier_2.Client = _$Client_4;\n _$notifier_2.Event = _$Event_6;\n _$notifier_2.Session = _$Session_35;\n _$notifier_2.Breadcrumb = _$Breadcrumb_3; // Export a \"default\" property for compatibility with ESM imports\n\n _$notifier_2[\"default\"] = Bugsnag;\n return _$notifier_2;\n});"],"sourceRoot":""}