{"version":3,"file":"worker.js.string","sources":["../node_modules/regenerator-runtime/runtime.js","../node_modules/@remote-ui/rpc/build/esm/types.mjs","../node_modules/@remote-ui/rpc/build/esm/memory.mjs","../node_modules/@remote-ui/rpc/build/esm/encoding/basic.mjs","../node_modules/@remote-ui/rpc/build/esm/endpoint.mjs","../node_modules/@remote-ui/core/build/esm/utilities.mjs","../node_modules/@remote-ui/core/build/esm/types.mjs","../node_modules/@remote-ui/core/build/esm/root.mjs","../node_modules/@bugsnag/web-worker/dist/bugsnag.web-worker.js","../src/bugsnag.ts","../src/worker.tsx"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n    return obj[key];\n  }\n  try {\n    // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n    define({}, \"\");\n  } catch (err) {\n    define = function(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = GeneratorFunctionPrototype;\n  defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n  defineProperty(\n    GeneratorFunctionPrototype,\n    \"constructor\",\n    { value: GeneratorFunction, configurable: true }\n  );\n  GeneratorFunction.displayName = define(\n    GeneratorFunctionPrototype,\n    toStringTagSymbol,\n    \"GeneratorFunction\"\n  );\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      define(prototype, method, function(arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    defineProperty(this, \"_invoke\", { value: enqueue });\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  });\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per GeneratorResume behavior specified since ES2015:\n        // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n        // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var methodName = context.method;\n    var method = delegate.iterator[methodName];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method, or a missing .next method, always terminate the\n      // yield* loop.\n      context.delegate = null;\n\n      // Note: [\"return\"] must be used for ES3 parsing compatibility.\n      if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n        // If the delegate iterator has a return method, give it a\n        // chance to clean up.\n        context.method = \"return\";\n        context.arg = undefined;\n        maybeInvokeDelegate(delegate, context);\n\n        if (context.method === \"throw\") {\n          // If maybeInvokeDelegate(context) changed context.method from\n          // \"return\" to \"throw\", let that override the TypeError below.\n          return ContinueSentinel;\n        }\n      }\n      if (methodName !== \"return\") {\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a '\" + methodName + \"' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  define(Gp, toStringTagSymbol, \"Generator\");\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  define(Gp, iteratorSymbol, function() {\n    return this;\n  });\n\n  define(Gp, \"toString\", function() {\n    return \"[object Generator]\";\n  });\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(val) {\n    var object = Object(val);\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable != null) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    throw new TypeError(typeof iterable + \" is not iterable\");\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, in modern engines\n  // we can explicitly access globalThis. In older engines we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n","const RETAIN_METHOD = Symbol.for('RemoteUi::Retain');\nconst RELEASE_METHOD = Symbol.for('RemoteUi::Release');\nconst RETAINED_BY = Symbol.for('RemoteUi::RetainedBy');\n\nexport { RELEASE_METHOD, RETAINED_BY, RETAIN_METHOD };\n","import { RETAINED_BY, RETAIN_METHOD, RELEASE_METHOD } from './types.mjs';\nexport { RELEASE_METHOD, RETAINED_BY, RETAIN_METHOD } from './types.mjs';\n\nclass StackFrame {\n  constructor() {\n    this.memoryManaged = new Set();\n  }\n\n  add(memoryManageable) {\n    this.memoryManaged.add(memoryManageable);\n    memoryManageable[RETAINED_BY].add(this);\n    memoryManageable[RETAIN_METHOD]();\n  }\n\n  release() {\n    for (const memoryManaged of this.memoryManaged) {\n      memoryManaged[RETAINED_BY].delete(this);\n      memoryManaged[RELEASE_METHOD]();\n    }\n\n    this.memoryManaged.clear();\n  }\n\n}\nfunction isMemoryManageable(value) {\n  return Boolean(value && value[RETAIN_METHOD] && value[RELEASE_METHOD]);\n}\nfunction retain(value, {\n  deep = true\n} = {}) {\n  return retainInternal(value, deep, new Map());\n}\n\nfunction retainInternal(value, deep, seen) {\n  const seenValue = seen.get(value);\n  if (seenValue != null) return seenValue;\n  const canRetain = isMemoryManageable(value);\n\n  if (canRetain) {\n    value[RETAIN_METHOD]();\n  }\n\n  seen.set(value, canRetain);\n\n  if (deep) {\n    if (Array.isArray(value)) {\n      const nestedCanRetain = value.reduce((canRetain, item) => retainInternal(item, deep, seen) || canRetain, canRetain);\n      seen.set(value, nestedCanRetain);\n      return nestedCanRetain;\n    }\n\n    if (isBasicObject(value)) {\n      const nestedCanRetain = Object.keys(value).reduce((canRetain, key) => retainInternal(value[key], deep, seen) || canRetain, canRetain);\n      seen.set(value, nestedCanRetain);\n      return nestedCanRetain;\n    }\n  }\n\n  seen.set(value, canRetain);\n  return canRetain;\n}\n\nfunction release(value, {\n  deep = true\n} = {}) {\n  return releaseInternal(value, deep, new Map());\n}\nfunction releaseInternal(value, deep, seen) {\n  const seenValue = seen.get(value);\n  if (seenValue != null) return seenValue;\n  const canRelease = isMemoryManageable(value);\n\n  if (canRelease) {\n    value[RELEASE_METHOD]();\n  }\n\n  seen.set(value, canRelease);\n\n  if (deep) {\n    if (Array.isArray(value)) {\n      const nestedCanRelease = value.reduce((canRelease, item) => releaseInternal(item, deep, seen) || canRelease, canRelease);\n      seen.set(value, nestedCanRelease);\n      return nestedCanRelease;\n    }\n\n    if (isBasicObject(value)) {\n      const nestedCanRelease = Object.keys(value).reduce((canRelease, key) => releaseInternal(value[key], deep, seen) || canRelease, canRelease);\n      seen.set(value, nestedCanRelease);\n      return nestedCanRelease;\n    }\n  }\n\n  return canRelease;\n}\nfunction isBasicObject(value) {\n  if (value == null || typeof value !== 'object') return false;\n  const prototype = Object.getPrototypeOf(value);\n  return prototype == null || prototype === Object.prototype;\n}\n\nexport { StackFrame, isBasicObject, isMemoryManageable, release, releaseInternal, retain };\n","import { RETAINED_BY, RELEASE_METHOD, RETAIN_METHOD } from '../types.mjs';\nimport { StackFrame, isMemoryManageable, isBasicObject } from '../memory.mjs';\n\nconst FUNCTION = '_@f';\nfunction createBasicEncoder(api) {\n  const functionsToId = new Map();\n  const idsToFunction = new Map();\n  const idsToProxy = new Map();\n  return {\n    encode,\n    decode,\n\n    async call(id, args) {\n      const stackFrame = new StackFrame();\n      const func = idsToFunction.get(id);\n\n      if (func == null) {\n        throw new Error('You attempted to call a function that was already released.');\n      }\n\n      try {\n        const retainedBy = isMemoryManageable(func) ? [stackFrame, ...func[RETAINED_BY]] : [stackFrame];\n        const result = await func(...decode(args, retainedBy));\n        return result;\n      } finally {\n        stackFrame.release();\n      }\n    },\n\n    release(id) {\n      const func = idsToFunction.get(id);\n\n      if (func) {\n        idsToFunction.delete(id);\n        functionsToId.delete(func);\n      }\n    },\n\n    terminate() {\n      functionsToId.clear();\n      idsToFunction.clear();\n      idsToProxy.clear();\n    }\n\n  };\n\n  function encode(value, seen = new Map()) {\n    if (value == null) {\n      return [value];\n    }\n\n    const seenValue = seen.get(value);\n\n    if (seenValue) {\n      return seenValue;\n    }\n\n    if (typeof value === 'object') {\n      if (Array.isArray(value)) {\n        seen.set(value, [undefined]);\n        const transferables = [];\n        const result = value.map(item => {\n          const [result, nestedTransferables = []] = encode(item, seen);\n          transferables.push(...nestedTransferables);\n          return result;\n        });\n        const fullResult = [result, transferables];\n        seen.set(value, fullResult);\n        return fullResult;\n      }\n\n      if (isBasicObject(value)) {\n        seen.set(value, [undefined]);\n        const transferables = [];\n        const result = Object.keys(value).reduce((object, key) => {\n          const [result, nestedTransferables = []] = encode(value[key], seen);\n          transferables.push(...nestedTransferables);\n          return { ...object,\n            [key]: result\n          };\n        }, {});\n        const fullResult = [result, transferables];\n        seen.set(value, fullResult);\n        return fullResult;\n      }\n    }\n\n    if (typeof value === 'function') {\n      if (functionsToId.has(value)) {\n        const id = functionsToId.get(value);\n        const result = [{\n          [FUNCTION]: id\n        }];\n        seen.set(value, result);\n        return result;\n      }\n\n      const id = api.uuid();\n      functionsToId.set(value, id);\n      idsToFunction.set(id, value);\n      const result = [{\n        [FUNCTION]: id\n      }];\n      seen.set(value, result);\n      return result;\n    }\n\n    const result = [value];\n    seen.set(value, result);\n    return result;\n  }\n\n  function decode(value, retainedBy) {\n    if (typeof value === 'object') {\n      if (value == null) {\n        return value;\n      }\n\n      if (Array.isArray(value)) {\n        return value.map(value => decode(value, retainedBy));\n      }\n\n      if (FUNCTION in value) {\n        const id = value[FUNCTION];\n\n        if (idsToProxy.has(id)) {\n          return idsToProxy.get(id);\n        }\n\n        let retainCount = 0;\n        let released = false;\n\n        const release = () => {\n          retainCount -= 1;\n\n          if (retainCount === 0) {\n            released = true;\n            idsToProxy.delete(id);\n            api.release(id);\n          }\n        };\n\n        const retain = () => {\n          retainCount += 1;\n        };\n\n        const retainers = new Set(retainedBy);\n\n        const proxy = (...args) => {\n          if (released) {\n            throw new Error('You attempted to call a function that was already released.');\n          }\n\n          if (!idsToProxy.has(id)) {\n            throw new Error('You attempted to call a function that was already revoked.');\n          }\n\n          return api.call(id, args);\n        };\n\n        Object.defineProperties(proxy, {\n          [RELEASE_METHOD]: {\n            value: release,\n            writable: false\n          },\n          [RETAIN_METHOD]: {\n            value: retain,\n            writable: false\n          },\n          [RETAINED_BY]: {\n            value: retainers,\n            writable: false\n          }\n        });\n\n        for (const retainer of retainers) {\n          retainer.add(proxy);\n        }\n\n        idsToProxy.set(id, proxy);\n        return proxy;\n      }\n\n      if (isBasicObject(value)) {\n        return Object.keys(value).reduce((object, key) => ({ ...object,\n          [key]: decode(value[key], retainedBy)\n        }), {});\n      }\n    }\n\n    return value;\n  }\n}\n\nexport { createBasicEncoder };\n","import { StackFrame } from './memory.mjs';\nimport { createBasicEncoder } from './encoding/basic.mjs';\n\nconst CALL = 0;\nconst RESULT = 1;\nconst TERMINATE = 2;\nconst RELEASE = 3;\nconst FUNCTION_APPLY = 5;\nconst FUNCTION_RESULT = 6;\nclass MissingResolverError extends Error {\n  constructor(message) {\n    const {\n      callId,\n      error,\n      result\n    } = message;\n    const errorMessage = error ? ` Error: ${String(error)}` : '';\n    const resultMessage = result == null ? '' : ` Result: ${JSON.stringify(result)}`;\n    super(`No resolver found for call ID: ${callId}${errorMessage}${resultMessage}`);\n    this.callId = void 0;\n    this.error = void 0;\n    this.result = void 0;\n    this.groupingHash = 'RemoteUI::MissingResolverError';\n    this.name = 'MissingResolverError';\n    this.callId = callId;\n    this.error = error;\n    this.result = result;\n  }\n\n}\n/**\n * An endpoint wraps around a messenger, acting as the intermediary for all\n * messages both send from, and received by, that messenger. The endpoint sends\n * all messages as arrays, where the first element is the message type, and the\n * second is the arguments for that message (as an array). For messages that send\n * meaningful content across the wire (e.g., arguments to function calls, return\n * results), the endpoint first encodes these values.\n *\n * Encoding is done using a CBOR-like encoding scheme. The value is encoded into\n * an array buffer, and is paired with an additional array buffer that contains all\n * the strings used in that message (in the encoded value, strings are encoded as\n * their index in the \"strings\" encoding to reduce the cost of heavily-duplicated\n * strings, which is more likely in payloads containing UI). This encoding also takes\n * care of encoding functions: it uses a \"tagged\" item in CBOR to represent a\n * function as a string ID, which the opposite endpoint will be capable of turning\n * into a consistent, memory-manageable function proxy.\n *\n * The main CBOR encoding is entirely take from the [cbor.js package](https://github.com/paroga/cbor-js).\n * The special behavior for encoding strings and functions was then added in to the\n * encoder and decoder. For additional details on CBOR:\n *\n * @see https://tools.ietf.org/html/rfc7049\n */\n\nfunction createEndpoint(initialMessenger, {\n  uuid = defaultUuid,\n  createEncoder = createBasicEncoder,\n  callable\n} = {}) {\n  let terminated = false;\n  let messenger = initialMessenger;\n  const activeApi = new Map();\n  const callIdsToResolver = new Map();\n  const call = createCallable(handlerForCall, callable);\n  const encoder = createEncoder({\n    uuid,\n\n    release(id) {\n      send(RELEASE, [id]);\n    },\n\n    call(id, args, retainedBy) {\n      const callId = uuid();\n      const done = waitForResult(callId, retainedBy);\n      const [encoded, transferables] = encoder.encode(args);\n      send(FUNCTION_APPLY, [callId, id, encoded], transferables);\n      return done;\n    }\n\n  });\n  messenger.addEventListener('message', listener);\n  return {\n    call,\n\n    replace(newMessenger) {\n      const oldMessenger = messenger;\n      messenger = newMessenger;\n      oldMessenger.removeEventListener('message', listener);\n      newMessenger.addEventListener('message', listener);\n    },\n\n    expose(api) {\n      for (const key of Object.keys(api)) {\n        const value = api[key];\n\n        if (typeof value === 'function') {\n          activeApi.set(key, value);\n        } else {\n          activeApi.delete(key);\n        }\n      }\n    },\n\n    callable(...newCallable) {\n      // If no callable methods are supplied initially, we use a Proxy instead,\n      // so all methods end up being treated as callable by default.\n      if (callable == null) return;\n\n      for (const method of newCallable) {\n        Object.defineProperty(call, method, {\n          value: handlerForCall(method),\n          writable: false,\n          configurable: true,\n          enumerable: true\n        });\n      }\n    },\n\n    terminate() {\n      send(TERMINATE, undefined);\n      terminate();\n\n      if (messenger.terminate) {\n        messenger.terminate();\n      }\n    }\n\n  };\n\n  function send(type, args, transferables) {\n    if (terminated) {\n      return;\n    }\n\n    messenger.postMessage(args ? [type, args] : [type], transferables);\n  }\n\n  async function listener(event) {\n    if (terminated) {\n      return;\n    }\n\n    const {\n      data\n    } = event;\n\n    if (!isMessageData(data)) {\n      return;\n    }\n\n    switch (data[0]) {\n      case TERMINATE:\n        {\n          terminate();\n          break;\n        }\n\n      case CALL:\n        {\n          const stackFrame = new StackFrame();\n          const [id, property, args] = data[1];\n          const func = activeApi.get(property);\n\n          try {\n            if (func == null) {\n              throw new Error(`No '${property}' method is exposed on this endpoint`);\n            }\n\n            const [encoded, transferables] = encoder.encode(await func(...encoder.decode(args, [stackFrame])));\n            send(RESULT, [id, undefined, encoded], transferables);\n          } catch (error) {\n            const {\n              name,\n              message,\n              stack\n            } = error;\n            send(RESULT, [id, {\n              name,\n              message,\n              stack\n            }]);\n            throw error;\n          } finally {\n            stackFrame.release();\n          }\n\n          break;\n        }\n\n      case RESULT:\n        {\n          const [callId, error, result] = data[1];\n          const resolver = callIdsToResolver.get(callId);\n\n          if (resolver == null) {\n            throw new MissingResolverError({\n              callId,\n              error,\n              result\n            });\n          }\n\n          resolver(...data[1]);\n          callIdsToResolver.delete(callId);\n          break;\n        }\n\n      case RELEASE:\n        {\n          const [id] = data[1];\n          encoder.release(id);\n          break;\n        }\n\n      case FUNCTION_RESULT:\n        {\n          const [callId, error, result] = data[1];\n          const resolver = callIdsToResolver.get(callId);\n\n          if (resolver == null) {\n            throw new MissingResolverError({\n              callId,\n              error,\n              result\n            });\n          }\n\n          resolver(...data[1]);\n          callIdsToResolver.delete(callId);\n          break;\n        }\n\n      case FUNCTION_APPLY:\n        {\n          const [callId, funcId, args] = data[1];\n\n          try {\n            const result = await encoder.call(funcId, args);\n            const [encoded, transferables] = encoder.encode(result);\n            send(FUNCTION_RESULT, [callId, undefined, encoded], transferables);\n          } catch (error) {\n            const {\n              name,\n              message,\n              stack\n            } = error;\n            send(FUNCTION_RESULT, [callId, {\n              name,\n              message,\n              stack\n            }]);\n            throw error;\n          }\n\n          break;\n        }\n    }\n  }\n\n  function handlerForCall(property) {\n    return (...args) => {\n      if (terminated) {\n        return Promise.reject(new Error('You attempted to call a function on a terminated web worker.'));\n      }\n\n      if (typeof property !== 'string' && typeof property !== 'number') {\n        return Promise.reject(new Error(`Can’t call a symbol method on a remote endpoint: ${property.toString()}`));\n      }\n\n      const id = uuid();\n      const done = waitForResult(id);\n      const [encoded, transferables] = encoder.encode(args);\n      send(CALL, [id, property, encoded], transferables);\n      return done;\n    };\n  }\n\n  function waitForResult(id, retainedBy) {\n    return new Promise((resolve, reject) => {\n      callIdsToResolver.set(id, (_, errorResult, value) => {\n        if (errorResult == null) {\n          resolve(value && encoder.decode(value, retainedBy));\n        } else {\n          const error = new Error();\n          Object.assign(error, errorResult);\n          reject(error);\n        }\n      });\n    });\n  }\n\n  function terminate() {\n    var _encoder$terminate;\n\n    terminated = true;\n    activeApi.clear();\n    callIdsToResolver.clear();\n    (_encoder$terminate = encoder.terminate) === null || _encoder$terminate === void 0 ? void 0 : _encoder$terminate.call(encoder);\n    messenger.removeEventListener('message', listener);\n  }\n}\n\nfunction defaultUuid() {\n  return `${uuidSegment()}-${uuidSegment()}-${uuidSegment()}-${uuidSegment()}`;\n}\n\nfunction uuidSegment() {\n  return Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16);\n}\n\nfunction createCallable(handlerForCall, callable) {\n  let call;\n\n  if (callable == null) {\n    if (typeof Proxy !== 'function') {\n      throw new Error(`You must pass an array of callable methods in environments without Proxies.`);\n    }\n\n    const cache = new Map();\n    call = new Proxy({}, {\n      get(_target, property) {\n        if (cache.has(property)) {\n          return cache.get(property);\n        }\n\n        const handler = handlerForCall(property);\n        cache.set(property, handler);\n        return handler;\n      }\n\n    });\n  } else {\n    call = {};\n\n    for (const method of callable) {\n      Object.defineProperty(call, method, {\n        value: handlerForCall(method),\n        writable: false,\n        configurable: true,\n        enumerable: true\n      });\n    }\n  }\n\n  return call;\n}\n\nfunction isMessageData(value) {\n  return Array.isArray(value) && typeof value[0] === 'number' && (value[1] == null || Array.isArray(value[1]));\n}\n\nexport { CALL, FUNCTION_APPLY, FUNCTION_RESULT, MissingResolverError, RELEASE, RESULT, TERMINATE, createEndpoint };\n","import { KIND_COMPONENT, KIND_TEXT, KIND_FRAGMENT } from './types.mjs';\n\nfunction isRemoteComponent(child) {\n  return child != null && child.kind === KIND_COMPONENT;\n}\nfunction isRemoteText(child) {\n  return child != null && child.kind === KIND_TEXT;\n}\nfunction isRemoteFragment(object) {\n  return object != null && object.kind === KIND_FRAGMENT;\n}\n\nexport { isRemoteComponent, isRemoteFragment, isRemoteText };\n","const ACTION_MOUNT = 0;\nconst ACTION_INSERT_CHILD = 1;\nconst ACTION_REMOVE_CHILD = 2;\nconst ACTION_UPDATE_TEXT = 3;\nconst ACTION_UPDATE_PROPS = 4;\nconst KIND_ROOT = 0;\nconst KIND_COMPONENT = 1;\nconst KIND_TEXT = 2;\nconst KIND_FRAGMENT = 3;\n\nexport { ACTION_INSERT_CHILD, ACTION_MOUNT, ACTION_REMOVE_CHILD, ACTION_UPDATE_PROPS, ACTION_UPDATE_TEXT, KIND_COMPONENT, KIND_FRAGMENT, KIND_ROOT, KIND_TEXT };\n","import { isBasicObject } from '@remote-ui/rpc';\nimport { KIND_ROOT, ACTION_MOUNT, ACTION_INSERT_CHILD, KIND_TEXT, ACTION_REMOVE_CHILD, KIND_COMPONENT, KIND_FRAGMENT, ACTION_UPDATE_PROPS, ACTION_UPDATE_TEXT } from './types.mjs';\nimport { isRemoteFragment } from './utilities.mjs';\n\nconst FUNCTION_CURRENT_IMPLEMENTATION_KEY = '__current';\nconst EMPTY_OBJECT = {};\nconst EMPTY_ARRAY = [];\nfunction createRemoteRoot(channel, {\n  strict = true,\n  components\n} = {}) {\n  let currentId = 0;\n  const rootInternals = {\n    strict,\n    mounted: false,\n    channel,\n    children: EMPTY_ARRAY,\n    nodes: new WeakSet(),\n    parents: new WeakMap(),\n    tops: new WeakMap(),\n    components: new WeakMap(),\n    fragments: new WeakMap()\n  };\n  if (strict) Object.freeze(components);\n  const remoteRoot = {\n    kind: KIND_ROOT,\n    options: strict ? Object.freeze({\n      strict,\n      components\n    }) : {\n      strict,\n      components\n    },\n\n    get children() {\n      return rootInternals.children;\n    },\n\n    createComponent(type, ...rest) {\n      if (components && components.indexOf(type) < 0) {\n        throw new Error(`Unsupported component: ${type}`);\n      }\n\n      const [initialProps, initialChildren, ...moreChildren] = rest;\n      const normalizedInitialProps = initialProps !== null && initialProps !== void 0 ? initialProps : {};\n      const normalizedInitialChildren = [];\n      const normalizedInternalProps = {};\n\n      if (initialProps) {\n        for (const key of Object.keys(initialProps)) {\n          // \"children\" as a prop can be extremely confusing with the \"children\" of\n          // a component. In React, a \"child\" can be anything, but once it reaches\n          // a host environment (like this remote `Root`), we want \"children\" to have\n          // only one meaning: the actual, resolved children components and text.\n          //\n          // To enforce this, we delete any prop named \"children\". We don’t take a copy\n          // of the props for performance, so a user calling this function must do so\n          // with an object that can handle being mutated.\n          if (key === 'children') continue;\n          normalizedInternalProps[key] = makeValueHotSwappable(serializeProp(initialProps[key]));\n        }\n      }\n\n      if (initialChildren) {\n        if (Array.isArray(initialChildren)) {\n          for (const child of initialChildren) {\n            normalizedInitialChildren.push(normalizeChild(child, remoteRoot));\n          }\n        } else {\n          normalizedInitialChildren.push(normalizeChild(initialChildren, remoteRoot)); // The complex tuple type of `rest` makes it so `moreChildren` is\n          // incorrectly inferred as potentially being the props of the component,\n          // lazy casting since we know it will be an array of child elements\n          // (or empty).\n\n          for (const child of moreChildren) {\n            normalizedInitialChildren.push(normalizeChild(child, remoteRoot));\n          }\n        }\n      }\n\n      const id = `${currentId++}`;\n      const internals = {\n        externalProps: strict ? Object.freeze(normalizedInitialProps) : normalizedInitialProps,\n        internalProps: normalizedInternalProps,\n        children: strict ? Object.freeze(normalizedInitialChildren) : normalizedInitialChildren\n      };\n      const component = {\n        kind: KIND_COMPONENT,\n\n        get children() {\n          return internals.children;\n        },\n\n        get props() {\n          return internals.externalProps;\n        },\n\n        get remoteProps() {\n          return internals.internalProps;\n        },\n\n        remove: () => remove(component),\n        updateProps: newProps => updateProps(component, newProps, internals, rootInternals),\n        append: (...children) => append(component, children.map(child => normalizeChild(child, remoteRoot)), internals, rootInternals),\n        appendChild: child => appendChild(component, normalizeChild(child, remoteRoot), internals, rootInternals),\n        removeChild: child => removeChild(component, child, internals, rootInternals),\n        replaceChildren: (...children) => replaceChildren(component, children.map(child => normalizeChild(child, remoteRoot)), internals, rootInternals),\n        insertBefore: (child, before) => insertBefore(component, normalizeChild(child, remoteRoot), before, internals, rootInternals),\n        insertChildBefore: (child, before) => insertBefore(component, normalizeChild(child, remoteRoot), before, internals, rootInternals),\n        // Just satisfying the type definition, since we need to write\n        // some properties manually, which we do below. If we just `as any`\n        // the whole object, we lose the implicit argument types for the\n        // methods above.\n        ...EMPTY_OBJECT\n      };\n      rootInternals.components.set(component, internals);\n      Object.defineProperty(component, 'type', {\n        value: type,\n        configurable: false,\n        writable: false,\n        enumerable: true\n      });\n      makePartOfTree(component, rootInternals);\n      makeRemote(component, id, remoteRoot);\n\n      for (const child of internals.children) {\n        moveNodeToContainer(component, child, rootInternals);\n      }\n\n      return component;\n    },\n\n    createText(content = '') {\n      const id = `${currentId++}`;\n      const internals = {\n        text: content\n      };\n\n      const update = newText => updateText(text, newText, internals, rootInternals);\n\n      const text = {\n        kind: KIND_TEXT,\n\n        get text() {\n          return internals.text;\n        },\n\n        update,\n        updateText: update,\n        remove: () => remove(text),\n        // Just satisfying the type definition, since we need to write\n        // some properties manually.\n        ...EMPTY_OBJECT\n      };\n      makePartOfTree(text, rootInternals);\n      makeRemote(text, id, remoteRoot);\n      return text;\n    },\n\n    createFragment() {\n      const id = `${currentId++}`;\n      const internals = {\n        children: strict ? Object.freeze([]) : []\n      };\n      const fragment = {\n        kind: KIND_FRAGMENT,\n\n        get children() {\n          return internals.children;\n        },\n\n        append: (...children) => append(fragment, children.map(child => normalizeChild(child, remoteRoot)), internals, rootInternals),\n        appendChild: child => appendChild(fragment, normalizeChild(child, remoteRoot), internals, rootInternals),\n        removeChild: child => removeChild(fragment, child, internals, rootInternals),\n        replaceChildren: (...children) => replaceChildren(fragment, children.map(child => normalizeChild(child, remoteRoot)), internals, rootInternals),\n        insertBefore: (child, before) => insertBefore(fragment, normalizeChild(child, remoteRoot), before, internals, rootInternals),\n        insertChildBefore: (child, before) => insertBefore(fragment, normalizeChild(child, remoteRoot), before, internals, rootInternals),\n        // Just satisfying the type definition, since we need to write\n        // some properties manually.\n        ...EMPTY_OBJECT\n      };\n      rootInternals.fragments.set(fragment, internals);\n      makePartOfTree(fragment, rootInternals);\n      makeRemote(fragment, id, remoteRoot);\n      return fragment;\n    },\n\n    append: (...children) => append(remoteRoot, children.map(child => normalizeChild(child, remoteRoot)), rootInternals, rootInternals),\n    appendChild: child => appendChild(remoteRoot, normalizeChild(child, remoteRoot), rootInternals, rootInternals),\n    replaceChildren: (...children) => replaceChildren(remoteRoot, children.map(child => normalizeChild(child, remoteRoot)), rootInternals, rootInternals),\n    removeChild: child => removeChild(remoteRoot, child, rootInternals, rootInternals),\n    insertBefore: (child, before) => insertBefore(remoteRoot, normalizeChild(child, remoteRoot), before, rootInternals, rootInternals),\n    insertChildBefore: (child, before) => insertBefore(remoteRoot, normalizeChild(child, remoteRoot), before, rootInternals, rootInternals),\n\n    mount() {\n      if (rootInternals.mounted) return Promise.resolve();\n      rootInternals.mounted = true;\n      return Promise.resolve(channel(ACTION_MOUNT, rootInternals.children.map(serializeChild)));\n    }\n\n  };\n  return remoteRoot;\n}\n\nfunction connected(element, {\n  tops\n}) {\n  var _tops$get;\n\n  return ((_tops$get = tops.get(element)) === null || _tops$get === void 0 ? void 0 : _tops$get.kind) === KIND_ROOT;\n}\n\nfunction allDescendants(element, withEach) {\n  const recurse = element => {\n    if ('children' in element) {\n      for (const child of element.children) {\n        withEach(child);\n        recurse(child);\n      }\n    }\n  };\n\n  recurse(element);\n}\n\nfunction perform(element, rootInternals, {\n  remote,\n  local\n}) {\n  const {\n    mounted,\n    channel\n  } = rootInternals;\n\n  if (mounted && (element.kind === KIND_ROOT || connected(element, rootInternals))) {\n    // should only create context once async queue is cleared\n    remote(channel); // technically, we should be waiting for the remote update to apply,\n    // then apply it locally. The implementation below is too naive because\n    // it allows local updates to get out of sync with remote ones.\n    // if (remoteResult == null || !('then' in remoteResult)) {\n    //   local();\n    //   return;\n    // } else {\n    //   return remoteResult.then(() => {\n    //     local();\n    //   });\n    // }\n  }\n\n  local();\n}\n\nfunction updateText(text, newText, internals, rootInternals) {\n  return perform(text, rootInternals, {\n    remote: channel => channel(ACTION_UPDATE_TEXT, text.id, newText),\n    local: () => {\n      internals.text = newText;\n    }\n  });\n}\n\nconst IGNORE = Symbol('ignore');\n\nfunction updateProps(component, newProps, internals, rootInternals) {\n  const {\n    strict\n  } = rootInternals;\n  const {\n    internalProps: currentProps,\n    externalProps: currentExternalProps\n  } = internals;\n  const normalizedNewProps = {};\n  const hotSwapFunctions = [];\n  let hasRemoteChange = false;\n\n  for (const key of Object.keys(newProps)) {\n    // See notes above for why we treat `children` as a reserved prop.\n    if (key === 'children') continue;\n    const currentExternalValue = currentExternalProps[key];\n    const newExternalValue = newProps[key];\n    const currentValue = currentProps[key];\n    const newValue = serializeProp(newExternalValue); // Bail out if we have equal, primitive types\n\n    if (currentValue === newValue && (newValue == null || typeof newValue !== 'object')) {\n      continue;\n    }\n\n    const [value, hotSwaps] = tryHotSwappingValues(currentValue, newValue);\n\n    if (hotSwaps) {\n      hotSwapFunctions.push(...hotSwaps);\n    }\n\n    if (value === IGNORE) continue;\n    hasRemoteChange = true;\n    normalizedNewProps[key] = value;\n\n    if (isRemoteFragment(currentExternalValue)) {\n      removeNodeFromContainer(currentExternalValue, rootInternals);\n    }\n\n    if (isRemoteFragment(newExternalValue)) {\n      moveNodeToContainer(component, newExternalValue, rootInternals);\n    }\n  }\n\n  return perform(component, rootInternals, {\n    remote: channel => {\n      if (hasRemoteChange) {\n        channel(ACTION_UPDATE_PROPS, component.id, normalizedNewProps);\n      }\n    },\n    local: () => {\n      const mergedExternalProps = { ...currentExternalProps,\n        ...newProps\n      };\n      internals.externalProps = strict ? Object.freeze(mergedExternalProps) : mergedExternalProps;\n      internals.internalProps = { ...internals.internalProps,\n        ...normalizedNewProps\n      };\n\n      for (const [hotSwappable, newValue] of hotSwapFunctions) {\n        hotSwappable[FUNCTION_CURRENT_IMPLEMENTATION_KEY] = newValue;\n      }\n    }\n  });\n} // Imagine the following remote-ui components we might render in a remote context:\n//\n// const root = createRemoteRoot();\n// const {value, onChange, onPress} = getPropsForValue();\n//\n// const textField = root.createComponent('TextField', {value, onChange});\n// const button = root.createComponent('Button', {onPress});\n//\n// root.append(textField);\n// root.append(button);\n//\n// function getPropsForValue(value = '') {\n//   return {\n//     value,\n//     onChange: () => {\n//       const {value, onChange, onPress} = getPropsForValue();\n//       textField.updateProps({value, onChange});\n//       button.updateProps({onPress});\n//     },\n//     onPress: () => console.log(value),\n//   };\n// }\n//\n//\n// In this example, assume that the `TextField` `onChange` prop is run on blur.\n// If this were running on the host, the following steps would happen if you pressed\n// on the button:\n//\n// 1. The text field blurs, and so calls `onChange()` with its current value, which\n//    then calls `setValue()` with the updated value.\n// 2. We synchronously update the `value`, `onChange`, and `onPress` props to point at\n//    the most current `value`.\n// 3. Handling blur is finished, so the browser now handles the click by calling the\n//    (newly-updated) `Button` `onPress()`, which logs out the new value.\n//\n// Because remote-ui reproduces a UI tree asynchronously from the remote context, the\n// steps above run in a different order:\n//\n// 1. The text field blurs, and so calls `onChange()` with its current value.\n// 2. Handling blur is finished **from the perspective of the main thread**, so the\n//    browser now handles the click by calling the (original) `Button` `onPress()`, which\n//    logs out the **initial** value.\n// 3. In the remote context, we receive the `onChange()` call, which calls updates the props\n//    on the `Button` and `TextField` to be based on the new `value`, but by now it’s\n//    already too late for `onPress` — the old version has already been called!\n//\n// As you can see, the timing issue introduced by the asynchronous nature of remote-ui\n// can cause “old props” to be called from the main thread. This example may seem like\n// an unusual pattern, and it is if you are using `@remote-ui/core` directly; you’d generally\n// keep a mutable reference to the state, instead of closing over the state with new props.\n// However, abstractions on top of `@remote-ui/core`, like the React reconciler in\n// `@remote-ui/react`, work almost entirely by closing over state, so this issue is\n// much more common with those declarative libraries.\n//\n// To protect against this, we handle function props a bit differently. When we have a\n// function prop, we replace it with a new function that calls the original. However,\n// we make the original mutable, by making it a property on the function itself. When\n// this function subsequently updates, we don’t send the update to the main thread (as\n// we just saw, this can often be \"too late\" to be of any use). Instead, we swap out\n// the mutable reference to the current implementation of the function prop, which can\n// be done synchronously. In the example above, this would all happen synchronously in\n// the remote context; in our handling of `TextField onChange()`, we update `Button onPress()`,\n// and swap out the implementations. Now, when the main thread attempts to call `Button onPress()`,\n// it instead calls our wrapper around the function, which can refer to, and call, the\n// most recently-applied implementation, instead of directly calling the old implementation.\n\n\nfunction tryHotSwappingValues(currentValue, newValue, seen = new Set()) {\n  if (seen.has(currentValue)) {\n    return [IGNORE];\n  }\n\n  if (typeof currentValue === 'function' && FUNCTION_CURRENT_IMPLEMENTATION_KEY in currentValue) {\n    seen.add(currentValue);\n    const result = [typeof newValue === 'function' ? IGNORE : makeValueHotSwappable(newValue), [[currentValue, newValue]]];\n    return result;\n  }\n\n  if (Array.isArray(currentValue)) {\n    seen.add(currentValue);\n    const result = tryHotSwappingArrayValues(currentValue, newValue, seen);\n    return result;\n  }\n\n  if (isBasicObject(currentValue) && !isRemoteFragment(currentValue)) {\n    seen.add(currentValue);\n    const result = tryHotSwappingObjectValues(currentValue, newValue, seen);\n    return result;\n  }\n\n  const result = [currentValue === newValue ? IGNORE : newValue];\n  return result;\n}\n\nfunction makeValueHotSwappable(value, seen = new Map()) {\n  const seenValue = seen.get(value);\n  if (seenValue) return seenValue;\n\n  if (isRemoteFragment(value)) {\n    seen.set(value, value);\n    return value;\n  }\n\n  if (Array.isArray(value)) {\n    const result = [];\n    seen.set(value, result);\n\n    for (const nested of value) {\n      result.push(makeValueHotSwappable(nested, seen));\n    }\n\n    return result;\n  }\n\n  if (isBasicObject(value)) {\n    const result = {};\n    seen.set(value, result);\n\n    for (const key of Object.keys(value)) {\n      result[key] = makeValueHotSwappable(value[key], seen);\n    }\n\n    return result;\n  }\n\n  if (typeof value === 'function') {\n    const wrappedFunction = (...args) => {\n      return wrappedFunction[FUNCTION_CURRENT_IMPLEMENTATION_KEY](...args);\n    };\n\n    Object.defineProperty(wrappedFunction, FUNCTION_CURRENT_IMPLEMENTATION_KEY, {\n      enumerable: false,\n      configurable: false,\n      writable: true,\n      value\n    });\n    seen.set(value, wrappedFunction);\n    return wrappedFunction;\n  }\n\n  return value;\n}\n\nfunction collectNestedHotSwappableValues(value, seen = new Set()) {\n  if (seen.has(value)) return undefined;\n  seen.add(value);\n\n  if (Array.isArray(value)) {\n    return value.reduce((all, element) => {\n      const nested = collectNestedHotSwappableValues(element, seen);\n      return nested ? [...all, ...nested] : all;\n    }, []);\n  }\n\n  if (isBasicObject(value)) {\n    return Object.keys(value).reduce((all, key) => {\n      const nested = collectNestedHotSwappableValues(value[key], seen);\n      return nested ? [...all, ...nested] : all;\n    }, []);\n  }\n\n  if (typeof value === 'function') {\n    return FUNCTION_CURRENT_IMPLEMENTATION_KEY in value ? [value] : undefined;\n  }\n\n  return undefined;\n}\n\nfunction remove(child) {\n  var _child$parent;\n\n  (_child$parent = child.parent) === null || _child$parent === void 0 ? void 0 : _child$parent.removeChild(child);\n}\n\nfunction append(container, children, internals, rootInternals) {\n  for (const child of children) {\n    appendChild(container, child, internals, rootInternals);\n  }\n}\n\nfunction appendChild(container, child, internals, rootInternals) {\n  var _currentParent$childr;\n\n  const {\n    nodes,\n    strict\n  } = rootInternals;\n\n  if (!nodes.has(child)) {\n    throw new Error(`Cannot append a node that was not created by this remote root`);\n  }\n\n  const currentParent = child.parent;\n  const existingIndex = (_currentParent$childr = currentParent === null || currentParent === void 0 ? void 0 : currentParent.children.indexOf(child)) !== null && _currentParent$childr !== void 0 ? _currentParent$childr : -1;\n  return perform(container, rootInternals, {\n    remote: channel => {\n      channel(ACTION_INSERT_CHILD, container.id, existingIndex < 0 ? container.children.length : container.children.length - 1, serializeChild(child), currentParent ? currentParent.id : false);\n    },\n    local: () => {\n      moveNodeToContainer(container, child, rootInternals);\n      let newChildren;\n\n      if (currentParent) {\n        const currentInternals = getCurrentInternals(currentParent, rootInternals);\n        const currentChildren = [...currentInternals.children];\n        currentChildren.splice(existingIndex, 1);\n\n        if (currentParent === container) {\n          newChildren = currentChildren;\n        } else {\n          currentInternals.children = strict ? Object.freeze(currentChildren) : currentChildren;\n          newChildren = [...internals.children];\n        }\n      } else {\n        newChildren = [...internals.children];\n      }\n\n      newChildren.push(child);\n      internals.children = strict ? Object.freeze(newChildren) : newChildren;\n    }\n  });\n}\n\nfunction replaceChildren(container, children, internals, rootInternals) {\n  for (const child of container.children) {\n    removeChild(container, child, internals, rootInternals);\n  }\n\n  append(container, children, internals, rootInternals);\n} // there is a problem with this, because when multiple children\n// are removed, there is no guarantee the messages will arrive in the\n// order we need them to on the host side (it depends how React\n// calls our reconciler). If it calls with, for example, the removal of\n// the second last item, then the removal of the last item, it will fail\n// because the indexes moved around.\n//\n// Might need to send the removed child ID, or find out if we\n// can collect removals into a single update.\n\n\nfunction removeChild(container, child, internals, rootInternals) {\n  const {\n    strict\n  } = rootInternals;\n  const childIndex = container.children.indexOf(child);\n\n  if (childIndex === -1) {\n    return undefined;\n  }\n\n  return perform(container, rootInternals, {\n    remote: channel => channel(ACTION_REMOVE_CHILD, container.id, childIndex),\n    local: () => {\n      removeNodeFromContainer(child, rootInternals);\n      const newChildren = [...internals.children];\n      newChildren.splice(newChildren.indexOf(child), 1);\n      internals.children = strict ? Object.freeze(newChildren) : newChildren;\n    }\n  });\n}\n\nfunction insertBefore(container, child, before, internals, rootInternals) {\n  var _currentParent$childr2;\n\n  const {\n    strict,\n    nodes\n  } = rootInternals;\n\n  if (!nodes.has(child)) {\n    throw new Error(`Cannot insert a node that was not created by this remote root`);\n  }\n\n  const currentParent = child.parent;\n  const existingIndex = (_currentParent$childr2 = currentParent === null || currentParent === void 0 ? void 0 : currentParent.children.indexOf(child)) !== null && _currentParent$childr2 !== void 0 ? _currentParent$childr2 : -1;\n  return perform(container, rootInternals, {\n    remote: channel => {\n      const beforeIndex = before == null ? container.children.length - 1 : container.children.indexOf(before);\n      channel(ACTION_INSERT_CHILD, container.id, beforeIndex < existingIndex || existingIndex < 0 ? beforeIndex : beforeIndex - 1, serializeChild(child), currentParent ? currentParent.id : false);\n    },\n    local: () => {\n      moveNodeToContainer(container, child, rootInternals);\n      let newChildren;\n\n      if (currentParent) {\n        const currentInternals = getCurrentInternals(currentParent, rootInternals);\n        const currentChildren = [...currentInternals.children];\n        currentChildren.splice(existingIndex, 1);\n\n        if (currentParent === container) {\n          newChildren = currentChildren;\n        } else {\n          currentInternals.children = strict ? Object.freeze(currentChildren) : currentChildren;\n          newChildren = [...internals.children];\n        }\n      } else {\n        newChildren = [...internals.children];\n      }\n\n      if (before == null) {\n        newChildren.push(child);\n      } else {\n        newChildren.splice(newChildren.indexOf(before), 0, child);\n      }\n\n      internals.children = strict ? Object.freeze(newChildren) : newChildren;\n    }\n  });\n}\n\nfunction normalizeChild(child, root) {\n  return typeof child === 'string' ? root.createText(child) : child;\n}\n\nfunction moveNodeToContainer(container, node, rootInternals) {\n  const {\n    tops,\n    parents\n  } = rootInternals;\n  const newTop = container.kind === KIND_ROOT ? container : tops.get(container);\n  tops.set(node, newTop);\n  parents.set(node, container);\n  moveFragmentToContainer(node, rootInternals);\n  allDescendants(node, descendant => {\n    tops.set(descendant, newTop);\n    moveFragmentToContainer(descendant, rootInternals);\n  });\n}\n\nfunction moveFragmentToContainer(node, rootInternals) {\n  if (node.kind !== KIND_COMPONENT) return;\n  const props = node.props;\n  if (!props) return;\n  Object.values(props).forEach(prop => {\n    if (!isRemoteFragment(prop)) return;\n    moveNodeToContainer(node, prop, rootInternals);\n  });\n}\n\nfunction removeNodeFromContainer(node, rootInternals) {\n  const {\n    tops,\n    parents\n  } = rootInternals;\n  tops.delete(node);\n  parents.delete(node);\n  allDescendants(node, descendant => {\n    tops.delete(descendant);\n    removeFragmentFromContainer(descendant, rootInternals);\n  });\n  removeFragmentFromContainer(node, rootInternals);\n}\n\nfunction removeFragmentFromContainer(node, rootInternals) {\n  if (node.kind !== KIND_COMPONENT) return;\n  const props = node.remoteProps;\n\n  for (const key of Object.keys(props !== null && props !== void 0 ? props : {})) {\n    const prop = props[key];\n    if (!isRemoteFragment(prop)) continue;\n    removeNodeFromContainer(prop, rootInternals);\n  }\n}\n\nfunction makePartOfTree(node, {\n  parents,\n  tops,\n  nodes\n}) {\n  nodes.add(node);\n  Object.defineProperty(node, 'parent', {\n    get() {\n      return parents.get(node);\n    },\n\n    configurable: true,\n    enumerable: true\n  });\n  Object.defineProperty(node, 'top', {\n    get() {\n      return tops.get(node);\n    },\n\n    configurable: true,\n    enumerable: true\n  });\n}\n\nfunction serializeChild(value) {\n  return value.kind === KIND_TEXT ? {\n    id: value.id,\n    kind: value.kind,\n    text: value.text\n  } : {\n    id: value.id,\n    kind: value.kind,\n    type: value.type,\n    props: value.remoteProps,\n    children: value.children.map(child => serializeChild(child))\n  };\n}\n\nfunction serializeProp(prop) {\n  if (isRemoteFragment(prop)) {\n    return serializeFragment(prop);\n  }\n\n  return prop;\n}\n\nfunction serializeFragment(value) {\n  return {\n    id: value.id,\n    kind: value.kind,\n\n    get children() {\n      return value.children.map(child => serializeChild(child));\n    }\n\n  };\n}\n\nfunction getCurrentInternals(currentParent, rootInternals) {\n  if (currentParent.kind === KIND_ROOT) {\n    return rootInternals;\n  }\n\n  if (currentParent.kind === KIND_FRAGMENT) {\n    return rootInternals.fragments.get(currentParent);\n  }\n\n  return rootInternals.components.get(currentParent);\n}\n\nfunction makeRemote(value, id, root) {\n  Object.defineProperty(value, 'id', {\n    value: id,\n    configurable: true,\n    writable: false,\n    enumerable: false\n  });\n  Object.defineProperty(value, 'root', {\n    value: root,\n    configurable: true,\n    writable: false,\n    enumerable: false\n  });\n}\n\nfunction tryHotSwappingObjectValues(currentValue, newValue, seen) {\n  if (!isBasicObject(newValue)) {\n    var _collectNestedHotSwap;\n\n    return [makeValueHotSwappable(newValue), (_collectNestedHotSwap = collectNestedHotSwappableValues(currentValue)) === null || _collectNestedHotSwap === void 0 ? void 0 : _collectNestedHotSwap.map(hotSwappable => [hotSwappable, undefined])];\n  }\n\n  let hasChanged = false;\n  const hotSwaps = [];\n  const normalizedNewValue = {}; // eslint-disable-next-line guard-for-in\n\n  for (const key in currentValue) {\n    const currentObjectValue = currentValue[key];\n\n    if (!(key in newValue)) {\n      hasChanged = true;\n      const nestedHotSwappables = collectNestedHotSwappableValues(currentObjectValue);\n\n      if (nestedHotSwappables) {\n        hotSwaps.push(...nestedHotSwappables.map(hotSwappable => [hotSwappable, undefined]));\n      }\n    }\n\n    const newObjectValue = newValue[key];\n    const [updatedValue, elementHotSwaps] = tryHotSwappingValues(currentObjectValue, newObjectValue, seen);\n\n    if (elementHotSwaps) {\n      hotSwaps.push(...elementHotSwaps);\n    }\n\n    if (updatedValue !== IGNORE) {\n      hasChanged = true;\n      normalizedNewValue[key] = updatedValue;\n    }\n  }\n\n  for (const key in newValue) {\n    if (key in normalizedNewValue) continue;\n    hasChanged = true;\n    normalizedNewValue[key] = makeValueHotSwappable(newValue[key]);\n  }\n\n  return [hasChanged ? normalizedNewValue : IGNORE, hotSwaps];\n}\n\nfunction tryHotSwappingArrayValues(currentValue, newValue, seen) {\n  if (!Array.isArray(newValue)) {\n    var _collectNestedHotSwap2;\n\n    return [makeValueHotSwappable(newValue), (_collectNestedHotSwap2 = collectNestedHotSwappableValues(currentValue)) === null || _collectNestedHotSwap2 === void 0 ? void 0 : _collectNestedHotSwap2.map(hotSwappable => [hotSwappable, undefined])];\n  }\n\n  let hasChanged = false;\n  const hotSwaps = [];\n  const newLength = newValue.length;\n  const currentLength = currentValue.length;\n  const maxLength = Math.max(currentLength, newLength);\n  const normalizedNewValue = [];\n\n  for (let i = 0; i < maxLength; i++) {\n    const currentArrayValue = currentValue[i];\n    const newArrayValue = newValue[i];\n\n    if (i < newLength) {\n      if (i >= currentLength) {\n        hasChanged = true;\n        normalizedNewValue[i] = makeValueHotSwappable(newArrayValue);\n        continue;\n      }\n\n      const [updatedValue, elementHotSwaps] = tryHotSwappingValues(currentArrayValue, newArrayValue, seen);\n      if (elementHotSwaps) hotSwaps.push(...elementHotSwaps);\n\n      if (updatedValue === IGNORE) {\n        normalizedNewValue[i] = currentArrayValue;\n        continue;\n      }\n\n      hasChanged = true;\n      normalizedNewValue[i] = updatedValue;\n    } else {\n      hasChanged = true;\n      const nestedHotSwappables = collectNestedHotSwappableValues(currentArrayValue);\n\n      if (nestedHotSwappables) {\n        hotSwaps.push(...nestedHotSwappables.map(hotSwappable => [hotSwappable, undefined]));\n      }\n    }\n  }\n\n  return [hasChanged ? normalizedNewValue : IGNORE, hotSwaps];\n}\n\nexport { createRemoteRoot };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Bugsnag\"] = factory();\n\telse\n\t\troot[\"Bugsnag\"] = factory();\n})(self, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 876:\n/***/ ((module) => {\n\nmodule.exports = function (data, replacer, space, opts) {\n  var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : []\n  var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : []\n  return JSON.stringify(\n    prepareObjForSerialization(data, redactedKeys, redactedPaths),\n    replacer,\n    space\n  )\n}\n\nvar MAX_DEPTH = 20\nvar MAX_EDGES = 25000\nvar MIN_PRESERVED_DEPTH = 8\n\nvar REPLACEMENT_NODE = '...'\n\nfunction isError (o) {\n  return o instanceof Error ||\n    /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o))\n}\n\nfunction throwsMessage (err) {\n  return '[Throws: ' + (err ? err.message : '?') + ']'\n}\n\nfunction find (haystack, needle) {\n  for (var i = 0, len = haystack.length; i < len; i++) {\n    if (haystack[i] === needle) return true\n  }\n  return false\n}\n\n// returns true if the string `path` starts with any of the provided `paths`\nfunction isDescendent (paths, path) {\n  for (var i = 0, len = paths.length; i < len; i++) {\n    if (path.indexOf(paths[i]) === 0) return true\n  }\n  return false\n}\n\nfunction shouldRedact (patterns, key) {\n  for (var i = 0, len = patterns.length; i < len; i++) {\n    if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true\n    if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true\n  }\n  return false\n}\n\nfunction isArray (obj) {\n  return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nfunction safelyGetProp (obj, prop) {\n  try {\n    return obj[prop]\n  } catch (err) {\n    return throwsMessage(err)\n  }\n}\n\nfunction prepareObjForSerialization (obj, redactedKeys, redactedPaths) {\n  var seen = [] // store references to objects we have seen before\n  var edges = 0\n\n  function visit (obj, path) {\n    function edgesExceeded () {\n      return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES\n    }\n\n    edges++\n\n    if (path.length > MAX_DEPTH) return REPLACEMENT_NODE\n    if (edgesExceeded()) return REPLACEMENT_NODE\n    if (obj === null || typeof obj !== 'object') return obj\n    if (find(seen, obj)) return '[Circular]'\n\n    seen.push(obj)\n\n    if (typeof obj.toJSON === 'function') {\n      try {\n        // we're not going to count this as an edge because it\n        // replaces the value of the currently visited object\n        edges--\n        var fResult = visit(obj.toJSON(), path)\n        seen.pop()\n        return fResult\n      } catch (err) {\n        return throwsMessage(err)\n      }\n    }\n\n    var er = isError(obj)\n    if (er) {\n      edges--\n      var eResult = visit({ name: obj.name, message: obj.message }, path)\n      seen.pop()\n      return eResult\n    }\n\n    if (isArray(obj)) {\n      var aResult = []\n      for (var i = 0, len = obj.length; i < len; i++) {\n        if (edgesExceeded()) {\n          aResult.push(REPLACEMENT_NODE)\n          break\n        }\n        aResult.push(visit(obj[i], path.concat('[]')))\n      }\n      seen.pop()\n      return aResult\n    }\n\n    var result = {}\n    try {\n      for (var prop in obj) {\n        if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue\n        if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n          result[prop] = '[REDACTED]'\n          continue\n        }\n        if (edgesExceeded()) {\n          result[prop] = REPLACEMENT_NODE\n          break\n        }\n        result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop))\n      }\n    } catch (e) {}\n    seen.pop()\n    return result\n  }\n\n  return visit(obj, [])\n}\n\n\n/***/ }),\n\n/***/ 482:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (true) {\n        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(550)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n    } else {}\n}(this, function ErrorStackParser(StackFrame) {\n    'use strict';\n\n    var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n    var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n    var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n    return {\n        /**\n         * Given an Error object, extract the most information from it.\n         *\n         * @param {Error} error object\n         * @return {Array} of StackFrames\n         */\n        parse: function ErrorStackParser$$parse(error) {\n            if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n                return this.parseOpera(error);\n            } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n                return this.parseV8OrIE(error);\n            } else if (error.stack) {\n                return this.parseFFOrSafari(error);\n            } else {\n                throw new Error('Cannot parse given Error object');\n            }\n        },\n\n        // Separate line and column numbers from a string of the form: (URI:Line:Column)\n        extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n            // Fail-fast but return locations like \"(native)\"\n            if (urlLike.indexOf(':') === -1) {\n                return [urlLike];\n            }\n\n            var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n            var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n            return [parts[1], parts[2] || undefined, parts[3] || undefined];\n        },\n\n        parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !!line.match(CHROME_IE_STACK_REGEXP);\n            }, this);\n\n            return filtered.map(function(line) {\n                if (line.indexOf('(eval ') > -1) {\n                    // Throw away eval information until we implement stacktrace.js/stackframe#8\n                    line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n                }\n                var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n                // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n                // case it has spaces in it, as the string is split on \\s+ later on\n                var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n                // remove the parenthesized location from the line, if it was matched\n                sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n                var tokens = sanitizedLine.split(/\\s+/).slice(1);\n                // if a location was matched, pass it to extractLocation() otherwise pop the last token\n                var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n                var functionName = tokens.join(' ') || undefined;\n                var fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n                return new StackFrame({\n                    functionName: functionName,\n                    fileName: fileName,\n                    lineNumber: locationParts[1],\n                    columnNumber: locationParts[2],\n                    source: line\n                });\n            }, this);\n        },\n\n        parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n            }, this);\n\n            return filtered.map(function(line) {\n                // Throw away eval information until we implement stacktrace.js/stackframe#8\n                if (line.indexOf(' > eval') > -1) {\n                    line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n                }\n\n                if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n                    // Safari eval frames only have function names and nothing else\n                    return new StackFrame({\n                        functionName: line\n                    });\n                } else {\n                    var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n                    var matches = line.match(functionNameRegex);\n                    var functionName = matches && matches[1] ? matches[1] : undefined;\n                    var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n                    return new StackFrame({\n                        functionName: functionName,\n                        fileName: locationParts[0],\n                        lineNumber: locationParts[1],\n                        columnNumber: locationParts[2],\n                        source: line\n                    });\n                }\n            }, this);\n        },\n\n        parseOpera: function ErrorStackParser$$parseOpera(e) {\n            if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n                e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n                return this.parseOpera9(e);\n            } else if (!e.stack) {\n                return this.parseOpera10(e);\n            } else {\n                return this.parseOpera11(e);\n            }\n        },\n\n        parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n            var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n            var lines = e.message.split('\\n');\n            var result = [];\n\n            for (var i = 2, len = lines.length; i < len; i += 2) {\n                var match = lineRE.exec(lines[i]);\n                if (match) {\n                    result.push(new StackFrame({\n                        fileName: match[2],\n                        lineNumber: match[1],\n                        source: lines[i]\n                    }));\n                }\n            }\n\n            return result;\n        },\n\n        parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n            var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n            var lines = e.stacktrace.split('\\n');\n            var result = [];\n\n            for (var i = 0, len = lines.length; i < len; i += 2) {\n                var match = lineRE.exec(lines[i]);\n                if (match) {\n                    result.push(\n                        new StackFrame({\n                            functionName: match[3] || undefined,\n                            fileName: match[2],\n                            lineNumber: match[1],\n                            source: lines[i]\n                        })\n                    );\n                }\n            }\n\n            return result;\n        },\n\n        // Opera 10.65+ Error.stack very similar to FF/Safari\n        parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n            }, this);\n\n            return filtered.map(function(line) {\n                var tokens = line.split('@');\n                var locationParts = this.extractLocation(tokens.pop());\n                var functionCall = (tokens.shift() || '');\n                var functionName = functionCall\n                    .replace(/<anonymous function(: (\\w+))?>/, '$2')\n                    .replace(/\\([^)]*\\)/g, '') || undefined;\n                var argsRaw;\n                if (functionCall.match(/\\(([^)]*)\\)/)) {\n                    argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n                }\n                var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n                    undefined : argsRaw.split(',');\n\n                return new StackFrame({\n                    functionName: functionName,\n                    args: args,\n                    fileName: locationParts[0],\n                    lineNumber: locationParts[1],\n                    columnNumber: locationParts[2],\n                    source: line\n                });\n            }, this);\n        }\n    };\n}));\n\n\n/***/ }),\n\n/***/ 468:\n/***/ ((module) => {\n\n\n/**\n * Expose `isError`.\n */\n\nmodule.exports = isError;\n\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction isError(value) {\n  switch (Object.prototype.toString.call(value)) {\n    case '[object Error]': return true;\n    case '[object Exception]': return true;\n    case '[object DOMException]': return true;\n    default: return value instanceof Error;\n  }\n}\n\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (true) {\n        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(550)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n    } else {}\n}(this, function(StackFrame) {\n    return {\n        backtrace: function StackGenerator$$backtrace(opts) {\n            var stack = [];\n            var maxStackSize = 10;\n\n            if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n                maxStackSize = opts.maxStackSize;\n            }\n\n            var curr = arguments.callee;\n            while (curr && stack.length < maxStackSize && curr['arguments']) {\n                // Allow V8 optimizations\n                var args = new Array(curr['arguments'].length);\n                for (var i = 0; i < args.length; ++i) {\n                    args[i] = curr['arguments'][i];\n                }\n                if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n                    stack.push(new StackFrame({functionName: RegExp.$1 || undefined, args: args}));\n                } else {\n                    stack.push(new StackFrame({args: args}));\n                }\n\n                try {\n                    curr = curr.caller;\n                } catch (e) {\n                    break;\n                }\n            }\n            return stack;\n        }\n    };\n}));\n\n\n/***/ }),\n\n/***/ 550:\n/***/ (function(module, exports) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (true) {\n        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n    } else {}\n}(this, function() {\n    'use strict';\n    function _isNumber(n) {\n        return !isNaN(parseFloat(n)) && isFinite(n);\n    }\n\n    function _capitalize(str) {\n        return str.charAt(0).toUpperCase() + str.substring(1);\n    }\n\n    function _getter(p) {\n        return function() {\n            return this[p];\n        };\n    }\n\n    var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n    var numericProps = ['columnNumber', 'lineNumber'];\n    var stringProps = ['fileName', 'functionName', 'source'];\n    var arrayProps = ['args'];\n    var objectProps = ['evalOrigin'];\n\n    var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps);\n\n    function StackFrame(obj) {\n        if (!obj) return;\n        for (var i = 0; i < props.length; i++) {\n            if (obj[props[i]] !== undefined) {\n                this['set' + _capitalize(props[i])](obj[props[i]]);\n            }\n        }\n    }\n\n    StackFrame.prototype = {\n        getArgs: function() {\n            return this.args;\n        },\n        setArgs: function(v) {\n            if (Object.prototype.toString.call(v) !== '[object Array]') {\n                throw new TypeError('Args must be an Array');\n            }\n            this.args = v;\n        },\n\n        getEvalOrigin: function() {\n            return this.evalOrigin;\n        },\n        setEvalOrigin: function(v) {\n            if (v instanceof StackFrame) {\n                this.evalOrigin = v;\n            } else if (v instanceof Object) {\n                this.evalOrigin = new StackFrame(v);\n            } else {\n                throw new TypeError('Eval Origin must be an Object or StackFrame');\n            }\n        },\n\n        toString: function() {\n            var fileName = this.getFileName() || '';\n            var lineNumber = this.getLineNumber() || '';\n            var columnNumber = this.getColumnNumber() || '';\n            var functionName = this.getFunctionName() || '';\n            if (this.getIsEval()) {\n                if (fileName) {\n                    return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n                }\n                return '[eval]:' + lineNumber + ':' + columnNumber;\n            }\n            if (functionName) {\n                return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n            }\n            return fileName + ':' + lineNumber + ':' + columnNumber;\n        }\n    };\n\n    StackFrame.fromString = function StackFrame$$fromString(str) {\n        var argsStartIndex = str.indexOf('(');\n        var argsEndIndex = str.lastIndexOf(')');\n\n        var functionName = str.substring(0, argsStartIndex);\n        var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n        var locationString = str.substring(argsEndIndex + 1);\n\n        if (locationString.indexOf('@') === 0) {\n            var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n            var fileName = parts[1];\n            var lineNumber = parts[2];\n            var columnNumber = parts[3];\n        }\n\n        return new StackFrame({\n            functionName: functionName,\n            args: args || undefined,\n            fileName: fileName,\n            lineNumber: lineNumber || undefined,\n            columnNumber: columnNumber || undefined\n        });\n    };\n\n    for (var i = 0; i < booleanProps.length; i++) {\n        StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n        StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n            return function(v) {\n                this[p] = Boolean(v);\n            };\n        })(booleanProps[i]);\n    }\n\n    for (var j = 0; j < numericProps.length; j++) {\n        StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n        StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n            return function(v) {\n                if (!_isNumber(v)) {\n                    throw new TypeError(p + ' must be a Number');\n                }\n                this[p] = Number(v);\n            };\n        })(numericProps[j]);\n    }\n\n    for (var k = 0; k < stringProps.length; k++) {\n        StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n        StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n            return function(v) {\n                this[p] = String(v);\n            };\n        })(stringProps[k]);\n    }\n\n    return StackFrame;\n}));\n\n\n/***/ }),\n\n/***/ 112:\n/***/ ((module) => {\n\nclass Breadcrumb {\n  constructor (message, metadata, type, timestamp = new Date()) {\n    this.type = type\n    this.message = message\n    this.metadata = metadata\n    this.timestamp = timestamp\n  }\n\n  toJSON () {\n    return {\n      type: this.type,\n      name: this.message,\n      timestamp: this.timestamp,\n      metaData: this.metadata\n    }\n  }\n}\n\nmodule.exports = Breadcrumb\n\n\n/***/ }),\n\n/***/ 478:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst config = __webpack_require__(223)\nconst Event = __webpack_require__(717)\nconst Breadcrumb = __webpack_require__(112)\nconst Session = __webpack_require__(669)\nconst map = __webpack_require__(628)\nconst includes = __webpack_require__(957)\nconst filter = __webpack_require__(978)\nconst reduce = __webpack_require__(850)\nconst keys = __webpack_require__(188)\nconst assign = __webpack_require__(465)\nconst runCallbacks = __webpack_require__(969)\nconst metadataDelegate = __webpack_require__(670)\nconst runSyncCallbacks = __webpack_require__(171)\nconst BREADCRUMB_TYPES = __webpack_require__(496)\nconst { add, clear, merge } = __webpack_require__(472)\nconst SECONDARY_ENDPOINT_API_KEY_PREFIX = '00000'\nconst SECONDARY_NOTIFY_ENDPOINT = 'https://notify.bugsnag.smartbear.com'\nconst SECONDARY_SESSIONS_ENDPOINT = 'https://sessions.bugsnag.smartbear.com'\n\nconst noop = () => { }\n\nclass Client {\n  constructor (configuration, schema = config.schema, internalPlugins = [], notifier) {\n    // notifier id\n    this._notifier = notifier\n\n    // intialise opts and config\n    this._config = {}\n    this._schema = schema\n\n    // i/o\n    this._delivery = { sendSession: noop, sendEvent: noop }\n    this._logger = { debug: noop, info: noop, warn: noop, error: noop }\n\n    // plugins\n    this._plugins = {}\n\n    // state\n    this._breadcrumbs = []\n    this._session = null\n    this._metadata = {}\n    this._featuresIndex = {}\n    this._features = []\n    this._context = undefined\n    this._user = {}\n    this._groupingDiscriminator = undefined\n\n    // callbacks:\n    //  e: onError\n    //  s: onSession\n    //  sp: onSessionPayload\n    //  b: onBreadcrumb\n    // (note these names are minified by hand because object\n    // properties are not safe to minify automatically)\n    this._cbs = {\n      e: [],\n      s: [],\n      sp: [],\n      b: []\n    }\n\n    // expose internal constructors\n    this.Client = Client\n    this.Event = Event\n    this.Breadcrumb = Breadcrumb\n    this.Session = Session\n\n    this._config = this._configure(configuration, internalPlugins)\n    map(internalPlugins.concat(this._config.plugins), pl => {\n      if (pl) this._loadPlugin(pl)\n    })\n\n    // when notify() is called we need to know how many frames are from our own source\n    // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n    // bound to have the client as its `this` value – see below.\n    this._depth = 1\n\n    const self = this\n    const notify = this.notify\n    this.notify = function () {\n      return notify.apply(self, arguments)\n    }\n  }\n\n  addMetadata (section, keyOrObj, maybeVal) {\n    return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n  }\n\n  getMetadata (section, key) {\n    return metadataDelegate.get(this._metadata, section, key)\n  }\n\n  clearMetadata (section, key) {\n    return metadataDelegate.clear(this._metadata, section, key)\n  }\n\n  addFeatureFlag (name, variant = null) {\n    add(this._features, this._featuresIndex, name, variant)\n  }\n\n  addFeatureFlags (featureFlags) {\n    merge(this._features, featureFlags, this._featuresIndex)\n  }\n\n  clearFeatureFlag (name) {\n    clear(this._features, this._featuresIndex, name)\n  }\n\n  clearFeatureFlags () {\n    this._features = []\n    this._featuresIndex = {}\n  }\n\n  getContext () {\n    return this._context\n  }\n\n  setContext (c) {\n    this._context = c\n  }\n\n  getGroupingDiscriminator () {\n    return this._groupingDiscriminator\n  }\n\n  setGroupingDiscriminator (value) {\n    const previousValue = this._groupingDiscriminator\n    if (typeof value === 'string' || value === null || value === undefined) this._groupingDiscriminator = value\n    return previousValue\n  }\n\n  _configure (opts, internalPlugins) {\n    const schema = reduce(internalPlugins, (schema, plugin) => {\n      if (plugin && plugin.configSchema) return assign({}, schema, plugin.configSchema)\n      return schema\n    }, this._schema)\n\n    // sendPayloadChecksums is false by default unless custom endpoints are not specified\n    if (!opts.endpoints) {\n      opts.sendPayloadChecksums = 'sendPayloadChecksums' in opts ? opts.sendPayloadChecksums : true\n    }\n\n    // accumulate configuration and error messages\n    const { errors, config } = reduce(keys(schema), (accum, key) => {\n      const defaultValue = schema[key].defaultValue(opts[key])\n\n      if (opts[key] !== undefined) {\n        const valid = schema[key].validate(opts[key])\n        if (!valid) {\n          accum.errors[key] = schema[key].message\n          accum.config[key] = defaultValue\n        } else {\n          if (schema[key].allowPartialObject) {\n            accum.config[key] = assign(defaultValue, opts[key])\n          } else {\n            accum.config[key] = opts[key]\n          }\n        }\n      } else {\n        accum.config[key] = defaultValue\n      }\n\n      return accum\n    }, { errors: {}, config: {} })\n\n    if (schema.apiKey) {\n      // missing api key is the only fatal error\n      if (!config.apiKey) throw new Error('No Bugsnag API Key set')\n      // warn about an apikey that is not of the expected format\n      if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters'\n\n      if (opts.endpoints === undefined && config.apiKey.indexOf(SECONDARY_ENDPOINT_API_KEY_PREFIX) === 0) {\n        config.endpoints = {\n          notify: SECONDARY_NOTIFY_ENDPOINT,\n          sessions: SECONDARY_SESSIONS_ENDPOINT\n        }\n      }\n    }\n\n    // update and elevate some options\n    this._metadata = assign({}, config.metadata)\n    merge(this._features, config.featureFlags, this._featuresIndex)\n    this._user = assign({}, config.user)\n    this._context = config.context\n    if (config.logger) this._logger = config.logger\n\n    // add callbacks\n    if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError)\n    if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb)\n    if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession)\n\n    // finally warn about any invalid config where we fell back to the default\n    if (keys(errors).length) {\n      this._logger.warn(generateConfigErrorMessage(errors, opts))\n    }\n\n    return config\n  }\n\n  getUser () {\n    return this._user\n  }\n\n  setUser (id, email, name) {\n    this._user = { id, email, name }\n  }\n\n  _loadPlugin (plugin) {\n    const result = plugin.load(this)\n    // JS objects are not the safest way to store arbitrarily keyed values,\n    // so bookend the key with some characters that prevent tampering with\n    // stuff like __proto__ etc. (only store the result if the plugin had a\n    // name)\n    if (plugin.name) this._plugins[`~${plugin.name}~`] = result\n  }\n\n  getPlugin (name) {\n    return this._plugins[`~${name}~`]\n  }\n\n  _setDelivery (d) {\n    this._delivery = d(this)\n  }\n\n  startSession () {\n    const session = new Session()\n\n    session.app.releaseStage = this._config.releaseStage\n    session.app.version = this._config.appVersion\n    session.app.type = this._config.appType\n\n    session._user = assign({}, this._user)\n\n    // run onSession callbacks\n    const ignore = runSyncCallbacks(this._cbs.s, session, 'onSession', this._logger)\n\n    if (ignore) {\n      this._logger.debug('Session not started due to onSession callback')\n      return this\n    }\n\n    return this._sessionDelegate.startSession(this, session)\n  }\n\n  addOnError (fn, front = false) {\n    this._cbs.e[front ? 'unshift' : 'push'](fn)\n  }\n\n  removeOnError (fn) {\n    this._cbs.e = filter(this._cbs.e, f => f !== fn)\n  }\n\n  _addOnSessionPayload (fn) {\n    this._cbs.sp.push(fn)\n  }\n\n  addOnSession (fn) {\n    this._cbs.s.push(fn)\n  }\n\n  removeOnSession (fn) {\n    this._cbs.s = filter(this._cbs.s, f => f !== fn)\n  }\n\n  addOnBreadcrumb (fn, front = false) {\n    this._cbs.b[front ? 'unshift' : 'push'](fn)\n  }\n\n  removeOnBreadcrumb (fn) {\n    this._cbs.b = filter(this._cbs.b, f => f !== fn)\n  }\n\n  pauseSession () {\n    return this._sessionDelegate.pauseSession(this)\n  }\n\n  resumeSession () {\n    return this._sessionDelegate.resumeSession(this)\n  }\n\n  leaveBreadcrumb (message, metadata, type) {\n    // coerce bad values so that the defaults get set\n    message = typeof message === 'string' ? message : ''\n    type = (typeof type === 'string' && includes(BREADCRUMB_TYPES, type)) ? type : 'manual'\n    metadata = typeof metadata === 'object' && metadata !== null ? metadata : {}\n\n    // if no message, discard\n    if (!message) return\n\n    const crumb = new Breadcrumb(message, metadata, type)\n\n    // run onBreadcrumb callbacks\n    const ignore = runSyncCallbacks(this._cbs.b, crumb, 'onBreadcrumb', this._logger)\n\n    if (ignore) {\n      this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback')\n      return\n    }\n\n    // push the valid crumb onto the queue and maintain the length\n    this._breadcrumbs.push(crumb)\n    if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n      this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs)\n    }\n  }\n\n  _isBreadcrumbTypeEnabled (type) {\n    const types = this._config.enabledBreadcrumbTypes\n\n    return types === null || includes(types, type)\n  }\n\n  notify (maybeError, onError, postReportCallback = noop) {\n    const event = Event.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger)\n    this._notify(event, onError, postReportCallback)\n  }\n\n  _notify (event, onError, postReportCallback = noop) {\n    event.app = assign({}, event.app, {\n      releaseStage: this._config.releaseStage,\n      version: this._config.appVersion,\n      type: this._config.appType\n    })\n    event.context = event.context || this._context\n    event._metadata = assign({}, event._metadata, this._metadata)\n    event._user = assign({}, event._user, this._user)\n    event.breadcrumbs = this._breadcrumbs.slice()\n    event.setGroupingDiscriminator(this._groupingDiscriminator)\n    merge(event._features, this._features, event._featuresIndex)\n\n    // exit early if events should not be sent on the current releaseStage\n    if (this._config.enabledReleaseStages !== null && !includes(this._config.enabledReleaseStages, this._config.releaseStage)) {\n      this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration')\n      return postReportCallback(null, event)\n    }\n\n    const originalSeverity = event.severity\n\n    const onCallbackError = err => {\n      // errors in callbacks are tolerated but we want to log them out\n      this._logger.error('Error occurred in onError callback, continuing anyway…')\n      this._logger.error(err)\n    }\n\n    const callbacks = [].concat(this._cbs.e).concat(onError)\n    runCallbacks(callbacks, event, onCallbackError, (err, shouldSend) => {\n      if (err) onCallbackError(err)\n\n      if (!shouldSend) {\n        this._logger.debug('Event not sent due to onError callback')\n        return postReportCallback(null, event)\n      }\n\n      if (this._isBreadcrumbTypeEnabled('error')) {\n        // only leave a crumb for the error if actually got sent\n        Client.prototype.leaveBreadcrumb.call(this, event.errors[0].errorClass, {\n          errorClass: event.errors[0].errorClass,\n          errorMessage: event.errors[0].errorMessage,\n          severity: event.severity\n        }, 'error')\n      }\n\n      if (originalSeverity !== event.severity) {\n        event._handledState.severityReason = { type: 'userCallbackSetSeverity' }\n      }\n\n      if (event.unhandled !== event._handledState.unhandled) {\n        event._handledState.severityReason.unhandledOverridden = true\n        event._handledState.unhandled = event.unhandled\n      }\n\n      if (this._session) {\n        this._session._track(event)\n        event._session = this._session\n      }\n\n      this._delivery.sendEvent({\n        apiKey: event.apiKey || this._config.apiKey,\n        notifier: this._notifier,\n        events: [event]\n      }, (err) => postReportCallback(err, event))\n    })\n  }\n}\n\nconst generateConfigErrorMessage = (errors, rawInput) => {\n  const er = new Error(\n    `Invalid configuration\\n${map(keys(errors), key => `  - ${key} ${errors[key]}, got ${stringify(rawInput[key])}`).join('\\n\\n')}`)\n  return er\n}\n\nconst stringify = val => {\n  switch (typeof val) {\n    case 'string':\n    case 'number':\n    case 'object':\n      return JSON.stringify(val)\n    default: return String(val)\n  }\n}\n\nmodule.exports = Client\n\n\n/***/ }),\n\n/***/ 223:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst filter = __webpack_require__(978)\nconst reduce = __webpack_require__(850)\nconst keys = __webpack_require__(188)\nconst isArray = __webpack_require__(424)\nconst includes = __webpack_require__(957)\nconst intRange = __webpack_require__(960)\nconst stringWithLength = __webpack_require__(142)\nconst listOfFunctions = __webpack_require__(483)\n\nconst BREADCRUMB_TYPES = __webpack_require__(496)\nconst defaultErrorTypes = () => ({ unhandledExceptions: true, unhandledRejections: true })\n\nmodule.exports.schema = {\n  apiKey: {\n    defaultValue: () => null,\n    message: 'is required',\n    validate: stringWithLength\n  },\n  appVersion: {\n    defaultValue: () => undefined,\n    message: 'should be a string',\n    validate: value => value === undefined || stringWithLength(value)\n  },\n  appType: {\n    defaultValue: () => undefined,\n    message: 'should be a string',\n    validate: value => value === undefined || stringWithLength(value)\n  },\n  autoDetectErrors: {\n    defaultValue: () => true,\n    message: 'should be true|false',\n    validate: value => value === true || value === false\n  },\n  enabledErrorTypes: {\n    defaultValue: () => defaultErrorTypes(),\n    message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n    allowPartialObject: true,\n    validate: value => {\n      // ensure we have an object\n      if (typeof value !== 'object' || !value) return false\n      const providedKeys = keys(value)\n      const defaultKeys = keys(defaultErrorTypes())\n      // ensure it only has a subset of the allowed keys\n      if (filter(providedKeys, k => includes(defaultKeys, k)).length < providedKeys.length) return false\n      // ensure all of the values are boolean\n      if (filter(keys(value), k => typeof value[k] !== 'boolean').length > 0) return false\n      return true\n    }\n  },\n  onError: {\n    defaultValue: () => [],\n    message: 'should be a function or array of functions',\n    validate: listOfFunctions\n  },\n  onSession: {\n    defaultValue: () => [],\n    message: 'should be a function or array of functions',\n    validate: listOfFunctions\n  },\n  onBreadcrumb: {\n    defaultValue: () => [],\n    message: 'should be a function or array of functions',\n    validate: listOfFunctions\n  },\n  endpoints: {\n    defaultValue: (endpoints) => {\n      // only apply the default value if no endpoints have been provided, otherwise prevent delivery by setting to null\n      if (typeof endpoints === 'undefined') {\n        return ({\n          notify: 'https://notify.bugsnag.com',\n          sessions: 'https://sessions.bugsnag.com'\n        })\n      } else {\n        return ({ notify: null, sessions: null })\n      }\n    },\n    message: 'should be an object containing endpoint URLs { notify, sessions }',\n    validate: (val) =>\n      // first, ensure it's an object\n      (val && typeof val === 'object') &&\n      (\n        // notify and sessions must always be set\n        stringWithLength(val.notify) && stringWithLength(val.sessions)\n      ) &&\n      // ensure no keys other than notify/session are set on endpoints object\n      filter(keys(val), k => !includes(['notify', 'sessions'], k)).length === 0\n  },\n  autoTrackSessions: {\n    defaultValue: val => true,\n    message: 'should be true|false',\n    validate: val => val === true || val === false\n  },\n  enabledReleaseStages: {\n    defaultValue: () => null,\n    message: 'should be an array of strings',\n    validate: value => value === null || (isArray(value) && filter(value, f => typeof f === 'string').length === value.length)\n  },\n  releaseStage: {\n    defaultValue: () => 'production',\n    message: 'should be a string',\n    validate: value => typeof value === 'string' && value.length\n  },\n  maxBreadcrumbs: {\n    defaultValue: () => 25,\n    message: 'should be a number ≤100',\n    validate: value => intRange(0, 100)(value)\n  },\n  enabledBreadcrumbTypes: {\n    defaultValue: () => BREADCRUMB_TYPES,\n    message: `should be null or a list of available breadcrumb types (${BREADCRUMB_TYPES.join(',')})`,\n    validate: value => value === null || (isArray(value) && reduce(value, (accum, maybeType) => {\n      if (accum === false) return accum\n      return includes(BREADCRUMB_TYPES, maybeType)\n    }, true))\n  },\n  context: {\n    defaultValue: () => undefined,\n    message: 'should be a string',\n    validate: value => value === undefined || typeof value === 'string'\n  },\n  user: {\n    defaultValue: () => ({}),\n    message: 'should be an object with { id, email, name } properties',\n    validate: value =>\n      (value === null) ||\n      (value && reduce(\n        keys(value),\n        (accum, key) => accum && includes(['id', 'email', 'name'], key),\n        true\n      ))\n  },\n  metadata: {\n    defaultValue: () => ({}),\n    message: 'should be an object',\n    validate: (value) => typeof value === 'object' && value !== null\n  },\n  logger: {\n    defaultValue: () => undefined,\n    message: 'should be null or an object with methods { debug, info, warn, error }',\n    validate: value =>\n      (!value) ||\n      (value && reduce(\n        ['debug', 'info', 'warn', 'error'],\n        (accum, method) => accum && typeof value[method] === 'function',\n        true\n      ))\n  },\n  redactedKeys: {\n    defaultValue: () => ['password'],\n    message: 'should be an array of strings|regexes',\n    validate: value =>\n      isArray(value) && value.length === filter(value, s =>\n        (typeof s === 'string' || (s && typeof s.test === 'function'))\n      ).length\n  },\n  plugins: {\n    defaultValue: () => ([]),\n    message: 'should be an array of plugin objects',\n    validate: value =>\n      isArray(value) && value.length === filter(value, p =>\n        (p && typeof p === 'object' && typeof p.load === 'function')\n      ).length\n  },\n  featureFlags: {\n    defaultValue: () => [],\n    message: 'should be an array of objects that have a \"name\" property',\n    validate: value =>\n      isArray(value) && value.length === filter(value, feature =>\n        feature && typeof feature === 'object' && typeof feature.name === 'string'\n      ).length\n  },\n  reportUnhandledPromiseRejectionsAsHandled: {\n    defaultValue: () => false,\n    message: 'should be true|false',\n    validate: value => value === true || value === false\n  },\n  sendPayloadChecksums: {\n    defaultValue: () => false,\n    message: 'should be true|false',\n    validate: value => value === true || value === false\n  }\n}\n\n\n/***/ }),\n\n/***/ 717:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst ErrorStackParser = __webpack_require__(480)\nconst StackGenerator = __webpack_require__(14)\nconst hasStack = __webpack_require__(744)\nconst map = __webpack_require__(628)\nconst reduce = __webpack_require__(850)\nconst filter = __webpack_require__(978)\nconst assign = __webpack_require__(465)\nconst metadataDelegate = __webpack_require__(670)\nconst featureFlagDelegate = __webpack_require__(472)\nconst isError = __webpack_require__(43)\n\nclass Event {\n  constructor (errorClass, errorMessage, stacktrace = [], handledState = defaultHandledState(), originalError) {\n    this.apiKey = undefined\n    this.context = undefined\n    this.groupingHash = undefined\n    this.originalError = originalError\n\n    this._handledState = handledState\n    this.severity = this._handledState.severity\n    this.unhandled = this._handledState.unhandled\n\n    this.app = {}\n    this.device = {}\n    this.request = {}\n    this.response = {}\n\n    this.breadcrumbs = []\n    this.threads = []\n\n    this._metadata = {}\n    this._features = []\n    this._featuresIndex = {}\n    this._user = {}\n    this._session = undefined\n    this._correlation = undefined\n    this._groupingDiscriminator = undefined\n\n    this.errors = [\n      createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)\n    ]\n\n    // Flags.\n    // Note these are not initialised unless they are used\n    // to save unnecessary bytes in the browser bundle\n\n    /* this.attemptImmediateDelivery, default: true */\n  }\n\n  addMetadata (section, keyOrObj, maybeVal) {\n    return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n  }\n\n  /**\n     * Associate this event with a specific trace. This is usually done automatically when\n     * using bugsnag-js-performance, but can also be set manually if required.\n     *\n     * @param traceId the ID of the trace the event occurred within\n     * @param spanId the ID of the span that the event occurred within\n     */\n  setTraceCorrelation (traceId, spanId) {\n    if (typeof traceId === 'string') {\n      this._correlation = { traceId, ...typeof spanId === 'string' ? { spanId } : { } }\n    }\n  }\n\n  getGroupingDiscriminator () {\n    return this._groupingDiscriminator\n  }\n\n  setGroupingDiscriminator (value) {\n    const previousValue = this._groupingDiscriminator\n    if (typeof value === 'string' || value === null || value === undefined) this._groupingDiscriminator = value\n    return previousValue\n  }\n\n  getMetadata (section, key) {\n    return metadataDelegate.get(this._metadata, section, key)\n  }\n\n  clearMetadata (section, key) {\n    return metadataDelegate.clear(this._metadata, section, key)\n  }\n\n  addFeatureFlag (name, variant = null) {\n    featureFlagDelegate.add(this._features, this._featuresIndex, name, variant)\n  }\n\n  addFeatureFlags (featureFlags) {\n    featureFlagDelegate.merge(this._features, featureFlags, this._featuresIndex)\n  }\n\n  getFeatureFlags () {\n    return featureFlagDelegate.toEventApi(this._features)\n  }\n\n  clearFeatureFlag (name) {\n    featureFlagDelegate.clear(this._features, this._featuresIndex, name)\n  }\n\n  clearFeatureFlags () {\n    this._features = []\n    this._featuresIndex = {}\n  }\n\n  getUser () {\n    return this._user\n  }\n\n  setUser (id, email, name) {\n    this._user = { id, email, name }\n  }\n\n  toJSON () {\n    return {\n      payloadVersion: '4',\n      exceptions: map(this.errors, er => assign({}, er, { message: er.errorMessage })),\n      severity: this.severity,\n      unhandled: this._handledState.unhandled,\n      severityReason: this._handledState.severityReason,\n      app: this.app,\n      device: this.device,\n      request: this.request,\n      response: this.response,\n      breadcrumbs: this.breadcrumbs,\n      context: this.context,\n      groupingHash: this.groupingHash,\n      groupingDiscriminator: this._groupingDiscriminator,\n      metaData: this._metadata,\n      user: this._user,\n      session: this._session,\n      featureFlags: this.getFeatureFlags(),\n      correlation: this._correlation\n    }\n  }\n}\n\n// takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\nconst formatStackframe = frame => {\n  const f = {\n    file: frame.fileName,\n    method: normaliseFunctionName(frame.functionName),\n    lineNumber: frame.lineNumber,\n    columnNumber: frame.columnNumber,\n    code: undefined,\n    inProject: undefined\n  }\n  // Some instances result in no file:\n  // - calling notify() from chrome's terminal results in no file/method.\n  // - non-error exception thrown from global code in FF\n  // This adds one.\n  if (f.lineNumber > -1 && !f.file && !f.method) {\n    f.file = 'global code'\n  }\n  return f\n}\n\nconst normaliseFunctionName = name => /^global code$/i.test(name) ? 'global code' : name\n\nconst defaultHandledState = () => ({\n  unhandled: false,\n  severity: 'warning',\n  severityReason: { type: 'handledException' }\n})\n\nconst ensureString = (str) => typeof str === 'string' ? str : ''\n\nfunction createBugsnagError (errorClass, errorMessage, type, stacktrace) {\n  return {\n    errorClass: ensureString(errorClass),\n    errorMessage: ensureString(errorMessage),\n    type,\n    stacktrace: reduce(stacktrace, (accum, frame) => {\n      const f = formatStackframe(frame)\n      // don't include a stackframe if none of its properties are defined\n      try {\n        if (JSON.stringify(f) === '{}') return accum\n        return accum.concat(f)\n      } catch (e) {\n        return accum\n      }\n    }, [])\n  }\n}\n\nfunction getCauseStack (error) {\n  if (error.cause) {\n    return [error, ...getCauseStack(error.cause)]\n  } else {\n    return [error]\n  }\n}\n\n// Helpers\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n  if (hasStack(error)) return ErrorStackParser.parse(error).slice(errorFramesToSkip)\n  // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n  try {\n    return filter(StackGenerator.backtrace(), frame =>\n      (frame.functionName || '').indexOf('StackGenerator$$') === -1\n    ).slice(1 + backtraceFramesToSkip)\n  } catch (e) {\n    return []\n  }\n}\n\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip = 0, logger) {\n  const [error, internalFrames] = normaliseError(maybeError, tolerateNonErrors, component, logger)\n  let event\n  try {\n    const stacktrace = Event.getStacktrace(\n      error,\n      // if an error was created/throw in the normaliseError() function, we need to\n      // tell the getStacktrace() function to skip the number of frames we know will\n      // be from our own functions. This is added to the number of frames deep we\n      // were told about\n      internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0,\n      // if there's no stacktrace, the callstack may be walked to generated one.\n      // this is how many frames should be removed because they come from our library\n      1 + errorFramesToSkip\n    )\n    event = new Event(error.name, error.message, stacktrace, handledState, maybeError)\n  } catch (e) {\n    event = new Event(error.name, error.message, [], handledState, maybeError)\n  }\n  if (error.name === 'InvalidError') {\n    event.addMetadata(`${component}`, 'non-error parameter', makeSerialisable(maybeError))\n  }\n  if (error.cause) {\n    const causes = getCauseStack(error).slice(1)\n    const normalisedCauses = map(causes, (cause) => {\n      // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n      const stacktrace = (isError(cause) && hasStack(cause)) ? ErrorStackParser.parse(cause) : []\n      const [error] = normaliseError(cause, true, 'error cause')\n      if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause))\n      return createBugsnagError(error.name, error.message, Event.__type, stacktrace)\n    })\n\n    event.errors.push(...normalisedCauses)\n  }\n\n  return event\n}\n\nconst makeSerialisable = (err) => {\n  if (err === null) return 'null'\n  if (err === undefined) return 'undefined'\n  return err\n}\n\nconst normaliseError = (maybeError, tolerateNonErrors, component, logger) => {\n  let error\n  let internalFrames = 0\n\n  const createAndLogInputError = (reason) => {\n    const verb = (component === 'error cause' ? 'was' : 'received')\n    if (logger) logger.warn(`${component} ${verb} a non-error: \"${reason}\"`)\n    const err = new Error(`${component} ${verb} a non-error. See \"${component}\" tab for more detail.`)\n    err.name = 'InvalidError'\n    return err\n  }\n\n  // In some cases:\n  //\n  //  - the promise rejection handler (both in the browser and node)\n  //  - the node uncaughtException handler\n  //\n  // We are really limited in what we can do to get a stacktrace. So we use the\n  // tolerateNonErrors option to ensure that the resulting error communicates as\n  // such.\n  if (!tolerateNonErrors) {\n    if (isError(maybeError)) {\n      error = maybeError\n    } else {\n      error = createAndLogInputError(typeof maybeError)\n      internalFrames += 2\n    }\n  } else {\n    switch (typeof maybeError) {\n      case 'string':\n      case 'number':\n      case 'boolean':\n        error = new Error(String(maybeError))\n        internalFrames += 1\n        break\n      case 'function':\n        error = createAndLogInputError('function')\n        internalFrames += 2\n        break\n      case 'object':\n        if (maybeError !== null && isError(maybeError)) {\n          error = maybeError\n        } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n          error = new Error(maybeError.message || maybeError.errorMessage)\n          error.name = maybeError.name || maybeError.errorClass\n          internalFrames += 1\n        } else {\n          error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object')\n          internalFrames += 2\n        }\n        break\n      default:\n        error = createAndLogInputError('nothing')\n        internalFrames += 2\n    }\n  }\n\n  if (!hasStack(error)) {\n    // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n    try {\n      throw error\n    } catch (e) {\n      if (hasStack(e)) {\n        error = e\n        // if the error only got a stacktrace after we threw it here, we know it\n        // will only have one extra internal frame from this function, regardless\n        // of whether it went through createAndLogInputError() or not\n        internalFrames = 1\n      }\n    }\n  }\n\n  return [error, internalFrames]\n}\n\n// default value for stacktrace.type\nEvent.__type = 'browserjs'\n\nconst hasNecessaryFields = error =>\n  (typeof error.name === 'string' || typeof error.errorClass === 'string') &&\n  (typeof error.message === 'string' || typeof error.errorMessage === 'string')\n\nmodule.exports = Event\n\n\n/***/ }),\n\n/***/ 179:\n/***/ ((module) => {\n\n// This is a heavily modified/simplified version of\n//   https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n//   - fn(item, cb) => calls cb(null, false)\n//   - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nmodule.exports = (arr, fn, cb) => {\n  let index = 0\n\n  const next = () => {\n    if (index >= arr.length) return cb(null, true)\n    fn(arr[index], (err, result) => {\n      if (err) return cb(err)\n      if (result === false) return cb(null, false)\n      index++\n      next()\n    })\n  }\n\n  next()\n}\n\n\n/***/ }),\n\n/***/ 496:\n/***/ ((module) => {\n\nmodule.exports = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual']\n\n\n/***/ }),\n\n/***/ 969:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst some = __webpack_require__(179)\n\nmodule.exports = (callbacks, event, onCallbackError, cb) => {\n  // This function is how we support different kinds of callback:\n  //  - synchronous - return value\n  //  - node-style async with callback - cb(err, value)\n  //  - promise/thenable - resolve(value)\n  // It normalises each of these into the lowest common denominator – a node-style callback\n  const runMaybeAsyncCallback = (fn, cb) => {\n    if (typeof fn !== 'function') return cb(null)\n    try {\n      // if function appears sync…\n      if (fn.length !== 2) {\n        const ret = fn(event)\n        // check if it returned a \"thenable\" (promise)\n        if (ret && typeof ret.then === 'function') {\n          return ret.then(\n            // resolve\n            val => setTimeout(() => cb(null, val)),\n            // reject\n            err => {\n              setTimeout(() => {\n                onCallbackError(err)\n                return cb(null, true)\n              })\n            }\n          )\n        }\n        return cb(null, ret)\n      }\n      // if function is async…\n      fn(event, (err, result) => {\n        if (err) {\n          onCallbackError(err)\n          return cb(null)\n        }\n        cb(null, result)\n      })\n    } catch (e) {\n      onCallbackError(e)\n      cb(null)\n    }\n  }\n\n  some(callbacks, runMaybeAsyncCallback, cb)\n}\n\n\n/***/ }),\n\n/***/ 480:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports = __webpack_require__(482)\n\n\n/***/ }),\n\n/***/ 465:\n/***/ ((module) => {\n\n// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nmodule.exports = function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i]\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key]\n      }\n    }\n  }\n  return target\n}\n\n\n/***/ }),\n\n/***/ 978:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst reduce = __webpack_require__(850)\n\n// Array#filter\nmodule.exports = (arr, fn) =>\n  reduce(arr, (accum, item, i, arr) => !fn(item, i, arr) ? accum : accum.concat(item), [])\n\n\n/***/ }),\n\n/***/ 957:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst reduce = __webpack_require__(850)\n// Array#includes\nmodule.exports = (arr, x) =>\n  reduce(arr, (accum, item, i, arr) => accum === true || item === x, false)\n\n\n/***/ }),\n\n/***/ 424:\n/***/ ((module) => {\n\n// Array#isArray\nmodule.exports = obj => Object.prototype.toString.call(obj) === '[object Array]'\n\n\n/***/ }),\n\n/***/ 188:\n/***/ ((module) => {\n\n/* eslint-disable-next-line no-prototype-builtins */\nconst _hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString')\nconst _dontEnums = [\n  'toString', 'toLocaleString', 'valueOf', 'hasOwnProperty',\n  'isPrototypeOf', 'propertyIsEnumerable', 'constructor'\n]\n\n// Object#keys\nmodule.exports = obj => {\n  // stripped down version of\n  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n  const result = []\n  let prop\n  for (prop in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop)\n  }\n  if (!_hasDontEnumBug) return result\n  for (let i = 0, len = _dontEnums.length; i < len; i++) {\n    if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i])\n  }\n  return result\n}\n\n\n/***/ }),\n\n/***/ 628:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst reduce = __webpack_require__(850)\n\n// Array#map\nmodule.exports = (arr, fn) =>\n  reduce(arr, (accum, item, i, arr) => accum.concat(fn(item, i, arr)), [])\n\n\n/***/ }),\n\n/***/ 850:\n/***/ ((module) => {\n\n// Array#reduce\nmodule.exports = (arr, fn, accum) => {\n  let val = accum\n  for (let i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr)\n  return val\n}\n\n\n/***/ }),\n\n/***/ 472:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst map = __webpack_require__(628)\nconst filter = __webpack_require__(978)\nconst isArray = __webpack_require__(424)\nconst jsonStringify = __webpack_require__(876)\n\nfunction add (existingFeatures, existingFeatureKeys, name, variant) {\n  if (typeof name !== 'string') {\n    return\n  }\n\n  if (variant === undefined) {\n    variant = null\n  } else if (variant !== null && typeof variant !== 'string') {\n    variant = jsonStringify(variant)\n  }\n\n  const existingIndex = existingFeatureKeys[name]\n  if (typeof existingIndex === 'number') {\n    existingFeatures[existingIndex] = { name, variant }\n    return\n  }\n\n  existingFeatures.push({ name, variant })\n  existingFeatureKeys[name] = existingFeatures.length - 1\n}\n\nfunction merge (existingFeatures, newFeatures, existingFeatureKeys) {\n  if (!isArray(newFeatures)) {\n    return\n  }\n\n  for (let i = 0; i < newFeatures.length; ++i) {\n    const feature = newFeatures[i]\n\n    if (feature === null || typeof feature !== 'object') {\n      continue\n    }\n\n    // 'add' will handle if 'name' doesn't exist & 'variant' is optional\n    add(existingFeatures, existingFeatureKeys, feature.name, feature.variant)\n  }\n\n  return existingFeatures\n}\n\n// convert feature flags from a map of 'name -> variant' into the format required\n// by the Bugsnag Event API:\n//   [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }]\nfunction toEventApi (featureFlags) {\n  return map(\n    filter(featureFlags, Boolean),\n    ({ name, variant }) => {\n      const flag = { featureFlag: name }\n\n      // don't add a 'variant' property unless there's actually a value\n      if (typeof variant === 'string') {\n        flag.variant = variant\n      }\n\n      return flag\n    }\n  )\n}\n\nfunction clear (features, featuresIndex, name) {\n  const existingIndex = featuresIndex[name]\n  if (typeof existingIndex === 'number') {\n    features[existingIndex] = null\n    delete featuresIndex[name]\n  }\n}\n\nmodule.exports = { add, clear, merge, toEventApi }\n\n\n/***/ }),\n\n/***/ 744:\n/***/ ((module) => {\n\n// Given `err` which may be an error, does it have a stack property which is a string?\nmodule.exports = err =>\n  !!err &&\n  (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) &&\n  typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' &&\n  err.stack !== `${err.name}: ${err.message}`\n\n\n/***/ }),\n\n/***/ 43:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports = __webpack_require__(468)\n\n\n/***/ }),\n\n/***/ 68:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst jsonStringify = __webpack_require__(876)\nconst EVENT_REDACTION_PATHS = [\n  'events.[].metaData',\n  'events.[].breadcrumbs.[].metaData',\n  'events.[].request',\n  'events.[].response'\n]\n\nmodule.exports.event = (event, redactedKeys) => {\n  let payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n  if (payload.length > 10e5) {\n    event.events[0]._metadata = {\n      notifier:\n`WARNING!\nSerialized payload was ${payload.length / 10e5}MB (limit = 1MB)\nmetadata was removed`\n    }\n    payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n  }\n  return payload\n}\n\nmodule.exports.session = (session, redactedKeys) => {\n  const payload = jsonStringify(session, null, null)\n  return payload\n}\n\n\n/***/ }),\n\n/***/ 670:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst assign = __webpack_require__(465)\n\nconst add = (state, section, keyOrObj, maybeVal) => {\n  if (!section) return\n  let updates\n\n  // addMetadata(\"section\", null) -> clears section\n  if (keyOrObj === null) return clear(state, section)\n\n  // normalise the two supported input types into object form\n  if (typeof keyOrObj === 'object') updates = keyOrObj\n  if (typeof keyOrObj === 'string') updates = { [keyOrObj]: maybeVal }\n\n  // exit if we don't have an updates object at this point\n  if (!updates) return\n\n  // preventing the __proto__ property from being used as a key\n  if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n    return\n  }\n\n  // ensure a section with this name exists\n  if (!state[section]) state[section] = {}\n\n  // merge the updates with the existing section\n  state[section] = assign({}, state[section], updates)\n}\n\nconst get = (state, section, key) => {\n  if (typeof section !== 'string') return undefined\n  if (!key) {\n    return state[section]\n  }\n  if (state[section]) {\n    return state[section][key]\n  }\n  return undefined\n}\n\nconst clear = (state, section, key) => {\n  if (typeof section !== 'string') return\n\n  // clear an entire section\n  if (!key) {\n    delete state[section]\n    return\n  }\n\n  // preventing the __proto__ property from being used as a key\n  if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n    return\n  }\n\n  // clear a single value from a section\n  if (state[section]) {\n    delete state[section][key]\n  }\n}\n\nmodule.exports = { add, get, clear }\n\n\n/***/ }),\n\n/***/ 171:\n/***/ ((module) => {\n\nmodule.exports = (callbacks, callbackArg, callbackType, logger) => {\n  let ignore = false\n  const cbs = callbacks.slice()\n  while (!ignore) {\n    if (!cbs.length) break\n    try {\n      ignore = cbs.pop()(callbackArg) === false\n    } catch (e) {\n      logger.error(`Error occurred in ${callbackType} callback, continuing anyway…`)\n      logger.error(e)\n    }\n  }\n  return ignore\n}\n\n\n/***/ }),\n\n/***/ 960:\n/***/ ((module) => {\n\nmodule.exports = (min = 1, max = Infinity) => value =>\n  typeof value === 'number' &&\n  parseInt('' + value, 10) === value &&\n  value >= min && value <= max\n\n\n/***/ }),\n\n/***/ 483:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst filter = __webpack_require__(978)\nconst isArray = __webpack_require__(424)\n\nmodule.exports = value => typeof value === 'function' || (isArray(value) && filter(value, f => typeof f === 'function').length === value.length)\n\n\n/***/ }),\n\n/***/ 142:\n/***/ ((module) => {\n\nmodule.exports = value => typeof value === 'string' && !!value.length\n\n\n/***/ }),\n\n/***/ 975:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nconst fingerprint = __webpack_require__(425);\nconst cuid$1 = __webpack_require__(70);\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nconst cuid = cuid$1(fingerprint);\n\nmodule.exports = cuid;\n\n\n/***/ }),\n\n/***/ 70:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nconst isCuid = __webpack_require__(149);\nconst pad = __webpack_require__(146);\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nfunction createCuid (fingerprint) {\n    const blockSize = 4,\n    base = 36,\n    discreteValues = Math.pow(base, blockSize);\n\n    let c = 0;\n\n    function randomBlock () {\n        return pad((Math.random() *\n        discreteValues << 0)\n        .toString(base), blockSize);\n    }\n\n    function safeCounter () {\n        c = c < discreteValues ? c : 0;\n        c++; // this is not subliminal\n        return c - 1;\n    }\n\n    function cuid () {\n        // Starting with a lowercase letter makes\n        // it HTML element ID friendly.\n        var letter = 'c', // hard-coded allows for sequential access\n\n        // timestamp\n        // warning: this exposes the exact date and time\n        // that the uid was created.\n        timestamp = new Date().getTime().toString(base),\n\n        // Prevent same-machine collisions.\n        counter = pad(safeCounter().toString(base), blockSize),\n\n        // A few chars to generate distinct ids for different\n        // clients (so different computers are far less\n        // likely to generate the same id)\n        print = fingerprint(),\n\n        // Grab some more chars from Math.random()\n        random = randomBlock() + randomBlock();\n\n        return letter + timestamp + counter + print + random;\n    }\n\n    cuid.fingerprint = fingerprint;\n    cuid.isCuid = isCuid;\n\n    return cuid;\n}\n\nmodule.exports = createCuid;\n\n\n/***/ }),\n\n/***/ 425:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nconst pad = __webpack_require__(146);\n\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\nfor (var prop in env) {\n  if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = pad((mimeTypesLength +\n  navigator.userAgent.length).toString(36) +\n  globalCount.toString(36), 4);\n\nfunction fingerprint () {\n  return clientId;\n}\n\nmodule.exports = fingerprint;\n\n\n/***/ }),\n\n/***/ 149:\n/***/ ((module) => {\n\n\"use strict\";\n\n\n/**\n * Check the provided value is a valid device id\n * @param {unknown} value\n * @returns\n */\nfunction isCuid (value) {\n    return typeof value === 'string' && (/^c[a-z0-9]{20,32}$/).test(value);\n}\n\nmodule.exports = isCuid;\n\n\n/***/ }),\n\n/***/ 146:\n/***/ ((module) => {\n\n\"use strict\";\n\n\nfunction pad (num, size) {\n  var s = '000000000' + num;\n  return s.substr(s.length - size);\n}\n\nmodule.exports = pad;\n\n\n/***/ }),\n\n/***/ 669:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst cuid = __webpack_require__(975)\n\nclass Session {\n  constructor () {\n    this.id = cuid()\n    this.startedAt = new Date()\n    this._handled = 0\n    this._unhandled = 0\n    this._user = {}\n    this.app = {}\n    this.device = {}\n  }\n\n  getUser () {\n    return this._user\n  }\n\n  setUser (id, email, name) {\n    this._user = { id, email, name }\n  }\n\n  toJSON () {\n    return {\n      id: this.id,\n      startedAt: this.startedAt,\n      events: { handled: this._handled, unhandled: this._unhandled }\n    }\n  }\n\n  _track (event) {\n    this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1\n  }\n}\n\nmodule.exports = Session\n\n\n/***/ }),\n\n/***/ 999:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst assign = __webpack_require__(465)\nconst BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id'\nconst cuid = __webpack_require__(959)\n\nconst getDeviceId = (win) => {\n  try {\n    const storage = win.localStorage\n\n    let id = storage.getItem(BUGSNAG_ANONYMOUS_ID_KEY)\n\n    // If we get an ID, make sure it looks like a valid cuid\n    if (id && cuid.isCuid(id)) {\n      return id\n    }\n\n    id = cuid()\n\n    storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id)\n\n    return id\n  } catch (err) {\n    // If localStorage is not available (e.g. because it's disabled) then give up\n  }\n}\n\n/*\n * Automatically detects browser device details\n */\nmodule.exports = (nav = navigator, win = window) => ({\n  load: (client) => {\n    const device = {\n      locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n      userAgent: nav.userAgent\n    }\n\n    if (win && win.screen && win.screen.orientation && win.screen.orientation.type) {\n      device.orientation = win.screen.orientation.type\n    } else if (win && win.document) {\n      device.orientation =\n        win.document.documentElement.clientWidth > win.document.documentElement.clientHeight\n          ? 'landscape'\n          : 'portrait'\n    }\n\n    if (client._config.generateAnonymousId) {\n      device.id = getDeviceId(win)\n    }\n\n    client.addOnSession(session => {\n      session.device = assign({}, session.device, device)\n      // only set device id if collectUserIp is false\n      if (!client._config.collectUserIp) setDefaultUserId(session)\n    })\n\n    // add time just as the event is sent\n    client.addOnError((event) => {\n      event.device = assign({},\n        event.device,\n        device,\n        { time: new Date() }\n      )\n      if (!client._config.collectUserIp) setDefaultUserId(event)\n    }, true)\n  },\n  configSchema: {\n    generateAnonymousId: {\n      validate: value => value === true || value === false,\n      defaultValue: () => true,\n      message: 'should be true|false'\n    }\n  }\n})\n\nconst setDefaultUserId = (eventOrSession) => {\n  // device id is also used to populate the user id field, if it's not already set\n  const user = eventOrSession.getUser()\n  if (!user || !user.id) {\n    eventOrSession.setUser(eventOrSession.device.id)\n  }\n}\n\n\n/***/ }),\n\n/***/ 959:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nconst fingerprint = __webpack_require__(257);\nconst cuid$1 = __webpack_require__(438);\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nconst cuid = cuid$1(fingerprint);\n\nmodule.exports = cuid;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nconst isCuid = __webpack_require__(981);\nconst pad = __webpack_require__(634);\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nfunction createCuid (fingerprint) {\n    const blockSize = 4,\n    base = 36,\n    discreteValues = Math.pow(base, blockSize);\n\n    let c = 0;\n\n    function randomBlock () {\n        return pad((Math.random() *\n        discreteValues << 0)\n        .toString(base), blockSize);\n    }\n\n    function safeCounter () {\n        c = c < discreteValues ? c : 0;\n        c++; // this is not subliminal\n        return c - 1;\n    }\n\n    function cuid () {\n        // Starting with a lowercase letter makes\n        // it HTML element ID friendly.\n        var letter = 'c', // hard-coded allows for sequential access\n\n        // timestamp\n        // warning: this exposes the exact date and time\n        // that the uid was created.\n        timestamp = new Date().getTime().toString(base),\n\n        // Prevent same-machine collisions.\n        counter = pad(safeCounter().toString(base), blockSize),\n\n        // A few chars to generate distinct ids for different\n        // clients (so different computers are far less\n        // likely to generate the same id)\n        print = fingerprint(),\n\n        // Grab some more chars from Math.random()\n        random = randomBlock() + randomBlock();\n\n        return letter + timestamp + counter + print + random;\n    }\n\n    cuid.fingerprint = fingerprint;\n    cuid.isCuid = isCuid;\n\n    return cuid;\n}\n\nmodule.exports = createCuid;\n\n\n/***/ }),\n\n/***/ 257:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nconst pad = __webpack_require__(634);\n\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\nfor (var prop in env) {\n  if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = pad((mimeTypesLength +\n  navigator.userAgent.length).toString(36) +\n  globalCount.toString(36), 4);\n\nfunction fingerprint () {\n  return clientId;\n}\n\nmodule.exports = fingerprint;\n\n\n/***/ }),\n\n/***/ 981:\n/***/ ((module) => {\n\n\"use strict\";\n\n\n/**\n * Check the provided value is a valid device id\n * @param {unknown} value\n * @returns\n */\nfunction isCuid (value) {\n    return typeof value === 'string' && (/^c[a-z0-9]{20,32}$/).test(value);\n}\n\nmodule.exports = isCuid;\n\n\n/***/ }),\n\n/***/ 634:\n/***/ ((module) => {\n\n\"use strict\";\n\n\nfunction pad (num, size) {\n  var s = '000000000' + num;\n  return s.substr(s.length - size);\n}\n\nmodule.exports = pad;\n\n\n/***/ }),\n\n/***/ 473:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst includes = __webpack_require__(957)\n\nmodule.exports = {\n  load: client => { client._sessionDelegate = sessionDelegate }\n}\n\nconst sessionDelegate = {\n  startSession: (client, session) => {\n    const sessionClient = client\n    sessionClient._session = session\n    sessionClient._pausedSession = null\n\n    // exit early if the current releaseStage is not enabled\n    if (sessionClient._config.enabledReleaseStages !== null && !includes(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n      sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration')\n      return sessionClient\n    }\n\n    sessionClient._delivery.sendSession({\n      notifier: sessionClient._notifier,\n      device: session.device,\n      app: session.app,\n      sessions: [\n        {\n          id: session.id,\n          startedAt: session.startedAt,\n          user: session._user\n        }\n      ]\n    })\n    return sessionClient\n  },\n  resumeSession: (client) => {\n    // Do nothing if there's already an active session\n    if (client._session) {\n      return client\n    }\n\n    // If we have a paused session then make it the active session\n    if (client._pausedSession) {\n      client._session = client._pausedSession\n      client._pausedSession = null\n\n      return client\n    }\n\n    // Otherwise start a new session\n    return client.startSession()\n  },\n  pauseSession: (client) => {\n    client._pausedSession = client._session\n    client._session = null\n  }\n}\n\n\n/***/ }),\n\n/***/ 500:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst assign = __webpack_require__(465)\n\n/*\n * Prevent collection of user IPs\n */\nmodule.exports = {\n  load: (client) => {\n    if (client._config.collectUserIp) return\n\n    client.addOnError(event => {\n      // If user.id is explicitly undefined, it will be missing from the payload. It needs\n      // removing so that the following line replaces it\n      if (event._user && typeof event._user.id === 'undefined') delete event._user.id\n      event._user = assign({ id: '[REDACTED]' }, event._user)\n      event.request = assign({ clientIp: '[REDACTED]' }, event.request)\n    })\n  },\n  configSchema: {\n    collectUserIp: {\n      defaultValue: () => true,\n      message: 'should be true|false',\n      validate: value => value === true || value === false\n    }\n  }\n}\n\n\n/***/ }),\n\n/***/ 665:\n/***/ ((module) => {\n\n/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\nmodule.exports = (win = window, component = 'window onerror') => ({\n  load: (client) => {\n    if (!client._config.autoDetectErrors) return\n    if (!client._config.enabledErrorTypes.unhandledExceptions) return\n    function onerror (messageOrEvent, url, lineNo, charNo, error) {\n      // Ignore errors with no info due to CORS settings\n      if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n        client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z')\n      } else {\n        // any error sent to window.onerror is unhandled and has severity=error\n        const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n\n        let event\n\n        // window.onerror can be called in a number of ways. This big if-else is how we\n        // figure out which arguments were supplied, and what kind of values it received.\n\n        if (error) {\n          // if the last parameter (error) was supplied, this is a modern browser's\n          // way of saying \"this value was thrown and not caught\"\n          event = client.Event.create(error, true, handledState, component, 1)\n          decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n        } else if (\n          // This complex case detects \"error\" events that are typically synthesised\n          // by jquery's trigger method (although can be created in other ways). In\n          // order to detect this:\n          // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n          // - the second argument (url) must either not exist or be something other than a string (if it\n          //    exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n          //    function)\n          // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n          (typeof messageOrEvent === 'object' && messageOrEvent !== null) &&\n          (!url || typeof url !== 'string') &&\n          !lineNo && !charNo && !error\n        ) {\n          // The jQuery event may have a \"type\" property, if so use it as part of the error message\n          const name = messageOrEvent.type ? `Event: ${messageOrEvent.type}` : 'Error'\n          // attempt to find a message from one of the conventional properties, but\n          // default to empty string (the event will fill it with a placeholder)\n          const message = messageOrEvent.message || messageOrEvent.detail || ''\n\n          event = client.Event.create({ name, message }, true, handledState, component, 1)\n\n          // provide the original thing onerror received – not our error-like object we passed to _notify\n          event.originalError = messageOrEvent\n\n          // include the raw input as metadata – it might contain more info than we extracted\n          event.addMetadata(component, { event: messageOrEvent, extraParameters: url })\n        } else {\n          // Lastly, if there was no \"error\" parameter this event was probably from an old\n          // browser that doesn't support that. Instead we need to generate a stacktrace.\n          event = client.Event.create(messageOrEvent, true, handledState, component, 1)\n          decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n        }\n\n        client._notify(event)\n      }\n\n      try { prevOnError.apply(this, arguments) } catch (e) {}\n    }\n\n    const prevOnError = win.onerror\n    win.onerror = onerror\n  }\n})\n\n// Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\nconst decorateStack = (stack, url, lineNo, charNo) => {\n  if (!stack[0]) stack.push({})\n  const culprit = stack[0]\n  if (!culprit.file && typeof url === 'string') culprit.file = url\n  if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo\n  if (!culprit.columnNumber) {\n    if (isActualNumber(charNo)) {\n      culprit.columnNumber = charNo\n    } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n      culprit.columnNumber = window.event.errorCharacter\n    }\n  }\n}\n\nconst isActualNumber = (n) => typeof n === 'number' && String.call(n) !== 'NaN'\n\n\n/***/ }),\n\n/***/ 309:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst map = __webpack_require__(628)\nconst isError = __webpack_require__(43)\n\nlet _listener\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\nmodule.exports = (win = window) => {\n  const plugin = {\n    load: (client) => {\n      if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return\n      const listener = evt => {\n        let error = evt.reason\n        let isBluebird = false\n\n        // accessing properties on evt.detail can throw errors (see #394)\n        try {\n          if (evt.detail && evt.detail.reason) {\n            error = evt.detail.reason\n            isBluebird = true\n          }\n        } catch (e) {}\n\n        // Report unhandled promise rejections as handled if the user has configured it\n        const unhandled = !client._config.reportUnhandledPromiseRejectionsAsHandled\n\n        const event = client.Event.create(error, false, {\n          severity: 'error',\n          unhandled,\n          severityReason: { type: 'unhandledPromiseRejection' }\n        }, 'unhandledrejection handler', 1, client._logger)\n\n        if (isBluebird) {\n          map(event.errors[0].stacktrace, fixBluebirdStacktrace(error))\n        }\n\n        client._notify(event, (event) => {\n          if (isError(event.originalError) && !event.originalError.stack) {\n            event.addMetadata('unhandledRejection handler', {\n              [Object.prototype.toString.call(event.originalError)]: {\n                name: event.originalError.name,\n                message: event.originalError.message,\n                code: event.originalError.code\n              }\n            })\n          }\n        })\n      }\n      if ('addEventListener' in win) {\n        win.addEventListener('unhandledrejection', listener)\n      } else {\n        win.onunhandledrejection = (reason, promise) => {\n          listener({ detail: { reason, promise } })\n        }\n      }\n      _listener = listener\n    }\n  }\n\n  if (false) {}\n\n  return plugin\n}\n\n// The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n//   b@http://localhost:5000/bluebird.html:22:24\n//   a@http://localhost:5000/bluebird.html:18:9\n//   @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n//   […]\n//     0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n//     1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n//     2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n//     3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\nconst fixBluebirdStacktrace = (error) => (frame) => {\n  if (frame.file === error.toString()) return\n  if (frame.method) {\n    frame.method = frame.method.replace(/^\\s+/, '')\n  }\n}\n\n\n/***/ }),\n\n/***/ 384:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* eslint-env worker, serviceworker */\n\nconst { schema } = __webpack_require__(223)\nconst map = __webpack_require__(628)\nconst assign = __webpack_require__(465)\n\nmodule.exports = {\n  appType: {\n    ...schema.appType,\n    defaultValue: () => 'workerjs'\n  },\n  logger: assign({}, schema.logger, {\n    defaultValue: () =>\n      (typeof console !== 'undefined' && typeof console.debug === 'function')\n        ? getPrefixedConsole()\n        : undefined\n  }),\n  autoTrackSessions: {\n    ...schema.autoTrackSessions,\n    defaultValue: () => false\n  },\n  autoDetectErrors: {\n    ...schema.autoTrackSessions,\n    defaultValue: () => false\n  }\n}\n\nconst getPrefixedConsole = () => {\n  const logger = {}\n  const consoleLog = console.log\n  map(['debug', 'info', 'warn', 'error'], (method) => {\n    const consoleMethod = console[method]\n    logger[method] = typeof consoleMethod === 'function'\n      ? consoleMethod.bind(console, '[bugsnag]')\n      : consoleLog.bind(console, '[bugsnag]')\n  })\n  return logger\n}\n\n\n/***/ }),\n\n/***/ 737:\n/***/ ((module) => {\n\n/* eslint-env worker, serviceworker */\n\nconst extensionRegex = /^(chrome|moz|safari|safari-web)-extension:/\n\nmodule.exports = {\n  name: 'preventDiscard',\n  load: client => {\n    client.addOnError(event => {\n      event.errors.forEach(({ stacktrace }) => {\n        stacktrace.forEach(function (frame) {\n          frame.file = frame.file.replace(extensionRegex, '$1_extension:')\n        })\n      })\n    }, true)\n  }\n}\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.\n(() => {\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": () => (/* binding */ notifier)\n});\n\n// UNUSED EXPORTS: Bugsnag\n\n// EXTERNAL MODULE: ../core/client.js\nvar client = __webpack_require__(478);\nvar client_default = /*#__PURE__*/__webpack_require__.n(client);\n// EXTERNAL MODULE: ../core/config.js\nvar config = __webpack_require__(223);\n// EXTERNAL MODULE: ../core/lib/json-payload.js\nvar json_payload = __webpack_require__(68);\n;// ../delivery-fetch/delivery.js\n\n\nfunction getIntegrityHeaderValue (sendPayloadChecksums, windowOrWorkerGlobalScope, requestBody, headers) {\n  if (sendPayloadChecksums && windowOrWorkerGlobalScope.isSecureContext && windowOrWorkerGlobalScope.crypto && windowOrWorkerGlobalScope.crypto.subtle && windowOrWorkerGlobalScope.crypto.subtle.digest && typeof TextEncoder === 'function') {\n    const msgUint8 = new TextEncoder().encode(requestBody)\n    return windowOrWorkerGlobalScope.crypto.subtle.digest('SHA-1', msgUint8).then((hashBuffer) => {\n      const hashArray = Array.from(new Uint8Array(hashBuffer))\n      const hashHex = hashArray\n        .map((b) => b.toString(16).padStart(2, '0'))\n        .join('')\n\n      return 'sha1 ' + hashHex\n    })\n  }\n\n  return Promise.resolve()\n}\n\nconst delivery = (client, fetch = __webpack_require__.g.fetch, windowOrWorkerGlobalScope = window) => ({\n  sendEvent: (event, cb = () => {}) => {\n    const url = client._config.endpoints.notify\n\n    const body = json_payload.event(event, client._config.redactedKeys)\n\n    getIntegrityHeaderValue(client._config.sendPayloadChecksums, windowOrWorkerGlobalScope, body).then(integrityHeaderValue => {\n      const headers = {\n        'Content-Type': 'application/json',\n        'Bugsnag-Api-Key': event.apiKey || client._config.apiKey,\n        'Bugsnag-Payload-Version': '4',\n        'Bugsnag-Sent-At': (new Date()).toISOString()\n      }\n\n      if (integrityHeaderValue) {\n        headers['Bugsnag-Integrity'] = integrityHeaderValue\n      }\n\n      return fetch(url, {\n        method: 'POST',\n        headers,\n        body\n      })\n    }).then(() => {\n      cb(null)\n    }).catch(err => {\n      client._logger.error(err)\n      cb(err)\n    })\n  },\n  sendSession: (session, cb = () => { }) => {\n    const url = client._config.endpoints.sessions\n\n    const body = json_payload.session(session, client._config.redactedKeys)\n\n    getIntegrityHeaderValue(client._config.sendPayloadChecksums, windowOrWorkerGlobalScope, body).then((integrityHeaderValue) => {\n      const headers = {\n        'Content-Type': 'application/json',\n        'Bugsnag-Api-Key': client._config.apiKey,\n        'Bugsnag-Payload-Version': '1',\n        'Bugsnag-Sent-At': (new Date()).toISOString()\n      }\n\n      if (integrityHeaderValue) {\n        headers['Bugsnag-Integrity'] = integrityHeaderValue\n      }\n\n      return fetch(url, {\n        method: 'POST',\n        headers,\n        body\n      })\n    }).then(() => {\n      cb(null)\n    }).catch(err => {\n      client._logger.error(err)\n      cb(err)\n    })\n  }\n})\n\n/* harmony default export */ const delivery_fetch_delivery = (delivery);\n\n// EXTERNAL MODULE: ../plugin-client-ip/client-ip.js\nvar client_ip = __webpack_require__(500);\nvar client_ip_default = /*#__PURE__*/__webpack_require__.n(client_ip);\n// EXTERNAL MODULE: ../plugin-window-onerror/onerror.js\nvar plugin_window_onerror_onerror = __webpack_require__(665);\nvar onerror_default = /*#__PURE__*/__webpack_require__.n(plugin_window_onerror_onerror);\n// EXTERNAL MODULE: ../plugin-window-unhandled-rejection/unhandled-rejection.js\nvar unhandled_rejection = __webpack_require__(309);\nvar unhandled_rejection_default = /*#__PURE__*/__webpack_require__.n(unhandled_rejection);\n// EXTERNAL MODULE: ./src/config.js\nvar src_config = __webpack_require__(384);\nvar config_default = /*#__PURE__*/__webpack_require__.n(src_config);\n// EXTERNAL MODULE: ../plugin-browser-device/device.js\nvar device = __webpack_require__(999);\nvar device_default = /*#__PURE__*/__webpack_require__.n(device);\n// EXTERNAL MODULE: ../plugin-browser-session/session.js\nvar session = __webpack_require__(473);\nvar session_default = /*#__PURE__*/__webpack_require__.n(session);\n// EXTERNAL MODULE: ./src/prevent-discard.js\nvar prevent_discard = __webpack_require__(737);\nvar prevent_discard_default = /*#__PURE__*/__webpack_require__.n(prevent_discard);\n;// ./src/notifier.js\n/* eslint-env worker, serviceworker */\n\n\n\n\n\n\n\n\n\n\n\n\nconst notifier_name = 'Bugsnag Web Worker'\nconst url = 'https://github.com/bugsnag/bugsnag-js'\nconst version = \"8.9.0\" // eslint-disable-line no-undef\n\n// extend the base config schema with some worker-specific options\nconst schema = { ...config.schema, ...(config_default()) }\n\nconst Bugsnag = {\n  createClient: (opts) => {\n    // handle very simple use case where user supplies just the api key as a string\n    if (typeof opts === 'string') opts = { apiKey: opts }\n    if (!opts) opts = {}\n\n    const internalPlugins = [\n      device_default()(navigator, null),\n      (session_default()),\n      (client_ip_default()),\n      (prevent_discard_default()),\n      onerror_default()(self, 'worker onerror'),\n      unhandled_rejection_default()(self)\n    ]\n\n    // configure a client with user supplied options\n    const bugsnag = new (client_default())(opts, schema, internalPlugins, { name: notifier_name, version, url })\n\n    bugsnag._setDelivery(client => delivery_fetch_delivery(client, undefined, self))\n\n    bugsnag._logger.debug('Loaded!')\n\n    return bugsnag._config.autoTrackSessions\n      ? bugsnag.startSession()\n      : bugsnag\n  },\n  start: (opts) => {\n    if (Bugsnag._client) {\n      Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.')\n      return Bugsnag._client\n    }\n    Bugsnag._client = Bugsnag.createClient(opts)\n    return Bugsnag._client\n  },\n  isStarted: () => {\n    return Bugsnag._client != null\n  }\n}\n\n// Add client functions to notifier\nObject.getOwnPropertyNames((client_default()).prototype).forEach(method => {\n  // skip private methods\n  if (/^_/.test(method) || method === 'constructor') return\n  Bugsnag[method] = function () {\n    if (!Bugsnag._client) return console.log(`Bugsnag.${method}() was called before Bugsnag.start()`)\n    Bugsnag._client._depth += 1\n    const ret = Bugsnag._client[method].apply(Bugsnag._client, arguments)\n    Bugsnag._client._depth -= 1\n    return ret\n  }\n})\n\n/* harmony default export */ const notifier = (Bugsnag);\n\n})();\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=bugsnag.web-worker.js.map",null,null],"names":["runtime","exports","undefined","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","RETAIN_METHOD","for","RELEASE_METHOD","RETAINED_BY","StackFrame","memoryManaged","Set","add","memoryManageable","release","delete","clear","isMemoryManageable","Boolean","retain","deep","retainInternal","Map","seen","seenValue","get","canRetain","set","Array","isArray","nestedCanRetain","reduce","item","isBasicObject","FUNCTION","createBasicEncoder","api","functionsToId","idsToFunction","idsToProxy","encode","transferables","fullResult","map","nestedTransferables","has","id","uuid","decode","args","stackFrame","func","retainedBy","terminate","retainCount","released","retainers","proxy","defineProperties","retainer","MissingResolverError","message","callId","super","String","JSON","stringify","groupingHash","defaultUuid","uuidSegment","Math","floor","random","Number","MAX_SAFE_INTEGER","toString","isRemoteFragment","kind","FUNCTION_CURRENT_IMPLEMENTATION_KEY","EMPTY_OBJECT","EMPTY_ARRAY","createRemoteRoot","channel","strict","components","currentId","rootInternals","mounted","children","nodes","WeakSet","parents","WeakMap","tops","fragments","freeze","remoteRoot","options","createComponent","rest","indexOf","initialProps","initialChildren","moreChildren","normalizedInitialProps","normalizedInitialChildren","normalizedInternalProps","makeValueHotSwappable","serializeProp","child","normalizeChild","internals","externalProps","internalProps","component","props","remoteProps","remove","updateProps","newProps","currentProps","currentExternalProps","normalizedNewProps","hotSwapFunctions","hasRemoteChange","currentExternalValue","newExternalValue","currentValue","newValue","hotSwaps","tryHotSwappingValues","IGNORE","removeNodeFromContainer","moveNodeToContainer","perform","remote","local","mergedExternalProps","hotSwappable","append","appendChild","removeChild","replaceChildren","insertBefore","before","insertChildBefore","makePartOfTree","makeRemote","createText","content","text","update","newText","updateText","createFragment","fragment","mount","serializeChild","allDescendants","element","withEach","recurse","_tops$get","connected","_collectNestedHotSwap2","collectNestedHotSwappableValues","hasChanged","newLength","currentLength","maxLength","max","normalizedNewValue","currentArrayValue","newArrayValue","updatedValue","elementHotSwaps","nestedHotSwappables","tryHotSwappingArrayValues","_collectNestedHotSwap","currentObjectValue","newObjectValue","tryHotSwappingObjectValues","nested","wrappedFunction","all","_child$parent","parent","container","_currentParent$childr","currentParent","existingIndex","newChildren","currentInternals","getCurrentInternals","currentChildren","splice","childIndex","_currentParent$childr2","beforeIndex","root","node","newTop","moveFragmentToContainer","descendant","prop","removeFragmentFromContainer","factory","__webpack_modules__","data","replacer","space","opts","redactedKeys","redactedPaths","edges","visit","path","edgesExceeded","MIN_PRESERVED_DEPTH","MAX_EDGES","MAX_DEPTH","REPLACEMENT_NODE","haystack","needle","len","find","toJSON","fResult","throwsMessage","o","test","eResult","aResult","concat","isDescendent","join","shouldRedact","safelyGetProp","e","prepareObjForSerialization","paths","patterns","toLowerCase","__webpack_require__","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","stacktrace","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","extractLocation","urlLike","parts","exec","replace","split","filter","line","sanitizedLine","location","tokens","locationParts","functionName","fileName","lineNumber","columnNumber","source","functionNameRegex","matches","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","argsRaw","functionCall","shift","apply","backtrace","maxStackSize","curr","arguments","callee","RegExp","$1","caller","_isNumber","n","parseFloat","isFinite","_capitalize","str","toUpperCase","substring","_getter","p","booleanProps","numericProps","stringProps","arrayProps","objectProps","getArgs","setArgs","v","getEvalOrigin","evalOrigin","setEvalOrigin","getFileName","getLineNumber","getColumnNumber","getFunctionName","getIsEval","fromString","argsStartIndex","argsEndIndex","lastIndexOf","locationString","j","k","metadata","timestamp","Date","metaData","__unused_webpack_exports","config","Event","Breadcrumb","Session","includes","assign","runCallbacks","metadataDelegate","runSyncCallbacks","BREADCRUMB_TYPES","merge","noop","Client","configuration","schema","internalPlugins","notifier","_notifier","_config","_schema","_delivery","sendSession","sendEvent","_logger","debug","warn","_plugins","_breadcrumbs","_session","_metadata","_featuresIndex","_features","_context","_user","_groupingDiscriminator","_cbs","s","sp","b","_configure","plugins","pl","_loadPlugin","_depth","notify","addMetadata","section","keyOrObj","maybeVal","getMetadata","clearMetadata","addFeatureFlag","variant","addFeatureFlags","featureFlags","clearFeatureFlag","clearFeatureFlags","getContext","setContext","c","getGroupingDiscriminator","setGroupingDiscriminator","previousValue","plugin","configSchema","endpoints","sendPayloadChecksums","errors","accum","defaultValue","validate","allowPartialObject","apiKey","sessions","user","logger","onError","onBreadcrumb","onSession","generateConfigErrorMessage","getUser","setUser","email","load","getPlugin","_setDelivery","d","startSession","session","app","releaseStage","version","appVersion","appType","_sessionDelegate","addOnError","front","removeOnError","f","_addOnSessionPayload","addOnSession","removeOnSession","addOnBreadcrumb","removeOnBreadcrumb","pauseSession","resumeSession","leaveBreadcrumb","crumb","maxBreadcrumbs","_isBreadcrumbTypeEnabled","types","enabledBreadcrumbTypes","maybeError","postReportCallback","event","_notify","breadcrumbs","enabledReleaseStages","originalSeverity","severity","onCallbackError","callbacks","shouldSend","errorClass","errorMessage","_handledState","severityReason","unhandled","unhandledOverridden","_track","events","rawInput","intRange","stringWithLength","listOfFunctions","autoDetectErrors","enabledErrorTypes","unhandledExceptions","unhandledRejections","providedKeys","defaultKeys","autoTrackSessions","maybeType","feature","reportUnhandledPromiseRejectionsAsHandled","ErrorStackParser","StackGenerator","hasStack","featureFlagDelegate","isError","handledState","defaultHandledState","originalError","device","request","response","threads","_correlation","createBugsnagError","__type","setTraceCorrelation","traceId","spanId","getFeatureFlags","toEventApi","payloadVersion","exceptions","er","groupingDiscriminator","correlation","formatStackframe","frame","file","normaliseFunctionName","code","inProject","ensureString","getCauseStack","cause","getStacktrace","errorFramesToSkip","backtraceFramesToSkip","tolerateNonErrors","internalFrames","normaliseError","makeSerialisable","causes","normalisedCauses","createAndLogInputError","reason","verb","hasNecessaryFields","arr","cb","index","some","ret","setTimeout","target","x","_hasDontEnumBug","propertyIsEnumerable","_dontEnums","jsonStringify","existingFeatures","existingFeatureKeys","features","featuresIndex","newFeatures","flag","featureFlag","EVENT_REDACTION_PATHS","payload","updates","callbackArg","callbackType","ignore","cbs","min","Infinity","parseInt","fingerprint","cuid","cuid$1","isCuid","pad","discreteValues","pow","randomBlock","getTime","env","window","globalCount","clientId","navigator","mimeTypes","userAgent","num","size","substr","startedAt","_handled","_unhandled","handled","BUGSNAG_ANONYMOUS_ID_KEY","nav","win","client","locale","browserLanguage","systemLanguage","userLanguage","language","screen","orientation","document","documentElement","clientWidth","clientHeight","generateAnonymousId","storage","localStorage","getItem","setItem","getDeviceId","collectUserIp","setDefaultUserId","time","eventOrSession","sessionDelegate","sessionClient","_pausedSession","clientIp","prevOnError","onerror","messageOrEvent","url","lineNo","charNo","decorateStack","detail","extraParameters","culprit","isActualNumber","errorCharacter","listener","evt","isBluebird","fixBluebirdStacktrace","addEventListener","onunhandledrejection","promise","console","getPrefixedConsole","consoleLog","log","consoleMethod","bind","extensionRegex","__webpack_module_cache__","moduleId","cachedModule","getter","__esModule","a","definition","g","__webpack_exports__","default","client_default","json_payload","getIntegrityHeaderValue","windowOrWorkerGlobalScope","requestBody","headers","isSecureContext","crypto","subtle","digest","TextEncoder","msgUint8","hashBuffer","from","Uint8Array","padStart","delivery_fetch_delivery","fetch","body","integrityHeaderValue","toISOString","client_ip","client_ip_default","plugin_window_onerror_onerror","onerror_default","unhandled_rejection","unhandled_rejection_default","src_config","config_default","device_default","session_default","prevent_discard","prevent_discard_default","Bugsnag","createClient","bugsnag","start","_client","isStarted","getOwnPropertyNames","clientInstance","initialize","BugsnagClient","endpoint","initialMessenger","createEncoder","callable","terminated","messenger","activeApi","callIdsToResolver","handlerForCall","Proxy","cache","_target","property","handler","createCallable","encoder","send","waitForResult","encoded","newMessenger","oldMessenger","removeEventListener","expose","newCallable","postMessage","resolver","funcId","_","errorResult","_encoder$terminate","createEndpoint","renderCallback","onRender","callback","authenticatedFetch","authenticatedIntegratorFetch","remoteRoots","importedScripts","vendorBundleUrl","run","receiver","thirdPartyCodeUrl","componentNames","bugsnagConfiguration","importScripts"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}