rollbar 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rollbar.cjs +260 -3
- package/dist/rollbar.js +88 -2
- package/dist/rollbar.js.map +1 -1
- package/dist/rollbar.min.cjs +1 -1
- package/dist/rollbar.min.js +1 -1
- package/dist/rollbar.min.js.map +1 -1
- package/dist/rollbar.named-amd.js +88 -2
- package/dist/rollbar.named-amd.js.map +1 -1
- package/dist/rollbar.named-amd.min.js +1 -1
- package/dist/rollbar.named-amd.min.js.map +1 -1
- package/dist/rollbar.noconflict.umd.js +88 -2
- package/dist/rollbar.noconflict.umd.js.map +1 -1
- package/dist/rollbar.noconflict.umd.min.js +1 -1
- package/dist/rollbar.noconflict.umd.min.js.map +1 -1
- package/dist/rollbar.replay.js +88 -2
- package/dist/rollbar.replay.js.map +1 -1
- package/dist/rollbar.replay.min.js +1 -1
- package/dist/rollbar.replay.min.js.map +1 -1
- package/dist/rollbar.replay.noconflict.umd.js +88 -2
- package/dist/rollbar.replay.noconflict.umd.js.map +1 -1
- package/dist/rollbar.replay.noconflict.umd.min.js +1 -1
- package/dist/rollbar.replay.noconflict.umd.min.js.map +1 -1
- package/dist/rollbar.replay.umd.js +88 -2
- package/dist/rollbar.replay.umd.js.map +1 -1
- package/dist/rollbar.replay.umd.min.js +1 -1
- package/dist/rollbar.replay.umd.min.js.map +1 -1
- package/dist/rollbar.snippet.js +1 -1
- package/dist/rollbar.umd.js +88 -2
- package/dist/rollbar.umd.js.map +1 -1
- package/dist/rollbar.umd.min.js +1 -1
- package/dist/rollbar.umd.min.js.map +1 -1
- package/index.d.ts +15 -0
- package/package.json +2 -1
- package/src/browser/telemetry.js +25 -0
- package/src/defaults.js +1 -1
- package/src/rollbar.js +3 -1
- package/src/server/middleware/rollbarExpressMiddleware.js +63 -0
- package/src/server/rollbar.js +13 -0
- package/src/server/telemetry.js +120 -1
- package/src/utility.js +70 -0
package/dist/rollbar.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollbar.min.js","mappings":"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","sources":["webpack://rollbar/webpack/bootstrap","webpack://rollbar/webpack/runtime/define property getters","webpack://rollbar/webpack/runtime/hasOwnProperty shorthand","webpack://rollbar/webpack/runtime/make namespace object","webpack://rollbar/./src/utility.js","webpack://rollbar/./src/utility/traverse.js","webpack://rollbar/./src/scrub.js","webpack://rollbar/./src/telemetry.js","webpack://rollbar/./src/tracing/context.js","webpack://rollbar/./src/tracing/contextManager.js","webpack://rollbar/./src/tracing/hrtime.js","webpack://rollbar/./src/tracing/exporter.js","webpack://rollbar/./src/tracing/id.js","webpack://rollbar/./src/tracing/session.js","webpack://rollbar/./src/logger.js","webpack://rollbar/./src/tracing/spanProcessor.js","webpack://rollbar/./src/tracing/span.js","webpack://rollbar/./src/tracing/tracer.js","webpack://rollbar/./src/tracing/tracing.js","webpack://rollbar/./src/truncation.js","webpack://rollbar/./src/apiUtility.js","webpack://rollbar/./src/api.js","webpack://rollbar/./src/defaults.js","webpack://rollbar/./node_modules/error-stack-parser-es/dist/lite.mjs","webpack://rollbar/./node_modules/error-stack-parser-es/dist/index.mjs","webpack://rollbar/./src/errorParser.js","webpack://rollbar/./src/predicates.js","webpack://rollbar/./src/notifier.js","webpack://rollbar/./src/queue.js","webpack://rollbar/./src/rateLimiter.js","webpack://rollbar/./src/rollbar.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/transforms.js","webpack://rollbar/./src/browser/transport/fetch.js","webpack://rollbar/./src/browser/transport/xhr.js","webpack://rollbar/./src/browser/transport.js","webpack://rollbar/./src/browser/url.js","webpack://rollbar/./src/browser/core.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/replay/defaults.js","webpack://rollbar/./src/tracing/defaults.js","webpack://rollbar/./src/utility/headers.js","webpack://rollbar/./src/utility/replace.js","webpack://rollbar/./src/browser/domUtility.js","webpack://rollbar/./src/browser/telemetry.js","webpack://rollbar/./src/browser/wrapGlobals.js","webpack://rollbar/./src/browser/rollbar.js","webpack://rollbar/./src/browser/bundles/rollbar.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\n * isType - Given a Javascript value and a string, returns true if the type of the value matches the\n * given string.\n *\n * @param x - any value\n * @param t - a lowercase string containing one of the following type names:\n * - undefined\n * - null\n * - error\n * - number\n * - boolean\n * - string\n * - symbol\n * - function\n * - object\n * - array\n * @returns true if x is of type t, otherwise false\n */\nfunction isType(x, t) {\n return t === typeName(x);\n}\n\n/*\n * typeName - Given a Javascript value, returns the type of the object as a string\n */\nfunction typeName(x) {\n var name = typeof x;\n if (name !== 'object') {\n return name;\n }\n if (!x) {\n return 'null';\n }\n if (x instanceof Error) {\n return 'error';\n }\n return {}.toString\n .call(x)\n .match(/\\s([a-zA-Z]+)/)[1]\n .toLowerCase();\n}\n\n/* isFunction - a convenience function for checking if a value is a function\n *\n * @param f - any value\n * @returns true if f is a function, otherwise false\n */\nfunction isFunction(f) {\n return isType(f, 'function');\n}\n\n/* isNativeFunction - a convenience function for checking if a value is a native JS function\n *\n * @param f - any value\n * @returns true if f is a native JS function, otherwise false\n */\nfunction isNativeFunction(f) {\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n var funcMatchString = Function.prototype.toString\n .call(Object.prototype.hasOwnProperty)\n .replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?');\n var reIsNative = RegExp('^' + funcMatchString + '$');\n return isObject(f) && reIsNative.test(f);\n}\n\n/* isObject - Checks if the argument is an object\n *\n * @param value - any value\n * @returns true is value is an object function is an object)\n */\nfunction isObject(value) {\n return (\n value != null && (typeof value == 'object' || typeof value == 'function')\n );\n}\n\n/* hasOwn - safe helper around Object.hasOwnProperty */\nfunction hasOwn(obj, prop) {\n if (obj == null) {\n return false;\n }\n if (Object.hasOwn) {\n return Object.hasOwn(obj, prop);\n }\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n/* isString - Checks if the argument is a string\n *\n * @param value - any value\n * @returns true if value is a string\n */\nfunction isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\n\n/**\n * isFiniteNumber - determines whether the passed value is a finite number\n *\n * @param {*} n - any value\n * @returns true if value is a finite number\n */\nfunction isFiniteNumber(n) {\n return Number.isFinite(n);\n}\n\n/*\n * isIterable - convenience function for checking if a value can be iterated, essentially\n * whether it is an object or an array.\n *\n * @param i - any value\n * @returns true if i is an object or an array as determined by `typeName`\n */\nfunction isIterable(i) {\n var type = typeName(i);\n return type === 'object' || type === 'array';\n}\n\n/*\n * isError - convenience function for checking if a value is of an error type\n *\n * @param e - any value\n * @returns true if e is an error\n */\nfunction isError(e) {\n // Detect both Error and Firefox Exception type\n return isType(e, 'error') || isType(e, 'exception');\n}\n\n/* isPromise - a convenience function for checking if a value is a promise\n *\n * @param p - any value\n * @returns true if f is a function, otherwise false\n */\nfunction isPromise(p) {\n return isObject(p) && isType(p.then, 'function');\n}\n\n/**\n * isBrowser - a convenience function for checking if the code is running in a browser\n *\n * @returns true if the code is running in a browser environment\n */\nfunction isBrowser() {\n return typeof window !== 'undefined';\n}\n\nfunction redact() {\n return '********';\n}\n\n// from http://stackoverflow.com/a/8809472/1138191\nfunction uuid4() {\n var d = now();\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (c) {\n var r = ((d + Math.random() * 16) % 16) | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16);\n },\n );\n return uuid;\n}\n\nvar LEVELS = {\n debug: 0,\n info: 1,\n warning: 2,\n error: 3,\n critical: 4,\n};\n\nfunction sanitizeHref(url) {\n try {\n const urlObject = new URL(url);\n if (urlObject.password) {\n urlObject.password = redact();\n }\n if (urlObject.search) {\n urlObject.search = redact();\n }\n return urlObject.toString();\n } catch (_) {\n return url; // Return original URL if parsing fails\n }\n}\n\nfunction sanitizeUrl(url) {\n var baseUrlParts = parseUri(url);\n if (!baseUrlParts) {\n return '(unknown)';\n }\n\n // remove a trailing # if there is no anchor\n if (baseUrlParts.anchor === '') {\n baseUrlParts.source = baseUrlParts.source.replace('#', '');\n }\n\n url = baseUrlParts.source.replace('?' + baseUrlParts.query, '');\n return url;\n}\n\nvar parseUriOptions = {\n strictMode: false,\n key: [\n 'source',\n 'protocol',\n 'authority',\n 'userInfo',\n 'user',\n 'password',\n 'host',\n 'port',\n 'relative',\n 'path',\n 'directory',\n 'file',\n 'query',\n 'anchor',\n ],\n q: {\n name: 'queryKey',\n parser: /(?:^|&)([^&=]*)=?([^&]*)/g,\n },\n parser: {\n strict:\n /^(?:([^:/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?))?((((?:[^?#/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n loose:\n /^(?:(?![^:@]+:[^:@/]*@)([^:/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[?#]|$)))*\\/?)?([^?#/]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n },\n};\n\nfunction parseUri(str) {\n if (!isType(str, 'string')) {\n return undefined;\n }\n\n var o = parseUriOptions;\n var m = o.parser[o.strictMode ? 'strict' : 'loose'].exec(str);\n var uri = {};\n\n for (var i = 0, l = o.key.length; i < l; ++i) {\n uri[o.key[i]] = m[i] || '';\n }\n\n uri[o.q.name] = {};\n uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {\n if ($1) {\n uri[o.q.name][$1] = $2;\n }\n });\n\n return uri;\n}\n\nfunction addParamsAndAccessTokenToPath(accessToken, options, params) {\n params = params || {};\n params.access_token = accessToken;\n var paramsArray = [];\n var k;\n for (k in params) {\n if (Object.prototype.hasOwnProperty.call(params, k)) {\n paramsArray.push([k, params[k]].join('='));\n }\n }\n var query = '?' + paramsArray.sort().join('&');\n\n options = options || {};\n options.path = options.path || '';\n var qs = options.path.indexOf('?');\n var h = options.path.indexOf('#');\n var p;\n if (qs !== -1 && (h === -1 || h > qs)) {\n p = options.path;\n options.path = p.substring(0, qs) + query + '&' + p.substring(qs + 1);\n } else {\n if (h !== -1) {\n p = options.path;\n options.path = p.substring(0, h) + query + p.substring(h);\n } else {\n options.path = options.path + query;\n }\n }\n}\n\nfunction formatUrl(u, protocol) {\n protocol = protocol || u.protocol;\n if (!protocol && u.port) {\n if (u.port === 80) {\n protocol = 'http:';\n } else if (u.port === 443) {\n protocol = 'https:';\n }\n }\n protocol = protocol || 'https:';\n\n if (!u.hostname) {\n return null;\n }\n var result = protocol + '//' + u.hostname;\n if (u.port) {\n result = result + ':' + u.port;\n }\n if (u.path) {\n result = result + u.path;\n }\n return result;\n}\n\nfunction stringify(obj, backup) {\n var value, error;\n try {\n value = JSON.stringify(obj);\n } catch (jsonError) {\n if (backup && isFunction(backup)) {\n try {\n value = backup(obj);\n } catch (backupError) {\n error = backupError;\n }\n } else {\n error = jsonError;\n }\n }\n return { error: error, value: value };\n}\n\nfunction maxByteSize(string) {\n // The transport will use utf-8, so assume utf-8 encoding.\n //\n // This minimal implementation will accurately count bytes for all UCS-2 and\n // single code point UTF-16. If presented with multi code point UTF-16,\n // which should be rare, it will safely overcount, not undercount.\n //\n // While robust utf-8 encoders exist, this is far smaller and far more performant.\n // For quickly counting payload size for truncation, smaller is better.\n\n var count = 0;\n var length = string.length;\n\n for (var i = 0; i < length; i++) {\n var code = string.charCodeAt(i);\n if (code < 128) {\n // up to 7 bits\n count = count + 1;\n } else if (code < 2048) {\n // up to 11 bits\n count = count + 2;\n } else if (code < 65536) {\n // up to 16 bits\n count = count + 3;\n }\n }\n\n return count;\n}\n\nfunction jsonParse(s) {\n var value, error;\n try {\n value = JSON.parse(s);\n } catch (e) {\n error = e;\n }\n return { error, value };\n}\n\nfunction makeUnhandledStackInfo(\n message,\n url,\n lineno,\n colno,\n error,\n mode,\n backupMessage,\n errorParser,\n) {\n var location = {\n url: url || '',\n line: lineno,\n column: colno,\n };\n location.func = errorParser.guessFunctionName(location.url, location.line);\n location.context = errorParser.gatherContext(location.url, location.line);\n var href =\n typeof document !== 'undefined' &&\n document &&\n document.location &&\n document.location.href;\n var useragent =\n typeof window !== 'undefined' &&\n window &&\n window.navigator &&\n window.navigator.userAgent;\n return {\n mode: mode,\n message: error ? String(error) : message || backupMessage,\n url: href,\n stack: [location],\n useragent: useragent,\n };\n}\n\nfunction wrapCallback(logger, f) {\n return function (err, resp) {\n try {\n f(err, resp);\n } catch (e) {\n logger.error(e);\n }\n };\n}\n\nfunction nonCircularClone(obj) {\n var seen = [obj];\n\n function clone(obj, seen) {\n var value,\n name,\n newSeen,\n result = {};\n\n try {\n for (name in obj) {\n value = obj[name];\n\n if (value && (isType(value, 'object') || isType(value, 'array'))) {\n if (seen.includes(value)) {\n result[name] = 'Removed circular reference: ' + typeName(value);\n } else {\n newSeen = seen.slice();\n newSeen.push(value);\n result[name] = clone(value, newSeen);\n }\n continue;\n }\n\n result[name] = value;\n }\n } catch (e) {\n result = 'Failed cloning custom data: ' + e.message;\n }\n return result;\n }\n return clone(obj, seen);\n}\n\nfunction createItem(args, logger, notifier, requestKeys, lambdaContext) {\n var message, err, custom, callback, request;\n var arg;\n var extraArgs = [];\n var diagnostic = {};\n var argTypes = [];\n\n for (var i = 0, l = args.length; i < l; ++i) {\n arg = args[i];\n\n var typ = typeName(arg);\n argTypes.push(typ);\n switch (typ) {\n case 'undefined':\n break;\n case 'string':\n if (message) {\n extraArgs.push(arg);\n } else {\n message = arg;\n }\n break;\n case 'function':\n callback = wrapCallback(logger, arg);\n break;\n case 'date':\n extraArgs.push(arg);\n break;\n case 'error':\n case 'domexception':\n case 'exception': // Firefox Exception type\n if (err) {\n extraArgs.push(arg);\n } else {\n err = arg;\n }\n break;\n case 'object':\n case 'array':\n if (\n arg instanceof Error ||\n (typeof DOMException !== 'undefined' && arg instanceof DOMException)\n ) {\n if (err) {\n extraArgs.push(arg);\n } else {\n err = arg;\n }\n break;\n }\n if (requestKeys && typ === 'object' && !request) {\n for (var j = 0, len = requestKeys.length; j < len; ++j) {\n if (arg[requestKeys[j]] !== undefined) {\n request = arg;\n break;\n }\n }\n if (request) {\n break;\n }\n }\n if (custom) {\n extraArgs.push(arg);\n } else {\n custom = arg;\n }\n break;\n default:\n if (\n arg instanceof Error ||\n (typeof DOMException !== 'undefined' && arg instanceof DOMException)\n ) {\n if (err) {\n extraArgs.push(arg);\n } else {\n err = arg;\n }\n break;\n }\n extraArgs.push(arg);\n }\n }\n\n // if custom is an array this turns it into an object with integer keys\n if (custom) custom = nonCircularClone(custom);\n\n if (extraArgs.length > 0) {\n if (!custom) custom = nonCircularClone({});\n custom.extraArgs = nonCircularClone(extraArgs);\n }\n\n var item = {\n message: message,\n err: err,\n custom: custom,\n timestamp: now(),\n callback: callback,\n notifier: notifier,\n diagnostic: diagnostic,\n uuid: uuid4(),\n };\n\n item.data = item.data || {};\n\n setCustomItemKeys(item, custom);\n\n if (requestKeys && request) {\n item.request = request;\n }\n if (lambdaContext) {\n item.lambdaContext = lambdaContext;\n }\n item._originalArgs = args;\n item.diagnostic.original_arg_types = argTypes;\n return item;\n}\n\nfunction setCustomItemKeys(item, custom) {\n if (custom && custom.level !== undefined) {\n item.level = custom.level;\n delete custom.level;\n }\n if (custom && custom.skipFrames !== undefined) {\n item.skipFrames = custom.skipFrames;\n delete custom.skipFrames;\n }\n}\n\nfunction addErrorContext(item, errors) {\n var custom = item.data.custom || {};\n var contextAdded = false;\n\n try {\n for (const error of errors) {\n if (hasOwn(error, 'rollbarContext')) {\n custom = merge(custom, nonCircularClone(error.rollbarContext));\n contextAdded = true;\n }\n }\n\n // Avoid adding an empty object to the data.\n if (contextAdded) {\n item.data.custom = custom;\n }\n } catch (e) {\n item.diagnostic.error_context = 'Failed: ' + e.message;\n }\n}\n\nvar TELEMETRY_TYPES = [\n 'log',\n 'network',\n 'dom',\n 'navigation',\n 'error',\n 'manual',\n];\nvar TELEMETRY_LEVELS = ['critical', 'error', 'warning', 'info', 'debug'];\n\nfunction arrayIncludes(arr, val) {\n for (const entry of arr) {\n if (entry === val) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction createTelemetryEvent(args) {\n var type, metadata, level;\n var arg;\n\n for (var i = 0, l = args.length; i < l; ++i) {\n arg = args[i];\n\n var typ = typeName(arg);\n switch (typ) {\n case 'string':\n if (!type && arrayIncludes(TELEMETRY_TYPES, arg)) {\n type = arg;\n } else if (!level && arrayIncludes(TELEMETRY_LEVELS, arg)) {\n level = arg;\n }\n break;\n case 'object':\n metadata = arg;\n break;\n default:\n break;\n }\n }\n var event = {\n type: type || 'manual',\n metadata: metadata || {},\n level: level,\n };\n\n return event;\n}\n\nfunction addItemAttributes(itemData, attributes) {\n itemData.attributes = itemData.attributes || [];\n for (const a of attributes) {\n if (a.value === undefined) {\n continue;\n }\n itemData.attributes.push(a);\n }\n}\n\n/*\n * get - given an obj/array and a keypath, return the value at that keypath or\n * undefined if not possible.\n *\n * @param obj - an object or array\n * @param path - a string of keys separated by '.' such as 'plugin.jquery.0.message'\n * which would correspond to 42 in `{plugin: {jquery: [{message: 42}]}}`\n */\nfunction get(obj, path) {\n if (!obj) {\n return undefined;\n }\n var keys = path.split('.');\n var result = obj;\n try {\n for (var i = 0, len = keys.length; i < len; ++i) {\n result = result[keys[i]];\n }\n } catch (_e) {\n result = undefined;\n }\n return result;\n}\n\nfunction set(obj, path, value) {\n if (!obj) {\n return;\n }\n\n // Prevent prototype pollution by setting the prototype to null.\n Object.setPrototypeOf(obj, null);\n\n var keys = path.split('.');\n var len = keys.length;\n if (len < 1) {\n return;\n }\n if (len === 1) {\n obj[keys[0]] = value;\n return;\n }\n try {\n var temp = obj[keys[0]] || {};\n var replacement = temp;\n for (var i = 1; i < len - 1; ++i) {\n temp[keys[i]] = temp[keys[i]] || {};\n temp = temp[keys[i]];\n }\n temp[keys[len - 1]] = value;\n obj[keys[0]] = replacement;\n } catch (_e) {\n return;\n }\n}\n\nfunction formatArgsAsString(args) {\n var i, len, arg;\n var result = [];\n for (i = 0, len = args.length; i < len; ++i) {\n arg = args[i];\n switch (typeName(arg)) {\n case 'object':\n arg = stringify(arg);\n arg = arg.error || arg.value;\n if (arg.length > 500) {\n arg = arg.substr(0, 497) + '...';\n }\n break;\n case 'null':\n arg = 'null';\n break;\n case 'undefined':\n arg = 'undefined';\n break;\n case 'symbol':\n arg = arg.toString();\n break;\n }\n result.push(arg);\n }\n return result.join(' ');\n}\n\nfunction now() {\n if (Date.now) {\n return Date.now();\n }\n return Number(new Date());\n}\n\nfunction filterIp(requestData, captureIp) {\n if (!requestData || !requestData['user_ip'] || captureIp === true) {\n return;\n }\n var newIp = requestData['user_ip'];\n if (!captureIp) {\n newIp = null;\n } else {\n try {\n var parts;\n if (newIp.indexOf('.') !== -1) {\n parts = newIp.split('.');\n parts.pop();\n parts.push('0');\n newIp = parts.join('.');\n } else if (newIp.indexOf(':') !== -1) {\n parts = newIp.split(':');\n if (parts.length > 2) {\n var beginning = parts.slice(0, 3);\n var slashIdx = beginning[2].indexOf('/');\n if (slashIdx !== -1) {\n beginning[2] = beginning[2].substring(0, slashIdx);\n }\n var terminal = '0000:0000:0000:0000:0000';\n newIp = beginning.concat(terminal).join(':');\n }\n } else {\n newIp = null;\n }\n } catch (_e) {\n newIp = null;\n }\n }\n requestData['user_ip'] = newIp;\n}\n\nfunction handleOptions(current, input, payload, logger) {\n var result = merge(current, input, payload);\n result = updateDeprecatedOptions(result, logger);\n if (!input || input.overwriteScrubFields) {\n return result;\n }\n if (input.scrubFields) {\n result.scrubFields = (current.scrubFields || []).concat(input.scrubFields);\n }\n return result;\n}\n\nfunction updateDeprecatedOptions(options, logger) {\n if (options.hostWhiteList && !options.hostSafeList) {\n options.hostSafeList = options.hostWhiteList;\n options.hostWhiteList = undefined;\n logger && logger.log('hostWhiteList is deprecated. Use hostSafeList.');\n }\n if (options.hostBlackList && !options.hostBlockList) {\n options.hostBlockList = options.hostBlackList;\n options.hostBlackList = undefined;\n logger && logger.log('hostBlackList is deprecated. Use hostBlockList.');\n }\n return options;\n}\n\nfunction merge() {\n function isPlainObject(obj) {\n if (!obj || Object.prototype.toString.call(obj) !== '[object Object]') {\n return false;\n }\n\n var hasOwnConstructor = hasOwn(obj, 'constructor');\n var hasIsPrototypeOf =\n obj.constructor &&\n obj.constructor.prototype &&\n hasOwn(obj.constructor.prototype, 'isPrototypeOf');\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n }\n\n // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n var key;\n for (key in obj) {\n /**/\n }\n\n return typeof key === 'undefined' || hasOwn(obj, key);\n }\n\n var i,\n src,\n copy,\n clone,\n name,\n result = Object.create(null), // no prototype pollution on Object\n current = null,\n length = arguments.length;\n\n for (i = 0; i < length; i++) {\n current = arguments[i];\n if (current === null || current === undefined) {\n continue;\n }\n\n for (name in current) {\n src = result[name];\n copy = current[name];\n if (result !== copy) {\n if (copy && isPlainObject(copy)) {\n clone = src && isPlainObject(src) ? src : {};\n result[name] = merge(clone, copy);\n } else if (typeof copy !== 'undefined') {\n result[name] = copy;\n }\n }\n }\n }\n return result;\n}\n\nexport {\n addParamsAndAccessTokenToPath,\n createItem,\n addErrorContext,\n createTelemetryEvent,\n addItemAttributes,\n filterIp,\n formatArgsAsString,\n formatUrl,\n get,\n handleOptions,\n isError,\n isFiniteNumber,\n isFunction,\n hasOwn,\n isIterable,\n isNativeFunction,\n isObject,\n isString,\n isType,\n isPromise,\n isBrowser,\n jsonParse,\n LEVELS,\n makeUnhandledStackInfo,\n merge,\n now,\n redact,\n sanitizeHref,\n sanitizeUrl,\n set,\n stringify,\n maxByteSize,\n typeName,\n uuid4,\n};\n","import * as _ from '../utility.js';\n\nfunction traverse(obj, func, seen) {\n var k, v, i;\n var isObj = _.isType(obj, 'object');\n var isArray = _.isType(obj, 'array');\n var keys = [];\n var seenIndex;\n\n // Best might be to use Map here with `obj` as the keys, but we want to support IE < 11.\n seen = seen || { obj: [], mapped: [] };\n\n if (isObj) {\n seenIndex = seen.obj.indexOf(obj);\n\n if (isObj && seenIndex !== -1) {\n // Prefer the mapped object if there is one.\n return seen.mapped[seenIndex] || seen.obj[seenIndex];\n }\n\n seen.obj.push(obj);\n seenIndex = seen.obj.length - 1;\n }\n\n if (isObj) {\n for (k in obj) {\n if (_.hasOwn(obj, k)) {\n keys.push(k);\n }\n }\n } else if (isArray) {\n for (i = 0; i < obj.length; ++i) {\n keys.push(i);\n }\n }\n\n var result = isObj ? {} : [];\n var same = true;\n for (i = 0; i < keys.length; ++i) {\n k = keys[i];\n v = obj[k];\n result[k] = func(k, v, seen);\n same = same && result[k] === obj[k];\n }\n\n if (isObj && !same) {\n seen.mapped[seenIndex] = result;\n }\n\n return !same ? result : obj;\n}\n\nexport default traverse;\n","import traverse from './utility/traverse.js';\nimport * as _ from './utility.js';\n\nfunction scrub(data, scrubFields, scrubPaths) {\n scrubFields = scrubFields || [];\n\n if (scrubPaths) {\n for (const path of scrubPaths) {\n scrubPath(data, path);\n }\n }\n\n var paramRes = _getScrubFieldRegexs(scrubFields);\n var queryRes = _getScrubQueryParamRegexs(scrubFields);\n\n function redactQueryParam(dummy0, paramPart) {\n return paramPart + _.redact();\n }\n\n function paramScrubber(v) {\n if (_.isType(v, 'string')) {\n for (const regex of queryRes) {\n v = v.replace(regex, redactQueryParam);\n }\n }\n return v;\n }\n\n function valScrubber(k, v) {\n for (const regex of paramRes) {\n if (regex.test(k)) {\n v = _.redact();\n break;\n }\n }\n return v;\n }\n\n function scrubber(k, v, seen) {\n var tmpV = valScrubber(k, v);\n if (tmpV === v) {\n if (_.isType(v, 'object') || _.isType(v, 'array')) {\n return traverse(v, scrubber, seen);\n }\n return paramScrubber(tmpV);\n } else {\n return tmpV;\n }\n }\n\n return traverse(data, scrubber);\n}\n\nfunction scrubPath(obj, path) {\n var keys = path.split('.');\n var last = keys.length - 1;\n try {\n for (const [index, key] of keys.entries()) {\n if (index < last) {\n obj = obj[key];\n } else {\n obj[key] = _.redact();\n }\n }\n } catch (_e) {\n // Missing key is OK;\n }\n}\n\nfunction _getScrubFieldRegexs(scrubFields) {\n var ret = [];\n for (const field of scrubFields) {\n var pat = '^\\\\[?(%5[bB])?' + field + '\\\\[?(%5[bB])?\\\\]?(%5[dD])?$';\n ret.push(new RegExp(pat, 'i'));\n }\n return ret;\n}\n\nfunction _getScrubQueryParamRegexs(scrubFields) {\n var ret = [];\n for (const field of scrubFields) {\n var pat = '\\\\[?(%5[bB])?' + field + '\\\\[?(%5[bB])?\\\\]?(%5[dD])?';\n ret.push(new RegExp('(' + pat + '=)([^&\\\\n]+)', 'igm'));\n }\n return ret;\n}\n\nexport default scrub;\n","import * as _ from './utility.js';\n\nconst MAX_EVENTS = 100;\n\n// Temporary workaround while solving commonjs -> esm issues in Node 18 - 20.\nfunction fromMillis(millis) {\n return [Math.trunc(millis / 1000), Math.round((millis % 1000) * 1e6)];\n}\n\nclass Telemeter {\n constructor(options, tracing) {\n this.queue = [];\n this.options = _.merge(options);\n var maxTelemetryEvents = this.options.maxTelemetryEvents || MAX_EVENTS;\n this.maxQueueSize = Math.max(0, Math.min(maxTelemetryEvents, MAX_EVENTS));\n this.tracing = tracing;\n this.telemetrySpan = this.tracing?.startSpan('rollbar-telemetry', {});\n }\n\n configure(options) {\n var oldOptions = this.options;\n this.options = _.merge(oldOptions, options);\n var maxTelemetryEvents = this.options.maxTelemetryEvents || MAX_EVENTS;\n var newMaxEvents = Math.max(0, Math.min(maxTelemetryEvents, MAX_EVENTS));\n var deleteCount = 0;\n if (this.queue.length > newMaxEvents) {\n deleteCount = this.queue.length - newMaxEvents;\n }\n this.maxQueueSize = newMaxEvents;\n this.queue.splice(0, deleteCount);\n }\n\n copyEvents() {\n var events = Array.prototype.slice.call(this.queue, 0);\n if (_.isFunction(this.options.filterTelemetry)) {\n try {\n var i = events.length;\n while (i--) {\n if (this.options.filterTelemetry(events[i])) {\n events.splice(i, 1);\n }\n }\n } catch (_e) {\n this.options.filterTelemetry = null;\n }\n }\n\n // Filter until supported in legacy telemetry\n events = events.filter((e) => e.type !== 'connectivity');\n\n // Remove internal keys from output\n events = events.map(\n ({ otelAttributes: _otelAttributes, ...event }) => event,\n );\n\n return events;\n }\n\n exportTelemetrySpan(attributes = {}) {\n if (this.telemetrySpan) {\n this.telemetrySpan.end(attributes);\n this.telemetrySpan = this.tracing.startSpan('rollbar-telemetry', {});\n }\n }\n\n capture(\n type,\n metadata,\n level,\n rollbarUUID,\n timestamp = null,\n otelAttributes = null,\n ) {\n var e = {\n level: getLevel(type, level),\n type: type,\n timestamp_ms: timestamp || _.now(),\n body: metadata,\n source: 'client',\n };\n if (rollbarUUID) {\n e.uuid = rollbarUUID;\n }\n if (otelAttributes) {\n e.otelAttributes = otelAttributes;\n }\n\n try {\n if (\n _.isFunction(this.options.filterTelemetry) &&\n this.options.filterTelemetry(e)\n ) {\n return false;\n }\n } catch (_exc) {\n this.options.filterTelemetry = null;\n }\n\n this.push(e);\n return e;\n }\n\n captureEvent(type, metadata, level, rollbarUUID) {\n return this.capture(type, metadata, level, rollbarUUID);\n }\n\n captureError(err, level, rollbarUUID, timestamp) {\n const message = err.message || String(err);\n var metadata = { message };\n if (err.stack) {\n metadata.stack = err.stack;\n }\n const otelAttributes = {\n message,\n level,\n type: 'error',\n uuid: rollbarUUID,\n };\n\n this.telemetrySpan?.addEvent(\n 'rollbar-occurrence-event',\n otelAttributes,\n fromMillis(timestamp),\n );\n\n return this.capture(\n 'error',\n metadata,\n level,\n rollbarUUID,\n timestamp,\n otelAttributes,\n );\n }\n\n captureLog(message, level, rollbarUUID, timestamp) {\n const event = rollbarUUID\n ? 'rollbar-occurrence-event'\n : 'rollbar-log-event';\n const otelAttributes = {\n message,\n level,\n ...(rollbarUUID ? { type: 'message', uuid: rollbarUUID } : {}),\n };\n\n this.telemetrySpan?.addEvent(event, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'log',\n { message },\n level,\n rollbarUUID,\n timestamp,\n otelAttributes,\n );\n }\n\n captureNetwork(metadata, subtype, rollbarUUID, requestData) {\n subtype = subtype || 'xhr';\n metadata.subtype = metadata.subtype || subtype;\n if (requestData) {\n metadata.request = requestData;\n }\n const level = this.levelFromStatus(metadata.status_code);\n const endTimeNano = (metadata.end_time_ms || 0) * 1e6;\n const otelAttributes = {\n type: metadata.subtype,\n method: metadata.method,\n url: metadata.url,\n statusCode: metadata.status_code,\n 'request.headers': JSON.stringify(metadata.request_headers || {}),\n 'response.headers': JSON.stringify(metadata.response?.headers || {}),\n 'response.timeUnixNano': endTimeNano.toString(),\n };\n const requestBody = metadata.request;\n const responseBody = metadata.response?.body;\n if (requestBody) {\n otelAttributes['request.body'] = JSON.stringify(requestBody);\n }\n if (responseBody) {\n otelAttributes['response.body'] = JSON.stringify(responseBody);\n }\n\n this.telemetrySpan?.addEvent(\n 'rollbar-network-event',\n otelAttributes,\n fromMillis(metadata.start_time_ms),\n );\n\n return this.capture(\n 'network',\n metadata,\n level,\n rollbarUUID,\n metadata.start_time_ms,\n otelAttributes,\n );\n }\n\n levelFromStatus(statusCode) {\n if (statusCode >= 200 && statusCode < 400) {\n return 'info';\n }\n if (statusCode === 0 || statusCode >= 400) {\n return 'error';\n }\n return 'info';\n }\n\n captureDom(subtype, element, value, checked, rollbarUUID) {\n var metadata = {\n subtype: subtype,\n element: element,\n };\n if (value !== undefined) {\n metadata.value = value;\n }\n if (checked !== undefined) {\n metadata.checked = checked;\n }\n return this.capture('dom', metadata, 'info', rollbarUUID);\n }\n\n captureInput({ type, isSynthetic, element, value, timestamp }) {\n const name = 'rollbar-input-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n value,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n value,\n endTimeUnixNano: fromMillis(timestamp),\n };\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureClick({ type, isSynthetic, element, timestamp }) {\n const name = 'rollbar-click-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n endTimeUnixNano: fromMillis(timestamp),\n };\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n _getRepeatedEvent(name, attributes) {\n const lastEvent = this._lastEvent(this.queue);\n\n if (\n lastEvent &&\n lastEvent.body.type === name &&\n lastEvent.otelAttributes.target === attributes.target\n ) {\n return lastEvent;\n }\n }\n\n _updateRepeatedEvent(event, attributes, timestamp) {\n const duration = Math.max(timestamp - event.timestamp_ms, 1);\n event.body.value = attributes.value;\n event.otelAttributes.value = attributes.value;\n event.otelAttributes.height = attributes.height;\n event.otelAttributes.width = attributes.width;\n event.otelAttributes.textZoomRatio = attributes.textZoomRatio;\n event.otelAttributes['endTimeUnixNano'] = fromMillis(timestamp);\n event.otelAttributes['durationUnixNano'] = fromMillis(duration);\n event.otelAttributes.count = (event.otelAttributes.count || 1) + 1;\n event.otelAttributes.rate = event.otelAttributes.count / (duration / 1000);\n }\n\n _lastEvent(list) {\n return list.length > 0 ? list[list.length - 1] : null;\n }\n\n captureFocus({ type, isSynthetic, element, timestamp }) {\n const name = 'rollbar-focus-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n };\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureResize({\n type,\n isSynthetic,\n width,\n height,\n textZoomRatio,\n timestamp,\n }) {\n const name = 'rollbar-resize-event';\n const metadata = {\n type: name,\n subtype: type,\n width,\n height,\n textZoomRatio,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n width,\n height,\n textZoomRatio,\n };\n\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureDragDrop({\n type,\n isSynthetic,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n timestamp,\n }) {\n const name = 'rollbar-dragdrop-event';\n let metadata = {\n type: name,\n subtype: type,\n isSynthetic,\n };\n\n let otelAttributes = {\n type,\n isSynthetic,\n };\n\n if (type === 'dragstart') {\n metadata = { ...metadata, element, dropEffect, effectAllowed };\n otelAttributes = {\n ...otelAttributes,\n element,\n dropEffect,\n effectAllowed,\n };\n }\n\n if (type === 'drop') {\n metadata = {\n ...metadata,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n };\n otelAttributes = {\n ...otelAttributes,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n };\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureNavigation(from, to, rollbarUUID, timestamp) {\n this.telemetrySpan?.addEvent(\n 'rollbar-navigation-event',\n { 'previous.url.full': from, 'url.full': to },\n fromMillis(timestamp),\n );\n\n return this.capture(\n 'navigation',\n { from, to },\n 'info',\n rollbarUUID,\n timestamp,\n );\n }\n\n captureDomContentLoaded(ts) {\n return this.capture(\n 'navigation',\n { subtype: 'DOMContentLoaded' },\n 'info',\n undefined,\n ts && ts.getTime(),\n );\n /**\n * If we decide to make this a dom event instead, then use the line below:\n return this.capture('dom', {subtype: 'DOMContentLoaded'}, 'info', undefined, ts && ts.getTime());\n */\n }\n\n captureLoad(ts) {\n return this.capture(\n 'navigation',\n { subtype: 'load' },\n 'info',\n undefined,\n ts && ts.getTime(),\n );\n /**\n * If we decide to make this a dom event instead, then use the line below:\n return this.capture('dom', {subtype: 'load'}, 'info', undefined, ts && ts.getTime());\n */\n }\n\n captureConnectivityChange({ type, isSynthetic, timestamp }) {\n const name = 'rollbar-connectivity-event';\n const metadata = {\n type: name,\n subtype: type,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n };\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'connectivity',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n // Only intended to be used internally by the notifier\n _captureRollbarItem(item) {\n if (!this.options.includeItemsInTelemetry) {\n return;\n }\n if (item.err) {\n return this.captureError(item.err, item.level, item.uuid, item.timestamp);\n }\n if (item.message) {\n return this.captureLog(\n item.message,\n item.level,\n item.uuid,\n item.timestamp,\n );\n }\n if (item.custom) {\n return this.capture(\n 'log',\n item.custom,\n item.level,\n item.uuid,\n item.timestamp,\n );\n }\n }\n\n push(e) {\n this.queue.push(e);\n if (this.queue.length > this.maxQueueSize) {\n this.queue.shift();\n }\n }\n}\n\nfunction getLevel(type, level) {\n if (level) {\n return level;\n }\n var defaultLevel = {\n error: 'error',\n manual: 'info',\n };\n return defaultLevel[type] || 'info';\n}\n\nexport default Telemeter;\n","export class Context {\n constructor(parentContext) {\n this._currentContext = parentContext ? new Map(parentContext) : new Map();\n }\n\n getValue(key) {\n return this._currentContext.get(key);\n }\n\n setValue(key, value) {\n const context = new Context(this._currentContext);\n context._currentContext.set(key, value);\n return context;\n }\n\n deleteValue(key) {\n const context = new Context(self._currentContext);\n context._currentContext.delete(key);\n return context;\n }\n}\n\nexport const ROOT_CONTEXT = new Context();\n","import { ROOT_CONTEXT } from './context.js';\n\nexport class ContextManager {\n constructor() {\n this.currentContext = ROOT_CONTEXT;\n }\n\n active() {\n return this.currentContext;\n }\n\n enterContext(context) {\n const previousContext = this.currentContext;\n this.currentContext = context || ROOT_CONTEXT;\n return previousContext;\n }\n\n exitContext(context) {\n this.currentContext = context;\n return this.currentContext;\n }\n\n with(context, fn, thisArg, ...args) {\n const previousContext = this.enterContext(context);\n try {\n return fn.call(thisArg, ...args);\n } finally {\n this.exitContext(previousContext);\n }\n }\n}\n\nexport function createContextKey(key) {\n // Use Symbol for OpenTelemetry compatibility.\n return Symbol.for(key);\n}\n","/**\n * @module hrtime\n *\n * @description Methods for handling OpenTelemetry hrtime.\n */\n\n/**\n * Convert a duration in milliseconds to an OpenTelemetry hrtime tuple.\n *\n * @param {number} millis - The duration in milliseconds.\n * @returns {[number, number]} An array where the first element is seconds\n * and the second is nanoseconds.\n */\nfunction fromMillis(millis) {\n return [Math.trunc(millis / 1000), Math.round((millis % 1000) * 1e6)];\n}\n\n/**\n * Convert an OpenTelemetry hrtime tuple back to a duration in milliseconds.\n *\n * @param {[number, number]} hrtime - The hrtime tuple [seconds, nanoseconds].\n * @returns {number} The total duration in milliseconds.\n */\nfunction toMillis(hrtime) {\n return hrtime[0] * 1e3 + Math.round(hrtime[1] / 1e6);\n}\n\n/**\n * Convert an OpenTelemetry hrtime tuple back to a duration in nanoseconds.\n *\n * @param {[number, number]} hrtime - The hrtime tuple [seconds, nanoseconds].\n * @returns {number} The total duration in nanoseconds.\n */\nfunction toNanos(hrtime) {\n return hrtime[0] * 1e9 + hrtime[1];\n}\n\n/**\n * Adds two OpenTelemetry hrtime tuples.\n *\n * @param {[number, number]} a - The first hrtime tuple [s, ns].\n * @param {[number, number]} b - The second hrtime tuple [s, ns].\n * @returns {[number, number]} Summed hrtime tuple, normalized.\n *\n */\nfunction add(a, b) {\n return [a[0] + b[0] + Math.trunc((a[1] + b[1]) / 1e9), (a[1] + b[1]) % 1e9];\n}\n\n/**\n * Get the current high-resolution time as an OpenTelemetry hrtime tuple.\n *\n * @param {boolean} usePerformance=false - If true, uses the Performance API (timeOrigin + now()).\n *\n * @returns {[number, number]} The current hrtime tuple [s, ns].\n */\nfunction now(usePerformance = false) {\n if (usePerformance) {\n return add(\n fromMillis(performance.timeOrigin),\n fromMillis(performance.now()),\n );\n }\n return fromMillis(Date.now());\n}\n\n/**\n * Check if a value is a valid OpenTelemetry hrtime tuple.\n *\n * An hrtime tuple is an Array of exactly two numbers:\n * [seconds, nanoseconds]\n *\n * @param {*} value – anything to test\n * @returns {boolean} true if `value` is a [number, number] array of length 2\n *\n * @example\n * isHrTime([ 1, 500 ]); // true\n * isHrTime([ 0, 1e9 ]); // true\n * isHrTime([ '1', 500 ]); // false\n * isHrTime({ 0: 1, 1: 500 }); // false\n */\nfunction isHrTime(value) {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number'\n );\n}\n\n/**\n * Methods for handling hrtime. OpenTelemetry uses the [seconds, nanoseconds]\n * format for hrtime in the `ReadableSpan` interface.\n *\n * @example\n * import hrtime from '@tracing/hrtime.js';\n *\n * hrtime.fromMillis(1000);\n * hrtime.toMillis([0, 1000]);\n * hrtime.add([0, 0], [0, 1000]);\n * hrtime.now();\n * hrtime.isHrTime([0, 1000]);\n */\nexport default { fromMillis, toMillis, toNanos, add, now, isHrTime };\n","import hrtime from './hrtime.js';\n\n/**\n * SpanExporter is responsible for exporting ReadableSpan objects\n * and transforming them into the OTLP-compatible format.\n */\nexport class SpanExporter {\n constructor(api, options = {}) {\n this.api = api;\n this.options = options;\n }\n\n /**\n * Export spans to the span export queue\n *\n * @param {Array} spans - Array of ReadableSpan objects to export\n * @param {Function} _resultCallback - Optional callback (not used)\n */\n export(spans, _resultCallback) {\n spanExportQueue.push(...spans);\n }\n\n /**\n * Transforms an array of ReadableSpan objects into the OTLP format payload\n * compatible with the Rollbar API. This follows the OpenTelemetry protocol\n * specification for traces.\n *\n * @returns {Object} OTLP format payload for API transmission\n */\n toPayload() {\n const spans = spanExportQueue.slice();\n spanExportQueue.length = 0;\n\n if (!spans || !spans.length) {\n return { resourceSpans: [] };\n }\n\n const resource = (spans[0] && spans[0].resource) || {};\n\n const scopeMap = new Map();\n\n for (const span of spans) {\n const scopeKey = span.instrumentationScope\n ? `${span.instrumentationScope.name}:${span.instrumentationScope.version}`\n : 'default:1.0.0';\n\n if (!scopeMap.has(scopeKey)) {\n scopeMap.set(scopeKey, {\n scope: span.instrumentationScope || {\n name: 'default',\n version: '1.0.0',\n attributes: [],\n },\n spans: [],\n });\n }\n\n scopeMap.get(scopeKey).spans.push(this._transformSpan(span));\n }\n\n return {\n resourceSpans: [\n {\n resource: this._transformResource(resource),\n scopeSpans: Array.from(scopeMap.values()).map((scopeData) => ({\n scope: this._transformInstrumentationScope(scopeData.scope),\n spans: scopeData.spans,\n })),\n },\n ],\n };\n }\n\n /**\n * Sends the given payload to the Rollbar API.\n *\n * @param {String} payload - Serialized OTLP format payload\n * @param {Object} headers - Optional request headers\n * @returns {Promise} Promise that resolves when the request completes\n */\n post(payload, headers = {}) {\n return this.api.postSpans(payload, headers);\n }\n\n /**\n * Transforms a ReadableSpan into the OTLP Span format\n *\n * @private\n * @param {Object} span - ReadableSpan object to transform\n * @returns {Object} OTLP Span format\n */\n _transformSpan(span) {\n const transformAttributes = (attributes) => {\n return Object.entries(attributes || {}).map(([key, value]) => ({\n key,\n value: this._transformAnyValue(value),\n }));\n };\n\n const transformEvents = (events) => {\n return (events || []).map((event) => ({\n timeUnixNano: hrtime.toNanos(event.time),\n name: event.name,\n attributes: transformAttributes(event.attributes),\n }));\n };\n\n return {\n traceId: span.spanContext.traceId,\n spanId: span.spanContext.spanId,\n parentSpanId: span.parentSpanId || '',\n name: span.name,\n kind: span.kind || 1, // INTERNAL by default\n startTimeUnixNano: hrtime.toNanos(span.startTime),\n endTimeUnixNano: hrtime.toNanos(span.endTime),\n attributes: transformAttributes(span.attributes),\n events: transformEvents(span.events),\n };\n }\n\n /**\n * Transforms a resource object into OTLP Resource format\n *\n * @private\n * @param {Object} resource - Resource information\n * @returns {Object} OTLP Resource format\n */\n _transformResource(resource) {\n const attributes = resource.attributes || {};\n const keyValues = Object.entries(attributes).map(([key, value]) => ({\n key,\n value: this._transformAnyValue(value),\n }));\n\n return {\n attributes: keyValues,\n };\n }\n\n /**\n * Transforms an instrumentation scope into OTLP InstrumentationScope format\n *\n * @private\n * @param {Object} scope - Instrumentation scope information\n * @returns {Object} OTLP InstrumentationScope format\n */\n _transformInstrumentationScope(scope) {\n return {\n name: scope.name || '',\n version: scope.version || '',\n attributes: (scope.attributes || []).map((attr) => ({\n key: attr.key,\n value: this._transformAnyValue(attr.value),\n })),\n };\n }\n\n /**\n * Transforms a JavaScript value into an OTLP AnyValue\n *\n * @private\n * @param {any} value - Value to transform\n * @returns {Object} OTLP AnyValue format\n */\n _transformAnyValue(value) {\n if (value === null || value === undefined) {\n return { stringValue: '' };\n }\n\n const type = typeof value;\n\n if (type === 'string') {\n return { stringValue: value };\n } else if (type === 'number') {\n if (Number.isInteger(value)) {\n return { intValue: value.toString() };\n } else {\n return { doubleValue: value };\n }\n } else if (type === 'boolean') {\n return { boolValue: value };\n } else if (Array.isArray(value)) {\n return {\n arrayValue: {\n values: value.map((v) => this._transformAnyValue(v)),\n },\n };\n } else if (type === 'object') {\n return {\n kvlistValue: {\n values: Object.entries(value).map(([k, v]) => ({\n key: k,\n value: this._transformAnyValue(v),\n })),\n },\n };\n }\n\n return { stringValue: String(value) };\n }\n}\n\nexport const spanExportQueue = [];\n","/**\n * Generate a random hexadecimal ID of specified byte length\n *\n * @param {number} bytes - Number of bytes for the ID (default: 16)\n * @returns {string} - Hexadecimal string representation\n */\nfunction gen(bytes = 16) {\n let randomBytes = new Uint8Array(bytes);\n crypto.getRandomValues(randomBytes);\n let randHex = Array.from(randomBytes, (byte) =>\n byte.toString(16).padStart(2, '0'),\n ).join('');\n return randHex;\n}\n\n/**\n * Tracing id generation utils\n *\n * @example\n * import id from './id.js';\n *\n * const spanId = id.gen(8); // => \"a1b2c3d4e5f6...\"\n */\nexport default { gen };\n","import id from './id.js';\n\nconst SESSION_KEY = 'RollbarSession';\n\nexport class Session {\n _attributes;\n\n constructor(tracing, options) {\n this.options = options;\n this.tracing = tracing;\n this.window = tracing.window;\n this.session = null;\n this._attributes = {};\n }\n\n init(attrs = {}) {\n if (this.session) {\n return this;\n }\n this.getSession() || this.createSession();\n\n this.initSessionAttributes(attrs);\n\n return this;\n }\n\n getSession() {\n try {\n const serializedSession = this.window.sessionStorage.getItem(SESSION_KEY);\n\n if (!serializedSession) {\n return null;\n }\n\n this.session = JSON.parse(serializedSession);\n } catch {\n return null;\n }\n return this;\n }\n\n createSession() {\n this.session = {\n id: id.gen(),\n createdAt: Date.now(),\n };\n\n return this.setSession(this.session);\n }\n\n setSession(session) {\n const sessionString = JSON.stringify(session);\n\n try {\n this.window.sessionStorage.setItem(SESSION_KEY, sessionString);\n } catch {\n return null;\n }\n return this;\n }\n\n get attributes() {\n return this._attributes;\n }\n\n setAttributes(attributes) {\n this._attributes = { ...this._attributes, ...attributes };\n return this;\n }\n\n setUser(user) {\n this.setAttributes({\n 'user.id': user?.id,\n 'user.email': user?.email,\n 'user.name': user?.name || user?.username,\n });\n return this;\n }\n\n initSessionAttributes(attrs) {\n this.setAttributes({\n 'session.id': this.session.id,\n 'browser.brands': navigator.userAgentData?.brands,\n 'browser.language': navigator.language,\n 'browser.mobile': navigator.userAgentData?.mobile,\n 'browser.platform': navigator.userAgentData?.platform,\n 'client.address': '$remote_ip', // updated at the API\n 'rollbar.notifier.framework': 'browser-js',\n 'user_agent.original': navigator.userAgent,\n ...attrs,\n });\n return this;\n }\n}\n","let log = () => {};\n\nconst levels = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n disable: 4,\n};\n\nconst logger = {\n error: (...args) => log('error', args),\n warn: (...args) => log('warn', args),\n info: (...args) => log('info', args),\n debug: (...args) => log('debug', args),\n log: (...args) => log('info', args),\n init: ({ logLevel }) => {\n log = function (level, args) {\n if (levels[level] < levels[logLevel]) return;\n\n args.unshift('Rollbar:');\n\n // eslint-disable-next-line no-console\n console[level].apply(console, args);\n };\n },\n};\n\nexport default logger;\n","import logger from '../logger.js';\n\nexport class SpanProcessor {\n constructor(exporter, options = {}) {\n this.exporter = exporter;\n this.options = options;\n this.pendingSpans = new Map();\n this.transforms = [this.userTransform.bind(this)];\n }\n\n addTransform(transformFn) {\n this.transforms.unshift(transformFn);\n }\n\n userTransform(span) {\n if (this.options.transformSpan) {\n this.options.transformSpan({ span: span });\n }\n }\n\n applyTransforms(span) {\n for (const transform of this.transforms) {\n try {\n transform(span);\n } catch (e) {\n logger.error('Error running span transform callback', e);\n }\n }\n }\n\n onStart(span, _parentContext) {\n this.pendingSpans.set(span.span.spanContext.spanId, span);\n }\n\n onEnd(span) {\n this.applyTransforms(span.span);\n this.exporter.export([span.export()]);\n this.pendingSpans.delete(span.span.spanContext.spanId);\n }\n}\n","import hrtime from './hrtime.js';\n\nexport class Span {\n constructor(options) {\n this.usePerformance = options.usePerformance;\n this.initReadableSpan(options);\n\n this.spanProcessor = options.spanProcessor;\n this.spanProcessor.onStart(this, options.context);\n\n if (options.attributes) {\n this.setAttributes(options.attributes);\n }\n return this;\n }\n\n initReadableSpan(options) {\n this.span = {\n name: options.name,\n kind: options.kind,\n spanContext: options.spanContext,\n parentSpanId: options.parentSpanId,\n startTime: options.startTime || hrtime.now(options.usePerformance),\n endTime: [0, 0],\n status: { code: 0, message: '' },\n attributes: { 'session.id': options.session?.id },\n links: [],\n events: [],\n duration: 0,\n ended: false,\n resource: options.resource,\n instrumentationScope: options.scope,\n droppedAttributesCount: 0,\n droppedEventsCount: 0,\n droppedLinksCount: 0,\n };\n }\n\n spanContext() {\n return this.span.spanContext;\n }\n\n get spanId() {\n return this.span.spanContext.spanId;\n }\n\n get traceId() {\n return this.span.spanContext.traceId;\n }\n\n setAttribute(key, value) {\n if (value == null || this.span.ended) return this;\n if (key.length === 0) return this;\n\n this.span.attributes[key] = value;\n return this;\n }\n\n setAttributes(attributes) {\n for (const [k, v] of Object.entries(attributes)) {\n this.setAttribute(k, v);\n }\n return this;\n }\n\n addEvent(name, attributes = {}, time) {\n if (this.span.ended) return this;\n\n this.span.events.push({\n name,\n attributes,\n time: time || hrtime.now(),\n droppedAttributesCount: 0,\n });\n\n return this;\n }\n\n isRecording() {\n return this.span.ended === false;\n }\n\n end(attributes, time) {\n if (attributes) this.setAttributes(attributes);\n this.span.endTime = time || hrtime.now(this.usePerformance);\n this.span.ended = true;\n this.spanProcessor.onEnd(this);\n }\n\n export() {\n return this.span;\n }\n}\n","import id from './id.js';\nimport { Span } from './span.js';\n\nexport class Tracer {\n constructor(tracing, spanProcessor) {\n this.spanProcessor = spanProcessor;\n this.tracing = tracing;\n }\n\n startSpan(\n name,\n options = {},\n context = this.tracing.contextManager.active(),\n ) {\n const parentSpan = this.tracing.getSpan(context);\n const parentSpanContext = parentSpan?.spanContext();\n const spanId = id.gen(8);\n let traceId;\n let traceFlags = 0;\n let traceState = null;\n let parentSpanId;\n if (parentSpanContext) {\n traceId = parentSpanContext.traceId;\n traceState = parentSpanContext.traceState;\n parentSpanId = parentSpanContext.spanId;\n } else {\n traceId = id.gen(16);\n }\n\n const kind = 0;\n const spanContext = { traceId, spanId, traceFlags, traceState };\n const resource = {\n attributes: {\n ...(this.tracing.resource?.attributes || {}),\n ...(options.resource?.attributes || {}),\n },\n };\n\n const span = new Span({\n resource: resource,\n scope: this.tracing.scope,\n session: this.tracing.session?.session,\n context,\n spanContext,\n name,\n kind,\n parentSpanId,\n spanProcessor: this.spanProcessor,\n startTime: options.startTime,\n usePerformance: options.usePerformance,\n });\n return span;\n }\n}\n","import { ContextManager, createContextKey } from './contextManager.js';\nimport { SpanExporter } from './exporter.js';\nimport id from './id.js';\nimport { Session } from './session.js';\nimport { SpanProcessor } from './spanProcessor.js';\nimport { Tracer } from './tracer.js';\n\nconst SPAN_KEY = createContextKey('Rollbar Context Key SPAN');\n\nexport default class Tracing {\n constructor(gWindow, api, options) {\n this.api = api;\n this.options = options;\n this.window = gWindow;\n\n if (this.window.sessionStorage) {\n this.session = new Session(this, options);\n }\n this.createTracer();\n }\n\n configure(options) {\n // Options merge happens before configure is called, so we can just replace.\n this.options = options;\n }\n\n initSession() {\n if (this.session) {\n this.session.init();\n }\n }\n\n get sessionId() {\n if (this.session) {\n return this.session.session.id;\n }\n return null;\n }\n\n get resource() {\n return {\n attributes: {\n ...(this.options.resource || {}),\n 'rollbar.environment':\n this.options.payload?.environment ?? this.options.environment,\n },\n };\n }\n\n get scope() {\n return {\n name: 'rollbar-browser-js',\n version: this.options.version,\n };\n }\n\n idGen(bytes = 16) {\n return id.gen(bytes);\n }\n\n createTracer() {\n this.contextManager = new ContextManager();\n this.exporter = new SpanExporter(this.api, this.options);\n this.spanProcessor = new SpanProcessor(this.exporter, this.options.tracing);\n this.tracer = new Tracer(this, this.spanProcessor);\n }\n\n getTracer() {\n return this.tracer;\n }\n\n addSpanTransform(transformFn) {\n this.spanProcessor.addTransform(transformFn);\n }\n\n getSpan(context = this.contextManager.active()) {\n return context.getValue(SPAN_KEY);\n }\n\n setSpan(context = this.contextManager.active(), span) {\n return context.setValue(SPAN_KEY, span);\n }\n\n startSpan(name, options = {}, context = this.contextManager.active()) {\n return this.tracer.startSpan(name, options, context);\n }\n\n with(context, fn, thisArg, ...args) {\n return this.contextManager.with(context, fn, thisArg, ...args);\n }\n\n withSpan(name, options, fn, thisArg) {\n const span = this.startSpan(name, options);\n return this.with(\n this.setSpan(this.contextManager.active(), span),\n fn,\n thisArg,\n span,\n );\n }\n}\n","import traverse from './utility/traverse.js';\nimport * as _ from './utility.js';\n\nfunction raw(payload, jsonBackup) {\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction selectFrames(frames, range) {\n var len = frames.length;\n if (len > range * 2) {\n return frames.slice(0, range).concat(frames.slice(len - range));\n }\n return frames;\n}\n\nfunction truncateFrames(payload, jsonBackup, range) {\n range = typeof range === 'undefined' ? 30 : range;\n var body = payload.data.body;\n var frames;\n if (body.trace_chain) {\n var chain = body.trace_chain;\n for (const trace of chain) {\n frames = trace.frames;\n frames = selectFrames(frames, range);\n trace.frames = frames;\n }\n } else if (body.trace) {\n frames = body.trace.frames;\n frames = selectFrames(frames, range);\n body.trace.frames = frames;\n }\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction maybeTruncateValue(len, val) {\n if (!val) {\n return val;\n }\n if (val.length > len) {\n return val.slice(0, len - 3).concat('...');\n }\n return val;\n}\n\nfunction truncateStrings(len, payload, jsonBackup) {\n function truncator(k, v, seen) {\n switch (_.typeName(v)) {\n case 'string':\n return maybeTruncateValue(len, v);\n case 'object':\n case 'array':\n return traverse(v, truncator, seen);\n default:\n return v;\n }\n }\n payload = traverse(payload, truncator);\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction truncateTraceData(traceData) {\n if (traceData.exception) {\n delete traceData.exception.description;\n traceData.exception.message = maybeTruncateValue(\n 255,\n traceData.exception.message,\n );\n }\n traceData.frames = selectFrames(traceData.frames, 1);\n return traceData;\n}\n\nfunction minBody(payload, jsonBackup) {\n var body = payload.data.body;\n if (body.trace_chain) {\n var chain = body.trace_chain;\n for (const [index, trace] of chain.entries()) {\n chain[index] = truncateTraceData(trace);\n }\n } else if (body.trace) {\n body.trace = truncateTraceData(body.trace);\n }\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction needsTruncation(payload, maxSize) {\n return _.maxByteSize(payload) > maxSize;\n}\n\nfunction truncate(payload, jsonBackup, maxSize) {\n maxSize = typeof maxSize === 'undefined' ? 512 * 1024 : maxSize;\n var strategies = [\n raw,\n truncateFrames,\n truncateStrings.bind(null, 1024),\n truncateStrings.bind(null, 512),\n truncateStrings.bind(null, 256),\n minBody,\n ];\n var strategy, results, result;\n\n while ((strategy = strategies.shift())) {\n results = strategy(payload, jsonBackup);\n payload = results[0];\n result = results[1];\n if (result.error || !needsTruncation(result.value, maxSize)) {\n return result;\n }\n }\n return result;\n}\n\nexport default {\n truncate,\n\n /* for testing */\n raw,\n truncateFrames,\n truncateStrings,\n maybeTruncateValue,\n};\n","import * as _ from './utility.js';\n\nfunction buildPayload(data) {\n if (!_.isType(data.context, 'string')) {\n var contextResult = _.stringify(data.context);\n if (contextResult.error) {\n data.context = \"Error: could not serialize 'context'\";\n } else {\n data.context = contextResult.value || '';\n }\n if (data.context.length > 255) {\n data.context = data.context.substr(0, 255);\n }\n }\n return {\n data: data,\n };\n}\n\nfunction getTransportFromOptions(options, defaults, url) {\n var hostname = defaults.hostname;\n var protocol = defaults.protocol;\n var port = defaults.port;\n var path = defaults.path;\n var search = defaults.search;\n var timeout = options.timeout;\n var transport = detectTransport(options);\n\n var proxy = options.proxy;\n if (options.endpoint) {\n var opts = url.parse(options.endpoint);\n hostname = opts.hostname;\n protocol = opts.protocol;\n port = opts.port;\n path = opts.pathname;\n search = opts.search;\n }\n return {\n timeout: timeout,\n hostname: hostname,\n protocol: protocol,\n port: port,\n path: path,\n search: search,\n proxy: proxy,\n transport: transport,\n };\n}\n\nfunction detectTransport(options) {\n var gWindow =\n (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && self);\n var transport = options.defaultTransport || 'xhr';\n if (typeof gWindow.fetch === 'undefined') transport = 'xhr';\n if (typeof gWindow.XMLHttpRequest === 'undefined') transport = 'fetch';\n return transport;\n}\n\nfunction transportOptions(transport, method) {\n var protocol = transport.protocol || 'https:';\n var port =\n transport.port ||\n (protocol === 'http:' ? 80 : protocol === 'https:' ? 443 : undefined);\n var hostname = transport.hostname;\n var path = transport.path;\n var timeout = transport.timeout;\n var transportAPI = transport.transport;\n if (transport.search) {\n path = path + transport.search;\n }\n if (transport.proxy) {\n path = protocol + '//' + hostname + path;\n hostname = transport.proxy.host || transport.proxy.hostname;\n port = transport.proxy.port;\n protocol = transport.proxy.protocol || protocol;\n }\n return {\n timeout: timeout,\n protocol: protocol,\n hostname: hostname,\n path: path,\n port: port,\n method: method,\n transport: transportAPI,\n };\n}\n\nfunction appendPathToPath(base, path) {\n var baseTrailingSlash = /\\/$/.test(base);\n var pathBeginningSlash = /^\\//.test(path);\n\n if (baseTrailingSlash && pathBeginningSlash) {\n path = path.substring(1);\n } else if (!baseTrailingSlash && !pathBeginningSlash) {\n path = '/' + path;\n }\n\n return base + path;\n}\n\nexport {\n buildPayload,\n getTransportFromOptions,\n transportOptions,\n appendPathToPath,\n};\n","import * as helpers from './apiUtility.js';\nimport { stringify, merge } from './utility.js';\n\nconst defaultOptions = {\n hostname: 'api.rollbar.com',\n path: '/api/1/item/',\n search: null,\n version: '1',\n protocol: 'https:',\n port: 443,\n};\n\nconst OTLPDefaultOptions = {\n hostname: 'api.rollbar.com',\n path: '/api/1/session/',\n search: null,\n version: '1',\n protocol: 'https:',\n port: 443,\n};\n\n/**\n * Api encapsulates methods of communicating with the Rollbar API. It is a\n * standard interface with some parts implemented differently for server or\n * browser contexts. It is an object that should be instantiated when used so\n * it can contain non-global options that may be different for another instance\n * of RollbarApi.\n */\nclass Api {\n /**\n * @param {Object} options - Configuration supplied from the parent Rollbar instance.\n * @param {string} options.accessToken - Token used to authenticate API calls.\n * @param {string} [options.endpoint] - Optional fully qualified URL overriding\n * the default `https://api.rollbar.com/api/1/item`.\n * @param {Object} [options.proxy] - Optional proxy descriptor containing:\n * `host`/`hostname` (required), `port`, and `protocol`.\n * @param {Object} transport - Adapter implementing `post` and `postJsonPayload`.\n * @param {Object} urllib - Minimal URL helper used for option normalization.\n * @param {Object} truncation - Optional truncation helper for payload size enforcement.\n */\n constructor(options, transport, urllib, truncation) {\n this.options = options;\n this.transport = transport;\n this.url = urllib;\n this.truncation = truncation;\n this.accessToken = options.accessToken;\n this.transportOptions = _getTransport(options, urllib);\n this.OTLPTransportOptions = _getOTLPTransport(options, urllib);\n }\n\n /**\n * Wraps transport.post in a Promise to support async/await\n *\n * @param {Object} options - Options for the API request\n * @param {string} options.accessToken - The access token for authentication\n * @param {Object} options.transportOptions - Options for the transport\n * @param {Object} options.payload - The data payload to send\n * @returns {Promise} A promise that resolves with the response or rejects with an error\n * @private\n */\n _postPromise({ accessToken, options, payload, headers }) {\n return new Promise((resolve, reject) => {\n this.transport.post({\n accessToken,\n options,\n payload,\n headers,\n callback: (err, resp) => (err ? reject(err) : resolve(resp)),\n });\n });\n }\n\n /**\n *\n * @param data\n * @param callback\n */\n postItem(data, callback) {\n const options = helpers.transportOptions(this.transportOptions, 'POST');\n const payload = helpers.buildPayload(data);\n\n // ensure the network request is scheduled after the current tick.\n setTimeout(() => {\n this.transport.post({\n accessToken: this.accessToken,\n options,\n payload,\n callback,\n });\n }, 0);\n }\n\n /**\n * Posts spans to the Rollbar API using the session endpoint\n *\n * @param {Array} payload - The spans to send\n * @returns {Promise<Object>} A promise that resolves with the API response\n */\n async postSpans(payload, headers = {}) {\n const options = helpers.transportOptions(this.OTLPTransportOptions, 'POST');\n\n return this._postPromise({\n accessToken: this.accessToken,\n options,\n payload,\n headers,\n });\n }\n\n /**\n *\n * @param data\n * @param callback\n */\n buildJsonPayload(data, callback) {\n const payload = helpers.buildPayload(data);\n\n let stringifyResult;\n if (this.truncation) {\n stringifyResult = this.truncation.truncate(payload);\n } else {\n stringifyResult = stringify(payload);\n }\n\n if (stringifyResult.error) {\n if (callback) {\n callback(stringifyResult.error);\n }\n return null;\n }\n\n return stringifyResult.value;\n }\n\n /**\n *\n * @param jsonPayload\n * @param callback\n */\n postJsonPayload(jsonPayload, callback) {\n const transportOptions = helpers.transportOptions(\n this.transportOptions,\n 'POST',\n );\n this.transport.postJsonPayload(\n this.accessToken,\n transportOptions,\n jsonPayload,\n callback,\n );\n }\n\n configure(options) {\n const oldOptions = this.options;\n this.options = merge(oldOptions, options);\n this.transportOptions = _getTransport(this.options, this.url);\n this.OTLPTransportOptions = _getOTLPTransport(this.options, this.url);\n if (this.options.accessToken !== undefined) {\n this.accessToken = this.options.accessToken;\n }\n return this;\n }\n}\n\nfunction _getTransport(options, url) {\n return helpers.getTransportFromOptions(options, defaultOptions, url);\n}\n\nfunction _getOTLPTransport(options, url) {\n options = { ...options, endpoint: options.tracing?.endpoint };\n return helpers.getTransportFromOptions(options, OTLPDefaultOptions, url);\n}\n\nexport default Api;\n","/**\n * Default options shared across platforms\n */\nexport const version = '3.0.0';\nexport const endpoint = 'api.rollbar.com/api/1/item/';\nexport const logLevel = 'debug';\nexport const reportLevel = 'debug';\nexport const uncaughtErrorLevel = 'error';\nexport const maxItems = 0;\nexport const itemsPerMin = 60;\n\nexport const commonScrubFields = [\n 'pw',\n 'pass',\n 'passwd',\n 'password',\n 'secret',\n 'confirm_password',\n 'confirmPassword',\n 'password_confirmation',\n 'passwordConfirmation',\n 'access_token',\n 'accessToken',\n 'X-Rollbar-Access-Token',\n 'secret_key',\n 'secretKey',\n 'secretToken',\n];\n\nexport const apiScrubFields = [\n 'api_key',\n 'authenticity_token',\n 'oauth_token',\n 'token',\n 'user_session_secret',\n];\n\nexport const requestScrubFields = [\n 'request.session.csrf',\n 'request.session._csrf',\n 'request.params._csrf',\n 'request.cookie',\n 'request.cookies',\n];\n\nexport const commonScrubHeaders = [\n 'authorization',\n 'www-authorization',\n 'http_authorization',\n 'omniauth.auth',\n 'cookie',\n 'oauth-access-token',\n 'x-access-token',\n 'x_csrf_token',\n 'http_x_csrf_token',\n 'x-csrf-token',\n];\n\n// For backward compatibility with default export\nexport default {\n version,\n endpoint,\n logLevel,\n reportLevel,\n uncaughtErrorLevel,\n maxItems,\n itemsPerMin,\n};\n","const FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\nconst CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\nconst SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\nfunction parse(error, options) {\n if (typeof error.stacktrace !== \"undefined\" || typeof error[\"opera#sourceloc\"] !== \"undefined\")\n return parseOpera(error, options);\n else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP))\n return parseV8OrIE(error, options);\n else if (error.stack)\n return parseFFOrSafari(error, options);\n else if (options?.allowEmpty)\n return [];\n else\n throw new Error(\"Cannot parse given Error object\");\n}\nfunction parseStack(stackString, options) {\n if (stackString.match(CHROME_IE_STACK_REGEXP))\n return parseV8OrIeString(stackString, options);\n else\n return parseFFOrSafariString(stackString, options);\n}\nfunction extractLocation(urlLike) {\n if (!urlLike.includes(\":\"))\n return [urlLike, undefined, undefined];\n const regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n const parts = regExp.exec(urlLike.replace(/[()]/g, \"\"));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n}\nfunction applySlice(lines, options) {\n if (options && options.slice != null) {\n if (Array.isArray(options.slice))\n return lines.slice(options.slice[0], options.slice[1]);\n return lines.slice(0, options.slice);\n }\n return lines;\n}\nfunction parseV8OrIE(error, options) {\n return parseV8OrIeString(error.stack, options);\n}\nfunction parseV8OrIeString(stack, options) {\n const filtered = applySlice(\n stack.split(\"\\n\").filter((line) => {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }),\n options\n );\n return filtered.map((line) => {\n if (line.includes(\"(eval \")) {\n line = line.replace(/eval code/g, \"eval\").replace(/(\\(eval at [^()]*)|(,.*$)/g, \"\");\n }\n let sanitizedLine = line.replace(/^\\s+/, \"\").replace(/\\(eval code/g, \"(\").replace(/^.*?\\s+/, \"\");\n const location = sanitizedLine.match(/ (\\(.+\\)$)/);\n sanitizedLine = location ? sanitizedLine.replace(location[0], \"\") : sanitizedLine;\n const locationParts = extractLocation(location ? location[1] : sanitizedLine);\n const functionName = location && sanitizedLine || undefined;\n const fileName = [\"eval\", \"<anonymous>\"].includes(locationParts[0]) ? undefined : locationParts[0];\n return {\n function: functionName,\n file: fileName,\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n });\n}\nfunction parseFFOrSafari(error, options) {\n return parseFFOrSafariString(error.stack, options);\n}\nfunction parseFFOrSafariString(stack, options) {\n const filtered = applySlice(\n stack.split(\"\\n\").filter((line) => {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }),\n options\n );\n return filtered.map((line) => {\n if (line.includes(\" > eval\"))\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, \":$1\");\n if (!line.includes(\"@\") && !line.includes(\":\")) {\n return {\n function: line\n };\n } else {\n const functionNameRegex = /(([^\\n\\r\"\\u2028\\u2029]*\".[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*(?:@[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*)*(?:[\\n\\r\\u2028\\u2029][^@]*)?)?[^@]*)@/;\n const matches = line.match(functionNameRegex);\n const functionName = matches && matches[1] ? matches[1] : undefined;\n const locationParts = extractLocation(line.replace(functionNameRegex, \"\"));\n return {\n function: functionName,\n file: locationParts[0],\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n }\n });\n}\nfunction parseOpera(e, options) {\n if (!e.stacktrace || e.message.includes(\"\\n\") && e.message.split(\"\\n\").length > e.stacktrace.split(\"\\n\").length)\n return parseOpera9(e);\n else if (!e.stack)\n return parseOpera10(e);\n else\n return parseOpera11(e, options);\n}\nfunction parseOpera9(e, options) {\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n const lines = e.message.split(\"\\n\");\n const result = [];\n for (let i = 2, len = lines.length; i < len; i += 2) {\n const match = lineRE.exec(lines[i]);\n if (match) {\n result.push({\n file: match[2],\n line: +match[1],\n raw: lines[i]\n });\n }\n }\n return applySlice(result, options);\n}\nfunction parseOpera10(e, options) {\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n const lines = e.stacktrace.split(\"\\n\");\n const result = [];\n for (let i = 0, len = lines.length; i < len; i += 2) {\n const match = lineRE.exec(lines[i]);\n if (match) {\n result.push({\n function: match[3] || undefined,\n file: match[2],\n line: match[1] ? +match[1] : undefined,\n raw: lines[i]\n });\n }\n }\n return applySlice(result, options);\n}\nfunction parseOpera11(error, options) {\n const filtered = applySlice(\n // @ts-expect-error missing stack property\n error.stack.split(\"\\n\").filter((line) => {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }),\n options\n );\n return filtered.map((line) => {\n const tokens = line.split(\"@\");\n const locationParts = extractLocation(tokens.pop());\n const functionCall = tokens.shift() || \"\";\n const functionName = functionCall.replace(/<anonymous function(: (\\w+))?>/, \"$2\").replace(/\\([^)]*\\)/g, \"\") || undefined;\n let argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/))\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, \"$1\");\n const args = argsRaw === undefined || argsRaw === \"[arguments not available]\" ? undefined : argsRaw.split(\",\");\n return {\n function: functionName,\n args,\n file: locationParts[0],\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n });\n}\n\nexport { extractLocation, parse, parseFFOrSafari, parseFFOrSafariString, parseOpera, parseOpera10, parseOpera11, parseOpera9, parseStack, parseV8OrIE, parseV8OrIeString };\n","import { parse as parse$1, parseV8OrIE as parseV8OrIE$1, parseFFOrSafari as parseFFOrSafari$1, parseOpera as parseOpera$1, parseOpera9 as parseOpera9$1, parseOpera10 as parseOpera10$1, parseOpera11 as parseOpera11$1 } from './lite.mjs';\nexport { extractLocation } from './lite.mjs';\n\nfunction stackframesLiteToStackframes(liteStackframes) {\n return liteStackframes.map((liteStackframe) => {\n return {\n functionName: liteStackframe.function,\n args: liteStackframe.args,\n fileName: liteStackframe.file,\n lineNumber: liteStackframe.line,\n columnNumber: liteStackframe.col,\n source: liteStackframe.raw\n };\n });\n}\nfunction parse(error, options) {\n return stackframesLiteToStackframes(parse$1(error, options));\n}\nfunction parseV8OrIE(error) {\n return stackframesLiteToStackframes(parseV8OrIE$1(error));\n}\nfunction parseFFOrSafari(error) {\n return stackframesLiteToStackframes(parseFFOrSafari$1(error));\n}\nfunction parseOpera(e) {\n return stackframesLiteToStackframes(parseOpera$1(e));\n}\nfunction parseOpera9(e) {\n return stackframesLiteToStackframes(parseOpera9$1(e));\n}\nfunction parseOpera10(e) {\n return stackframesLiteToStackframes(parseOpera10$1(e));\n}\nfunction parseOpera11(error) {\n return stackframesLiteToStackframes(parseOpera11$1(error));\n}\n\nexport { parse, parseFFOrSafari, parseOpera, parseOpera10, parseOpera11, parseOpera9, parseV8OrIE };\n","import { parse as parseErrorStack } from 'error-stack-parser-es';\n\nvar UNKNOWN_FUNCTION = '?';\nvar ERR_CLASS_REGEXP = new RegExp(\n '^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ',\n);\n\nfunction guessFunctionName() {\n return UNKNOWN_FUNCTION;\n}\n\nfunction gatherContext() {\n return null;\n}\n\nfunction Frame(stackFrame) {\n var data = {};\n\n data._stackFrame = stackFrame;\n\n data.url = stackFrame.fileName;\n data.line = stackFrame.lineNumber;\n data.func = stackFrame.functionName;\n data.column = stackFrame.columnNumber;\n data.args = stackFrame.args;\n\n data.context = gatherContext();\n\n return data;\n}\n\nfunction Stack(exception, skip) {\n function getStack() {\n var parserStack = [];\n\n skip = skip || 0;\n\n try {\n parserStack = parseErrorStack(exception);\n } catch (_e) {\n parserStack = [];\n }\n\n var stack = [];\n\n for (var i = skip; i < parserStack.length; i++) {\n stack.push(new Frame(parserStack[i]));\n }\n\n return stack;\n }\n\n return {\n stack: getStack(),\n message: exception.message,\n name: _mostSpecificErrorName(exception),\n rawStack: exception.stack,\n rawException: exception,\n };\n}\n\nfunction parse(e, skip) {\n var err = e;\n\n if (err.nested || err.cause) {\n var traceChain = [];\n while (err) {\n traceChain.push(new Stack(err, skip));\n err = err.nested || err.cause;\n\n skip = 0; // Only apply skip value to primary error\n }\n\n // Return primary error with full trace chain attached.\n traceChain[0].traceChain = traceChain;\n return traceChain[0];\n } else {\n return new Stack(err, skip);\n }\n}\n\nfunction guessErrorClass(errMsg) {\n if (!errMsg || !errMsg.match) {\n return ['Unknown error. There was no error message to display.', ''];\n }\n var errClassMatch = errMsg.match(ERR_CLASS_REGEXP);\n var errClass = '(unknown)';\n\n if (errClassMatch) {\n errClass = errClassMatch[errClassMatch.length - 1];\n errMsg = errMsg.replace(\n (errClassMatch[errClassMatch.length - 2] || '') + errClass + ':',\n '',\n );\n errMsg = errMsg.replace(/(^[\\s]+|[\\s]+$)/g, '');\n }\n return [errClass, errMsg];\n}\n\n// * Prefers any value over an empty string\n// * Prefers any value over 'Error' where possible\n// * Prefers name over constructor.name when both are more specific than 'Error'\nfunction _mostSpecificErrorName(error) {\n var name = error.name && error.name.length && error.name;\n var constructorName =\n error.constructor.name &&\n error.constructor.name.length &&\n error.constructor.name;\n\n if (!name || !constructorName) {\n return name || constructorName;\n }\n\n if (name === 'Error') {\n return constructorName;\n }\n return name;\n}\n\nexport default {\n guessFunctionName,\n guessErrorClass,\n gatherContext,\n parse,\n Stack,\n Frame,\n};\n","import * as _ from './utility.js';\n\nfunction checkLevel(item, settings) {\n var level = item.level;\n var levelVal = _.LEVELS[level] || 0;\n var reportLevel = settings.reportLevel;\n var reportLevelVal = _.LEVELS[reportLevel] || 0;\n\n if (levelVal < reportLevelVal) {\n return false;\n }\n return true;\n}\n\nfunction userCheckIgnore(logger) {\n return function (item, settings) {\n var isUncaught = Boolean(item._isUncaught);\n delete item._isUncaught;\n var args = item._originalArgs;\n delete item._originalArgs;\n try {\n if (_.isFunction(settings.onSendCallback)) {\n settings.onSendCallback(isUncaught, args, item);\n }\n } catch (e) {\n settings.onSendCallback = null;\n logger.error('Error while calling onSendCallback, removing', e);\n }\n try {\n if (\n _.isFunction(settings.checkIgnore) &&\n settings.checkIgnore(isUncaught, args, item)\n ) {\n return false;\n }\n } catch (e) {\n settings.checkIgnore = null;\n logger.error('Error while calling custom checkIgnore(), removing', e);\n }\n return true;\n };\n}\n\nfunction urlIsNotBlockListed(logger) {\n return function (item, settings) {\n return !urlIsOnAList(item, settings, 'blocklist', logger);\n };\n}\n\nfunction urlIsSafeListed(logger) {\n return function (item, settings) {\n return urlIsOnAList(item, settings, 'safelist', logger);\n };\n}\n\nfunction matchFrames(trace, list, block) {\n if (!trace) {\n return !block;\n }\n\n var frames = trace.frames;\n\n if (!frames || frames.length === 0) {\n return !block;\n }\n\n var frame, filename, url, urlRegex;\n var listLength = list.length;\n var frameLength = frames.length;\n for (var i = 0; i < frameLength; i++) {\n frame = frames[i];\n filename = frame.filename;\n\n if (!_.isType(filename, 'string')) {\n return !block;\n }\n\n for (var j = 0; j < listLength; j++) {\n url = list[j];\n urlRegex = new RegExp(url);\n\n if (urlRegex.test(filename)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction urlIsOnAList(item, settings, safeOrBlock, logger) {\n // safelist is the default\n var block = false;\n if (safeOrBlock === 'blocklist') {\n block = true;\n }\n\n var list, traces;\n try {\n list = block ? settings.hostBlockList : settings.hostSafeList;\n traces = _.get(item, 'body.trace_chain') || [_.get(item, 'body.trace')];\n\n // These two checks are important to come first as they are defaults\n // in case the list is missing or the trace is missing or not well-formed\n if (!list || list.length === 0) {\n return !block;\n }\n if (traces.length === 0 || !traces[0]) {\n return !block;\n }\n\n var tracesLength = traces.length;\n for (var i = 0; i < tracesLength; i++) {\n if (matchFrames(traces[i], list, block)) {\n return true;\n }\n }\n } catch (\n e\n /* istanbul ignore next */\n ) {\n if (block) {\n settings.hostBlockList = null;\n } else {\n settings.hostSafeList = null;\n }\n var listName = block ? 'hostBlockList' : 'hostSafeList';\n logger.error(\n \"Error while reading your configuration's \" +\n listName +\n ' option. Removing custom ' +\n listName +\n '.',\n e,\n );\n return !block;\n }\n return false;\n}\n\nfunction messageIsIgnored(logger) {\n return function (item, settings) {\n var i, j, ignoredMessages, len, messageIsIgnored, rIgnoredMessage, messages;\n\n try {\n messageIsIgnored = false;\n ignoredMessages = settings.ignoredMessages;\n\n if (!ignoredMessages || ignoredMessages.length === 0) {\n return true;\n }\n\n messages = messagesFromItem(item);\n\n if (messages.length === 0) {\n return true;\n }\n\n len = ignoredMessages.length;\n for (i = 0; i < len; i++) {\n rIgnoredMessage = new RegExp(ignoredMessages[i], 'gi');\n\n for (j = 0; j < messages.length; j++) {\n messageIsIgnored = rIgnoredMessage.test(messages[j]);\n\n if (messageIsIgnored) {\n return false;\n }\n }\n }\n } catch (\n _e\n /* istanbul ignore next */\n ) {\n settings.ignoredMessages = null;\n logger.error(\n \"Error while reading your configuration's ignoredMessages option. Removing custom ignoredMessages.\",\n );\n }\n\n return true;\n };\n}\n\nfunction messagesFromItem(item) {\n var body = item.body;\n var messages = [];\n\n // The payload schema only allows one of trace_chain, message, or trace.\n // However, existing test cases are based on having both trace and message present.\n // So here we preserve the ability to collect strings from any combination of these keys.\n if (body.trace_chain) {\n var traceChain = body.trace_chain;\n for (const trace of traceChain) {\n messages.push(_.get(trace, 'exception.message'));\n }\n }\n if (body.trace) {\n messages.push(_.get(body, 'trace.exception.message'));\n }\n if (body.message) {\n messages.push(_.get(body, 'message.body'));\n }\n return messages;\n}\n\nexport {\n checkLevel,\n userCheckIgnore,\n urlIsNotBlockListed,\n urlIsSafeListed,\n messageIsIgnored,\n};\n","import { merge, isFunction } from './utility.js';\n\n/*\n * Notifier - delegates between the client exposed API, the chain of transforms\n * necessary to turn an item into something that can be sent to Rollbar, and the\n * queue which handles the communcation with the Rollbar API servers.\n */\nexport default class Notifier {\n /**\n *\n * @param {Object} queue - an object that conforms to the interface:\n * `addItem(item, callback)`\n * @param {Object} options - an object representing the options to be set for\n * this notifier, this should have any defaults already set by the caller\n */\n constructor(queue, options) {\n this.queue = queue;\n this.options = options;\n this.transforms = [];\n this.diagnostic = {};\n }\n\n /**\n * configure - updates the options for this notifier with the passed in object\n *\n * @param {Object} options - an object which gets merged with the current\n * options set on this notifier\n * @returns this\n */\n configure(options) {\n this.queue?.configure(options);\n const oldOptions = this.options;\n this.options = merge(oldOptions, options);\n return this;\n }\n\n /**\n * Adds a transform onto the end of the queue of transforms for this notifier\n *\n * @param {Function} transform - a function which takes three arguments:\n * - item: An Object representing the data to eventually be sent to Rollbar\n * - options: The current value of the options for this notifier\n * - callback: `function(err: (Null|Error), item: (Null|Object))` the\n * transform must call this callback with a null value for error if it\n * wants the processing chain to continue, otherwise with an error to\n * terminate the processing. The item should be the updated item after\n * this transform is finished modifying it.\n */\n addTransform(transform) {\n if (isFunction(transform)) {\n this.transforms.push(transform);\n }\n return this;\n }\n\n /**\n * The internal log function which applies the configured transforms and then\n * pushes onto the queue to be sent to the backend.\n *\n * @param {Object} item - An object with the following structure:\n * - message [String] - An optional string to be sent to rollbar\n * - error [Error] - An optional error\n * @param {Function} callback - A function of type `function(err, resp)` which\n * will be called with exactly one null argument and one non-null argument.\n * The callback will be called once, either during the transform stage if\n * an error occurs inside a transform, or in response to the communication\n * with the backend. The second argument will be the response from the\n * backend in case of success.\n */\n log(item, callback) {\n callback = isFunction(callback) ? callback : () => {};\n\n if (!this.options.enabled) {\n return callback(new Error('Rollbar is not enabled'), null);\n }\n\n this.queue.addPendingItem(item);\n const originalError = item.err;\n this._applyTransforms(item, (err, i) => {\n if (err) {\n this.queue.removePendingItem(item);\n return callback(err, null);\n }\n this.queue.addItem(i, callback, originalError, item);\n });\n }\n\n /* Internal */\n\n /**\n * Applies the transforms that have been added to this notifier sequentially.\n * See `addTransform` for more information.\n *\n * @param {Object} item - An item to be transformed\n * @param {Function} callback - A function of type `function(err, item)` which\n * will be called with a non-null error and a null item in the case of a\n * transform failure, or a null error and non-null item after all\n * transforms have been applied.\n */\n _applyTransforms(item, callback) {\n let transformIndex = -1;\n const transformsLength = this.transforms.length;\n const transforms = this.transforms;\n const options = this.options;\n\n const next = (err, i) => {\n if (err) {\n callback(err, null);\n return;\n }\n\n transformIndex++;\n\n if (transformIndex === transformsLength) {\n callback(null, i);\n return;\n }\n\n transforms[transformIndex](i, options, next);\n };\n\n next(null, item);\n }\n}\n","import * as _ from './utility.js';\n\n/**\n * Queue - an object which handles which handles a queue of items to be sent to Rollbar.\n * This object handles rate limiting via a passed in rate limiter, retries based on connection\n * errors, and filtering of items based on a set of configurable predicates. The communication to\n * the backend is performed via a given API object.\n */\nclass Queue {\n /**\n * @param rateLimiter - An object which conforms to the interface\n * `rateLimiter.shouldSend(item) -> bool`\n * @param api - An object which conforms to the interface\n * `api.postItem(payload, function(err, response))`\n * @param logger - An object used to log verbose messages if desired\n * @param options - see `Queue.prototype.configure`\n * @param replay - Optional `Replay` for coordinating session replay with error occurrences\n */\n constructor(rateLimiter, api, logger, options, replay) {\n this.rateLimiter = rateLimiter;\n this.api = api;\n this.logger = logger;\n this.options = options;\n this.replay = replay;\n this.predicates = [];\n this.pendingItems = [];\n this.pendingRequests = [];\n this.retryQueue = [];\n this.retryHandle = null;\n this.waitCallback = null;\n this.waitIntervalID = null;\n }\n\n /**\n * configure - updates the options this queue uses\n *\n * @param options\n */\n configure(options) {\n this.api?.configure(options);\n const oldOptions = this.options;\n this.options = _.merge(oldOptions, options);\n return this;\n }\n\n /**\n * addPredicate - adds a predicate to the end of the list of predicates for this queue\n *\n * @param predicate - function(item, options) -> (bool|{err: Error})\n * Returning true means that this predicate passes and the item is okay to go on the queue\n * Returning false means do not add the item to the queue, but it is not an error\n * Returning {err: Error} means do not add the item to the queue, and the given error explains why\n * Returning {err: undefined} is equivalent to returning true but don't do that\n */\n addPredicate(predicate) {\n if (_.isFunction(predicate)) {\n this.predicates.push(predicate);\n }\n return this;\n }\n\n addPendingItem(item) {\n this.pendingItems.push(item);\n }\n\n removePendingItem(item) {\n const idx = this.pendingItems.indexOf(item);\n if (idx !== -1) {\n this.pendingItems.splice(idx, 1);\n }\n }\n\n /**\n * addItem - Send an item to the Rollbar API if all of the predicates are satisfied\n *\n * @param item - Item instance with the payload to send to the backend\n * @param callback - function(error, repsonse) which will be called with the response from the API\n * in the case of a success, otherwise response will be null and error will have a value. If both\n * error and response are null then the item was stopped by a predicate which did not consider this\n * to be an error condition, but nonetheless did not send the item to the API.\n * @param originalError - The original error before any transformations that is to be logged if any\n * @param originalItem - The original item before transforms, used in pendingItems queue\n */\n addItem(item, callback, originalError, originalItem) {\n if (!callback || !_.isFunction(callback)) {\n callback = function () {\n return;\n };\n }\n const data = item.data;\n const predicateResult = this._applyPredicates(data);\n if (predicateResult.stop) {\n this.removePendingItem(originalItem);\n callback(predicateResult.err);\n return;\n }\n this._maybeLog(data, originalError);\n this.removePendingItem(originalItem);\n if (!this.options.transmit) {\n callback(new Error('Transmit disabled'));\n return;\n }\n\n if (this.replay && data.body) {\n item.replayId = this.replay.capture(null, data.uuid, {\n type: 'occurrence',\n level: item.level,\n });\n\n if (item.replayId) {\n _.addItemAttributes(item.data, [\n { key: 'replay_id', value: item.replayId },\n ]);\n }\n }\n\n this.pendingRequests.push(data);\n try {\n this._makeApiRequest(data, (err, resp, headers) => {\n this._dequeuePendingRequest(data);\n\n if (item.replayId) {\n this.replay.sendOrDiscardReplay(item.replayId, err, resp, headers);\n }\n\n callback(err, resp);\n });\n } catch (err) {\n this._dequeuePendingRequest(data);\n\n if (item.replayId) {\n this.replay?.discard(item.replayId);\n }\n\n callback(err);\n }\n }\n\n /**\n * wait - Stop any further errors from being added to the queue, and get called back when all items\n * currently processing have finished sending to the backend.\n *\n * @param callback - function() called when all pending items have been sent\n */\n wait(callback) {\n if (!_.isFunction(callback)) {\n return;\n }\n this.waitCallback = callback;\n if (this._maybeCallWait()) {\n return;\n }\n if (this.waitIntervalID) {\n this.waitIntervalID = clearInterval(this.waitIntervalID);\n }\n this.waitIntervalID = setInterval(() => {\n this._maybeCallWait();\n }, 500);\n }\n\n /**\n * Sequentially applies the predicates that have been added to the queue to the\n * given item with the currently configured options.\n *\n * @param item - An item in the queue\n * @returns {stop: bool, err: (Error|null)} - stop being true means do not add item to the queue,\n * the error value should be passed up to a callbak if we are stopping.\n */\n _applyPredicates(item) {\n let p = null;\n for (let i = 0, len = this.predicates.length; i < len; i++) {\n p = this.predicates[i](item, this.options);\n if (!p || p.err !== undefined) {\n return { stop: true, err: p.err };\n }\n }\n return { stop: false, err: null };\n }\n\n /**\n * Send an item to Rollbar, callback when done, if there is an error make an\n * effort to retry if we are configured to do so.\n *\n * @param item - an item ready to send to the backend\n * @param callback - function(err, response)\n */\n _makeApiRequest(item, callback) {\n const rateLimitResponse = this.rateLimiter.shouldSend(item);\n if (rateLimitResponse.shouldSend) {\n this.api.postItem(item, (err, resp, headers) => {\n if (err) {\n this._maybeRetry(err, item, callback);\n } else {\n callback(err, resp, headers);\n }\n });\n } else if (rateLimitResponse.error) {\n callback(rateLimitResponse.error);\n } else {\n this.api.postItem(rateLimitResponse.payload, callback);\n }\n }\n\n // These are errors basically mean there is no internet connection\n static RETRIABLE_ERRORS = [\n 'ECONNRESET',\n 'ENOTFOUND',\n 'ESOCKETTIMEDOUT',\n 'ETIMEDOUT',\n 'ECONNREFUSED',\n 'EHOSTUNREACH',\n 'EPIPE',\n 'EAI_AGAIN',\n ];\n\n /**\n * Given the error returned by the API, decide if we should retry or just callback\n * with the error.\n *\n * @param err - an error returned by the API transport\n * @param item - the item that was trying to be sent when this error occured\n * @param callback - function(err, response)\n */\n _maybeRetry(err, item, callback) {\n let shouldRetry = false;\n if (this.options.retryInterval) {\n for (let i = 0, len = Queue.RETRIABLE_ERRORS.length; i < len; i++) {\n if (err.code === Queue.RETRIABLE_ERRORS[i]) {\n shouldRetry = true;\n break;\n }\n }\n if (shouldRetry && _.isFiniteNumber(this.options.maxRetries)) {\n item.retries = item.retries ? item.retries + 1 : 1;\n if (item.retries > this.options.maxRetries) {\n shouldRetry = false;\n }\n }\n }\n if (shouldRetry) {\n this._retryApiRequest(item, callback);\n } else {\n callback(err);\n }\n }\n\n /**\n * Add an item and a callback to a queue and possibly start a timer to process\n * that queue based on the retryInterval in the options for this queue.\n *\n * @param item - an item that failed to send due to an error we deem retriable\n * @param callback - function(err, response)\n */\n _retryApiRequest(item, callback) {\n this.retryQueue.push({ item, callback });\n\n if (!this.retryHandle) {\n this.retryHandle = setInterval(() => {\n while (this.retryQueue.length) {\n const retryObject = this.retryQueue.shift();\n this._makeApiRequest(retryObject.item, retryObject.callback);\n }\n }, this.options.retryInterval);\n }\n }\n\n /**\n * Removes the item from the pending request queue, this queue is used to\n * enable to functionality of providing a callback that clients can pass to `wait` to be notified\n * when the pending request queue has been emptied. This must be called when the API finishes\n * processing this item. If a `wait` callback is configured, it is called by this function.\n *\n * @param item - the item previously added to the pending request queue\n */\n _dequeuePendingRequest(item) {\n const idx = this.pendingRequests.indexOf(item);\n if (idx !== -1) {\n this.pendingRequests.splice(idx, 1);\n this._maybeCallWait();\n }\n }\n\n _maybeLog(data, originalError) {\n if (this.logger && this.options.verbose) {\n let message =\n originalError ||\n _.get(data, 'body.trace.exception.message') ||\n _.get(data, 'body.trace_chain.0.exception.message');\n if (message) {\n this.logger.error(message);\n return;\n }\n message = _.get(data, 'body.message.body');\n if (message) {\n this.logger.log(message);\n }\n }\n }\n\n _maybeCallWait() {\n if (\n _.isFunction(this.waitCallback) &&\n this.pendingItems.length === 0 &&\n this.pendingRequests.length === 0\n ) {\n if (this.waitIntervalID) {\n this.waitIntervalID = clearInterval(this.waitIntervalID);\n }\n this.waitCallback();\n return true;\n }\n return false;\n }\n}\n\nexport default Queue;\n","/*\n * RateLimiter - encapsulates the logic for counting items sent to Rollbar.\n *\n * @param options - the same options that are accepted by configureGlobal offered as a convenience\n */\nclass RateLimiter {\n static globalSettings = {\n startTime: Date.now(),\n maxItems: undefined,\n itemsPerMinute: undefined,\n };\n\n constructor(options = {}) {\n this.startTime = Date.now();\n this.counter = 0;\n this.perMinCounter = 0;\n this.platform = null;\n this.platformOptions = {};\n this.configureGlobal(options);\n }\n\n /*\n * configureGlobal - set the global rate limiter options\n *\n * @param options - Only the following values are recognized:\n * startTime: a timestamp of the form returned by (new Date()).getTime()\n * maxItems: the maximum items\n * itemsPerMinute: the max number of items to send in a given minute\n */\n configureGlobal(options = {}) {\n const { startTime, maxItems, itemsPerMinute } = options;\n\n if (startTime !== undefined) {\n RateLimiter.globalSettings.startTime = startTime;\n }\n if (maxItems !== undefined) {\n RateLimiter.globalSettings.maxItems = maxItems;\n }\n if (itemsPerMinute !== undefined) {\n RateLimiter.globalSettings.itemsPerMinute = itemsPerMinute;\n }\n }\n\n /*\n * shouldSend - determine if we should send a given item based on rate limit settings\n *\n * @param item - the item we are about to send\n * @returns An object with the following structure:\n * error: (Error|null)\n * shouldSend: bool\n * payload: (Object|null)\n * If shouldSend is false, the item passed as a parameter should not be sent to Rollbar, and\n * exactly one of error or payload will be non-null. If error is non-null, the returned Error will\n * describe the situation, but it means that we were already over a rate limit (either globally or\n * per minute) when this item was checked. If error is null, and therefore payload is non-null, it\n * means this item put us over the global rate limit and the payload should be sent to Rollbar in\n * place of the passed in item.\n */\n shouldSend(item, now = Date.now()) {\n const elapsedTime = now - this.startTime;\n if (elapsedTime < 0 || elapsedTime >= 60000) {\n this.startTime = now;\n this.perMinCounter = 0;\n }\n\n const globalRateLimit = RateLimiter.globalSettings.maxItems;\n const globalRateLimitPerMin = RateLimiter.globalSettings.itemsPerMinute;\n\n if (checkRate(item, globalRateLimit, this.counter)) {\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n `${globalRateLimit} max items reached`,\n false,\n );\n }\n\n if (checkRate(item, globalRateLimitPerMin, this.perMinCounter)) {\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n `${globalRateLimitPerMin} items per minute reached`,\n false,\n );\n }\n\n this.counter += 1;\n this.perMinCounter += 1;\n\n const underGlobalLimit = !checkRate(item, globalRateLimit, this.counter);\n const perMinute = underGlobalLimit;\n const shouldSend =\n underGlobalLimit &&\n !checkRate(item, globalRateLimitPerMin, this.perMinCounter);\n\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n null,\n shouldSend,\n globalRateLimit,\n globalRateLimitPerMin,\n perMinute,\n );\n }\n\n setPlatformOptions(platform, options) {\n this.platform = platform;\n this.platformOptions = options;\n }\n}\n\n/* Helpers */\n\nfunction checkRate(item, limit, counter) {\n return !item.ignoreRateLimit && limit >= 1 && counter > limit;\n}\n\nfunction shouldSendValue(\n platform,\n options,\n error,\n shouldSend,\n globalRateLimit,\n limitPerMin,\n perMinute,\n) {\n let payload = null;\n const errorResult = error ? new Error(error) : null;\n\n if (!errorResult && !shouldSend) {\n payload = rateLimitPayload(\n platform,\n options,\n globalRateLimit,\n limitPerMin,\n perMinute,\n );\n }\n\n return { error: errorResult, shouldSend, payload };\n}\n\nfunction rateLimitPayload(\n platform,\n options,\n globalRateLimit,\n limitPerMin,\n perMinute,\n) {\n const environment =\n options.environment || (options.payload && options.payload.environment);\n const msg = perMinute\n ? 'item per minute limit reached, ignoring errors until timeout'\n : 'maxItems has been hit, ignoring errors until reset.';\n const item = {\n body: {\n message: {\n body: msg,\n extra: {\n maxItems: globalRateLimit,\n itemsPerMinute: limitPerMin,\n },\n },\n },\n language: 'javascript',\n environment: environment,\n notifier: {\n version:\n (options.notifier && options.notifier.version) || options.version,\n },\n };\n if (platform === 'browser') {\n item.platform = 'browser';\n item.framework = 'browser-js';\n item.notifier.name = 'rollbar-browser-js';\n } else if (platform === 'server') {\n item.framework = options.framework || 'node-js';\n item.notifier.name = options.notifier.name;\n } else if (platform === 'react-native') {\n item.framework = options.framework || 'react-native';\n item.notifier.name = options.notifier.name;\n }\n return item;\n}\n\nexport default RateLimiter;\n","import Notifier from './notifier.js';\nimport Queue from './queue.js';\nimport RateLimiter from './rateLimiter.js';\nimport * as _ from './utility.js';\n\n/*\n * Rollbar - the interface to Rollbar\n *\n * @param options\n * @param api\n * @param logger\n */\nfunction Rollbar(options, api, logger, telemeter, tracing, replay, platform) {\n this.options = _.merge(options);\n this.logger = logger;\n Rollbar.rateLimiter.configureGlobal(this.options);\n Rollbar.rateLimiter.setPlatformOptions(platform, this.options);\n this.api = api;\n this.queue = new Queue(\n Rollbar.rateLimiter,\n api,\n logger,\n this.options,\n replay,\n );\n\n this.tracing = tracing;\n\n // Legacy OpenTracing support\n // This must happen before the Notifier is created\n var tracer = this.options.tracer || null;\n if (validateTracer(tracer)) {\n this.tracer = tracer;\n // set to a string for api response serialization\n this.options.tracer = 'opentracing-tracer-enabled';\n this.options._configuredOptions.tracer = 'opentracing-tracer-enabled';\n } else {\n this.tracer = null;\n }\n\n this.notifier = new Notifier(this.queue, this.options);\n this.telemeter = telemeter;\n setStackTraceLimit(options);\n this.lastError = null;\n this.lastErrorHash = 'none';\n}\n\nvar defaultOptions = {\n maxItems: 0,\n itemsPerMinute: 60,\n};\n\nRollbar.rateLimiter = new RateLimiter(defaultOptions);\n\nRollbar.prototype.global = function (options) {\n Rollbar.rateLimiter.configureGlobal(options);\n return this;\n};\n\nRollbar.prototype.configure = function (options, payloadData) {\n var oldOptions = this.options;\n var payload = {};\n if (payloadData) {\n payload = { payload: payloadData };\n }\n\n this.options = _.merge(oldOptions, options, payload);\n\n // Legacy OpenTracing support\n // This must happen before the Notifier is configured\n var tracer = this.options.tracer || null;\n if (validateTracer(tracer)) {\n this.tracer = tracer;\n // set to a string for api response serialization\n this.options.tracer = 'opentracing-tracer-enabled';\n this.options._configuredOptions.tracer = 'opentracing-tracer-enabled';\n } else {\n this.tracer = null;\n }\n\n this.notifier && this.notifier.configure(this.options);\n this.telemeter && this.telemeter.configure(this.options);\n setStackTraceLimit(options);\n this.global(this.options);\n\n if (validateTracer(options.tracer)) {\n this.tracer = options.tracer;\n }\n\n return this;\n};\n\nRollbar.prototype.log = function (item) {\n var level = this._defaultLogLevel();\n return this._log(level, item);\n};\n\nRollbar.prototype.debug = function (item) {\n this._log('debug', item);\n};\n\nRollbar.prototype.info = function (item) {\n this._log('info', item);\n};\n\nRollbar.prototype.warn = function (item) {\n this._log('warning', item);\n};\n\nRollbar.prototype.warning = function (item) {\n this._log('warning', item);\n};\n\nRollbar.prototype.error = function (item) {\n this._log('error', item);\n};\n\nRollbar.prototype.critical = function (item) {\n this._log('critical', item);\n};\n\nRollbar.prototype.wait = function (callback) {\n this.queue.wait(callback);\n};\n\nRollbar.prototype.captureEvent = function (type, metadata, level) {\n return this.telemeter && this.telemeter.captureEvent(type, metadata, level);\n};\n\nRollbar.prototype.captureDomContentLoaded = function (ts) {\n return this.telemeter && this.telemeter.captureDomContentLoaded(ts);\n};\n\nRollbar.prototype.captureLoad = function (ts) {\n return this.telemeter && this.telemeter.captureLoad(ts);\n};\n\nRollbar.prototype.buildJsonPayload = function (item) {\n return this.api.buildJsonPayload(item);\n};\n\nRollbar.prototype.sendJsonPayload = function (jsonPayload) {\n this.api.postJsonPayload(jsonPayload);\n};\n\n/* Internal */\n\nRollbar.prototype._log = function (defaultLevel, item) {\n var callback;\n if (item.callback) {\n callback = item.callback;\n delete item.callback;\n }\n if (this.options.ignoreDuplicateErrors && this._sameAsLastError(item)) {\n if (callback) {\n var error = new Error('ignored identical item');\n error.item = item;\n callback(error);\n }\n return;\n }\n try {\n item.level = item.level || defaultLevel;\n\n this._addItemAttributes(item);\n\n // Legacy OpenTracing support\n this._addTracingInfo(item);\n\n const telemeter = this.telemeter;\n if (telemeter) {\n telemeter._captureRollbarItem(item);\n item.telemetryEvents = telemeter.copyEvents() || [];\n }\n\n this.notifier.log(item, callback);\n } catch (e) {\n if (callback) {\n callback(e);\n }\n this.logger.error(e);\n }\n};\n\nRollbar.prototype._addItemAttributes = function (item) {\n const span = this.tracing?.getSpan();\n\n const attributes = [\n { key: 'session_id', value: this.tracing?.sessionId },\n { key: 'span_id', value: span?.spanId },\n { key: 'trace_id', value: span?.traceId },\n ];\n if (item._isUncaught) {\n attributes.push({ key: 'is_uncaught', value: 'true' });\n }\n _.addItemAttributes(item.data, attributes);\n\n span?.addEvent('rollbar.occurrence', [\n { key: 'rollbar.occurrence.uuid', value: item.uuid },\n ]);\n};\n\nRollbar.prototype._defaultLogLevel = function () {\n return this.options.logLevel || 'debug';\n};\n\nRollbar.prototype._sameAsLastError = function (item) {\n if (!item._isUncaught) {\n return false;\n }\n var itemHash = generateItemHash(item);\n if (this.lastErrorHash === itemHash) {\n return true;\n }\n this.lastError = item.err;\n this.lastErrorHash = itemHash;\n return false;\n};\n\nRollbar.prototype._addTracingInfo = function (item) {\n // Tracer validation occurs in the constructor\n // or in the Rollbar.prototype.configure methods\n if (this.tracer) {\n // add rollbar occurrence uuid to span\n var span = this.tracer.scope().active();\n\n if (validateSpan(span)) {\n span.setTag('rollbar.error_uuid', item.uuid);\n span.setTag('rollbar.has_error', true);\n span.setTag('error', true);\n span.setTag(\n 'rollbar.item_url',\n `https://rollbar.com/item/uuid/?uuid=${item.uuid}`,\n );\n span.setTag(\n 'rollbar.occurrence_url',\n `https://rollbar.com/occurrence/uuid/?uuid=${item.uuid}`,\n );\n\n // add span ID & trace ID to occurrence\n var opentracingSpanId = span.context().toSpanId();\n var opentracingTraceId = span.context().toTraceId();\n\n if (item.custom) {\n item.custom.opentracing_span_id = opentracingSpanId;\n item.custom.opentracing_trace_id = opentracingTraceId;\n } else {\n item.custom = {\n opentracing_span_id: opentracingSpanId,\n opentracing_trace_id: opentracingTraceId,\n };\n }\n }\n }\n};\n\nfunction generateItemHash(item) {\n var message = item.message || '';\n var stack = (item.err || {}).stack || String(item.err);\n return message + '::' + stack;\n}\n\n// Node.js, Chrome, Safari, and some other browsers support this property\n// which globally sets the number of stack frames returned in an Error object.\n// If a browser can't use it, no harm done.\nfunction setStackTraceLimit(options) {\n if (options.stackTraceLimit) {\n Error.stackTraceLimit = options.stackTraceLimit;\n }\n}\n\n/**\n * Validate the Tracer object provided to the Client\n * is valid for our Opentracing use case.\n * @param {opentracer.Tracer} tracer\n */\nfunction validateTracer(tracer) {\n if (!tracer) {\n return false;\n }\n\n if (!tracer.scope || typeof tracer.scope !== 'function') {\n return false;\n }\n\n var scope = tracer.scope();\n\n if (!scope || !scope.active || typeof scope.active !== 'function') {\n return false;\n }\n\n return true;\n}\n\n/**\n * Validate the Span object provided\n * @param {opentracer.Span} span\n */\nfunction validateSpan(span) {\n if (!span || !span.context || typeof span.context !== 'function') {\n return false;\n }\n\n var spanContext = span.context();\n\n if (\n !spanContext ||\n !spanContext.toSpanId ||\n !spanContext.toTraceId ||\n typeof spanContext.toSpanId !== 'function' ||\n typeof spanContext.toTraceId !== 'function'\n ) {\n return false;\n }\n\n return true;\n}\n\nexport default Rollbar;\n","import * as _ from './utility.js';\n\nfunction itemToPayload(item, options, callback) {\n if (item._isUncaught) {\n item.data._isUncaught = true;\n }\n if (item._originalArgs) {\n item.data._originalArgs = item._originalArgs;\n }\n callback(null, item);\n}\n\nfunction addPayloadOptions(item, options, callback) {\n var payloadOptions = options.payload || {};\n if (payloadOptions.body) {\n delete payloadOptions.body;\n }\n\n item.data = _.merge(item.data, payloadOptions);\n callback(null, item);\n}\n\nfunction addTelemetryData(item, options, callback) {\n if (item.telemetryEvents) {\n _.set(item, 'data.body.telemetry', item.telemetryEvents);\n }\n callback(null, item);\n}\n\nfunction addMessageWithError(item, options, callback) {\n if (!item.message) {\n callback(null, item);\n return;\n }\n var tracePath = 'data.body.trace_chain.0';\n var trace = _.get(item, tracePath);\n if (!trace) {\n tracePath = 'data.body.trace';\n trace = _.get(item, tracePath);\n }\n if (trace) {\n if (!(trace.exception && trace.exception.description)) {\n _.set(item, tracePath + '.exception.description', item.message);\n callback(null, item);\n return;\n }\n var extra = _.get(item, tracePath + '.extra') || {};\n var newExtra = _.merge(extra, { message: item.message });\n _.set(item, tracePath + '.extra', newExtra);\n }\n callback(null, item);\n}\n\nfunction userTransform(logger) {\n return function (item, options, callback) {\n var newItem = _.merge(item);\n var response = null;\n try {\n if (_.isFunction(options.transform)) {\n response = options.transform(newItem.data, item);\n }\n } catch (e) {\n options.transform = null;\n logger.error(\n 'Error while calling custom transform() function. Removing custom transform().',\n e,\n );\n callback(null, item);\n return;\n }\n if (_.isPromise(response)) {\n response.then(\n function (promisedItem) {\n if (promisedItem) {\n newItem.data = promisedItem;\n }\n callback(null, newItem);\n },\n function (error) {\n callback(error, item);\n },\n );\n } else {\n callback(null, newItem);\n }\n };\n}\n\nfunction addConfigToPayload(item, options, callback) {\n if (!options.sendConfig) {\n return callback(null, item);\n }\n var configKey = '_rollbarConfig';\n var custom = _.get(item, 'data.custom') || {};\n custom[configKey] = options;\n item.data.custom = custom;\n callback(null, item);\n}\n\nfunction addFunctionOption(options, name) {\n if (_.isFunction(options[name])) {\n options[name] = options[name].toString();\n }\n}\n\nfunction addConfiguredOptions(item, options, callback) {\n var configuredOptions = options._configuredOptions;\n\n // These must be stringified or they'll get dropped during serialization.\n addFunctionOption(configuredOptions, 'transform');\n addFunctionOption(configuredOptions, 'checkIgnore');\n addFunctionOption(configuredOptions, 'onSendCallback');\n\n delete configuredOptions.accessToken;\n item.data.notifier.configured_options = configuredOptions;\n callback(null, item);\n}\n\nfunction addDiagnosticKeys(item, options, callback) {\n var diagnostic = _.merge(\n item.notifier.client.notifier.diagnostic,\n item.diagnostic,\n );\n\n if (_.get(item, 'err._isAnonymous')) {\n diagnostic.is_anonymous = true;\n }\n\n if (item._isUncaught) {\n diagnostic.is_uncaught = item._isUncaught;\n }\n\n if (item.err) {\n try {\n diagnostic.raw_error = {\n message: item.err.message,\n name: item.err.name,\n constructor_name: item.err.constructor && item.err.constructor.name,\n filename: item.err.fileName,\n line: item.err.lineNumber,\n column: item.err.columnNumber,\n stack: item.err.stack,\n };\n } catch (e) {\n diagnostic.raw_error = { failed: String(e) };\n }\n }\n\n item.data.notifier.diagnostic = _.merge(\n item.data.notifier.diagnostic,\n diagnostic,\n );\n callback(null, item);\n}\n\nexport {\n itemToPayload,\n addPayloadOptions,\n addTelemetryData,\n addMessageWithError,\n userTransform,\n addConfigToPayload,\n addConfiguredOptions,\n addDiagnosticKeys,\n};\n","/**\n * Default browser options\n */\nimport { commonScrubFields } from '../defaults.js';\n\nexport const scrubFields = [\n ...commonScrubFields,\n 'cc-number',\n 'card number',\n 'cardnumber',\n 'cardnum',\n 'ccnum',\n 'ccnumber',\n 'cc num',\n 'creditcardnumber',\n 'credit card number',\n 'newcreditcardnumber',\n 'new credit card',\n 'creditcardno',\n 'credit card no',\n 'card#',\n 'card #',\n 'cc-csc',\n 'cvc',\n 'cvc2',\n 'cvv2',\n 'ccv2',\n 'security code',\n 'card verification',\n 'name on credit card',\n 'name on card',\n 'nameoncard',\n 'cardholder',\n 'card holder',\n 'name des karteninhabers',\n 'ccname',\n 'card type',\n 'cardtype',\n 'cc type',\n 'cctype',\n 'payment type',\n 'expiration date',\n 'expirationdate',\n 'expdate',\n 'cc-exp',\n 'ccmonth',\n 'ccyear',\n];\n\n// For compatibility with existing code that expects default export with scrubFields property\nexport default { scrubFields };\n","import * as _ from '../utility.js';\n\nfunction checkIgnore(item, settings) {\n if (_.get(settings, 'plugins.jquery.ignoreAjaxErrors')) {\n return !_.get(item, 'body.message.extra.isAjax');\n }\n return true;\n}\n\nexport { checkIgnore };\n","import errorParser from '../errorParser.js';\nimport logger from '../logger.js';\nimport * as _ from '../utility.js';\n\nfunction handleDomException(item, options, callback) {\n if (item.err && errorParser.Stack(item.err).name === 'DOMException') {\n var originalError = new Error();\n originalError.name = item.err.name;\n originalError.message = item.err.message;\n originalError.stack = item.err.stack;\n originalError.nested = item.err;\n item.err = originalError;\n }\n callback(null, item);\n}\n\nfunction handleItemWithError(item, options, callback) {\n item.data = item.data || {};\n if (item.err) {\n try {\n item.stackInfo =\n item.err._savedStackTrace ||\n errorParser.parse(item.err, item.skipFrames);\n\n if (options.addErrorContext) {\n addErrorContext(item);\n }\n } catch (e) {\n logger.error('Error while parsing the error object.', e);\n try {\n item.message =\n item.err.message ||\n item.err.description ||\n item.message ||\n String(item.err);\n } catch (e2) {\n item.message = String(item.err) || String(e2);\n }\n delete item.err;\n }\n }\n callback(null, item);\n}\n\nfunction addErrorContext(item) {\n var chain = [];\n var err = item.err;\n\n chain.push(err);\n\n while (err.nested || err.cause) {\n err = err.nested || err.cause;\n chain.push(err);\n }\n\n _.addErrorContext(item, chain);\n}\n\nfunction ensureItemHasSomethingToSay(item, options, callback) {\n if (!item.message && !item.stackInfo && !item.custom) {\n callback(new Error('No message, stack info, or custom data'), null);\n }\n callback(null, item);\n}\n\nfunction addBaseInfo(item, options, callback) {\n var environment =\n (options.payload && options.payload.environment) || options.environment;\n item.data = _.merge(item.data, {\n environment: environment,\n level: item.level,\n endpoint: options.endpoint,\n platform: 'browser',\n framework: 'browser-js',\n language: 'javascript',\n server: {},\n uuid: item.uuid,\n notifier: {\n name: 'rollbar-browser-js',\n version: options.version,\n },\n custom: item.custom,\n });\n callback(null, item);\n}\n\nfunction addRequestInfo(window) {\n return function (item, options, callback) {\n var requestInfo = {};\n\n if (window && window.location) {\n requestInfo.url = window.location.href;\n requestInfo.query_string = window.location.search;\n }\n\n var remoteString = '$remote_ip';\n if (!options.captureIp) {\n remoteString = null;\n } else if (options.captureIp !== true) {\n remoteString += '_anonymize';\n }\n if (remoteString) requestInfo.user_ip = remoteString;\n\n if (Object.keys(requestInfo).length > 0) {\n _.set(item, 'data.request', requestInfo);\n }\n\n callback(null, item);\n };\n}\n\nfunction addClientInfo(window) {\n return function (item, options, callback) {\n if (!window) {\n return callback(null, item);\n }\n var nav = window.navigator || {};\n var scr = window.screen || {};\n _.set(item, 'data.client', {\n runtime_ms: item.timestamp - window._rollbarStartTime,\n timestamp: Math.round(item.timestamp / 1000),\n javascript: {\n browser: nav.userAgent,\n language: nav.language,\n cookie_enabled: nav.cookieEnabled,\n screen: {\n width: scr.width,\n height: scr.height,\n },\n },\n });\n callback(null, item);\n };\n}\n\nfunction addPluginInfo(window) {\n return function (item, options, callback) {\n if (!window || !window.navigator) {\n return callback(null, item);\n }\n var plugins = [];\n var navPlugins = window.navigator.plugins || [];\n var cur;\n for (var i = 0, l = navPlugins.length; i < l; ++i) {\n cur = navPlugins[i];\n plugins.push({ name: cur.name, description: cur.description });\n }\n _.set(item, 'data.client.javascript.plugins', plugins);\n callback(null, item);\n };\n}\n\nfunction addBody(item, options, callback) {\n if (item.stackInfo) {\n if (item.stackInfo.traceChain) {\n addBodyTraceChain(item, options, callback);\n } else {\n addBodyTrace(item, options, callback);\n }\n } else {\n addBodyMessage(item, options, callback);\n }\n}\n\nfunction addBodyMessage(item, options, callback) {\n var message = item.message;\n var custom = item.custom;\n\n if (!message) {\n message = 'Item sent with null or missing arguments.';\n }\n var result = {\n body: message,\n };\n\n if (custom) {\n result.extra = _.merge(custom);\n }\n\n _.set(item, 'data.body', { message: result });\n callback(null, item);\n}\n\nfunction stackFromItem(item, stackInfo = null) {\n // Transform a TraceKit stackInfo object into a Rollbar trace\n let stack = (stackInfo || item.stackInfo).stack;\n if (\n stack &&\n stack.length === 0 &&\n item._unhandledStackInfo &&\n item._unhandledStackInfo.stack\n ) {\n stack = item._unhandledStackInfo.stack;\n }\n return stack;\n}\n\nfunction addBodyTraceChain(item, options, callback) {\n var traceChain = item.stackInfo.traceChain;\n var traces = [];\n\n var traceChainLength = traceChain.length;\n for (var i = 0; i < traceChainLength; i++) {\n var trace = buildTrace(item, traceChain[i], options);\n traces.push(trace);\n }\n\n _.set(item, 'data.body', { trace_chain: traces });\n callback(null, item);\n}\n\nfunction addBodyTrace(item, options, callback) {\n var stack = stackFromItem(item);\n\n if (stack) {\n var trace = buildTrace(item, item.stackInfo, options);\n _.set(item, 'data.body', { trace: trace });\n callback(null, item);\n } else {\n var stackInfo = item.stackInfo;\n var guess = errorParser.guessErrorClass(stackInfo.message);\n var className = errorClass(stackInfo, guess[0], options);\n var message = guess[1];\n\n item.message = className + ': ' + message;\n addBodyMessage(item, options, callback);\n }\n}\n\nfunction buildTrace(item, stackInfo, options) {\n var description = item && item.data.description;\n var custom = item && item.custom;\n var stack = stackFromItem(item, stackInfo);\n\n var guess = errorParser.guessErrorClass(stackInfo.message);\n var className = errorClass(stackInfo, guess[0], options);\n var message = guess[1];\n var trace = {\n exception: {\n class: className,\n message: message,\n },\n };\n\n if (description) {\n trace.exception.description = description;\n }\n\n if (stack) {\n if (stack.length === 0) {\n trace.exception.stack = stackInfo.rawStack;\n trace.exception.raw = String(stackInfo.rawException);\n }\n var stackFrame;\n var frame;\n var code;\n var pre;\n var post;\n var contextLength;\n var i, mid;\n\n trace.frames = [];\n for (i = 0; i < stack.length; ++i) {\n stackFrame = stack[i];\n frame = {\n filename: stackFrame.url ? _.sanitizeUrl(stackFrame.url) : '(unknown)',\n lineno: stackFrame.line || null,\n method:\n !stackFrame.func || stackFrame.func === '?'\n ? '[anonymous]'\n : stackFrame.func,\n colno: stackFrame.column,\n };\n if (options.sendFrameUrl) {\n frame.url = stackFrame.url;\n }\n if (\n frame.method &&\n frame.method.endsWith &&\n frame.method.endsWith('_rollbar_wrapped')\n ) {\n continue;\n }\n\n code = pre = post = null;\n contextLength = stackFrame.context ? stackFrame.context.length : 0;\n if (contextLength) {\n mid = Math.floor(contextLength / 2);\n pre = stackFrame.context.slice(0, mid);\n code = stackFrame.context[mid];\n post = stackFrame.context.slice(mid);\n }\n\n if (code) {\n frame.code = code;\n }\n\n if (pre || post) {\n frame.context = {};\n if (pre && pre.length) {\n frame.context.pre = pre;\n }\n if (post && post.length) {\n frame.context.post = post;\n }\n }\n\n if (stackFrame.args) {\n frame.args = stackFrame.args;\n }\n\n trace.frames.push(frame);\n }\n\n // NOTE(cory): reverse the frames since rollbar.com expects the most recent call last\n trace.frames.reverse();\n\n if (custom) {\n trace.extra = _.merge(custom);\n }\n }\n\n return trace;\n}\n\nfunction errorClass(stackInfo, guess, options) {\n if (stackInfo.name) {\n return stackInfo.name;\n } else if (options.guessErrorClass) {\n return guess;\n } else {\n return '(unknown)';\n }\n}\n\nfunction addScrubber(scrubFn) {\n return function (item, options, callback) {\n if (scrubFn) {\n var scrubFields = options.scrubFields || [];\n var scrubPaths = options.scrubPaths || [];\n item.data = scrubFn(item.data, scrubFields, scrubPaths);\n }\n callback(null, item);\n };\n}\n\nexport {\n handleDomException,\n handleItemWithError,\n ensureItemHasSomethingToSay,\n addBaseInfo,\n addRequestInfo,\n addClientInfo,\n addPluginInfo,\n addBody,\n addScrubber,\n};\n","import logger from '../../logger.js';\nimport * as _ from '../../utility.js';\n\nfunction makeFetchRequest({\n accessToken,\n url,\n method,\n payload,\n headers,\n callback,\n timeout,\n}) {\n var controller;\n var timeoutId;\n\n if (_.isFiniteNumber(timeout)) {\n controller = new AbortController();\n timeoutId = setTimeout(function () {\n controller.abort();\n }, timeout);\n }\n\n headers = {\n 'Content-Type': 'application/json',\n 'X-Rollbar-Access-Token': accessToken,\n signal: controller && controller.signal,\n ...headers,\n };\n\n fetch(url, {\n method,\n headers,\n body: payload,\n })\n .then(function (response) {\n if (timeoutId) clearTimeout(timeoutId);\n const respHeaders = response.headers;\n\n const isItemRoute = url.endsWith('/api/1/item/');\n const headers = isItemRoute\n ? {\n 'Rollbar-Replay-Enabled': respHeaders.get('Rollbar-Replay-Enabled'),\n 'Rollbar-Replay-RateLimit-Remaining': respHeaders.get(\n 'Rollbar-Replay-RateLimit-Remaining',\n ),\n 'Rollbar-Replay-RateLimit-Reset': respHeaders.get(\n 'Rollbar-Replay-RateLimit-Reset',\n ),\n }\n : {};\n\n const json = response.json();\n callback(null, json, headers);\n })\n .catch(function (error) {\n logger.error(error.message);\n callback(error);\n });\n}\n\nexport default makeFetchRequest;\n","/*global XDomainRequest*/\n\nimport logger from '../../logger.js';\nimport * as _ from '../../utility.js';\n\nfunction makeXhrRequest({\n accessToken,\n url,\n method,\n payload,\n headers,\n callback,\n requestFactory,\n timeout,\n}) {\n var request;\n if (requestFactory) {\n request = requestFactory();\n } else {\n request = _createXMLHTTPObject();\n }\n if (!request) {\n // Give up, no way to send requests\n return callback(new Error('No way to send a request'));\n }\n try {\n try {\n var onreadystatechange = function () {\n try {\n if (onreadystatechange && request.readyState === 4) {\n onreadystatechange = undefined;\n\n var parseResponse = _.jsonParse(request.responseText);\n if (_isSuccess(request)) {\n const isItemRoute = url.endsWith('/api/1/item/');\n\n const headers = isItemRoute\n ? {\n 'Rollbar-Replay-Enabled': request.getResponseHeader(\n 'Rollbar-Replay-Enabled',\n ),\n 'Rollbar-Replay-RateLimit-Remaining':\n request.getResponseHeader(\n 'Rollbar-Replay-RateLimit-Remaining',\n ),\n 'Rollbar-Replay-RateLimit-Reset': request.getResponseHeader(\n 'Rollbar-Replay-RateLimit-Reset',\n ),\n }\n : {};\n callback(parseResponse.error, parseResponse.value, headers);\n return;\n } else if (_isNormalFailure(request)) {\n if (request.status === 403) {\n // likely caused by using a server access token\n var message =\n parseResponse.value && parseResponse.value.message;\n logger.error(message);\n }\n // return valid http status codes\n callback(new Error(String(request.status)));\n } else {\n // IE will return a status 12000+ on some sort of connection failure,\n // so we return a blank error\n // http://msdn.microsoft.com/en-us/library/aa383770%28VS.85%29.aspx\n var msg =\n 'XHR response had no status code (likely connection failure)';\n callback(_newRetriableError(msg));\n }\n }\n } catch (ex) {\n //jquery source mentions firefox may error out while accessing the\n //request members if there is a network error\n //https://github.com/jquery/jquery/blob/a938d7b1282fc0e5c52502c225ae8f0cef219f0a/src/ajax/xhr.js#L111\n var exc;\n if (ex && ex.stack) {\n exc = ex;\n } else {\n exc = new Error(ex);\n }\n callback(exc);\n }\n };\n\n request.open(method, url, true);\n if (request.setRequestHeader) {\n request.setRequestHeader('Content-Type', 'application/json');\n request.setRequestHeader('X-Rollbar-Access-Token', accessToken);\n for (const [h, v] of Object.entries(headers ?? {})) {\n request.setRequestHeader(h, v);\n }\n }\n\n if (_.isFiniteNumber(timeout)) {\n request.timeout = timeout;\n }\n\n request.onreadystatechange = onreadystatechange;\n request.send(payload);\n } catch (_e1) {\n // Sending using the normal xmlhttprequest object didn't work, try XDomainRequest\n if (typeof XDomainRequest !== 'undefined') {\n // Assume we are in a really old browser which has a bunch of limitations:\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n\n // Extreme paranoia: if we have XDomainRequest then we have a window, but just in case\n if (!window || !window.location) {\n return callback(\n new Error(\n 'No window available during request, unknown environment',\n ),\n );\n }\n\n // If the current page is http, try and send over http\n if (\n window.location.href.substring(0, 5) === 'http:' &&\n url.substring(0, 5) === 'https'\n ) {\n url = 'http' + url.substring(5);\n }\n\n var xdomainrequest = new XDomainRequest();\n xdomainrequest.onprogress = () => {};\n xdomainrequest.ontimeout = function () {\n var msg = 'Request timed out';\n var code = 'ETIMEDOUT';\n callback(_newRetriableError(msg, code));\n };\n xdomainrequest.onerror = function () {\n callback(new Error('Error during request'));\n };\n xdomainrequest.onload = function () {\n var parseResponse = _.jsonParse(xdomainrequest.responseText);\n callback(parseResponse.error, parseResponse.value);\n };\n xdomainrequest.open(method, url, true);\n xdomainrequest.send(payload);\n } else {\n callback(new Error('Cannot find a method to transport a request'));\n }\n }\n } catch (e2) {\n callback(e2);\n }\n}\n\nfunction _createXMLHTTPObject() {\n /* global ActiveXObject:false */\n\n var factories = [\n function () {\n return new XMLHttpRequest();\n },\n function () {\n return new ActiveXObject('Msxml2.XMLHTTP');\n },\n function () {\n return new ActiveXObject('Msxml3.XMLHTTP');\n },\n function () {\n return new ActiveXObject('Microsoft.XMLHTTP');\n },\n ];\n var xmlhttp;\n var i;\n var numFactories = factories.length;\n for (i = 0; i < numFactories; i++) {\n try {\n xmlhttp = factories[i]();\n break;\n } catch (_e) {\n // pass\n }\n }\n return xmlhttp;\n}\n\nfunction _isSuccess(r) {\n return r && r.status && r.status === 200;\n}\n\nfunction _isNormalFailure(r) {\n return r && _.isType(r.status, 'number') && r.status >= 400 && r.status < 600;\n}\n\nfunction _newRetriableError(message, code) {\n var err = new Error(message);\n err.code = code || 'ENOTFOUND';\n return err;\n}\n\nexport default makeXhrRequest;\n","import * as _ from '../utility.js';\n\nimport makeFetchRequest from './transport/fetch.js';\nimport makeXhrRequest from './transport/xhr.js';\n\n/*\n * accessToken may be embedded in payload but that should not\n * be assumed\n *\n * options: {\n * hostname\n * protocol\n * path\n * port\n * method\n * transport ('xhr' | 'fetch')\n * }\n *\n * params is an object containing key/value pairs. These\n * will be appended to the path as 'key=value&key=value'\n *\n * payload is an unserialized object\n */\nfunction Transport(truncation) {\n this.truncation = truncation;\n}\n\nTransport.prototype.get = function (\n accessToken,\n options,\n params,\n callback,\n requestFactory,\n) {\n if (!callback || !_.isFunction(callback)) {\n callback = () => {};\n }\n _.addParamsAndAccessTokenToPath(accessToken, options, params);\n\n var method = 'GET';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\nTransport.prototype.post = function ({\n accessToken,\n options,\n payload,\n headers,\n callback,\n requestFactory,\n}) {\n if (!callback || !_.isFunction(callback)) {\n callback = () => {};\n }\n\n if (!payload) {\n return callback(new Error('Cannot send empty request'));\n }\n\n var stringifyResult;\n // Check payload.body to ensure only items are truncated.\n if (this.truncation && payload.body) {\n stringifyResult = this.truncation.truncate(payload);\n } else {\n stringifyResult = _.stringify(payload);\n }\n if (stringifyResult.error) {\n return callback(stringifyResult.error);\n }\n\n var method = 'POST';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n payload: stringifyResult.value,\n headers,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\nTransport.prototype.postJsonPayload = function (\n accessToken,\n options,\n payload,\n callback,\n requestFactory,\n) {\n if (!callback || !_.isFunction(callback)) {\n callback = () => {};\n }\n\n var method = 'POST';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n payload,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\n// Wraps `_makeRequest` if zone.js is being used, ensuring that Rollbar\n// API calls are not intercepted by any child forked zones.\n// This is equivalent to `NgZone.runOutsideAngular` in Angular.\nTransport.prototype._makeZoneRequest = function () {\n var gWindow =\n (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && self);\n // Whenever zone.js is loaded and `Zone` is exposed globally, access\n // the root zone to ensure that requests are always made within it.\n // This approach is framework-agnostic, regardless of which\n // framework zone.js is used with.\n var rootZone = gWindow && gWindow.Zone && gWindow.Zone.root;\n var args = Array.prototype.slice.call(arguments);\n\n if (rootZone) {\n rootZone.run(() => {\n this._makeRequest.apply(undefined, args);\n });\n } else {\n this._makeRequest.apply(undefined, args);\n }\n};\n\nTransport.prototype._makeRequest = function (params) {\n const { payload, callback, transport } = params;\n if (typeof RollbarProxy !== 'undefined') {\n return _proxyRequest(payload, callback);\n }\n\n if (transport === 'fetch') {\n makeFetchRequest(params);\n } else {\n makeXhrRequest(params);\n }\n};\n\n/* global RollbarProxy */\nfunction _proxyRequest(json, callback) {\n var rollbarProxy = new RollbarProxy();\n rollbarProxy.sendJsonPayload(\n json,\n function (_msg) {\n /* do nothing */\n },\n function (err) {\n callback(new Error(err));\n },\n );\n}\n\nexport default Transport;\n","// See https://nodejs.org/docs/latest/api/url.html\nfunction parse(url) {\n var result = {\n protocol: null,\n auth: null,\n host: null,\n path: null,\n hash: null,\n href: url,\n hostname: null,\n port: null,\n pathname: null,\n search: null,\n query: null,\n };\n\n var i, last;\n i = url.indexOf('//');\n if (i !== -1) {\n result.protocol = url.substring(0, i);\n last = i + 2;\n } else {\n last = 0;\n }\n\n i = url.indexOf('@', last);\n if (i !== -1) {\n result.auth = url.substring(last, i);\n last = i + 1;\n }\n\n i = url.indexOf('/', last);\n if (i === -1) {\n i = url.indexOf('?', last);\n if (i === -1) {\n i = url.indexOf('#', last);\n if (i === -1) {\n result.host = url.substring(last);\n } else {\n result.host = url.substring(last, i);\n result.hash = url.substring(i);\n }\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n return result;\n } else {\n result.host = url.substring(last, i);\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n last = i;\n }\n } else {\n result.host = url.substring(last, i);\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n last = i;\n }\n\n i = url.indexOf('#', last);\n if (i === -1) {\n result.path = url.substring(last);\n } else {\n result.path = url.substring(last, i);\n result.hash = url.substring(i);\n }\n\n if (result.path) {\n var pathParts = result.path.split('?');\n result.pathname = pathParts[0];\n result.query = pathParts[1];\n result.search = result.query ? '?' + result.query : null;\n }\n return result;\n}\n\nexport { parse };\n","import API from '../api.js';\nimport defaults from '../defaults.js';\nimport errorParser from '../errorParser.js';\nimport logger from '../logger.js';\nimport * as sharedPredicates from '../predicates.js';\nimport Client from '../rollbar.js';\nimport tracingDefaults from '../tracing/defaults.js';\nimport * as sharedTransforms from '../transforms.js';\nimport * as _ from '../utility.js';\n\nimport browserDefaults from './defaults.js';\nimport * as globals from './globalSetup.js';\nimport * as predicates from './predicates.js';\nimport replayDefaults from './replay/defaults.js';\nimport * as transforms from './transforms.js';\nimport Transport from './transport.js';\nimport * as urllib from './url.js';\n\n// Used to support global `Rollbar` instance.\nlet _instance = null;\n\nclass Rollbar {\n constructor(options, client) {\n logger.init({ logLevel: options.logLevel || 'error' });\n this.options = _.handleOptions(defaultOptions, options, null, logger);\n this.options._configuredOptions = options;\n this.components = this.components || {};\n const Telemeter = this.components.telemeter;\n const Instrumenter = this.components.instrumenter;\n this.wrapGlobals = this.components.wrapGlobals;\n this.scrub = this.components.scrub;\n const truncation = this.components.truncation;\n const Tracing = this.components.tracing;\n const Replay = this.components.replay;\n\n const transport = new Transport(truncation);\n const api = new API(this.options, transport, urllib, truncation);\n if (Tracing) {\n this.tracing = new Tracing(_gWindow(), api, this.options);\n this.tracing.initSession();\n }\n if (Telemeter) {\n this.telemeter = new Telemeter(this.options, this.tracing);\n }\n\n if (Replay && _.isBrowser()) {\n const replayOptions = this.options.replay;\n this.replay = new Replay({\n tracing: this.tracing,\n telemeter: this.telemeter,\n options: replayOptions,\n });\n\n if (replayOptions.enabled && replayOptions.autoStart) {\n this.replay.recorder.start();\n }\n }\n\n this.client =\n client ||\n new Client(\n this.options,\n api,\n logger,\n this.telemeter,\n this.tracing,\n this.replay,\n 'browser',\n );\n var gWindow = _gWindow();\n var gDocument = typeof document !== 'undefined' && document;\n this.isChrome = gWindow.chrome && gWindow.chrome.runtime; // check .runtime to avoid Edge browsers\n this.anonymousErrorsPending = 0;\n addTransformsToNotifier(this.client.notifier, this, gWindow);\n addPredicatesToQueue(this.client.queue);\n this.setupUnhandledCapture();\n if (Instrumenter) {\n this.instrumenter = new Instrumenter(\n this.options,\n this.client.telemeter,\n this,\n gWindow,\n gDocument,\n );\n this.instrumenter.instrument();\n }\n\n this.setSessionAttributesFromOptions(options);\n\n // Used with rollbar-react for rollbar-react-native compatibility.\n this.rollbar = this;\n }\n\n static init(options, client) {\n if (_instance) {\n return _instance.global(options).configure(options);\n }\n _instance = new Rollbar(options, client);\n return _instance;\n }\n\n static setComponents(components) {\n Rollbar.prototype.components = components;\n }\n\n global(options) {\n this.client.global(options);\n return this;\n }\n\n configure(options, payloadData) {\n if (options.logLevel) {\n logger.init({ logLevel: options.logLevel });\n }\n this.setSessionAttributesFromOptions(options);\n var oldOptions = this.options;\n var payload = {};\n if (payloadData) {\n payload = { payload: payloadData };\n }\n\n this.options = _.handleOptions(oldOptions, options, payload, logger);\n this.options._configuredOptions = _.handleOptions(\n oldOptions._configuredOptions,\n options,\n payload,\n );\n\n this.tracing?.configure(this.options);\n this.replay?.configure(this.options.replay);\n this.client.configure(this.options, payloadData);\n this.instrumenter?.configure(this.options);\n this.setupUnhandledCapture();\n return this;\n }\n\n lastError() {\n return this.client.lastError;\n }\n\n log() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.log(item);\n return { uuid: uuid };\n }\n\n debug() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.debug(item);\n return { uuid: uuid };\n }\n\n info() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.info(item);\n return { uuid: uuid };\n }\n\n warn() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.warn(item);\n return { uuid: uuid };\n }\n\n warning() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.warning(item);\n return { uuid: uuid };\n }\n\n error() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.error(item);\n return { uuid: uuid };\n }\n\n critical() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.critical(item);\n return { uuid: uuid };\n }\n\n buildJsonPayload(item) {\n return this.client.buildJsonPayload(item);\n }\n\n sendJsonPayload(jsonPayload) {\n return this.client.sendJsonPayload(jsonPayload);\n }\n\n triggerDirectReplay(context) {\n return this.triggerReplay({ type: 'direct', ...context });\n }\n\n triggerReplay(context) {\n if (!this.replay) return null;\n\n return this.replay.triggerReplay(context);\n }\n\n setupUnhandledCapture() {\n var gWindow = _gWindow();\n\n if (!this.unhandledExceptionsInitialized) {\n if (\n this.options.captureUncaught ||\n this.options.handleUncaughtExceptions\n ) {\n globals.captureUncaughtExceptions(gWindow, this);\n if (this.wrapGlobals && this.options.wrapGlobalEventHandlers) {\n this.wrapGlobals(gWindow, this);\n }\n this.unhandledExceptionsInitialized = true;\n }\n }\n if (!this.unhandledRejectionsInitialized) {\n if (\n this.options.captureUnhandledRejections ||\n this.options.handleUnhandledRejections\n ) {\n globals.captureUnhandledRejections(gWindow, this);\n this.unhandledRejectionsInitialized = true;\n }\n }\n }\n\n handleUncaughtException(message, url, lineno, colno, error, context) {\n if (\n !this.options.captureUncaught &&\n !this.options.handleUncaughtExceptions\n ) {\n return;\n }\n\n // Chrome will always send 5+ arguments and error will be valid or null, not undefined.\n // If error is undefined, we have a different caller.\n // Chrome also sends errors from web workers with null error, but does not invoke\n // prepareStackTrace() for these. Test for empty url to skip them.\n if (\n this.options.inspectAnonymousErrors &&\n this.isChrome &&\n error === null &&\n url === ''\n ) {\n return 'anonymous';\n }\n\n var item;\n var stackInfo = _.makeUnhandledStackInfo(\n message,\n url,\n lineno,\n colno,\n error,\n 'onerror',\n 'uncaught exception',\n errorParser,\n );\n if (_.isError(error)) {\n item = this._createItem([message, error, context]);\n item._unhandledStackInfo = stackInfo;\n } else if (_.isError(url)) {\n item = this._createItem([message, url, context]);\n item._unhandledStackInfo = stackInfo;\n } else {\n item = this._createItem([message, context]);\n item.stackInfo = stackInfo;\n }\n item.level = this.options.uncaughtErrorLevel;\n item._isUncaught = true;\n this.client.log(item);\n }\n\n /**\n * Chrome only. Other browsers will ignore.\n *\n * Use Error.prepareStackTrace to extract information about errors that\n * do not have a valid error object in onerror().\n *\n * In tested version of Chrome, onerror is called first but has no way\n * to communicate with prepareStackTrace. Use a counter to let this\n * handler know which errors to send to Rollbar.\n *\n * In config options, set inspectAnonymousErrors to enable.\n */\n handleAnonymousErrors() {\n if (!this.options.inspectAnonymousErrors || !this.isChrome) {\n return;\n }\n\n const prepareStackTrace = (error, _stack) => {\n if (this.options.inspectAnonymousErrors) {\n if (this.anonymousErrorsPending) {\n // This is the only known way to detect that onerror saw an anonymous error.\n // It depends on onerror reliably being called before Error.prepareStackTrace,\n // which so far holds true on tested versions of Chrome. If versions of Chrome\n // are tested that behave differently, this logic will need to be updated\n // accordingly.\n this.anonymousErrorsPending -= 1;\n\n if (!error) {\n // Not likely to get here, but calling handleUncaughtException from here\n // without an error object would throw off the anonymousErrorsPending counter,\n // so return now.\n return;\n }\n\n // Allow this to be tracked later.\n error._isAnonymous = true;\n\n // url, lineno, colno shouldn't be needed for these errors.\n // If that changes, update this accordingly, using the unused\n // _stack param as needed (rather than parse error.toString()).\n this.handleUncaughtException(error.message, null, null, null, error);\n }\n }\n\n // Workaround to ensure stack is preserved for normal errors.\n return error.stack;\n };\n\n // https://v8.dev/docs/stack-trace-api\n try {\n Error.prepareStackTrace = prepareStackTrace;\n } catch (e) {\n this.options.inspectAnonymousErrors = false;\n this.error('anonymous error handler failed', e);\n }\n }\n\n handleUnhandledRejection(reason, promise) {\n if (\n !this.options.captureUnhandledRejections &&\n !this.options.handleUnhandledRejections\n ) {\n return;\n }\n\n var message = 'unhandled rejection was null or undefined!';\n if (reason) {\n if (reason.message) {\n message = reason.message;\n } else {\n var reasonResult = _.stringify(reason);\n if (reasonResult.value) {\n message = reasonResult.value;\n }\n }\n }\n var context =\n (reason && reason._rollbarContext) ||\n (promise && promise._rollbarContext);\n\n var item;\n if (_.isError(reason)) {\n item = this._createItem([message, reason, context]);\n } else {\n item = this._createItem([message, reason, context]);\n item.stackInfo = _.makeUnhandledStackInfo(\n message,\n '',\n 0,\n 0,\n null,\n 'unhandledrejection',\n '',\n errorParser,\n );\n }\n item.level = this.options.uncaughtErrorLevel;\n item._isUncaught = true;\n item._originalArgs = item._originalArgs || [];\n item._originalArgs.push(promise);\n this.client.log(item);\n }\n\n wrap(f, context, _before) {\n try {\n var ctxFn;\n if (_.isFunction(context)) {\n ctxFn = context;\n } else {\n ctxFn = function () {\n return context || {};\n };\n }\n\n if (!_.isFunction(f)) {\n return f;\n }\n\n if (f._isWrap) {\n return f;\n }\n\n if (!f._rollbar_wrapped) {\n f._rollbar_wrapped = function () {\n if (_before && _.isFunction(_before)) {\n _before.apply(this, arguments);\n }\n try {\n return f.apply(this, arguments);\n } catch (exc) {\n var e = exc;\n if (e && window._rollbarWrappedError !== e) {\n if (_.isType(e, 'string')) {\n e = new String(e);\n }\n e._rollbarContext = ctxFn() || {};\n e._rollbarContext._wrappedSource = f.toString();\n\n window._rollbarWrappedError = e;\n }\n throw e;\n }\n };\n\n f._rollbar_wrapped._isWrap = true;\n\n for (var prop in f) {\n if (_.hasOwn(f, prop) && prop !== '_rollbar_wrapped') {\n f._rollbar_wrapped[prop] = f[prop];\n }\n }\n }\n\n return f._rollbar_wrapped;\n } catch (_e) {\n // Return the original function if the wrap fails.\n return f;\n }\n }\n\n captureEvent() {\n var event = _.createTelemetryEvent(arguments);\n return this.client.captureEvent(event.type, event.metadata, event.level);\n }\n\n setSessionUser(user) {\n if (!this.tracing?.session) return;\n\n this.tracing.session.setUser(user);\n }\n\n setSessionAttributes(attrs) {\n if (!this.tracing?.session) return;\n\n attrs = { ...attrs };\n\n this.tracing.session.setAttributes(attrs);\n }\n\n setSessionAttributesFromOptions(options) {\n const person = options.person || options.payload?.person;\n if (person) {\n this.setSessionUser(person);\n }\n const code_version =\n options.client?.javascript?.code_version ||\n options.codeVersion ||\n options.code_version ||\n options.payload?.client?.javascript?.code_version ||\n options.payload?.code_version ||\n options.payload?.codeVersion;\n this.setSessionAttributes({\n 'rollbar.codeVersion': code_version,\n 'rollbar.notifier.name': 'rollbar-browser-js',\n 'rollbar.notifier.version': options.version,\n });\n }\n\n // The following two methods are used internally and are not meant for public use\n captureDomContentLoaded(e, ts) {\n if (!ts) {\n ts = new Date();\n }\n return this.client.captureDomContentLoaded(ts);\n }\n\n captureLoad(e, ts) {\n if (!ts) {\n ts = new Date();\n }\n return this.client.captureLoad(ts);\n }\n\n loadFull() {\n logger.info(\n 'Unexpected Rollbar.loadFull() called on a Notifier instance. This can happen when Rollbar is loaded multiple times.',\n );\n }\n\n _createItem(args) {\n return _.createItem(args, logger, this);\n }\n\n // Static version of instance methods support the legacy pattern of a\n // global `Rollbar` instance, where after calling `Rollbar.init()`,\n // `Rollbar` can be used as if it were an instance.\n // If support for this pattern is dropped, these static methods can be removed.\n static callInstance(method, args) {\n if (!_instance) {\n const message = 'Rollbar is not initialized';\n logger.error(message);\n const maybeCallback = _getFirstFunction(args);\n if (maybeCallback) {\n maybeCallback(new Error(message));\n }\n return;\n }\n return _instance[method].apply(_instance, args);\n }\n\n static global = (...args) => Rollbar.callInstance('global', args);\n static configure = (...args) => Rollbar.callInstance('configure', args);\n static lastError = (...args) => Rollbar.callInstance('lastError', args);\n static log = (...args) => Rollbar.callInstance('log', args);\n static debug = (...args) => Rollbar.callInstance('debug', args);\n static info = (...args) => Rollbar.callInstance('info', args);\n static warn = (...args) => Rollbar.callInstance('warn', args);\n static warning = (...args) => Rollbar.callInstance('warning', args);\n static error = (...args) => Rollbar.callInstance('error', args);\n static critical = (...args) => Rollbar.callInstance('critical', args);\n static buildJsonPayload = (...args) =>\n Rollbar.callInstance('buildJsonPayload', args);\n static sendJsonPayload = (...args) =>\n Rollbar.callInstance('sendJsonPayload', args);\n static wrap = (...args) => Rollbar.callInstance('wrap', args);\n static captureEvent = (...args) => Rollbar.callInstance('captureEvent', args);\n}\n\n/* Internal */\n\nfunction addTransformsToNotifier(notifier, rollbar, gWindow) {\n notifier\n .addTransform(transforms.handleDomException)\n .addTransform(transforms.handleItemWithError)\n .addTransform(transforms.ensureItemHasSomethingToSay)\n .addTransform(transforms.addBaseInfo)\n .addTransform(transforms.addRequestInfo(gWindow))\n .addTransform(transforms.addClientInfo(gWindow))\n .addTransform(transforms.addPluginInfo(gWindow))\n .addTransform(transforms.addBody)\n .addTransform(sharedTransforms.addMessageWithError)\n .addTransform(sharedTransforms.addTelemetryData)\n .addTransform(sharedTransforms.addConfigToPayload)\n .addTransform(transforms.addScrubber(rollbar.scrub))\n .addTransform(sharedTransforms.addPayloadOptions)\n .addTransform(sharedTransforms.userTransform(logger))\n .addTransform(sharedTransforms.addConfiguredOptions)\n .addTransform(sharedTransforms.addDiagnosticKeys)\n .addTransform(sharedTransforms.itemToPayload);\n}\n\nfunction addPredicatesToQueue(queue) {\n queue\n .addPredicate(sharedPredicates.checkLevel)\n .addPredicate(predicates.checkIgnore)\n .addPredicate(sharedPredicates.userCheckIgnore(logger))\n .addPredicate(sharedPredicates.urlIsNotBlockListed(logger))\n .addPredicate(sharedPredicates.urlIsSafeListed(logger))\n .addPredicate(sharedPredicates.messageIsIgnored(logger));\n}\n\nfunction _getFirstFunction(args) {\n for (var i = 0, len = args.length; i < len; ++i) {\n if (_.isFunction(args[i])) {\n return args[i];\n }\n }\n return undefined;\n}\n\nfunction _gWindow() {\n return (\n (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && self)\n );\n}\n\nconst defaultOptions = {\n environment: 'unknown',\n version: defaults.version,\n scrubFields: browserDefaults.scrubFields,\n logLevel: defaults.logLevel,\n reportLevel: defaults.reportLevel,\n uncaughtErrorLevel: defaults.uncaughtErrorLevel,\n endpoint: defaults.endpoint,\n verbose: false,\n enabled: true,\n transmit: true,\n sendConfig: false,\n includeItemsInTelemetry: true,\n captureIp: true,\n inspectAnonymousErrors: true,\n ignoreDuplicateErrors: true,\n wrapGlobalEventHandlers: false,\n replay: replayDefaults,\n tracing: tracingDefaults,\n};\n\nexport default Rollbar;\n","function captureUncaughtExceptions(window, handler, shim) {\n if (!window) {\n return;\n }\n var oldOnError;\n\n if (typeof handler._rollbarOldOnError === 'function') {\n oldOnError = handler._rollbarOldOnError;\n } else if (window.onerror) {\n oldOnError = window.onerror;\n while (oldOnError._rollbarOldOnError) {\n oldOnError = oldOnError._rollbarOldOnError;\n }\n handler._rollbarOldOnError = oldOnError;\n }\n\n handler.handleAnonymousErrors();\n\n var fn = function () {\n var args = Array.prototype.slice.call(arguments, 0);\n _rollbarWindowOnError(window, handler, oldOnError, args);\n };\n if (shim) {\n fn._rollbarOldOnError = oldOnError;\n }\n window.onerror = fn;\n}\n\nfunction _rollbarWindowOnError(window, r, old, args) {\n if (window._rollbarWrappedError) {\n if (!args[4]) {\n args[4] = window._rollbarWrappedError;\n }\n if (!args[5]) {\n args[5] = window._rollbarWrappedError._rollbarContext;\n }\n window._rollbarWrappedError = null;\n }\n\n var ret = r.handleUncaughtException.apply(r, args);\n\n if (old) {\n old.apply(window, args);\n }\n\n // Let other chained onerror handlers above run before setting this.\n // If an error is thrown and caught within a chained onerror handler,\n // Error.prepareStackTrace() will see that one before the one we want.\n if (ret === 'anonymous') {\n r.anonymousErrorsPending += 1; // See Rollbar.prototype.handleAnonymousErrors()\n }\n}\n\nfunction captureUnhandledRejections(window, handler, shim) {\n if (!window) {\n return;\n }\n\n if (\n typeof window._rollbarURH === 'function' &&\n window._rollbarURH.belongsToShim\n ) {\n window.removeEventListener('unhandledrejection', window._rollbarURH);\n }\n\n var rejectionHandler = function (evt) {\n var reason, promise, detail;\n try {\n reason = evt.reason;\n } catch (_e) {\n reason = undefined;\n }\n try {\n promise = evt.promise;\n } catch (_e) {\n promise = '[unhandledrejection] error getting `promise` from event';\n }\n try {\n detail = evt.detail;\n if (!reason && detail) {\n reason = detail.reason;\n promise = detail.promise;\n }\n } catch (_e) {\n // Ignore\n }\n if (!reason) {\n reason = '[unhandledrejection] error getting `reason` from event';\n }\n\n if (handler && handler.handleUnhandledRejection) {\n handler.handleUnhandledRejection(reason, promise);\n }\n };\n rejectionHandler.belongsToShim = shim;\n window._rollbarURH = rejectionHandler;\n window.addEventListener('unhandledrejection', rejectionHandler);\n}\n\nexport { captureUncaughtExceptions, captureUnhandledRejections };\n","/**\n * Default session replay recording options\n * See https://github.com/rrweb-io/rrweb/blob/master/guide.md#options for details\n */\nexport default {\n enabled: false, // Whether recording is enabled\n autoStart: true, // Start recording automatically when Rollbar initializes\n\n // defaults used by triggers that don't specify them\n triggerDefaults: {\n samplingRatio: 1.0,\n preDuration: 300,\n postDuration: 5,\n },\n triggers: [\n {\n type: 'occurrence',\n level: ['error', 'critical'],\n },\n ],\n\n debug: {\n logErrors: true, // Whether to log errors emitted by rrweb.\n logEmits: false, // Whether to log emitted events\n },\n\n // Recording options\n inlineStylesheet: true, // Whether to inline stylesheets to improve replay accuracy\n inlineImages: false, // Whether to record the image content\n collectFonts: true, // Whether to collect fonts in the website\n\n // Privacy options\n // Fine-grained control over which input types to mask\n // By default only password inputs are masked if maskInputs is true\n maskInputOptions: {\n password: true,\n email: false,\n tel: false,\n text: false,\n color: false,\n date: false,\n 'datetime-local': false,\n month: false,\n number: false,\n range: false,\n search: false,\n time: false,\n url: false,\n week: false,\n },\n\n // Mask all input values\n maskAllInputs: false,\n\n // Class names to block, mask, or ignore the content of elements.\n blockClass: 'rb-block',\n maskTextClass: 'rb-mask',\n ignoreClass: 'rb-ignore',\n\n // Remove unnecessary parts of the DOM\n // By default all removable elements are removed\n slimDOMOptions: {\n script: true, // Remove script elements\n comment: true, // Remove comments\n headFavicon: true, // Remove favicons in the head\n headWhitespace: true, // Remove whitespace in head\n headMetaDescKeywords: true, // Remove meta description and keywords\n headMetaSocial: true, // Remove social media meta tags\n headMetaRobots: true, // Remove robots meta directives\n headMetaHttpEquiv: true, // Remove http-equiv meta directives\n headMetaAuthorship: true, // Remove authorship meta directives\n headMetaVerification: true, // Remove verification meta directives\n },\n\n // Custom callbacks for advanced use cases\n // These are undefined by default and can be set programmatically\n // maskInputFn: undefined, // Custom function to mask input values\n // maskTextFn: undefined, // Custom function to mask text content\n // errorHandler: undefined, // Custom error handler for recording errors\n\n // Plugin system\n // plugins: [] // List of plugins to use (must be set programmatically)\n};\n","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\n","import { hasOwn } from '../utility.js';\n\n/*\n * headers - Detect when fetch Headers are undefined and use a partial polyfill.\n *\n * A full polyfill is not used in order to keep package size as small as possible.\n * Since this is only used internally and is not added to the window object,\n * the full interface doesn't need to be supported.\n *\n * This implementation is modified from whatwg-fetch:\n * https://github.com/github/fetch\n */\nfunction headers(headers) {\n if (typeof Headers === 'undefined') {\n return new FetchHeaders(headers);\n }\n\n return new Headers(headers);\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n return name.toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value;\n}\n\nfunction iteratorFor(items) {\n var iterator = {\n next: function () {\n var value = items.shift();\n return { done: value === undefined, value: value };\n },\n };\n\n return iterator;\n}\n\nfunction FetchHeaders(headers) {\n this.map = {};\n\n if (headers instanceof FetchHeaders) {\n headers.forEach(function (value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function (header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function (name) {\n this.append(name, headers[name]);\n }, this);\n }\n}\n\nFetchHeaders.prototype.append = function (name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n};\n\nFetchHeaders.prototype.get = function (name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null;\n};\n\nFetchHeaders.prototype.has = function (name) {\n return hasOwn(this.map, normalizeName(name));\n};\n\nFetchHeaders.prototype.forEach = function (callback, thisArg) {\n for (var name in this.map) {\n if (hasOwn(this.map, name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n};\n\nFetchHeaders.prototype.entries = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items);\n};\n\nexport default headers;\n","function replace(obj, name, replacement, replacements, type) {\n var orig = obj[name];\n obj[name] = replacement(orig);\n if (replacements) {\n replacements[type].push([obj, name, orig]);\n }\n}\n\nexport default replace;\n","function getElementType(e) {\n return (e.getAttribute('type') || '').toLowerCase();\n}\n\nfunction isDescribedElement(element, type, subtypes) {\n if (element.tagName.toLowerCase() !== type.toLowerCase()) {\n return false;\n }\n if (!subtypes) {\n return true;\n }\n const elementType = getElementType(element);\n for (const subtype of subtypes) {\n if (subtype === elementType) {\n return true;\n }\n }\n return false;\n}\n\nfunction getElementFromEvent(evt, doc) {\n if (evt.target) {\n return evt.target;\n }\n if (doc && doc.elementFromPoint) {\n return doc.elementFromPoint(evt.clientX, evt.clientY);\n }\n return undefined;\n}\n\nfunction treeToArray(elem) {\n var MAX_HEIGHT = 5;\n var out = [];\n var nextDescription;\n for (var height = 0; elem && height < MAX_HEIGHT; height++) {\n nextDescription = describeElement(elem);\n if (!nextDescription || nextDescription.tagName === 'html') {\n break;\n }\n out.unshift(nextDescription);\n elem = elem.parentNode;\n }\n return out;\n}\n\nfunction elementArrayToString(a) {\n var MAX_LENGTH = 80;\n var separator = ' > ',\n separatorLength = separator.length;\n var out = [],\n len = 0,\n nextStr,\n totalLength;\n\n for (var i = a.length - 1; i >= 0; i--) {\n nextStr = descriptionToString(a[i]);\n totalLength = len + out.length * separatorLength + nextStr.length;\n if (i < a.length - 1 && totalLength >= MAX_LENGTH + 3) {\n out.unshift('...');\n break;\n }\n out.unshift(nextStr);\n len += nextStr.length;\n }\n return out.join(separator);\n}\n\nfunction elementString(elem) {\n return elementArrayToString(treeToArray(elem));\n}\n\nfunction descriptionToString(desc) {\n if (!desc || !desc.tagName) {\n return '';\n }\n var out = [desc.tagName];\n if (desc.id) {\n out.push('#' + desc.id);\n }\n if (desc.classes) {\n out.push('.' + desc.classes.join('.'));\n }\n for (const attribute of desc.attributes) {\n out.push('[' + attribute.key + '=\"' + attribute.value + '\"]');\n }\n\n return out.join('');\n}\n\n/**\n * Input: a dom element\n * Output: null if tagName is falsey or input is falsey, else\n * {\n * tagName: String,\n * id: String | undefined,\n * classes: [String] | undefined,\n * attributes: [\n * {\n * key: OneOf(type, name, title, alt),\n * value: String\n * }\n * ]\n * }\n */\nfunction describeElement(elem) {\n if (!elem || !elem.tagName) {\n return null;\n }\n var out = {},\n className;\n out.tagName = elem.tagName.toLowerCase();\n if (elem.id) {\n out.id = elem.id;\n }\n className = elem.className;\n if (className && typeof className === 'string') {\n out.classes = className.split(/\\s+/);\n }\n var attributes = ['type', 'name', 'title', 'alt'];\n out.attributes = [];\n for (const attribute of attributes) {\n const attr = elem.getAttribute(attribute);\n if (attr) {\n out.attributes.push({ key: attribute, value: attr });\n }\n }\n return out;\n}\n\n/*\n * Detects if the given element matches any of the given class names (string or regex),\n * or CSS selectors.\n * @param {HTMLElement} element - The DOM element to check.\n * @param {Array<string|RegExp>} classes - An array of class names (string or regex) to match against.\n * @param {Array<string>} selectors - An array of CSS selectors to match against.\n * @return {boolean} - True if the element matches any of the classes or selectors, false otherwise.\n */\nfunction isMatchingElement(element, classes, selectors) {\n try {\n for (const cls of classes) {\n if (typeof cls === 'string') {\n if (element.classList.contains(cls)) {\n return true;\n }\n } else {\n for (const c of element.classList) {\n if (cls.test(c)) {\n return true;\n }\n }\n }\n }\n for (const sel of selectors) {\n if (element.matches(sel)) {\n return true;\n }\n }\n } catch (_e) {\n // ignore errors from invalid arguments\n }\n return false;\n}\n\nexport {\n describeElement,\n descriptionToString,\n elementArrayToString,\n elementString,\n treeToArray,\n getElementFromEvent,\n isDescribedElement,\n getElementType,\n isMatchingElement,\n};\n","/* eslint-disable @typescript-eslint/no-this-alias */\n// TODO(matux): refactor to remove no-this-alias disable\n\nimport logger from '../logger.js';\nimport scrub from '../scrub.js';\nimport headers from '../utility/headers.js';\nimport replace from '../utility/replace.js';\nimport * as _ from '../utility.js';\n\nimport * as domUtil from './domUtility.js';\nimport * as urlparser from './url.js';\n\nconst defaults = {\n network: true,\n networkResponseHeaders: false,\n networkResponseBody: false,\n networkRequestHeaders: false,\n networkRequestBody: false,\n networkErrorOnHttp5xx: false,\n networkErrorOnHttp4xx: false,\n networkErrorOnHttp0: false,\n log: true,\n dom: true,\n navigation: true,\n connectivity: true,\n contentSecurityPolicy: true,\n errorOnContentSecurityPolicy: false,\n};\n\nfunction restore(replacements, type) {\n let b;\n while (replacements[type].length) {\n b = replacements[type].shift();\n b[0][b[1]] = b[2];\n }\n}\n\nfunction nameFromDescription(description) {\n if (!description || !description.attributes) {\n return null;\n }\n const attrs = description.attributes;\n for (const a of attrs) {\n if (a.key === 'name') {\n return a.value;\n }\n }\n return null;\n}\n\nfunction defaultValueScrubber(scrubFields) {\n const patterns = [];\n for (const field of scrubFields) {\n patterns.push(new RegExp(field, 'i'));\n }\n return function (description) {\n const name = nameFromDescription(description);\n if (!name) {\n return false;\n }\n for (const p of patterns) {\n if (p.test(name)) {\n return true;\n }\n }\n return false;\n };\n}\n\nclass Instrumenter {\n constructor(options, telemeter, rollbar, _window, _document) {\n this.options = options;\n let autoInstrument = options.autoInstrument;\n if (options.enabled === false || autoInstrument === false) {\n this.autoInstrument = {};\n } else {\n if (!_.isType(autoInstrument, 'object')) {\n autoInstrument = defaults;\n }\n this.autoInstrument = _.merge(defaults, autoInstrument);\n }\n this.configureScrubbing();\n this.telemeter = telemeter;\n this.rollbar = rollbar;\n this.diagnostic = rollbar.client.notifier.diagnostic;\n this._window = _window || {};\n this._document = _document || {};\n this.replacements = {\n network: [],\n log: [],\n navigation: [],\n connectivity: [],\n };\n this.eventRemovers = {\n dom: [],\n connectivity: [],\n contentsecuritypolicy: [],\n };\n\n this._location = this._window.location;\n this._lastHref = this._location && this._location.href;\n }\n\n configureScrubbing() {\n const options = this.options;\n this.scrubTelemetryInputs = Boolean(\n options.scrubTelemetryInputs ?? options.replay?.maskAllInputs,\n );\n this.telemetryScrubber = options.telemetryScrubber;\n this.defaultValueScrubber = defaultValueScrubber(options.scrubFields);\n this.maskInputFn = options.replay?.maskInputFn;\n this.maskInputOptions = options.replay?.maskInputOptions || {};\n this.scrubClasses = [\n options.replay?.blockClass,\n options.replay?.ignoreClass,\n options.replay?.maskTextClass,\n ].filter(Boolean);\n this.scrubSelectors = [\n options.replay?.blockSelector,\n options.replay?.ignoreSelector,\n options.replay?.maskTextSelector,\n ].filter(Boolean);\n }\n\n configure(options) {\n this.options = _.merge(this.options, options);\n let autoInstrument = options.autoInstrument;\n const oldSettings = _.merge(this.autoInstrument);\n if (options.enabled === false || autoInstrument === false) {\n this.autoInstrument = {};\n } else {\n if (!_.isType(autoInstrument, 'object')) {\n autoInstrument = defaults;\n }\n this.autoInstrument = _.merge(defaults, autoInstrument);\n }\n this.configureScrubbing();\n this.instrument(oldSettings);\n }\n\n // eslint-disable-next-line complexity\n instrument(oldSettings) {\n if (this.autoInstrument.network && !(oldSettings && oldSettings.network)) {\n this.instrumentNetwork();\n } else if (\n !this.autoInstrument.network &&\n oldSettings &&\n oldSettings.network\n ) {\n this.deinstrumentNetwork();\n }\n\n if (this.autoInstrument.log && !(oldSettings && oldSettings.log)) {\n this.instrumentConsole();\n } else if (!this.autoInstrument.log && oldSettings && oldSettings.log) {\n this.deinstrumentConsole();\n }\n\n if (this.autoInstrument.dom && !(oldSettings && oldSettings.dom)) {\n this.instrumentDom();\n } else if (!this.autoInstrument.dom && oldSettings && oldSettings.dom) {\n this.deinstrumentDom();\n }\n\n if (\n this.autoInstrument.navigation &&\n !(oldSettings && oldSettings.navigation)\n ) {\n this.instrumentNavigation();\n } else if (\n !this.autoInstrument.navigation &&\n oldSettings &&\n oldSettings.navigation\n ) {\n this.deinstrumentNavigation();\n }\n\n if (\n this.autoInstrument.connectivity &&\n !(oldSettings && oldSettings.connectivity)\n ) {\n this.instrumentConnectivity();\n } else if (\n !this.autoInstrument.connectivity &&\n oldSettings &&\n oldSettings.connectivity\n ) {\n this.deinstrumentConnectivity();\n }\n\n if (\n this.autoInstrument.contentSecurityPolicy &&\n !(oldSettings && oldSettings.contentSecurityPolicy)\n ) {\n this.instrumentContentSecurityPolicy();\n } else if (\n !this.autoInstrument.contentSecurityPolicy &&\n oldSettings &&\n oldSettings.contentSecurityPolicy\n ) {\n this.deinstrumentContentSecurityPolicy();\n }\n }\n\n deinstrumentNetwork() {\n restore(this.replacements, 'network');\n }\n\n instrumentNetwork() {\n const self = this;\n\n function wrapProp(prop, xhr) {\n if (prop in xhr && _.isFunction(xhr[prop])) {\n replace(xhr, prop, function (orig) {\n return self.rollbar.wrap(orig);\n });\n }\n }\n\n if ('XMLHttpRequest' in this._window) {\n const xhrp = this._window.XMLHttpRequest.prototype;\n replace(\n xhrp,\n 'open',\n function (orig) {\n return function (method, url) {\n const isUrlObject = _isUrlObject(url);\n if (_.isType(url, 'string') || isUrlObject) {\n url = isUrlObject ? url.toString() : url;\n if (this.__rollbar_xhr) {\n this.__rollbar_xhr.method = method;\n this.__rollbar_xhr.url = url;\n this.__rollbar_xhr.status_code = null;\n this.__rollbar_xhr.start_time_ms = _.now();\n this.__rollbar_xhr.end_time_ms = null;\n } else {\n this.__rollbar_xhr = {\n method: method,\n url: url,\n status_code: null,\n start_time_ms: _.now(),\n end_time_ms: null,\n };\n }\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n\n replace(\n xhrp,\n 'setRequestHeader',\n function (orig) {\n return function (header, value) {\n // If xhr.open is async, __rollbar_xhr may not be initialized yet.\n if (!this.__rollbar_xhr) {\n this.__rollbar_xhr = {};\n }\n if (_.isType(header, 'string') && _.isType(value, 'string')) {\n if (self.autoInstrument.networkRequestHeaders) {\n if (!this.__rollbar_xhr.request_headers) {\n this.__rollbar_xhr.request_headers = {};\n }\n this.__rollbar_xhr.request_headers[header] = value;\n }\n // We want the content type even if request header telemetry is off.\n if (header.toLowerCase() === 'content-type') {\n this.__rollbar_xhr.request_content_type = value;\n }\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n\n replace(\n xhrp,\n 'send',\n function (orig) {\n return function (data) {\n const xhr = this;\n\n function onreadystatechangeHandler() {\n if (xhr.__rollbar_xhr) {\n if (xhr.__rollbar_xhr.status_code === null) {\n xhr.__rollbar_xhr.status_code = 0;\n if (self.autoInstrument.networkRequestBody) {\n xhr.__rollbar_xhr.request = data;\n }\n xhr.__rollbar_event = self.captureNetwork(\n xhr.__rollbar_xhr,\n 'xhr',\n undefined,\n );\n }\n if (xhr.readyState < 2) {\n xhr.__rollbar_xhr.start_time_ms = _.now();\n }\n if (xhr.readyState > 3) {\n const end_time_ms = _.now();\n xhr.__rollbar_xhr.end_time_ms = end_time_ms;\n\n let headers = null;\n xhr.__rollbar_xhr.response_content_type =\n xhr.getResponseHeader('Content-Type');\n if (self.autoInstrument.networkResponseHeaders) {\n const headersConfig =\n self.autoInstrument.networkResponseHeaders;\n headers = {};\n try {\n let header;\n if (headersConfig === true) {\n const allHeaders = xhr.getAllResponseHeaders();\n if (allHeaders) {\n const arr = allHeaders.trim().split(/[\\r\\n]+/);\n let parts, value;\n for (const h of arr) {\n parts = h.split(': ');\n header = parts.shift();\n value = parts.join(': ');\n headers[header] = value;\n }\n }\n } else {\n for (const h of headersConfig) {\n headers[h] = xhr.getResponseHeader(h);\n }\n }\n } catch (_e) {\n /* we ignore the errors here that could come from different\n * browser issues with the xhr methods */\n }\n }\n let body = null;\n if (self.autoInstrument.networkResponseBody) {\n try {\n body = xhr.responseText;\n } catch (_e) {\n /* ignore errors from reading responseText */\n }\n }\n let response = null;\n if (body || headers) {\n response = {};\n if (body) {\n if (\n self.isJsonContentType(\n xhr.__rollbar_xhr.response_content_type,\n )\n ) {\n response.body = self.scrubJson(body);\n } else {\n response.body = body;\n }\n }\n if (headers) {\n response.headers = headers;\n }\n }\n if (response) {\n xhr.__rollbar_xhr.response = response;\n }\n try {\n let code = xhr.status;\n code = code === 1223 ? 204 : code;\n xhr.__rollbar_xhr.status_code = code;\n self.addOtelNetworkResponse(\n xhr.__rollbar_event,\n end_time_ms,\n code,\n );\n xhr.__rollbar_event.level =\n self.telemeter.levelFromStatus(code);\n self.errorOnHttpStatus(xhr.__rollbar_xhr);\n } catch (_e) {\n /* ignore possible exception from xhr.status */\n }\n }\n }\n }\n\n wrapProp('onload', xhr);\n wrapProp('onerror', xhr);\n wrapProp('onprogress', xhr);\n\n if (\n 'onreadystatechange' in xhr &&\n _.isFunction(xhr.onreadystatechange)\n ) {\n replace(xhr, 'onreadystatechange', function (orig) {\n return self.rollbar.wrap(\n orig,\n undefined,\n onreadystatechangeHandler,\n );\n });\n } else {\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n if (xhr.__rollbar_xhr && self.trackHttpErrors()) {\n xhr.__rollbar_xhr.stack = new Error().stack;\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n }\n\n if ('fetch' in this._window) {\n replace(\n this._window,\n 'fetch',\n function (orig) {\n return function (_fn, _t) {\n const args = [...arguments];\n const input = args[0];\n let method = 'GET';\n let url;\n const isUrlObject = _isUrlObject(input);\n if (_.isType(input, 'string') || isUrlObject) {\n url = isUrlObject ? input.toString() : input;\n } else if (input) {\n url = input.url;\n if (input.method) {\n method = input.method;\n }\n }\n if (args[1] && args[1].method) {\n method = args[1].method;\n }\n const metadata = {\n method: method,\n url: url,\n status_code: null,\n start_time_ms: _.now(),\n end_time_ms: null,\n };\n if (args[1] && args[1].headers) {\n // Argument may be a Headers object, or plain object. Ensure here that\n // we are working with a Headers object with case-insensitive keys.\n const reqHeaders = headers(args[1].headers);\n\n metadata.request_content_type = reqHeaders.get('Content-Type');\n\n if (self.autoInstrument.networkRequestHeaders) {\n metadata.request_headers = self.fetchHeaders(\n reqHeaders,\n self.autoInstrument.networkRequestHeaders,\n );\n }\n }\n\n if (self.autoInstrument.networkRequestBody) {\n if (args[1] && args[1].body) {\n metadata.request = args[1].body;\n } else if (\n args[0] &&\n !_.isType(args[0], 'string') &&\n args[0].body\n ) {\n metadata.request = args[0].body;\n }\n }\n const telemetryEvent = self.captureNetwork(\n metadata,\n 'fetch',\n undefined,\n );\n if (self.trackHttpErrors()) {\n metadata.stack = new Error().stack;\n }\n\n // Start our handler before returning the promise. This allows resp.clone()\n // to execute before other handlers touch the response.\n return orig.apply(this, args).then(function (resp) {\n const end_time_ms = _.now();\n metadata.end_time_ms = end_time_ms;\n metadata.status_code = resp.status;\n self.addOtelNetworkResponse(\n telemetryEvent,\n end_time_ms,\n resp.status,\n );\n\n metadata.response_content_type = resp.headers.get('Content-Type');\n let headers = null;\n if (self.autoInstrument.networkResponseHeaders) {\n headers = self.fetchHeaders(\n resp.headers,\n self.autoInstrument.networkResponseHeaders,\n );\n }\n let body = null;\n if (self.autoInstrument.networkResponseBody) {\n if (typeof resp.text === 'function') {\n // Response.text() is not implemented on some platforms\n // The response must be cloned to prevent reading (and locking) the original stream.\n // This must be done before other handlers touch the response.\n body = resp.clone().text(); //returns a Promise\n }\n }\n if (headers || body) {\n metadata.response = {};\n if (body) {\n // Test to ensure body is a Promise, which it should always be.\n if (typeof body.then === 'function') {\n body.then(function (text) {\n if (\n text &&\n self.isJsonContentType(metadata.response_content_type)\n ) {\n metadata.response.body = self.scrubJson(text);\n } else {\n metadata.response.body = text;\n }\n });\n } else {\n metadata.response.body = body;\n }\n }\n if (headers) {\n metadata.response.headers = headers;\n }\n }\n self.errorOnHttpStatus(metadata);\n return resp;\n });\n };\n },\n this.replacements,\n 'network',\n );\n }\n }\n\n captureNetwork(metadata, subtype, rollbarUUID) {\n if (\n metadata.request &&\n this.isJsonContentType(metadata.request_content_type)\n ) {\n metadata.request = this.scrubJson(metadata.request);\n }\n return this.telemeter.captureNetwork(metadata, subtype, rollbarUUID);\n }\n\n isJsonContentType(contentType) {\n return contentType &&\n _.isType(contentType, 'string') &&\n contentType.toLowerCase().includes('json')\n ? true\n : false;\n }\n\n addOtelNetworkResponse(event, endTimeMs, statusCode) {\n if (event.otelAttributes) {\n event.otelAttributes['response.timeUnixNano'] = (\n endTimeMs * 1e6\n ).toString();\n event.otelAttributes.statusCode = statusCode;\n }\n }\n\n scrubJson(json) {\n return JSON.stringify(scrub(JSON.parse(json), this.options.scrubFields));\n }\n\n fetchHeaders(inHeaders, headersConfig) {\n const outHeaders = {};\n try {\n if (headersConfig === true) {\n if (typeof inHeaders.entries === 'function') {\n // Headers.entries() is not implemented in IE\n const allHeaders = inHeaders.entries();\n let currentHeader = allHeaders.next();\n while (!currentHeader.done) {\n outHeaders[currentHeader.value[0]] = currentHeader.value[1];\n currentHeader = allHeaders.next();\n }\n }\n } else {\n for (const h of headersConfig) {\n outHeaders[h] = inHeaders.get(h);\n }\n }\n } catch (_e) {\n /* ignore probable IE errors */\n }\n return outHeaders;\n }\n\n trackHttpErrors() {\n return (\n this.autoInstrument.networkErrorOnHttp5xx ||\n this.autoInstrument.networkErrorOnHttp4xx ||\n this.autoInstrument.networkErrorOnHttp0\n );\n }\n\n errorOnHttpStatus(metadata) {\n const status = metadata.status_code;\n\n if (\n (status >= 500 && this.autoInstrument.networkErrorOnHttp5xx) ||\n (status >= 400 && this.autoInstrument.networkErrorOnHttp4xx) ||\n (status === 0 && this.autoInstrument.networkErrorOnHttp0)\n ) {\n const error = new Error('HTTP request failed with Status ' + status);\n error.stack = metadata.stack;\n this.rollbar.error(error, { skipFrames: 1 });\n }\n }\n\n deinstrumentConsole() {\n let b;\n while (this.replacements['log'].length) {\n b = this.replacements['log'].shift();\n this._window.console[b[0]] = b[1];\n }\n }\n\n instrumentConsole() {\n if (!this._window?.console?.log) {\n return;\n }\n\n const self = this;\n const c = this._window.console;\n\n function wrapConsole(method) {\n // eslint-disable-next-line strict\n 'use strict'; // See https://github.com/rollbar/rollbar.js/pull/778\n\n const orig = c[method];\n const origConsole = c;\n const level = method === 'warn' ? 'warning' : method;\n c[method] = function () {\n const args = Array.prototype.slice.call(arguments);\n const message = _.formatArgsAsString(args);\n self.telemeter.captureLog(message, level, null, _.now());\n if (orig) {\n Function.prototype.apply.call(orig, origConsole, args);\n }\n };\n self.replacements['log'].push([method, orig]);\n }\n const methods = ['debug', 'info', 'warn', 'error', 'log'];\n try {\n for (const m of methods) {\n wrapConsole(m);\n }\n } catch (e) {\n this.diagnostic.instrumentConsole = { error: e.message };\n }\n }\n\n deinstrumentDom() {\n this.removeListeners('dom');\n }\n\n instrumentDom() {\n this.addListener(\n 'dom',\n this._window,\n ['click', 'dblclick', 'contextmenu'],\n (e) => this.handleEvent('click', e),\n );\n this.addListener(\n 'dom',\n this._window,\n ['dragstart', 'dragend', 'dragenter', 'dragleave', 'drop'],\n (e) => this.handleEvent('dragdrop', e),\n );\n this.addListener('dom', this._window, ['blur', 'focus'], (e) =>\n this.handleEvent('focus', e),\n );\n this.addListener('dom', this._window, ['submit', 'invalid'], (e) =>\n this.handleEvent('form', e),\n );\n this.addListener('dom', this._window, ['input', 'change'], (e) =>\n this.handleEvent('input', e),\n );\n this.addListener('dom', this._window, ['resize'], (e) =>\n this.handleEvent('resize', e),\n );\n this.addListener('dom', this._document, ['DOMContentLoaded'], (e) =>\n this.handleEvent('contentLoaded', e),\n );\n }\n\n handleEvent(name, evt) {\n try {\n return {\n click: this.handleClick,\n dragdrop: this.handleDrag,\n focus: this.handleFocus,\n form: this.handleForm,\n input: this.handleInput,\n resize: this.handleResize,\n contentLoaded: this.handleContentLoaded,\n }[name].call(this, evt);\n } catch (exc) {\n logger.log(`${name} handler error`, evt, exc, exc.stack);\n }\n }\n\n handleContentLoaded(_evt) {\n this.rollbar.triggerReplay({\n type: 'navigation',\n path: new URL(this._location.href).pathname,\n });\n }\n\n handleClick(evt) {\n const tagName = evt.target?.tagName.toLowerCase();\n if (['input', 'select', 'textarea'].includes(tagName)) return;\n\n this.telemeter.captureClick({\n type: evt.type,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n timestamp: _.now(),\n });\n }\n\n handleFocus(evt) {\n const type = evt.type;\n const element = evt.target?.window\n ? 'window'\n : domUtil.elementString(evt.target);\n\n this.telemeter.captureFocus({\n type: type,\n isSynthetic: !evt.isTrusted,\n element,\n timestamp: _.now(),\n });\n }\n\n handleForm(_evt) {\n // TODO: implement form event handling\n //const type = evt.type;\n //const elementString = evt.target?.window\n // ? 'window'\n // : domUtil.elementString(evt.target);\n }\n\n handleResize(evt) {\n const textZoomRatio = window.screen.width / window.innerWidth;\n\n this.telemeter.captureResize({\n type: evt.type,\n isSynthetic: !evt.isTrusted,\n width: window.innerWidth,\n height: window.innerHeight,\n textZoomRatio: textZoomRatio,\n timestamp: _.now(),\n });\n }\n\n handleDrag(evt) {\n const type = evt.type;\n let kinds, mediaTypes, dropEffect, effectAllowed;\n\n if (type === 'drop') {\n kinds = [];\n mediaTypes = [];\n const objs = [...evt.dataTransfer.files, ...evt.dataTransfer.items];\n for (const o of objs) {\n if (o.kind && o.type) {\n kinds.push(o.kind);\n mediaTypes.push(o.type);\n }\n }\n }\n if (['drop', 'dragstart'].includes(type)) {\n dropEffect = evt.dataTransfer?.dropEffect;\n effectAllowed = evt.dataTransfer?.effectAllowed;\n }\n\n this.telemeter.captureDragDrop({\n type,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n dropEffect: dropEffect,\n effectAllowed: effectAllowed,\n kinds: JSON.stringify(kinds),\n mediaTypes: JSON.stringify(mediaTypes),\n timestamp: _.now(),\n });\n }\n\n /*\n * Applies Rollbar telemetry scrubbing options to the dom input value.\n * When replay options are present, applies those as well.\n */\n scrubInputValue(value, element, tagName, inputType) {\n const mask = '******';\n\n if (inputType === 'password') {\n return mask;\n }\n\n if (this.scrubTelemetryInputs) {\n return mask;\n } else {\n const description = domUtil.describeElement(element);\n if (this.telemetryScrubber) {\n if (this.telemetryScrubber(description)) {\n return mask;\n }\n } else if (this.defaultValueScrubber(description)) {\n return mask;\n }\n }\n\n // Apply replay options regardless of other scrubbing\n if (\n domUtil.isMatchingElement(element, this.scrubClasses, this.scrubSelectors)\n ) {\n return mask;\n }\n\n // This check is last since maskInputFn returns a modified value rather\n // than a boolean, which would cause an early return even if the value\n // was not scrubbed.\n if (\n this.maskInputOptions[tagName.toLowerCase()] ||\n this.maskInputOptions[inputType]\n ) {\n if (this.maskInputFn) {\n return this.maskInputFn(value, element);\n } else {\n return mask;\n }\n }\n\n return value;\n }\n\n /*\n * Uses the `input` event for everything except radio and checkbox inputs.\n * For those, it uses the `change` event.\n */\n handleInput(evt) {\n const type = evt.type;\n const tagName = evt.target?.tagName.toLowerCase();\n let value = evt.target?.value;\n let inputType = evt.target?.attributes?.type?.value || evt.target?.type;\n\n if (value !== undefined) {\n value = this.scrubInputValue(value, evt.target, tagName, inputType);\n }\n\n switch (type) {\n case 'input':\n if (['radio', 'checkbox'].includes(inputType)) return;\n if (['select', 'textarea'].includes(tagName)) {\n inputType = tagName;\n }\n break;\n\n case 'change':\n if (!['radio', 'checkbox'].includes(inputType)) return;\n if (inputType === 'checkbox') {\n value = evt.target?.checked;\n }\n break;\n }\n\n this.telemeter.captureInput({\n type: inputType,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n value,\n timestamp: _.now(),\n });\n }\n\n deinstrumentNavigation() {\n const chrome = this._window.chrome;\n const chromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n // See https://github.com/angular/angular.js/pull/13945/files\n const hasPushState =\n !chromePackagedApp &&\n this._window.history &&\n this._window.history.pushState;\n if (!hasPushState) {\n return;\n }\n restore(this.replacements, 'navigation');\n }\n\n instrumentNavigation() {\n const chrome = this._window.chrome;\n const chromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n // See https://github.com/angular/angular.js/pull/13945/files\n const hasPushState =\n !chromePackagedApp &&\n this._window.history &&\n this._window.history.pushState;\n if (!hasPushState) {\n return;\n }\n const self = this;\n replace(\n this._window,\n 'onpopstate',\n function (orig) {\n return function () {\n const current = self._location.href;\n self.handleUrlChange(self._lastHref, current);\n if (orig) {\n orig.apply(this, arguments);\n }\n };\n },\n this.replacements,\n 'navigation',\n );\n\n replace(\n this._window.history,\n 'pushState',\n function (orig) {\n return function () {\n const url = arguments.length > 2 ? arguments[2] : undefined;\n if (url) {\n self.handleUrlChange(self._lastHref, String(url));\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'navigation',\n );\n }\n\n handleUrlChange(from, to) {\n const parsedHref = urlparser.parse(this._location.href);\n const parsedTo = urlparser.parse(to);\n const parsedFrom = urlparser.parse(from);\n this._lastHref = to;\n if (\n parsedHref.protocol === parsedTo.protocol &&\n parsedHref.host === parsedTo.host\n ) {\n to = parsedTo.path + (parsedTo.hash || '');\n }\n if (\n parsedHref.protocol === parsedFrom.protocol &&\n parsedHref.host === parsedFrom.host\n ) {\n from = parsedFrom.path + (parsedFrom.hash || '');\n }\n this.telemeter.captureNavigation(from, to, null, _.now());\n this.rollbar.triggerReplay({\n type: 'navigation',\n path: to,\n });\n }\n\n deinstrumentConnectivity = function () {\n this.removeListeners('connectivity');\n };\n\n instrumentConnectivity() {\n const self = this;\n this.addListener(\n 'connectivity',\n this._window,\n ['online', 'offline'],\n (evt) => self.handleConnectivity(evt),\n );\n }\n\n handleConnectivity(evt) {\n const type = evt.type;\n\n this.telemeter.captureConnectivityChange({\n type,\n isSynthetic: !evt.isTrusted,\n timestamp: _.now(),\n });\n }\n\n handleCspEvent(cspEvent) {\n let message =\n 'Security Policy Violation: ' +\n 'blockedURI: ' +\n cspEvent.blockedURI +\n ', ' +\n 'violatedDirective: ' +\n cspEvent.violatedDirective +\n ', ' +\n 'effectiveDirective: ' +\n cspEvent.effectiveDirective +\n ', ';\n\n if (cspEvent.sourceFile) {\n message +=\n 'location: ' +\n cspEvent.sourceFile +\n ', ' +\n 'line: ' +\n cspEvent.lineNumber +\n ', ' +\n 'col: ' +\n cspEvent.columnNumber +\n ', ';\n }\n\n message += 'originalPolicy: ' + cspEvent.originalPolicy;\n\n this.telemeter.captureLog(message, 'error', null, _.now());\n this.handleCspError(message);\n }\n\n handleCspError(message) {\n if (this.autoInstrument.errorOnContentSecurityPolicy) {\n this.rollbar.error(message);\n }\n }\n\n deinstrumentContentSecurityPolicy() {\n this.removeListeners('contentsecuritypolicy');\n }\n\n instrumentContentSecurityPolicy() {\n if (!('addEventListener' in this._document)) {\n return;\n }\n\n const cspHandler = this.handleCspEvent.bind(this);\n this.addListener(\n 'contentsecuritypolicy',\n this._document,\n ['securitypolicyviolation'],\n cspHandler,\n );\n }\n\n addListener(section, obj, types, handler) {\n if (obj.addEventListener) {\n for (const t of types) {\n const options = { capture: true, passive: true };\n obj.addEventListener(t, handler, options, true);\n this.eventRemovers[section].push(function () {\n obj.removeEventListener(t, handler, options);\n });\n }\n }\n }\n\n removeListeners(section) {\n let r;\n while (this.eventRemovers[section].length) {\n r = this.eventRemovers[section].shift();\n r();\n }\n }\n}\n\nfunction _isUrlObject(input) {\n return typeof URL !== 'undefined' && input instanceof URL;\n}\n\nexport default Instrumenter;\n","import { hasOwn } from '../utility.js';\n\nfunction wrapGlobals(window, handler, shim) {\n if (!window) {\n return;\n }\n // Adapted from https://github.com/bugsnag/bugsnag-js\n var globals =\n 'EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload'.split(\n ',',\n );\n var i, global;\n for (i = 0; i < globals.length; ++i) {\n global = globals[i];\n\n if (window[global] && window[global].prototype) {\n _extendListenerPrototype(handler, window[global].prototype, shim);\n }\n }\n}\n\nfunction _extendListenerPrototype(handler, prototype, shim) {\n if (hasOwn(prototype, 'addEventListener')) {\n var oldAddEventListener = prototype.addEventListener;\n while (\n oldAddEventListener._rollbarOldAdd &&\n oldAddEventListener.belongsToShim\n ) {\n oldAddEventListener = oldAddEventListener._rollbarOldAdd;\n }\n var addFn = function (event, callback, bubble) {\n oldAddEventListener.call(this, event, handler.wrap(callback), bubble);\n };\n addFn._rollbarOldAdd = oldAddEventListener;\n addFn.belongsToShim = shim;\n prototype.addEventListener = addFn;\n\n var oldRemoveEventListener = prototype.removeEventListener;\n while (\n oldRemoveEventListener._rollbarOldRemove &&\n oldRemoveEventListener.belongsToShim\n ) {\n oldRemoveEventListener = oldRemoveEventListener._rollbarOldRemove;\n }\n var removeFn = function (event, callback, bubble) {\n oldRemoveEventListener.call(\n this,\n event,\n (callback && callback._rollbar_wrapped) || callback,\n bubble,\n );\n };\n removeFn._rollbarOldRemove = oldRemoveEventListener;\n removeFn.belongsToShim = shim;\n prototype.removeEventListener = removeFn;\n }\n}\n\nexport default wrapGlobals;\n","import scrub from '../scrub.js';\nimport Telemeter from '../telemetry.js';\nimport Tracing from '../tracing/tracing.js';\nimport truncation from '../truncation.js';\n\nimport Rollbar from './core.js';\nimport Instrumenter from './telemetry.js';\nimport wrapGlobals from './wrapGlobals.js';\n\nRollbar.setComponents({\n telemeter: Telemeter,\n instrumenter: Instrumenter,\n wrapGlobals: wrapGlobals,\n scrub: scrub,\n truncation: truncation,\n tracing: Tracing,\n});\n\nexport default Rollbar;\n","import rollbar from '../rollbar.js';\n\nvar options = (typeof window !== 'undefined') && window._rollbarConfig;\nvar alias = options && options.globalAlias || 'Rollbar';\nvar shimRunning = (typeof window !== 'undefined') && window[alias] && typeof window[alias].shimId === 'function' && window[alias].shimId() !== undefined;\n\nif ((typeof window !== 'undefined') && !window._rollbarStartTime) {\n window._rollbarStartTime = (new Date()).getTime();\n}\n\nif (!shimRunning && options) {\n var Rollbar = new rollbar(options);\n window[alias] = Rollbar;\n} else if (typeof window !== 'undefined') {\n window.rollbar = rollbar;\n window._rollbarDidLoad = true;\n} else if (typeof self !== 'undefined') {\n self.rollbar = rollbar;\n self._rollbarDidLoad = true;\n}\n\nexport default rollbar;\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","isType","x","t","typeName","name","_typeof","Error","toString","match","toLowerCase","isFunction","f","isObject","hasOwn","isFiniteNumber","n","Number","isFinite","isError","e","redact","LEVELS","debug","info","warning","error","critical","sanitizeUrl","url","baseUrlParts","str","parseUriOptions","m","parser","strictMode","exec","uri","i","l","length","q","replace","$0","$1","$2","parseUri","anchor","source","query","strict","loose","formatUrl","u","protocol","port","hostname","result","path","stringify","backup","JSON","jsonError","backupError","jsonParse","s","parse","makeUnhandledStackInfo","message","lineno","colno","mode","backupMessage","errorParser","location","line","column","func","guessFunctionName","context","gatherContext","href","document","useragent","window","navigator","userAgent","String","stack","wrapCallback","logger","err","resp","nonCircularClone","clone","seen","newSeen","includes","slice","push","createItem","args","notifier","requestKeys","lambdaContext","custom","callback","request","arg","extraArgs","argTypes","typ","DOMException","j","len","undefined","d","item","timestamp","now","diagnostic","uuid","c","r","Math","random","floor","data","level","skipFrames","setCustomItemKeys","_originalArgs","original_arg_types","TELEMETRY_TYPES","TELEMETRY_LEVELS","arrayIncludes","arr","val","_step2","_iterator2","_createForOfIteratorHelper","done","addItemAttributes","itemData","attributes","_step3","_iterator3","a","keys","split","_e","set","setPrototypeOf","temp","replacement","Date","handleOptions","current","input","payload","merge","options","hostWhiteList","hostSafeList","log","hostBlackList","hostBlockList","updateDeprecatedOptions","overwriteScrubFields","scrubFields","concat","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","src","copy","create","arguments","k","v","seenIndex","isObj","_","isArray","mapped","indexOf","same","scrubPath","last","_step4","_iterator4","entries","_step4$value","_slicedToArray","index","scrubPaths","_step","_iterator","paramRes","_step5","ret","_iterator5","pat","RegExp","_getScrubFieldRegexs","queryRes","_step6","_iterator6","_getScrubQueryParamRegexs","redactQueryParam","dummy0","paramPart","traverse","scrubber","tmpV","test","valScrubber","regex","paramScrubber","MAX_EVENTS","fromMillis","millis","trunc","round","Telemeter","tracing","_this$tracing","_classCallCheck","this","queue","maxTelemetryEvents","maxQueueSize","max","min","telemetrySpan","startSpan","oldOptions","newMaxEvents","deleteCount","splice","events","Array","filterTelemetry","filter","type","map","_ref","otelAttributes","event","_objectWithoutProperties","_excluded","end","metadata","rollbarUUID","getLevel","timestamp_ms","body","_exc","capture","_this$telemetrySpan","addEvent","_this$telemetrySpan2","_objectSpread","subtype","requestData","_metadata$response","_metadata$response2","_this$telemetrySpan3","levelFromStatus","status_code","endTimeNano","end_time_ms","method","statusCode","request_headers","response","headers","requestBody","responseBody","start_time_ms","element","checked","_ref2","_this$telemetrySpan4","isSynthetic","endTimeUnixNano","_getRepeatedEvent","_updateRepeatedEvent","_ref3","_this$telemetrySpan5","lastEvent","_lastEvent","target","duration","height","width","textZoomRatio","count","rate","list","_ref4","_this$telemetrySpan6","_ref5","_this$telemetrySpan7","_ref6","_this$telemetrySpan8","dropEffect","effectAllowed","kinds","mediaTypes","from","to","_this$telemetrySpan9","ts","getTime","_ref7","_this$telemetrySpan0","includeItemsInTelemetry","captureError","captureLog","shift","manual","Context","parentContext","_currentContext","Map","self","delete","ROOT_CONTEXT","ContextManager","currentContext","previousContext","fn","thisArg","enterContext","_len","_key","apply","exitContext","add","b","toMillis","hrtime","toNanos","performance","timeOrigin","isHrTime","SpanExporter","api","spans","_resultCallback","spanExportQueue","_toConsumableArray","_this","resourceSpans","resource","scopeMap","span","scopeKey","instrumentationScope","version","has","scope","_transformSpan","_transformResource","scopeSpans","values","scopeData","_transformInstrumentationScope","postSpans","_this2","transformAttributes","_transformAnyValue","traceId","spanContext","spanId","parentSpanId","kind","startTimeUnixNano","startTime","endTime","timeUnixNano","time","_this3","_this4","attr","_this5","stringValue","isInteger","intValue","doubleValue","boolValue","arrayValue","kvlistValue","gen","randomBytes","Uint8Array","crypto","getRandomValues","byte","padStart","join","SESSION_KEY","Session","_defineProperty","session","_attributes","attrs","getSession","createSession","initSessionAttributes","serializedSession","sessionStorage","getItem","_unused","id","createdAt","setSession","sessionString","setItem","_unused2","user","setAttributes","email","username","_navigator$userAgentD","_navigator$userAgentD2","_navigator$userAgentD3","userAgentData","brands","language","mobile","platform","levels","warn","disable","_len2","_key2","_len3","_key3","_len4","_key4","_len5","_key5","init","logLevel","unshift","console","SpanProcessor","exporter","pendingSpans","transforms","userTransform","bind","transformFn","transformSpan","transform","_parentContext","applyTransforms","export","Span","usePerformance","initReadableSpan","spanProcessor","onStart","_options$session","status","code","links","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount","_i","_Object$entries","_Object$entries$_i","setAttribute","onEnd","Tracer","_this$tracing$resourc","_options$resource","_this$tracing$session","contextManager","active","parentSpan","getSpan","parentSpanContext","traceState","traceFlags","SPAN_KEY","for","Tracing","gWindow","createTracer","_this$options$payload","_this$options$payload2","environment","bytes","tracer","addTransform","getValue","setValue","_this$contextManager","with","setSpan","raw","jsonBackup","selectFrames","frames","range","truncateFrames","trace_chain","trace","maybeTruncateValue","truncateStrings","truncator","truncateTraceData","traceData","exception","description","minBody","chain","_step2$value","needsTruncation","maxSize","string","charCodeAt","truncate","strategy","results","strategies","buildPayload","contextResult","substr","getTransportFromOptions","defaults","search","timeout","transport","defaultTransport","fetch","XMLHttpRequest","detectTransport","proxy","endpoint","opts","pathname","transportOptions","transportAPI","host","iterator","Generator","_regeneratorDefine2","p","y","G","TypeError","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","__proto__","displayName","_regenerator","w","_invoke","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_defineProperties","_toPropertyKey","toPrimitive","_toPrimitive","defaultOptions","OTLPDefaultOptions","Api","urllib","truncation","accessToken","_getTransport","OTLPTransportOptions","_getOTLPTransport","reject","post","helpers","setTimeout","_callee","_args","_context","_postPromise","_postSpans","_next","_throw","_x","stringifyResult","jsonPayload","postJsonPayload","_options$tracing","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","lineRE","lines","file","applySlice","parseOpera9","filtered","argsRaw","tokens","locationParts","extractLocation","pop","functionCall","functionName","function","col","parseOpera11","parseOpera10","parseOpera","parseV8OrIeString","parseV8OrIE","parseFFOrSafariString","parseFFOrSafari","allowEmpty","urlLike","parts","sanitizedLine","functionNameRegex","matches","stackframesLiteToStackframes","liteStackframes","liteStackframe","fileName","lineNumber","columnNumber","ERR_CLASS_REGEXP","Frame","stackFrame","_stackFrame","Stack","skip","parserStack","parse$1","parseErrorStack","getStack","_mostSpecificErrorName","rawStack","rawException","constructorName","guessErrorClass","errMsg","errClassMatch","errClass","nested","cause","traceChain","checkLevel","settings","levelVal","reportLevel","matchFrames","block","filename","listLength","frameLength","urlIsOnAList","safeOrBlock","traces","tracesLength","listName","messageIsIgnored","ignoredMessages","rIgnoredMessage","messages","messagesFromItem","Notifier","_this$queue","configure","enabled","addPendingItem","originalError","_applyTransforms","removePendingItem","addItem","transformIndex","transformsLength","next","Queue","rateLimiter","replay","predicates","pendingItems","pendingRequests","retryQueue","retryHandle","waitCallback","waitIntervalID","_this$api","predicate","idx","originalItem","predicateResult","_applyPredicates","stop","_maybeLog","transmit","replayId","_makeApiRequest","_dequeuePendingRequest","sendOrDiscardReplay","_this$replay","discard","_maybeCallWait","clearInterval","setInterval","rateLimitResponse","shouldSend","postItem","_maybeRetry","shouldRetry","retryInterval","RETRIABLE_ERRORS","maxRetries","retries","_retryApiRequest","retryObject","verbose","RateLimiter","counter","perMinCounter","platformOptions","configureGlobal","_createClass","maxItems","itemsPerMinute","globalSettings","elapsedTime","globalRateLimit","globalRateLimitPerMin","checkRate","shouldSendValue","underGlobalLimit","perMinute","limit","ignoreRateLimit","limitPerMin","errorResult","msg","extra","framework","rateLimitPayload","Rollbar","telemeter","setPlatformOptions","validateTracer","_configuredOptions","setStackTraceLimit","lastError","lastErrorHash","stackTraceLimit","global","payloadData","_defaultLogLevel","_log","wait","captureEvent","captureDomContentLoaded","captureLoad","buildJsonPayload","sendJsonPayload","defaultLevel","ignoreDuplicateErrors","_sameAsLastError","_addItemAttributes","_addTracingInfo","_captureRollbarItem","telemetryEvents","copyEvents","_this$tracing2","sessionId","_isUncaught","itemHash","generateItemHash","toSpanId","toTraceId","validateSpan","setTag","opentracingSpanId","opentracingTraceId","opentracing_span_id","opentracing_trace_id","itemToPayload","addPayloadOptions","payloadOptions","addTelemetryData","addMessageWithError","tracePath","newItem","promisedItem","addConfigToPayload","sendConfig","addFunctionOption","addConfiguredOptions","configuredOptions","configured_options","addDiagnosticKeys","client","is_anonymous","is_uncaught","raw_error","constructor_name","failed","checkIgnore","handleDomException","handleItemWithError","stackInfo","_savedStackTrace","addErrorContext","errors","contextAdded","rollbarContext","error_context","e2","ensureItemHasSomethingToSay","addBaseInfo","server","addBody","traceChainLength","buildTrace","addBodyTraceChain","stackFromItem","guess","className","errorClass","addBodyMessage","addBodyTrace","_unhandledStackInfo","class","frame","pre","contextLength","mid","sendFrameUrl","endsWith","reverse","controller","timeoutId","AbortController","abort","signal","clearTimeout","respHeaders","json","catch","_newRetriableError","requestFactory","xmlhttp","factories","ActiveXObject","numFactories","_createXMLHTTPObject","onreadystatechange","readyState","parseResponse","responseText","_isSuccess","getResponseHeader","_isNormalFailure","ex","exc","open","setRequestHeader","h","send","_e1","XDomainRequest","substring","xdomainrequest","onprogress","ontimeout","onerror","onload","Transport","params","access_token","paramsArray","sort","qs","_makeZoneRequest","rootZone","Zone","root","run","_makeRequest","RollbarProxy","_msg","_proxyRequest","makeFetchRequest","makeXhrRequest","auth","hash","parseInt","pathParts","_instance","components","Instrumenter","instrumenter","wrapGlobals","scrub","Replay","API","_gWindow","initSession","replayOptions","autoStart","recorder","start","Client","gDocument","isChrome","chrome","runtime","anonymousErrorsPending","rollbar","requestInfo","query_string","remoteString","captureIp","user_ip","nav","scr","screen","runtime_ms","_rollbarStartTime","javascript","browser","cookie_enabled","cookieEnabled","cur","plugins","navPlugins","sharedTransforms","scrubFn","addTransformsToNotifier","addPredicate","sharedPredicates","isUncaught","Boolean","onSendCallback","addPredicatesToQueue","setupUnhandledCapture","instrument","setSessionAttributesFromOptions","_this$instrumenter","_createItem","triggerReplay","unhandledExceptionsInitialized","captureUncaught","handleUncaughtExceptions","handler","shim","oldOnError","_rollbarOldOnError","handleAnonymousErrors","old","_rollbarWrappedError","_rollbarContext","handleUncaughtException","_rollbarWindowOnError","globals","wrapGlobalEventHandlers","unhandledRejectionsInitialized","captureUnhandledRejections","handleUnhandledRejections","_rollbarURH","belongsToShim","removeEventListener","rejectionHandler","evt","reason","promise","detail","handleUnhandledRejection","addEventListener","inspectAnonymousErrors","uncaughtErrorLevel","prepareStackTrace","_stack","_isAnonymous","reasonResult","_before","ctxFn","_isWrap","_rollbar_wrapped","_wrappedSource","setUser","_this$tracing3","_options$payload","_options$client","_options$payload2","_options$payload3","_options$payload4","person","setSessionUser","code_version","codeVersion","setSessionAttributes","maybeCallback","_getFirstFunction","_Rollbar","callInstance","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len0","_key0","_len1","_key1","_len10","_key10","_len11","_key11","_len12","_key12","browserDefaults","triggerDefaults","samplingRatio","preDuration","postDuration","triggers","logErrors","logEmits","inlineStylesheet","inlineImages","collectFonts","maskInputOptions","password","tel","text","color","date","month","number","week","maskAllInputs","blockClass","maskTextClass","ignoreClass","slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","normalizeName","FetchHeaders","forEach","append","header","getOwnPropertyNames","normalizeValue","oldValue","items","iteratorFor","Headers","replacements","orig","elementString","elem","nextStr","totalLength","out","descriptionToString","separator","MAX_LENGTH","elementArrayToString","nextDescription","describeElement","tagName","parentNode","treeToArray","desc","classes","attribute","getAttribute","network","networkResponseHeaders","networkResponseBody","networkRequestHeaders","networkRequestBody","networkErrorOnHttp5xx","networkErrorOnHttp4xx","networkErrorOnHttp0","dom","navigation","connectivity","contentSecurityPolicy","errorOnContentSecurityPolicy","restore","defaultValueScrubber","patterns","field","nameFromDescription","_patterns","_window","_document","removeListeners","autoInstrument","configureScrubbing","eventRemovers","contentsecuritypolicy","_location","_lastHref","_options$scrubTelemet","_options$replay","_options$replay2","_options$replay3","_options$replay4","_options$replay5","_options$replay6","_options$replay7","_options$replay8","_options$replay9","scrubTelemetryInputs","telemetryScrubber","maskInputFn","scrubClasses","scrubSelectors","blockSelector","ignoreSelector","maskTextSelector","oldSettings","deinstrumentNetwork","instrumentNetwork","deinstrumentConsole","instrumentConsole","deinstrumentDom","instrumentDom","deinstrumentNavigation","instrumentNavigation","deinstrumentConnectivity","instrumentConnectivity","deinstrumentContentSecurityPolicy","instrumentContentSecurityPolicy","wrapProp","xhr","wrap","xhrp","isUrlObject","_isUrlObject","__rollbar_xhr","request_content_type","onreadystatechangeHandler","__rollbar_event","captureNetwork","response_content_type","headersConfig","allHeaders","getAllResponseHeaders","trim","isJsonContentType","scrubJson","addOtelNetworkResponse","errorOnHttpStatus","trackHttpErrors","_fn","_t","reqHeaders","fetchHeaders","telemetryEvent","contentType","endTimeMs","inHeaders","outHeaders","currentHeader","_this$_window","_i2","_methods","wrapConsole","origConsole","Function","addListener","handleEvent","click","handleClick","dragdrop","handleDrag","focus","handleFocus","form","handleForm","handleInput","resize","handleResize","contentLoaded","handleContentLoaded","_evt","URL","_evt$target","captureClick","isTrusted","domUtil","_evt$target2","captureFocus","innerWidth","captureResize","innerHeight","_evt$dataTransfer","_evt$dataTransfer2","dataTransfer","files","captureDragDrop","inputType","mask","selectors","cls","classList","contains","sel","_evt$target3","_evt$target4","_evt$target5","_evt$target6","scrubInputValue","_evt$target7","captureInput","app","history","pushState","handleUrlChange","parsedHref","urlparser","parsedTo","parsedFrom","captureNavigation","handleConnectivity","captureConnectivityChange","cspEvent","blockedURI","violatedDirective","effectiveDirective","sourceFile","originalPolicy","handleCspError","cspHandler","handleCspEvent","section","types","_step7","_iterator7","_loop","passive","_extendListenerPrototype","oldAddEventListener","_rollbarOldAdd","addFn","bubble","oldRemoveEventListener","_rollbarOldRemove","removeFn","setComponents","_rollbarConfig","alias","globalAlias","shimRunning","shimId","_rollbarDidLoad"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"rollbar.min.js","mappings":"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","sources":["webpack://rollbar/webpack/bootstrap","webpack://rollbar/webpack/runtime/define property getters","webpack://rollbar/webpack/runtime/hasOwnProperty shorthand","webpack://rollbar/webpack/runtime/make namespace object","webpack://rollbar/./src/utility.js","webpack://rollbar/./src/utility/traverse.js","webpack://rollbar/./src/scrub.js","webpack://rollbar/./src/telemetry.js","webpack://rollbar/./src/tracing/context.js","webpack://rollbar/./src/tracing/contextManager.js","webpack://rollbar/./src/tracing/hrtime.js","webpack://rollbar/./src/tracing/exporter.js","webpack://rollbar/./src/tracing/id.js","webpack://rollbar/./src/tracing/session.js","webpack://rollbar/./src/logger.js","webpack://rollbar/./src/tracing/spanProcessor.js","webpack://rollbar/./src/tracing/span.js","webpack://rollbar/./src/tracing/tracer.js","webpack://rollbar/./src/tracing/tracing.js","webpack://rollbar/./src/truncation.js","webpack://rollbar/./src/apiUtility.js","webpack://rollbar/./src/api.js","webpack://rollbar/./src/defaults.js","webpack://rollbar/./node_modules/error-stack-parser-es/dist/lite.mjs","webpack://rollbar/./node_modules/error-stack-parser-es/dist/index.mjs","webpack://rollbar/./src/errorParser.js","webpack://rollbar/./src/predicates.js","webpack://rollbar/./src/notifier.js","webpack://rollbar/./src/queue.js","webpack://rollbar/./src/rateLimiter.js","webpack://rollbar/./src/rollbar.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/transforms.js","webpack://rollbar/./src/browser/transport/fetch.js","webpack://rollbar/./src/browser/transport/xhr.js","webpack://rollbar/./src/browser/transport.js","webpack://rollbar/./src/browser/url.js","webpack://rollbar/./src/browser/core.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/replay/defaults.js","webpack://rollbar/./src/tracing/defaults.js","webpack://rollbar/./src/utility/headers.js","webpack://rollbar/./src/utility/replace.js","webpack://rollbar/./src/browser/domUtility.js","webpack://rollbar/./src/browser/telemetry.js","webpack://rollbar/./src/browser/wrapGlobals.js","webpack://rollbar/./src/browser/rollbar.js","webpack://rollbar/./src/browser/bundles/rollbar.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\n * isType - Given a Javascript value and a string, returns true if the type of the value matches the\n * given string.\n *\n * @param x - any value\n * @param t - a lowercase string containing one of the following type names:\n * - undefined\n * - null\n * - error\n * - number\n * - boolean\n * - string\n * - symbol\n * - function\n * - object\n * - array\n * @returns true if x is of type t, otherwise false\n */\nfunction isType(x, t) {\n return t === typeName(x);\n}\n\n/*\n * typeName - Given a Javascript value, returns the type of the object as a string\n */\nfunction typeName(x) {\n var name = typeof x;\n if (name !== 'object') {\n return name;\n }\n if (!x) {\n return 'null';\n }\n if (x instanceof Error) {\n return 'error';\n }\n return {}.toString\n .call(x)\n .match(/\\s([a-zA-Z]+)/)[1]\n .toLowerCase();\n}\n\n/* isFunction - a convenience function for checking if a value is a function\n *\n * @param f - any value\n * @returns true if f is a function, otherwise false\n */\nfunction isFunction(f) {\n return isType(f, 'function');\n}\n\n/* isNativeFunction - a convenience function for checking if a value is a native JS function\n *\n * @param f - any value\n * @returns true if f is a native JS function, otherwise false\n */\nfunction isNativeFunction(f) {\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n var funcMatchString = Function.prototype.toString\n .call(Object.prototype.hasOwnProperty)\n .replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?');\n var reIsNative = RegExp('^' + funcMatchString + '$');\n return isObject(f) && reIsNative.test(f);\n}\n\n/* isObject - Checks if the argument is an object\n *\n * @param value - any value\n * @returns true is value is an object function is an object)\n */\nfunction isObject(value) {\n return (\n value != null && (typeof value == 'object' || typeof value == 'function')\n );\n}\n\n/* hasOwn - safe helper around Object.hasOwnProperty */\nfunction hasOwn(obj, prop) {\n if (obj == null) {\n return false;\n }\n if (Object.hasOwn) {\n return Object.hasOwn(obj, prop);\n }\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n/* isString - Checks if the argument is a string\n *\n * @param value - any value\n * @returns true if value is a string\n */\nfunction isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\n\n/**\n * isFiniteNumber - determines whether the passed value is a finite number\n *\n * @param {*} n - any value\n * @returns true if value is a finite number\n */\nfunction isFiniteNumber(n) {\n return Number.isFinite(n);\n}\n\n/*\n * isIterable - convenience function for checking if a value can be iterated, essentially\n * whether it is an object or an array.\n *\n * @param i - any value\n * @returns true if i is an object or an array as determined by `typeName`\n */\nfunction isIterable(i) {\n var type = typeName(i);\n return type === 'object' || type === 'array';\n}\n\n/*\n * isError - convenience function for checking if a value is of an error type\n *\n * @param e - any value\n * @returns true if e is an error\n */\nfunction isError(e) {\n // Detect both Error and Firefox Exception type\n return isType(e, 'error') || isType(e, 'exception');\n}\n\n/* isPromise - a convenience function for checking if a value is a promise\n *\n * @param p - any value\n * @returns true if f is a function, otherwise false\n */\nfunction isPromise(p) {\n return isObject(p) && isType(p.then, 'function');\n}\n\n/**\n * isBrowser - a convenience function for checking if the code is running in a browser\n *\n * @returns true if the code is running in a browser environment\n */\nfunction isBrowser() {\n return typeof window !== 'undefined';\n}\n\nfunction isRequestObject(input) {\n return typeof Request !== 'undefined' && input instanceof Request;\n}\n\nfunction redact() {\n return '********';\n}\n\n// from http://stackoverflow.com/a/8809472/1138191\nfunction uuid4() {\n var d = now();\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (c) {\n var r = ((d + Math.random() * 16) % 16) | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16);\n },\n );\n return uuid;\n}\n\nvar LEVELS = {\n debug: 0,\n info: 1,\n warning: 2,\n error: 3,\n critical: 4,\n};\n\nfunction sanitizeHref(url) {\n try {\n const urlObject = new URL(url);\n if (urlObject.password) {\n urlObject.password = redact();\n }\n if (urlObject.search) {\n urlObject.search = redact();\n }\n return urlObject.toString();\n } catch (_) {\n return url; // Return original URL if parsing fails\n }\n}\n\nfunction sanitizeUrl(url) {\n var baseUrlParts = parseUri(url);\n if (!baseUrlParts) {\n return '(unknown)';\n }\n\n // remove a trailing # if there is no anchor\n if (baseUrlParts.anchor === '') {\n baseUrlParts.source = baseUrlParts.source.replace('#', '');\n }\n\n url = baseUrlParts.source.replace('?' + baseUrlParts.query, '');\n return url;\n}\n\nvar parseUriOptions = {\n strictMode: false,\n key: [\n 'source',\n 'protocol',\n 'authority',\n 'userInfo',\n 'user',\n 'password',\n 'host',\n 'port',\n 'relative',\n 'path',\n 'directory',\n 'file',\n 'query',\n 'anchor',\n ],\n q: {\n name: 'queryKey',\n parser: /(?:^|&)([^&=]*)=?([^&]*)/g,\n },\n parser: {\n strict:\n /^(?:([^:/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?))?((((?:[^?#/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n loose:\n /^(?:(?![^:@]+:[^:@/]*@)([^:/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[?#]|$)))*\\/?)?([^?#/]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n },\n};\n\nfunction parseUri(str) {\n if (!isType(str, 'string')) {\n return undefined;\n }\n\n var o = parseUriOptions;\n var m = o.parser[o.strictMode ? 'strict' : 'loose'].exec(str);\n var uri = {};\n\n for (var i = 0, l = o.key.length; i < l; ++i) {\n uri[o.key[i]] = m[i] || '';\n }\n\n uri[o.q.name] = {};\n uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {\n if ($1) {\n uri[o.q.name][$1] = $2;\n }\n });\n\n return uri;\n}\n\nfunction addParamsAndAccessTokenToPath(accessToken, options, params) {\n params = params || {};\n params.access_token = accessToken;\n var paramsArray = [];\n var k;\n for (k in params) {\n if (Object.prototype.hasOwnProperty.call(params, k)) {\n paramsArray.push([k, params[k]].join('='));\n }\n }\n var query = '?' + paramsArray.sort().join('&');\n\n options = options || {};\n options.path = options.path || '';\n var qs = options.path.indexOf('?');\n var h = options.path.indexOf('#');\n var p;\n if (qs !== -1 && (h === -1 || h > qs)) {\n p = options.path;\n options.path = p.substring(0, qs) + query + '&' + p.substring(qs + 1);\n } else {\n if (h !== -1) {\n p = options.path;\n options.path = p.substring(0, h) + query + p.substring(h);\n } else {\n options.path = options.path + query;\n }\n }\n}\n\nfunction formatUrl(u, protocol) {\n protocol = protocol || u.protocol;\n if (!protocol && u.port) {\n if (u.port === 80) {\n protocol = 'http:';\n } else if (u.port === 443) {\n protocol = 'https:';\n }\n }\n protocol = protocol || 'https:';\n\n if (!u.hostname) {\n return null;\n }\n var result = protocol + '//' + u.hostname;\n if (u.port) {\n result = result + ':' + u.port;\n }\n if (u.path) {\n result = result + u.path;\n }\n return result;\n}\n\nfunction stringify(obj, backup) {\n var value, error;\n try {\n value = JSON.stringify(obj);\n } catch (jsonError) {\n if (backup && isFunction(backup)) {\n try {\n value = backup(obj);\n } catch (backupError) {\n error = backupError;\n }\n } else {\n error = jsonError;\n }\n }\n return { error: error, value: value };\n}\n\nfunction maxByteSize(string) {\n // The transport will use utf-8, so assume utf-8 encoding.\n //\n // This minimal implementation will accurately count bytes for all UCS-2 and\n // single code point UTF-16. If presented with multi code point UTF-16,\n // which should be rare, it will safely overcount, not undercount.\n //\n // While robust utf-8 encoders exist, this is far smaller and far more performant.\n // For quickly counting payload size for truncation, smaller is better.\n\n var count = 0;\n var length = string.length;\n\n for (var i = 0; i < length; i++) {\n var code = string.charCodeAt(i);\n if (code < 128) {\n // up to 7 bits\n count = count + 1;\n } else if (code < 2048) {\n // up to 11 bits\n count = count + 2;\n } else if (code < 65536) {\n // up to 16 bits\n count = count + 3;\n }\n }\n\n return count;\n}\n\nfunction jsonParse(s) {\n var value, error;\n try {\n value = JSON.parse(s);\n } catch (e) {\n error = e;\n }\n return { error, value };\n}\n\nfunction makeUnhandledStackInfo(\n message,\n url,\n lineno,\n colno,\n error,\n mode,\n backupMessage,\n errorParser,\n) {\n var location = {\n url: url || '',\n line: lineno,\n column: colno,\n };\n location.func = errorParser.guessFunctionName(location.url, location.line);\n location.context = errorParser.gatherContext(location.url, location.line);\n var href =\n typeof document !== 'undefined' &&\n document &&\n document.location &&\n document.location.href;\n var useragent =\n typeof window !== 'undefined' &&\n window &&\n window.navigator &&\n window.navigator.userAgent;\n return {\n mode: mode,\n message: error ? String(error) : message || backupMessage,\n url: href,\n stack: [location],\n useragent: useragent,\n };\n}\n\nfunction wrapCallback(logger, f) {\n return function (err, resp) {\n try {\n f(err, resp);\n } catch (e) {\n logger.error(e);\n }\n };\n}\n\nfunction nonCircularClone(obj) {\n var seen = [obj];\n\n function clone(obj, seen) {\n var value,\n name,\n newSeen,\n result = {};\n\n try {\n for (name in obj) {\n value = obj[name];\n\n if (value && (isType(value, 'object') || isType(value, 'array'))) {\n if (seen.includes(value)) {\n result[name] = 'Removed circular reference: ' + typeName(value);\n } else {\n newSeen = seen.slice();\n newSeen.push(value);\n result[name] = clone(value, newSeen);\n }\n continue;\n }\n\n result[name] = value;\n }\n } catch (e) {\n result = 'Failed cloning custom data: ' + e.message;\n }\n return result;\n }\n return clone(obj, seen);\n}\n\nfunction createItem(args, logger, notifier, requestKeys, lambdaContext) {\n var message, err, custom, callback, request;\n var arg;\n var extraArgs = [];\n var diagnostic = {};\n var argTypes = [];\n\n for (var i = 0, l = args.length; i < l; ++i) {\n arg = args[i];\n\n var typ = typeName(arg);\n argTypes.push(typ);\n switch (typ) {\n case 'undefined':\n break;\n case 'string':\n if (message) {\n extraArgs.push(arg);\n } else {\n message = arg;\n }\n break;\n case 'function':\n callback = wrapCallback(logger, arg);\n break;\n case 'date':\n extraArgs.push(arg);\n break;\n case 'error':\n case 'domexception':\n case 'exception': // Firefox Exception type\n if (err) {\n extraArgs.push(arg);\n } else {\n err = arg;\n }\n break;\n case 'object':\n case 'array':\n if (\n arg instanceof Error ||\n (typeof DOMException !== 'undefined' && arg instanceof DOMException)\n ) {\n if (err) {\n extraArgs.push(arg);\n } else {\n err = arg;\n }\n break;\n }\n if (requestKeys && typ === 'object' && !request) {\n for (var j = 0, len = requestKeys.length; j < len; ++j) {\n if (arg[requestKeys[j]] !== undefined) {\n request = arg;\n break;\n }\n }\n if (request) {\n break;\n }\n }\n if (custom) {\n extraArgs.push(arg);\n } else {\n custom = arg;\n }\n break;\n default:\n if (\n arg instanceof Error ||\n (typeof DOMException !== 'undefined' && arg instanceof DOMException)\n ) {\n if (err) {\n extraArgs.push(arg);\n } else {\n err = arg;\n }\n break;\n }\n extraArgs.push(arg);\n }\n }\n\n // if custom is an array this turns it into an object with integer keys\n if (custom) custom = nonCircularClone(custom);\n\n if (extraArgs.length > 0) {\n if (!custom) custom = nonCircularClone({});\n custom.extraArgs = nonCircularClone(extraArgs);\n }\n\n var item = {\n message: message,\n err: err,\n custom: custom,\n timestamp: now(),\n callback: callback,\n notifier: notifier,\n diagnostic: diagnostic,\n uuid: uuid4(),\n };\n\n item.data = item.data || {};\n\n setCustomItemKeys(item, custom);\n\n if (requestKeys && request) {\n item.request = request;\n }\n if (lambdaContext) {\n item.lambdaContext = lambdaContext;\n }\n item._originalArgs = args;\n item.diagnostic.original_arg_types = argTypes;\n return item;\n}\n\nfunction setCustomItemKeys(item, custom) {\n if (custom && custom.level !== undefined) {\n item.level = custom.level;\n delete custom.level;\n }\n if (custom && custom.skipFrames !== undefined) {\n item.skipFrames = custom.skipFrames;\n delete custom.skipFrames;\n }\n}\n\nfunction addErrorContext(item, errors) {\n var custom = item.data.custom || {};\n var contextAdded = false;\n\n try {\n for (const error of errors) {\n if (hasOwn(error, 'rollbarContext')) {\n custom = merge(custom, nonCircularClone(error.rollbarContext));\n contextAdded = true;\n }\n }\n\n // Avoid adding an empty object to the data.\n if (contextAdded) {\n item.data.custom = custom;\n }\n } catch (e) {\n item.diagnostic.error_context = 'Failed: ' + e.message;\n }\n}\n\nvar TELEMETRY_TYPES = [\n 'log',\n 'network',\n 'dom',\n 'navigation',\n 'error',\n 'manual',\n];\nvar TELEMETRY_LEVELS = ['critical', 'error', 'warning', 'info', 'debug'];\n\nfunction arrayIncludes(arr, val) {\n for (const entry of arr) {\n if (entry === val) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction createTelemetryEvent(args) {\n var type, metadata, level;\n var arg;\n\n for (var i = 0, l = args.length; i < l; ++i) {\n arg = args[i];\n\n var typ = typeName(arg);\n switch (typ) {\n case 'string':\n if (!type && arrayIncludes(TELEMETRY_TYPES, arg)) {\n type = arg;\n } else if (!level && arrayIncludes(TELEMETRY_LEVELS, arg)) {\n level = arg;\n }\n break;\n case 'object':\n metadata = arg;\n break;\n default:\n break;\n }\n }\n var event = {\n type: type || 'manual',\n metadata: metadata || {},\n level: level,\n };\n\n return event;\n}\n\nfunction addItemAttributes(itemData, attributes) {\n itemData.attributes = itemData.attributes || [];\n for (const a of attributes) {\n if (a.value === undefined) {\n continue;\n }\n itemData.attributes.push(a);\n }\n}\n\n/*\n * get - given an obj/array and a keypath, return the value at that keypath or\n * undefined if not possible.\n *\n * @param obj - an object or array\n * @param path - a string of keys separated by '.' such as 'plugin.jquery.0.message'\n * which would correspond to 42 in `{plugin: {jquery: [{message: 42}]}}`\n */\nfunction get(obj, path) {\n if (!obj) {\n return undefined;\n }\n var keys = path.split('.');\n var result = obj;\n try {\n for (var i = 0, len = keys.length; i < len; ++i) {\n result = result[keys[i]];\n }\n } catch (_e) {\n result = undefined;\n }\n return result;\n}\n\nfunction set(obj, path, value) {\n if (!obj) {\n return;\n }\n\n // Prevent prototype pollution by setting the prototype to null.\n Object.setPrototypeOf(obj, null);\n\n var keys = path.split('.');\n var len = keys.length;\n if (len < 1) {\n return;\n }\n if (len === 1) {\n obj[keys[0]] = value;\n return;\n }\n try {\n var temp = obj[keys[0]] || {};\n var replacement = temp;\n for (var i = 1; i < len - 1; ++i) {\n temp[keys[i]] = temp[keys[i]] || {};\n temp = temp[keys[i]];\n }\n temp[keys[len - 1]] = value;\n obj[keys[0]] = replacement;\n } catch (_e) {\n return;\n }\n}\n\nfunction formatArgsAsString(args) {\n var i, len, arg;\n var result = [];\n for (i = 0, len = args.length; i < len; ++i) {\n arg = args[i];\n switch (typeName(arg)) {\n case 'object':\n arg = stringify(arg);\n arg = arg.error || arg.value;\n if (arg.length > 500) {\n arg = arg.substr(0, 497) + '...';\n }\n break;\n case 'null':\n arg = 'null';\n break;\n case 'undefined':\n arg = 'undefined';\n break;\n case 'symbol':\n arg = arg.toString();\n break;\n }\n result.push(arg);\n }\n return result.join(' ');\n}\n\nfunction now() {\n if (Date.now) {\n return Date.now();\n }\n return Number(new Date());\n}\n\nfunction filterIp(requestData, captureIp) {\n if (!requestData || !requestData['user_ip'] || captureIp === true) {\n return;\n }\n var newIp = requestData['user_ip'];\n if (!captureIp) {\n newIp = null;\n } else {\n try {\n var parts;\n if (newIp.indexOf('.') !== -1) {\n parts = newIp.split('.');\n parts.pop();\n parts.push('0');\n newIp = parts.join('.');\n } else if (newIp.indexOf(':') !== -1) {\n parts = newIp.split(':');\n if (parts.length > 2) {\n var beginning = parts.slice(0, 3);\n var slashIdx = beginning[2].indexOf('/');\n if (slashIdx !== -1) {\n beginning[2] = beginning[2].substring(0, slashIdx);\n }\n var terminal = '0000:0000:0000:0000:0000';\n newIp = beginning.concat(terminal).join(':');\n }\n } else {\n newIp = null;\n }\n } catch (_e) {\n newIp = null;\n }\n }\n requestData['user_ip'] = newIp;\n}\n\nfunction handleOptions(current, input, payload, logger) {\n var result = merge(current, input, payload);\n result = updateDeprecatedOptions(result, logger);\n if (!input || input.overwriteScrubFields) {\n return result;\n }\n if (input.scrubFields) {\n result.scrubFields = (current.scrubFields || []).concat(input.scrubFields);\n }\n return result;\n}\n\nfunction updateDeprecatedOptions(options, logger) {\n if (options.hostWhiteList && !options.hostSafeList) {\n options.hostSafeList = options.hostWhiteList;\n options.hostWhiteList = undefined;\n logger && logger.log('hostWhiteList is deprecated. Use hostSafeList.');\n }\n if (options.hostBlackList && !options.hostBlockList) {\n options.hostBlockList = options.hostBlackList;\n options.hostBlackList = undefined;\n logger && logger.log('hostBlackList is deprecated. Use hostBlockList.');\n }\n return options;\n}\n\nfunction merge() {\n function isPlainObject(obj) {\n if (!obj || Object.prototype.toString.call(obj) !== '[object Object]') {\n return false;\n }\n\n var hasOwnConstructor = hasOwn(obj, 'constructor');\n var hasIsPrototypeOf =\n obj.constructor &&\n obj.constructor.prototype &&\n hasOwn(obj.constructor.prototype, 'isPrototypeOf');\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n }\n\n // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n var key;\n for (key in obj) {\n /**/\n }\n\n return typeof key === 'undefined' || hasOwn(obj, key);\n }\n\n var i,\n src,\n copy,\n clone,\n name,\n result = Object.create(null), // no prototype pollution on Object\n current = null,\n length = arguments.length;\n\n for (i = 0; i < length; i++) {\n current = arguments[i];\n if (current === null || current === undefined) {\n continue;\n }\n\n for (name in current) {\n src = result[name];\n copy = current[name];\n if (result !== copy) {\n if (copy && isPlainObject(copy)) {\n clone = src && isPlainObject(src) ? src : {};\n result[name] = merge(clone, copy);\n } else if (typeof copy !== 'undefined') {\n result[name] = copy;\n }\n }\n }\n }\n return result;\n}\n\nfunction shouldAddBaggageHeader(options, tracing, url) {\n if (!tracing?.sessionId || !url) {\n return false;\n }\n const propagation = options?.tracing?.propagation;\n const enabledHeaders = propagation?.enabledHeaders;\n if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) {\n return false;\n }\n const enabledCorsUrls = propagation?.enabledCorsUrls;\n if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) {\n return false;\n }\n return enabledCorsUrls.some((pattern) => {\n if (isType(pattern, 'string')) {\n return url === pattern;\n }\n if (isType(pattern, 'regexp')) {\n return pattern.test(url);\n }\n return false;\n });\n}\n\nfunction addHeadersToFetch(args, newHeaders) {\n // Headers may be in the request object or the init object.\n // If present in both places, the init object must be used.\n //\n let init = args[1];\n const initHeaders = init?.headers;\n const reqHeaders = isRequestObject(args[0]) && args[0].headers;\n let headers = initHeaders || reqHeaders;\n\n // If headers are not present in either place, they are added to the init object.\n // If there is no init object, one must be created and added to args.\n if (!headers) {\n if (!init) {\n args[1] = init = {};\n }\n headers = init.headers = {};\n }\n\n // `headers` may be a Headers object or a plain object.\n if (headers instanceof Headers) {\n for (const key of Object.keys(newHeaders)) {\n headers.append(key, newHeaders[key]);\n }\n } else if (isObject(headers)) {\n for (const key of Object.keys(newHeaders)) {\n headers[key] = newHeaders[key];\n }\n }\n}\n\nfunction getSessionIdFromAsyncLocalStorage(client) {\n const storage = client.asyncLocalStorage;\n if (!storage || typeof storage.getStore !== 'function') {\n return null;\n }\n const store = storage.getStore();\n return store?.sessionId || null;\n}\n\nexport {\n addParamsAndAccessTokenToPath,\n createItem,\n addErrorContext,\n createTelemetryEvent,\n addItemAttributes,\n filterIp,\n formatArgsAsString,\n formatUrl,\n get,\n handleOptions,\n isError,\n isFiniteNumber,\n isFunction,\n hasOwn,\n isIterable,\n isNativeFunction,\n isObject,\n isString,\n isType,\n isPromise,\n isBrowser,\n jsonParse,\n LEVELS,\n makeUnhandledStackInfo,\n merge,\n now,\n redact,\n sanitizeHref,\n sanitizeUrl,\n set,\n stringify,\n maxByteSize,\n typeName,\n uuid4,\n shouldAddBaggageHeader,\n addHeadersToFetch,\n getSessionIdFromAsyncLocalStorage,\n};\n","import * as _ from '../utility.js';\n\nfunction traverse(obj, func, seen) {\n var k, v, i;\n var isObj = _.isType(obj, 'object');\n var isArray = _.isType(obj, 'array');\n var keys = [];\n var seenIndex;\n\n // Best might be to use Map here with `obj` as the keys, but we want to support IE < 11.\n seen = seen || { obj: [], mapped: [] };\n\n if (isObj) {\n seenIndex = seen.obj.indexOf(obj);\n\n if (isObj && seenIndex !== -1) {\n // Prefer the mapped object if there is one.\n return seen.mapped[seenIndex] || seen.obj[seenIndex];\n }\n\n seen.obj.push(obj);\n seenIndex = seen.obj.length - 1;\n }\n\n if (isObj) {\n for (k in obj) {\n if (_.hasOwn(obj, k)) {\n keys.push(k);\n }\n }\n } else if (isArray) {\n for (i = 0; i < obj.length; ++i) {\n keys.push(i);\n }\n }\n\n var result = isObj ? {} : [];\n var same = true;\n for (i = 0; i < keys.length; ++i) {\n k = keys[i];\n v = obj[k];\n result[k] = func(k, v, seen);\n same = same && result[k] === obj[k];\n }\n\n if (isObj && !same) {\n seen.mapped[seenIndex] = result;\n }\n\n return !same ? result : obj;\n}\n\nexport default traverse;\n","import traverse from './utility/traverse.js';\nimport * as _ from './utility.js';\n\nfunction scrub(data, scrubFields, scrubPaths) {\n scrubFields = scrubFields || [];\n\n if (scrubPaths) {\n for (const path of scrubPaths) {\n scrubPath(data, path);\n }\n }\n\n var paramRes = _getScrubFieldRegexs(scrubFields);\n var queryRes = _getScrubQueryParamRegexs(scrubFields);\n\n function redactQueryParam(dummy0, paramPart) {\n return paramPart + _.redact();\n }\n\n function paramScrubber(v) {\n if (_.isType(v, 'string')) {\n for (const regex of queryRes) {\n v = v.replace(regex, redactQueryParam);\n }\n }\n return v;\n }\n\n function valScrubber(k, v) {\n for (const regex of paramRes) {\n if (regex.test(k)) {\n v = _.redact();\n break;\n }\n }\n return v;\n }\n\n function scrubber(k, v, seen) {\n var tmpV = valScrubber(k, v);\n if (tmpV === v) {\n if (_.isType(v, 'object') || _.isType(v, 'array')) {\n return traverse(v, scrubber, seen);\n }\n return paramScrubber(tmpV);\n } else {\n return tmpV;\n }\n }\n\n return traverse(data, scrubber);\n}\n\nfunction scrubPath(obj, path) {\n var keys = path.split('.');\n var last = keys.length - 1;\n try {\n for (const [index, key] of keys.entries()) {\n if (index < last) {\n obj = obj[key];\n } else {\n obj[key] = _.redact();\n }\n }\n } catch (_e) {\n // Missing key is OK;\n }\n}\n\nfunction _getScrubFieldRegexs(scrubFields) {\n var ret = [];\n for (const field of scrubFields) {\n var pat = '^\\\\[?(%5[bB])?' + field + '\\\\[?(%5[bB])?\\\\]?(%5[dD])?$';\n ret.push(new RegExp(pat, 'i'));\n }\n return ret;\n}\n\nfunction _getScrubQueryParamRegexs(scrubFields) {\n var ret = [];\n for (const field of scrubFields) {\n var pat = '\\\\[?(%5[bB])?' + field + '\\\\[?(%5[bB])?\\\\]?(%5[dD])?';\n ret.push(new RegExp('(' + pat + '=)([^&\\\\n]+)', 'igm'));\n }\n return ret;\n}\n\nexport default scrub;\n","import * as _ from './utility.js';\n\nconst MAX_EVENTS = 100;\n\n// Temporary workaround while solving commonjs -> esm issues in Node 18 - 20.\nfunction fromMillis(millis) {\n return [Math.trunc(millis / 1000), Math.round((millis % 1000) * 1e6)];\n}\n\nclass Telemeter {\n constructor(options, tracing) {\n this.queue = [];\n this.options = _.merge(options);\n var maxTelemetryEvents = this.options.maxTelemetryEvents || MAX_EVENTS;\n this.maxQueueSize = Math.max(0, Math.min(maxTelemetryEvents, MAX_EVENTS));\n this.tracing = tracing;\n this.telemetrySpan = this.tracing?.startSpan('rollbar-telemetry', {});\n }\n\n configure(options) {\n var oldOptions = this.options;\n this.options = _.merge(oldOptions, options);\n var maxTelemetryEvents = this.options.maxTelemetryEvents || MAX_EVENTS;\n var newMaxEvents = Math.max(0, Math.min(maxTelemetryEvents, MAX_EVENTS));\n var deleteCount = 0;\n if (this.queue.length > newMaxEvents) {\n deleteCount = this.queue.length - newMaxEvents;\n }\n this.maxQueueSize = newMaxEvents;\n this.queue.splice(0, deleteCount);\n }\n\n copyEvents() {\n var events = Array.prototype.slice.call(this.queue, 0);\n if (_.isFunction(this.options.filterTelemetry)) {\n try {\n var i = events.length;\n while (i--) {\n if (this.options.filterTelemetry(events[i])) {\n events.splice(i, 1);\n }\n }\n } catch (_e) {\n this.options.filterTelemetry = null;\n }\n }\n\n // Filter until supported in legacy telemetry\n events = events.filter((e) => e.type !== 'connectivity');\n\n // Remove internal keys from output\n events = events.map(\n ({ otelAttributes: _otelAttributes, ...event }) => event,\n );\n\n return events;\n }\n\n exportTelemetrySpan(attributes = {}) {\n if (this.telemetrySpan) {\n this.telemetrySpan.end(attributes);\n this.telemetrySpan = this.tracing.startSpan('rollbar-telemetry', {});\n }\n }\n\n capture(\n type,\n metadata,\n level,\n rollbarUUID,\n timestamp = null,\n otelAttributes = null,\n ) {\n var e = {\n level: getLevel(type, level),\n type: type,\n timestamp_ms: timestamp || _.now(),\n body: metadata,\n source: 'client',\n };\n if (rollbarUUID) {\n e.uuid = rollbarUUID;\n }\n if (otelAttributes) {\n e.otelAttributes = otelAttributes;\n }\n\n try {\n if (\n _.isFunction(this.options.filterTelemetry) &&\n this.options.filterTelemetry(e)\n ) {\n return false;\n }\n } catch (_exc) {\n this.options.filterTelemetry = null;\n }\n\n this.push(e);\n return e;\n }\n\n captureEvent(type, metadata, level, rollbarUUID) {\n return this.capture(type, metadata, level, rollbarUUID);\n }\n\n captureError(err, level, rollbarUUID, timestamp) {\n const message = err.message || String(err);\n var metadata = { message };\n if (err.stack) {\n metadata.stack = err.stack;\n }\n const otelAttributes = {\n message,\n level,\n type: 'error',\n uuid: rollbarUUID,\n };\n\n this.telemetrySpan?.addEvent(\n 'rollbar-occurrence-event',\n otelAttributes,\n fromMillis(timestamp),\n );\n\n return this.capture(\n 'error',\n metadata,\n level,\n rollbarUUID,\n timestamp,\n otelAttributes,\n );\n }\n\n captureLog(message, level, rollbarUUID, timestamp) {\n const event = rollbarUUID\n ? 'rollbar-occurrence-event'\n : 'rollbar-log-event';\n const otelAttributes = {\n message,\n level,\n ...(rollbarUUID ? { type: 'message', uuid: rollbarUUID } : {}),\n };\n\n this.telemetrySpan?.addEvent(event, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'log',\n { message },\n level,\n rollbarUUID,\n timestamp,\n otelAttributes,\n );\n }\n\n captureNetwork(metadata, subtype, rollbarUUID, requestData) {\n subtype = subtype || 'xhr';\n metadata.subtype = metadata.subtype || subtype;\n if (requestData) {\n metadata.request = requestData;\n }\n const level = this.levelFromStatus(metadata.status_code);\n const endTimeNano = (metadata.end_time_ms || 0) * 1e6;\n const otelAttributes = {\n type: metadata.subtype,\n method: metadata.method,\n url: metadata.url,\n statusCode: metadata.status_code,\n 'request.headers': JSON.stringify(metadata.request_headers || {}),\n 'response.headers': JSON.stringify(metadata.response?.headers || {}),\n 'response.timeUnixNano': endTimeNano.toString(),\n };\n const requestBody = metadata.request;\n const responseBody = metadata.response?.body;\n if (requestBody) {\n otelAttributes['request.body'] = JSON.stringify(requestBody);\n }\n if (responseBody) {\n otelAttributes['response.body'] = JSON.stringify(responseBody);\n }\n\n this.telemetrySpan?.addEvent(\n 'rollbar-network-event',\n otelAttributes,\n fromMillis(metadata.start_time_ms),\n );\n\n return this.capture(\n 'network',\n metadata,\n level,\n rollbarUUID,\n metadata.start_time_ms,\n otelAttributes,\n );\n }\n\n levelFromStatus(statusCode) {\n if (statusCode >= 200 && statusCode < 400) {\n return 'info';\n }\n if (statusCode === 0 || statusCode >= 400) {\n return 'error';\n }\n return 'info';\n }\n\n captureDom(subtype, element, value, checked, rollbarUUID) {\n var metadata = {\n subtype: subtype,\n element: element,\n };\n if (value !== undefined) {\n metadata.value = value;\n }\n if (checked !== undefined) {\n metadata.checked = checked;\n }\n return this.capture('dom', metadata, 'info', rollbarUUID);\n }\n\n captureInput({ type, isSynthetic, element, value, timestamp }) {\n const name = 'rollbar-input-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n value,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n value,\n endTimeUnixNano: fromMillis(timestamp),\n };\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureClick({ type, isSynthetic, element, timestamp }) {\n const name = 'rollbar-click-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n endTimeUnixNano: fromMillis(timestamp),\n };\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n _getRepeatedEvent(name, attributes) {\n const lastEvent = this._lastEvent(this.queue);\n\n if (\n lastEvent &&\n lastEvent.body.type === name &&\n lastEvent.otelAttributes.target === attributes.target\n ) {\n return lastEvent;\n }\n }\n\n _updateRepeatedEvent(event, attributes, timestamp) {\n const duration = Math.max(timestamp - event.timestamp_ms, 1);\n event.body.value = attributes.value;\n event.otelAttributes.value = attributes.value;\n event.otelAttributes.height = attributes.height;\n event.otelAttributes.width = attributes.width;\n event.otelAttributes.textZoomRatio = attributes.textZoomRatio;\n event.otelAttributes['endTimeUnixNano'] = fromMillis(timestamp);\n event.otelAttributes['durationUnixNano'] = fromMillis(duration);\n event.otelAttributes.count = (event.otelAttributes.count || 1) + 1;\n event.otelAttributes.rate = event.otelAttributes.count / (duration / 1000);\n }\n\n _lastEvent(list) {\n return list.length > 0 ? list[list.length - 1] : null;\n }\n\n captureFocus({ type, isSynthetic, element, timestamp }) {\n const name = 'rollbar-focus-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n };\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureResize({\n type,\n isSynthetic,\n width,\n height,\n textZoomRatio,\n timestamp,\n }) {\n const name = 'rollbar-resize-event';\n const metadata = {\n type: name,\n subtype: type,\n width,\n height,\n textZoomRatio,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n width,\n height,\n textZoomRatio,\n };\n\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureDragDrop({\n type,\n isSynthetic,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n timestamp,\n }) {\n const name = 'rollbar-dragdrop-event';\n let metadata = {\n type: name,\n subtype: type,\n isSynthetic,\n };\n\n let otelAttributes = {\n type,\n isSynthetic,\n };\n\n if (type === 'dragstart') {\n metadata = { ...metadata, element, dropEffect, effectAllowed };\n otelAttributes = {\n ...otelAttributes,\n element,\n dropEffect,\n effectAllowed,\n };\n }\n\n if (type === 'drop') {\n metadata = {\n ...metadata,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n };\n otelAttributes = {\n ...otelAttributes,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n };\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureNavigation(from, to, rollbarUUID, timestamp) {\n this.telemetrySpan?.addEvent(\n 'rollbar-navigation-event',\n { 'previous.url.full': from, 'url.full': to },\n fromMillis(timestamp),\n );\n\n return this.capture(\n 'navigation',\n { from, to },\n 'info',\n rollbarUUID,\n timestamp,\n );\n }\n\n captureDomContentLoaded(ts) {\n return this.capture(\n 'navigation',\n { subtype: 'DOMContentLoaded' },\n 'info',\n undefined,\n ts && ts.getTime(),\n );\n /**\n * If we decide to make this a dom event instead, then use the line below:\n return this.capture('dom', {subtype: 'DOMContentLoaded'}, 'info', undefined, ts && ts.getTime());\n */\n }\n\n captureLoad(ts) {\n return this.capture(\n 'navigation',\n { subtype: 'load' },\n 'info',\n undefined,\n ts && ts.getTime(),\n );\n /**\n * If we decide to make this a dom event instead, then use the line below:\n return this.capture('dom', {subtype: 'load'}, 'info', undefined, ts && ts.getTime());\n */\n }\n\n captureConnectivityChange({ type, isSynthetic, timestamp }) {\n const name = 'rollbar-connectivity-event';\n const metadata = {\n type: name,\n subtype: type,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n };\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'connectivity',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n // Only intended to be used internally by the notifier\n _captureRollbarItem(item) {\n if (!this.options.includeItemsInTelemetry) {\n return;\n }\n if (item.err) {\n return this.captureError(item.err, item.level, item.uuid, item.timestamp);\n }\n if (item.message) {\n return this.captureLog(\n item.message,\n item.level,\n item.uuid,\n item.timestamp,\n );\n }\n if (item.custom) {\n return this.capture(\n 'log',\n item.custom,\n item.level,\n item.uuid,\n item.timestamp,\n );\n }\n }\n\n push(e) {\n this.queue.push(e);\n if (this.queue.length > this.maxQueueSize) {\n this.queue.shift();\n }\n }\n}\n\nfunction getLevel(type, level) {\n if (level) {\n return level;\n }\n var defaultLevel = {\n error: 'error',\n manual: 'info',\n };\n return defaultLevel[type] || 'info';\n}\n\nexport default Telemeter;\n","export class Context {\n constructor(parentContext) {\n this._currentContext = parentContext ? new Map(parentContext) : new Map();\n }\n\n getValue(key) {\n return this._currentContext.get(key);\n }\n\n setValue(key, value) {\n const context = new Context(this._currentContext);\n context._currentContext.set(key, value);\n return context;\n }\n\n deleteValue(key) {\n const context = new Context(self._currentContext);\n context._currentContext.delete(key);\n return context;\n }\n}\n\nexport const ROOT_CONTEXT = new Context();\n","import { ROOT_CONTEXT } from './context.js';\n\nexport class ContextManager {\n constructor() {\n this.currentContext = ROOT_CONTEXT;\n }\n\n active() {\n return this.currentContext;\n }\n\n enterContext(context) {\n const previousContext = this.currentContext;\n this.currentContext = context || ROOT_CONTEXT;\n return previousContext;\n }\n\n exitContext(context) {\n this.currentContext = context;\n return this.currentContext;\n }\n\n with(context, fn, thisArg, ...args) {\n const previousContext = this.enterContext(context);\n try {\n return fn.call(thisArg, ...args);\n } finally {\n this.exitContext(previousContext);\n }\n }\n}\n\nexport function createContextKey(key) {\n // Use Symbol for OpenTelemetry compatibility.\n return Symbol.for(key);\n}\n","/**\n * @module hrtime\n *\n * @description Methods for handling OpenTelemetry hrtime.\n */\n\n/**\n * Convert a duration in milliseconds to an OpenTelemetry hrtime tuple.\n *\n * @param {number} millis - The duration in milliseconds.\n * @returns {[number, number]} An array where the first element is seconds\n * and the second is nanoseconds.\n */\nfunction fromMillis(millis) {\n return [Math.trunc(millis / 1000), Math.round((millis % 1000) * 1e6)];\n}\n\n/**\n * Convert an OpenTelemetry hrtime tuple back to a duration in milliseconds.\n *\n * @param {[number, number]} hrtime - The hrtime tuple [seconds, nanoseconds].\n * @returns {number} The total duration in milliseconds.\n */\nfunction toMillis(hrtime) {\n return hrtime[0] * 1e3 + Math.round(hrtime[1] / 1e6);\n}\n\n/**\n * Convert an OpenTelemetry hrtime tuple back to a duration in nanoseconds.\n *\n * @param {[number, number]} hrtime - The hrtime tuple [seconds, nanoseconds].\n * @returns {number} The total duration in nanoseconds.\n */\nfunction toNanos(hrtime) {\n return hrtime[0] * 1e9 + hrtime[1];\n}\n\n/**\n * Adds two OpenTelemetry hrtime tuples.\n *\n * @param {[number, number]} a - The first hrtime tuple [s, ns].\n * @param {[number, number]} b - The second hrtime tuple [s, ns].\n * @returns {[number, number]} Summed hrtime tuple, normalized.\n *\n */\nfunction add(a, b) {\n return [a[0] + b[0] + Math.trunc((a[1] + b[1]) / 1e9), (a[1] + b[1]) % 1e9];\n}\n\n/**\n * Get the current high-resolution time as an OpenTelemetry hrtime tuple.\n *\n * @param {boolean} usePerformance=false - If true, uses the Performance API (timeOrigin + now()).\n *\n * @returns {[number, number]} The current hrtime tuple [s, ns].\n */\nfunction now(usePerformance = false) {\n if (usePerformance) {\n return add(\n fromMillis(performance.timeOrigin),\n fromMillis(performance.now()),\n );\n }\n return fromMillis(Date.now());\n}\n\n/**\n * Check if a value is a valid OpenTelemetry hrtime tuple.\n *\n * An hrtime tuple is an Array of exactly two numbers:\n * [seconds, nanoseconds]\n *\n * @param {*} value – anything to test\n * @returns {boolean} true if `value` is a [number, number] array of length 2\n *\n * @example\n * isHrTime([ 1, 500 ]); // true\n * isHrTime([ 0, 1e9 ]); // true\n * isHrTime([ '1', 500 ]); // false\n * isHrTime({ 0: 1, 1: 500 }); // false\n */\nfunction isHrTime(value) {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number'\n );\n}\n\n/**\n * Methods for handling hrtime. OpenTelemetry uses the [seconds, nanoseconds]\n * format for hrtime in the `ReadableSpan` interface.\n *\n * @example\n * import hrtime from '@tracing/hrtime.js';\n *\n * hrtime.fromMillis(1000);\n * hrtime.toMillis([0, 1000]);\n * hrtime.add([0, 0], [0, 1000]);\n * hrtime.now();\n * hrtime.isHrTime([0, 1000]);\n */\nexport default { fromMillis, toMillis, toNanos, add, now, isHrTime };\n","import hrtime from './hrtime.js';\n\n/**\n * SpanExporter is responsible for exporting ReadableSpan objects\n * and transforming them into the OTLP-compatible format.\n */\nexport class SpanExporter {\n constructor(api, options = {}) {\n this.api = api;\n this.options = options;\n }\n\n /**\n * Export spans to the span export queue\n *\n * @param {Array} spans - Array of ReadableSpan objects to export\n * @param {Function} _resultCallback - Optional callback (not used)\n */\n export(spans, _resultCallback) {\n spanExportQueue.push(...spans);\n }\n\n /**\n * Transforms an array of ReadableSpan objects into the OTLP format payload\n * compatible with the Rollbar API. This follows the OpenTelemetry protocol\n * specification for traces.\n *\n * @returns {Object} OTLP format payload for API transmission\n */\n toPayload() {\n const spans = spanExportQueue.slice();\n spanExportQueue.length = 0;\n\n if (!spans || !spans.length) {\n return { resourceSpans: [] };\n }\n\n const resource = (spans[0] && spans[0].resource) || {};\n\n const scopeMap = new Map();\n\n for (const span of spans) {\n const scopeKey = span.instrumentationScope\n ? `${span.instrumentationScope.name}:${span.instrumentationScope.version}`\n : 'default:1.0.0';\n\n if (!scopeMap.has(scopeKey)) {\n scopeMap.set(scopeKey, {\n scope: span.instrumentationScope || {\n name: 'default',\n version: '1.0.0',\n attributes: [],\n },\n spans: [],\n });\n }\n\n scopeMap.get(scopeKey).spans.push(this._transformSpan(span));\n }\n\n return {\n resourceSpans: [\n {\n resource: this._transformResource(resource),\n scopeSpans: Array.from(scopeMap.values()).map((scopeData) => ({\n scope: this._transformInstrumentationScope(scopeData.scope),\n spans: scopeData.spans,\n })),\n },\n ],\n };\n }\n\n /**\n * Sends the given payload to the Rollbar API.\n *\n * @param {String} payload - Serialized OTLP format payload\n * @param {Object} headers - Optional request headers\n * @returns {Promise} Promise that resolves when the request completes\n */\n post(payload, headers = {}) {\n return this.api.postSpans(payload, headers);\n }\n\n /**\n * Transforms a ReadableSpan into the OTLP Span format\n *\n * @private\n * @param {Object} span - ReadableSpan object to transform\n * @returns {Object} OTLP Span format\n */\n _transformSpan(span) {\n const transformAttributes = (attributes) => {\n return Object.entries(attributes || {}).map(([key, value]) => ({\n key,\n value: this._transformAnyValue(value),\n }));\n };\n\n const transformEvents = (events) => {\n return (events || []).map((event) => ({\n timeUnixNano: hrtime.toNanos(event.time),\n name: event.name,\n attributes: transformAttributes(event.attributes),\n }));\n };\n\n return {\n traceId: span.spanContext.traceId,\n spanId: span.spanContext.spanId,\n parentSpanId: span.parentSpanId || '',\n name: span.name,\n kind: span.kind || 1, // INTERNAL by default\n startTimeUnixNano: hrtime.toNanos(span.startTime),\n endTimeUnixNano: hrtime.toNanos(span.endTime),\n attributes: transformAttributes(span.attributes),\n events: transformEvents(span.events),\n };\n }\n\n /**\n * Transforms a resource object into OTLP Resource format\n *\n * @private\n * @param {Object} resource - Resource information\n * @returns {Object} OTLP Resource format\n */\n _transformResource(resource) {\n const attributes = resource.attributes || {};\n const keyValues = Object.entries(attributes).map(([key, value]) => ({\n key,\n value: this._transformAnyValue(value),\n }));\n\n return {\n attributes: keyValues,\n };\n }\n\n /**\n * Transforms an instrumentation scope into OTLP InstrumentationScope format\n *\n * @private\n * @param {Object} scope - Instrumentation scope information\n * @returns {Object} OTLP InstrumentationScope format\n */\n _transformInstrumentationScope(scope) {\n return {\n name: scope.name || '',\n version: scope.version || '',\n attributes: (scope.attributes || []).map((attr) => ({\n key: attr.key,\n value: this._transformAnyValue(attr.value),\n })),\n };\n }\n\n /**\n * Transforms a JavaScript value into an OTLP AnyValue\n *\n * @private\n * @param {any} value - Value to transform\n * @returns {Object} OTLP AnyValue format\n */\n _transformAnyValue(value) {\n if (value === null || value === undefined) {\n return { stringValue: '' };\n }\n\n const type = typeof value;\n\n if (type === 'string') {\n return { stringValue: value };\n } else if (type === 'number') {\n if (Number.isInteger(value)) {\n return { intValue: value.toString() };\n } else {\n return { doubleValue: value };\n }\n } else if (type === 'boolean') {\n return { boolValue: value };\n } else if (Array.isArray(value)) {\n return {\n arrayValue: {\n values: value.map((v) => this._transformAnyValue(v)),\n },\n };\n } else if (type === 'object') {\n return {\n kvlistValue: {\n values: Object.entries(value).map(([k, v]) => ({\n key: k,\n value: this._transformAnyValue(v),\n })),\n },\n };\n }\n\n return { stringValue: String(value) };\n }\n}\n\nexport const spanExportQueue = [];\n","/**\n * Generate a random hexadecimal ID of specified byte length\n *\n * @param {number} bytes - Number of bytes for the ID (default: 16)\n * @returns {string} - Hexadecimal string representation\n */\nfunction gen(bytes = 16) {\n let randomBytes = new Uint8Array(bytes);\n crypto.getRandomValues(randomBytes);\n let randHex = Array.from(randomBytes, (byte) =>\n byte.toString(16).padStart(2, '0'),\n ).join('');\n return randHex;\n}\n\n/**\n * Tracing id generation utils\n *\n * @example\n * import id from './id.js';\n *\n * const spanId = id.gen(8); // => \"a1b2c3d4e5f6...\"\n */\nexport default { gen };\n","import id from './id.js';\n\nconst SESSION_KEY = 'RollbarSession';\n\nexport class Session {\n _attributes;\n\n constructor(tracing, options) {\n this.options = options;\n this.tracing = tracing;\n this.window = tracing.window;\n this.session = null;\n this._attributes = {};\n }\n\n init(attrs = {}) {\n if (this.session) {\n return this;\n }\n this.getSession() || this.createSession();\n\n this.initSessionAttributes(attrs);\n\n return this;\n }\n\n getSession() {\n try {\n const serializedSession = this.window.sessionStorage.getItem(SESSION_KEY);\n\n if (!serializedSession) {\n return null;\n }\n\n this.session = JSON.parse(serializedSession);\n } catch {\n return null;\n }\n return this;\n }\n\n createSession() {\n this.session = {\n id: id.gen(),\n createdAt: Date.now(),\n };\n\n return this.setSession(this.session);\n }\n\n setSession(session) {\n const sessionString = JSON.stringify(session);\n\n try {\n this.window.sessionStorage.setItem(SESSION_KEY, sessionString);\n } catch {\n return null;\n }\n return this;\n }\n\n get attributes() {\n return this._attributes;\n }\n\n setAttributes(attributes) {\n this._attributes = { ...this._attributes, ...attributes };\n return this;\n }\n\n setUser(user) {\n this.setAttributes({\n 'user.id': user?.id,\n 'user.email': user?.email,\n 'user.name': user?.name || user?.username,\n });\n return this;\n }\n\n initSessionAttributes(attrs) {\n this.setAttributes({\n 'session.id': this.session.id,\n 'browser.brands': navigator.userAgentData?.brands,\n 'browser.language': navigator.language,\n 'browser.mobile': navigator.userAgentData?.mobile,\n 'browser.platform': navigator.userAgentData?.platform,\n 'client.address': '$remote_ip', // updated at the API\n 'rollbar.notifier.framework': 'browser-js',\n 'user_agent.original': navigator.userAgent,\n ...attrs,\n });\n return this;\n }\n}\n","let log = () => {};\n\nconst levels = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n disable: 4,\n};\n\nconst logger = {\n error: (...args) => log('error', args),\n warn: (...args) => log('warn', args),\n info: (...args) => log('info', args),\n debug: (...args) => log('debug', args),\n log: (...args) => log('info', args),\n init: ({ logLevel }) => {\n log = function (level, args) {\n if (levels[level] < levels[logLevel]) return;\n\n args.unshift('Rollbar:');\n\n // eslint-disable-next-line no-console\n console[level].apply(console, args);\n };\n },\n};\n\nexport default logger;\n","import logger from '../logger.js';\n\nexport class SpanProcessor {\n constructor(exporter, options = {}) {\n this.exporter = exporter;\n this.options = options;\n this.pendingSpans = new Map();\n this.transforms = [this.userTransform.bind(this)];\n }\n\n addTransform(transformFn) {\n this.transforms.unshift(transformFn);\n }\n\n userTransform(span) {\n if (this.options.transformSpan) {\n this.options.transformSpan({ span: span });\n }\n }\n\n applyTransforms(span) {\n for (const transform of this.transforms) {\n try {\n transform(span);\n } catch (e) {\n logger.error('Error running span transform callback', e);\n }\n }\n }\n\n onStart(span, _parentContext) {\n this.pendingSpans.set(span.span.spanContext.spanId, span);\n }\n\n onEnd(span) {\n this.applyTransforms(span.span);\n this.exporter.export([span.export()]);\n this.pendingSpans.delete(span.span.spanContext.spanId);\n }\n}\n","import hrtime from './hrtime.js';\n\nexport class Span {\n constructor(options) {\n this.usePerformance = options.usePerformance;\n this.initReadableSpan(options);\n\n this.spanProcessor = options.spanProcessor;\n this.spanProcessor.onStart(this, options.context);\n\n if (options.attributes) {\n this.setAttributes(options.attributes);\n }\n return this;\n }\n\n initReadableSpan(options) {\n this.span = {\n name: options.name,\n kind: options.kind,\n spanContext: options.spanContext,\n parentSpanId: options.parentSpanId,\n startTime: options.startTime || hrtime.now(options.usePerformance),\n endTime: [0, 0],\n status: { code: 0, message: '' },\n attributes: { 'session.id': options.session?.id },\n links: [],\n events: [],\n duration: 0,\n ended: false,\n resource: options.resource,\n instrumentationScope: options.scope,\n droppedAttributesCount: 0,\n droppedEventsCount: 0,\n droppedLinksCount: 0,\n };\n }\n\n spanContext() {\n return this.span.spanContext;\n }\n\n get spanId() {\n return this.span.spanContext.spanId;\n }\n\n get traceId() {\n return this.span.spanContext.traceId;\n }\n\n setAttribute(key, value) {\n if (value == null || this.span.ended) return this;\n if (key.length === 0) return this;\n\n this.span.attributes[key] = value;\n return this;\n }\n\n setAttributes(attributes) {\n for (const [k, v] of Object.entries(attributes)) {\n this.setAttribute(k, v);\n }\n return this;\n }\n\n addEvent(name, attributes = {}, time) {\n if (this.span.ended) return this;\n\n this.span.events.push({\n name,\n attributes,\n time: time || hrtime.now(),\n droppedAttributesCount: 0,\n });\n\n return this;\n }\n\n isRecording() {\n return this.span.ended === false;\n }\n\n end(attributes, time) {\n if (attributes) this.setAttributes(attributes);\n this.span.endTime = time || hrtime.now(this.usePerformance);\n this.span.ended = true;\n this.spanProcessor.onEnd(this);\n }\n\n export() {\n return this.span;\n }\n}\n","import id from './id.js';\nimport { Span } from './span.js';\n\nexport class Tracer {\n constructor(tracing, spanProcessor) {\n this.spanProcessor = spanProcessor;\n this.tracing = tracing;\n }\n\n startSpan(\n name,\n options = {},\n context = this.tracing.contextManager.active(),\n ) {\n const parentSpan = this.tracing.getSpan(context);\n const parentSpanContext = parentSpan?.spanContext();\n const spanId = id.gen(8);\n let traceId;\n let traceFlags = 0;\n let traceState = null;\n let parentSpanId;\n if (parentSpanContext) {\n traceId = parentSpanContext.traceId;\n traceState = parentSpanContext.traceState;\n parentSpanId = parentSpanContext.spanId;\n } else {\n traceId = id.gen(16);\n }\n\n const kind = 0;\n const spanContext = { traceId, spanId, traceFlags, traceState };\n const resource = {\n attributes: {\n ...(this.tracing.resource?.attributes || {}),\n ...(options.resource?.attributes || {}),\n },\n };\n\n const span = new Span({\n resource: resource,\n scope: this.tracing.scope,\n session: this.tracing.session?.session,\n context,\n spanContext,\n name,\n kind,\n parentSpanId,\n spanProcessor: this.spanProcessor,\n startTime: options.startTime,\n usePerformance: options.usePerformance,\n });\n return span;\n }\n}\n","import { ContextManager, createContextKey } from './contextManager.js';\nimport { SpanExporter } from './exporter.js';\nimport id from './id.js';\nimport { Session } from './session.js';\nimport { SpanProcessor } from './spanProcessor.js';\nimport { Tracer } from './tracer.js';\n\nconst SPAN_KEY = createContextKey('Rollbar Context Key SPAN');\n\nexport default class Tracing {\n constructor(gWindow, api, options) {\n this.api = api;\n this.options = options;\n this.window = gWindow;\n\n if (this.window.sessionStorage) {\n this.session = new Session(this, options);\n }\n this.createTracer();\n }\n\n configure(options) {\n // Options merge happens before configure is called, so we can just replace.\n this.options = options;\n }\n\n initSession() {\n if (this.session) {\n this.session.init();\n }\n }\n\n get sessionId() {\n if (this.session) {\n return this.session.session.id;\n }\n return null;\n }\n\n get resource() {\n return {\n attributes: {\n ...(this.options.resource || {}),\n 'rollbar.environment':\n this.options.payload?.environment ?? this.options.environment,\n },\n };\n }\n\n get scope() {\n return {\n name: 'rollbar-browser-js',\n version: this.options.version,\n };\n }\n\n idGen(bytes = 16) {\n return id.gen(bytes);\n }\n\n createTracer() {\n this.contextManager = new ContextManager();\n this.exporter = new SpanExporter(this.api, this.options);\n this.spanProcessor = new SpanProcessor(this.exporter, this.options.tracing);\n this.tracer = new Tracer(this, this.spanProcessor);\n }\n\n getTracer() {\n return this.tracer;\n }\n\n addSpanTransform(transformFn) {\n this.spanProcessor.addTransform(transformFn);\n }\n\n getSpan(context = this.contextManager.active()) {\n return context.getValue(SPAN_KEY);\n }\n\n setSpan(context = this.contextManager.active(), span) {\n return context.setValue(SPAN_KEY, span);\n }\n\n startSpan(name, options = {}, context = this.contextManager.active()) {\n return this.tracer.startSpan(name, options, context);\n }\n\n with(context, fn, thisArg, ...args) {\n return this.contextManager.with(context, fn, thisArg, ...args);\n }\n\n withSpan(name, options, fn, thisArg) {\n const span = this.startSpan(name, options);\n return this.with(\n this.setSpan(this.contextManager.active(), span),\n fn,\n thisArg,\n span,\n );\n }\n}\n","import traverse from './utility/traverse.js';\nimport * as _ from './utility.js';\n\nfunction raw(payload, jsonBackup) {\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction selectFrames(frames, range) {\n var len = frames.length;\n if (len > range * 2) {\n return frames.slice(0, range).concat(frames.slice(len - range));\n }\n return frames;\n}\n\nfunction truncateFrames(payload, jsonBackup, range) {\n range = typeof range === 'undefined' ? 30 : range;\n var body = payload.data.body;\n var frames;\n if (body.trace_chain) {\n var chain = body.trace_chain;\n for (const trace of chain) {\n frames = trace.frames;\n frames = selectFrames(frames, range);\n trace.frames = frames;\n }\n } else if (body.trace) {\n frames = body.trace.frames;\n frames = selectFrames(frames, range);\n body.trace.frames = frames;\n }\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction maybeTruncateValue(len, val) {\n if (!val) {\n return val;\n }\n if (val.length > len) {\n return val.slice(0, len - 3).concat('...');\n }\n return val;\n}\n\nfunction truncateStrings(len, payload, jsonBackup) {\n function truncator(k, v, seen) {\n switch (_.typeName(v)) {\n case 'string':\n return maybeTruncateValue(len, v);\n case 'object':\n case 'array':\n return traverse(v, truncator, seen);\n default:\n return v;\n }\n }\n payload = traverse(payload, truncator);\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction truncateTraceData(traceData) {\n if (traceData.exception) {\n delete traceData.exception.description;\n traceData.exception.message = maybeTruncateValue(\n 255,\n traceData.exception.message,\n );\n }\n traceData.frames = selectFrames(traceData.frames, 1);\n return traceData;\n}\n\nfunction minBody(payload, jsonBackup) {\n var body = payload.data.body;\n if (body.trace_chain) {\n var chain = body.trace_chain;\n for (const [index, trace] of chain.entries()) {\n chain[index] = truncateTraceData(trace);\n }\n } else if (body.trace) {\n body.trace = truncateTraceData(body.trace);\n }\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction needsTruncation(payload, maxSize) {\n return _.maxByteSize(payload) > maxSize;\n}\n\nfunction truncate(payload, jsonBackup, maxSize) {\n maxSize = typeof maxSize === 'undefined' ? 512 * 1024 : maxSize;\n var strategies = [\n raw,\n truncateFrames,\n truncateStrings.bind(null, 1024),\n truncateStrings.bind(null, 512),\n truncateStrings.bind(null, 256),\n minBody,\n ];\n var strategy, results, result;\n\n while ((strategy = strategies.shift())) {\n results = strategy(payload, jsonBackup);\n payload = results[0];\n result = results[1];\n if (result.error || !needsTruncation(result.value, maxSize)) {\n return result;\n }\n }\n return result;\n}\n\nexport default {\n truncate,\n\n /* for testing */\n raw,\n truncateFrames,\n truncateStrings,\n maybeTruncateValue,\n};\n","import * as _ from './utility.js';\n\nfunction buildPayload(data) {\n if (!_.isType(data.context, 'string')) {\n var contextResult = _.stringify(data.context);\n if (contextResult.error) {\n data.context = \"Error: could not serialize 'context'\";\n } else {\n data.context = contextResult.value || '';\n }\n if (data.context.length > 255) {\n data.context = data.context.substr(0, 255);\n }\n }\n return {\n data: data,\n };\n}\n\nfunction getTransportFromOptions(options, defaults, url) {\n var hostname = defaults.hostname;\n var protocol = defaults.protocol;\n var port = defaults.port;\n var path = defaults.path;\n var search = defaults.search;\n var timeout = options.timeout;\n var transport = detectTransport(options);\n\n var proxy = options.proxy;\n if (options.endpoint) {\n var opts = url.parse(options.endpoint);\n hostname = opts.hostname;\n protocol = opts.protocol;\n port = opts.port;\n path = opts.pathname;\n search = opts.search;\n }\n return {\n timeout: timeout,\n hostname: hostname,\n protocol: protocol,\n port: port,\n path: path,\n search: search,\n proxy: proxy,\n transport: transport,\n };\n}\n\nfunction detectTransport(options) {\n var gWindow =\n (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && self);\n var transport = options.defaultTransport || 'xhr';\n if (typeof gWindow.fetch === 'undefined') transport = 'xhr';\n if (typeof gWindow.XMLHttpRequest === 'undefined') transport = 'fetch';\n return transport;\n}\n\nfunction transportOptions(transport, method) {\n var protocol = transport.protocol || 'https:';\n var port =\n transport.port ||\n (protocol === 'http:' ? 80 : protocol === 'https:' ? 443 : undefined);\n var hostname = transport.hostname;\n var path = transport.path;\n var timeout = transport.timeout;\n var transportAPI = transport.transport;\n if (transport.search) {\n path = path + transport.search;\n }\n if (transport.proxy) {\n path = protocol + '//' + hostname + path;\n hostname = transport.proxy.host || transport.proxy.hostname;\n port = transport.proxy.port;\n protocol = transport.proxy.protocol || protocol;\n }\n return {\n timeout: timeout,\n protocol: protocol,\n hostname: hostname,\n path: path,\n port: port,\n method: method,\n transport: transportAPI,\n };\n}\n\nfunction appendPathToPath(base, path) {\n var baseTrailingSlash = /\\/$/.test(base);\n var pathBeginningSlash = /^\\//.test(path);\n\n if (baseTrailingSlash && pathBeginningSlash) {\n path = path.substring(1);\n } else if (!baseTrailingSlash && !pathBeginningSlash) {\n path = '/' + path;\n }\n\n return base + path;\n}\n\nexport {\n buildPayload,\n getTransportFromOptions,\n transportOptions,\n appendPathToPath,\n};\n","import * as helpers from './apiUtility.js';\nimport { stringify, merge } from './utility.js';\n\nconst defaultOptions = {\n hostname: 'api.rollbar.com',\n path: '/api/1/item/',\n search: null,\n version: '1',\n protocol: 'https:',\n port: 443,\n};\n\nconst OTLPDefaultOptions = {\n hostname: 'api.rollbar.com',\n path: '/api/1/session/',\n search: null,\n version: '1',\n protocol: 'https:',\n port: 443,\n};\n\n/**\n * Api encapsulates methods of communicating with the Rollbar API. It is a\n * standard interface with some parts implemented differently for server or\n * browser contexts. It is an object that should be instantiated when used so\n * it can contain non-global options that may be different for another instance\n * of RollbarApi.\n */\nclass Api {\n /**\n * @param {Object} options - Configuration supplied from the parent Rollbar instance.\n * @param {string} options.accessToken - Token used to authenticate API calls.\n * @param {string} [options.endpoint] - Optional fully qualified URL overriding\n * the default `https://api.rollbar.com/api/1/item`.\n * @param {Object} [options.proxy] - Optional proxy descriptor containing:\n * `host`/`hostname` (required), `port`, and `protocol`.\n * @param {Object} transport - Adapter implementing `post` and `postJsonPayload`.\n * @param {Object} urllib - Minimal URL helper used for option normalization.\n * @param {Object} truncation - Optional truncation helper for payload size enforcement.\n */\n constructor(options, transport, urllib, truncation) {\n this.options = options;\n this.transport = transport;\n this.url = urllib;\n this.truncation = truncation;\n this.accessToken = options.accessToken;\n this.transportOptions = _getTransport(options, urllib);\n this.OTLPTransportOptions = _getOTLPTransport(options, urllib);\n }\n\n /**\n * Wraps transport.post in a Promise to support async/await\n *\n * @param {Object} options - Options for the API request\n * @param {string} options.accessToken - The access token for authentication\n * @param {Object} options.transportOptions - Options for the transport\n * @param {Object} options.payload - The data payload to send\n * @returns {Promise} A promise that resolves with the response or rejects with an error\n * @private\n */\n _postPromise({ accessToken, options, payload, headers }) {\n return new Promise((resolve, reject) => {\n this.transport.post({\n accessToken,\n options,\n payload,\n headers,\n callback: (err, resp) => (err ? reject(err) : resolve(resp)),\n });\n });\n }\n\n /**\n *\n * @param data\n * @param callback\n */\n postItem(data, callback) {\n const options = helpers.transportOptions(this.transportOptions, 'POST');\n const payload = helpers.buildPayload(data);\n\n // ensure the network request is scheduled after the current tick.\n setTimeout(() => {\n this.transport.post({\n accessToken: this.accessToken,\n options,\n payload,\n callback,\n });\n }, 0);\n }\n\n /**\n * Posts spans to the Rollbar API using the session endpoint\n *\n * @param {Array} payload - The spans to send\n * @returns {Promise<Object>} A promise that resolves with the API response\n */\n async postSpans(payload, headers = {}) {\n const options = helpers.transportOptions(this.OTLPTransportOptions, 'POST');\n\n return this._postPromise({\n accessToken: this.accessToken,\n options,\n payload,\n headers,\n });\n }\n\n /**\n *\n * @param data\n * @param callback\n */\n buildJsonPayload(data, callback) {\n const payload = helpers.buildPayload(data);\n\n let stringifyResult;\n if (this.truncation) {\n stringifyResult = this.truncation.truncate(payload);\n } else {\n stringifyResult = stringify(payload);\n }\n\n if (stringifyResult.error) {\n if (callback) {\n callback(stringifyResult.error);\n }\n return null;\n }\n\n return stringifyResult.value;\n }\n\n /**\n *\n * @param jsonPayload\n * @param callback\n */\n postJsonPayload(jsonPayload, callback) {\n const transportOptions = helpers.transportOptions(\n this.transportOptions,\n 'POST',\n );\n this.transport.postJsonPayload(\n this.accessToken,\n transportOptions,\n jsonPayload,\n callback,\n );\n }\n\n configure(options) {\n const oldOptions = this.options;\n this.options = merge(oldOptions, options);\n this.transportOptions = _getTransport(this.options, this.url);\n this.OTLPTransportOptions = _getOTLPTransport(this.options, this.url);\n if (this.options.accessToken !== undefined) {\n this.accessToken = this.options.accessToken;\n }\n return this;\n }\n}\n\nfunction _getTransport(options, url) {\n return helpers.getTransportFromOptions(options, defaultOptions, url);\n}\n\nfunction _getOTLPTransport(options, url) {\n options = { ...options, endpoint: options.tracing?.endpoint };\n return helpers.getTransportFromOptions(options, OTLPDefaultOptions, url);\n}\n\nexport default Api;\n","/**\n * Default options shared across platforms\n */\nexport const version = '3.1.0';\nexport const endpoint = 'api.rollbar.com/api/1/item/';\nexport const logLevel = 'debug';\nexport const reportLevel = 'debug';\nexport const uncaughtErrorLevel = 'error';\nexport const maxItems = 0;\nexport const itemsPerMin = 60;\n\nexport const commonScrubFields = [\n 'pw',\n 'pass',\n 'passwd',\n 'password',\n 'secret',\n 'confirm_password',\n 'confirmPassword',\n 'password_confirmation',\n 'passwordConfirmation',\n 'access_token',\n 'accessToken',\n 'X-Rollbar-Access-Token',\n 'secret_key',\n 'secretKey',\n 'secretToken',\n];\n\nexport const apiScrubFields = [\n 'api_key',\n 'authenticity_token',\n 'oauth_token',\n 'token',\n 'user_session_secret',\n];\n\nexport const requestScrubFields = [\n 'request.session.csrf',\n 'request.session._csrf',\n 'request.params._csrf',\n 'request.cookie',\n 'request.cookies',\n];\n\nexport const commonScrubHeaders = [\n 'authorization',\n 'www-authorization',\n 'http_authorization',\n 'omniauth.auth',\n 'cookie',\n 'oauth-access-token',\n 'x-access-token',\n 'x_csrf_token',\n 'http_x_csrf_token',\n 'x-csrf-token',\n];\n\n// For backward compatibility with default export\nexport default {\n version,\n endpoint,\n logLevel,\n reportLevel,\n uncaughtErrorLevel,\n maxItems,\n itemsPerMin,\n};\n","const FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\nconst CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\nconst SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\nfunction parse(error, options) {\n if (typeof error.stacktrace !== \"undefined\" || typeof error[\"opera#sourceloc\"] !== \"undefined\")\n return parseOpera(error, options);\n else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP))\n return parseV8OrIE(error, options);\n else if (error.stack)\n return parseFFOrSafari(error, options);\n else if (options?.allowEmpty)\n return [];\n else\n throw new Error(\"Cannot parse given Error object\");\n}\nfunction parseStack(stackString, options) {\n if (stackString.match(CHROME_IE_STACK_REGEXP))\n return parseV8OrIeString(stackString, options);\n else\n return parseFFOrSafariString(stackString, options);\n}\nfunction extractLocation(urlLike) {\n if (!urlLike.includes(\":\"))\n return [urlLike, undefined, undefined];\n const regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n const parts = regExp.exec(urlLike.replace(/[()]/g, \"\"));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n}\nfunction applySlice(lines, options) {\n if (options && options.slice != null) {\n if (Array.isArray(options.slice))\n return lines.slice(options.slice[0], options.slice[1]);\n return lines.slice(0, options.slice);\n }\n return lines;\n}\nfunction parseV8OrIE(error, options) {\n return parseV8OrIeString(error.stack, options);\n}\nfunction parseV8OrIeString(stack, options) {\n const filtered = applySlice(\n stack.split(\"\\n\").filter((line) => {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }),\n options\n );\n return filtered.map((line) => {\n if (line.includes(\"(eval \")) {\n line = line.replace(/eval code/g, \"eval\").replace(/(\\(eval at [^()]*)|(,.*$)/g, \"\");\n }\n let sanitizedLine = line.replace(/^\\s+/, \"\").replace(/\\(eval code/g, \"(\").replace(/^.*?\\s+/, \"\");\n const location = sanitizedLine.match(/ (\\(.+\\)$)/);\n sanitizedLine = location ? sanitizedLine.replace(location[0], \"\") : sanitizedLine;\n const locationParts = extractLocation(location ? location[1] : sanitizedLine);\n const functionName = location && sanitizedLine || undefined;\n const fileName = [\"eval\", \"<anonymous>\"].includes(locationParts[0]) ? undefined : locationParts[0];\n return {\n function: functionName,\n file: fileName,\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n });\n}\nfunction parseFFOrSafari(error, options) {\n return parseFFOrSafariString(error.stack, options);\n}\nfunction parseFFOrSafariString(stack, options) {\n const filtered = applySlice(\n stack.split(\"\\n\").filter((line) => {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }),\n options\n );\n return filtered.map((line) => {\n if (line.includes(\" > eval\"))\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, \":$1\");\n if (!line.includes(\"@\") && !line.includes(\":\")) {\n return {\n function: line\n };\n } else {\n const functionNameRegex = /(([^\\n\\r\"\\u2028\\u2029]*\".[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*(?:@[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*)*(?:[\\n\\r\\u2028\\u2029][^@]*)?)?[^@]*)@/;\n const matches = line.match(functionNameRegex);\n const functionName = matches && matches[1] ? matches[1] : undefined;\n const locationParts = extractLocation(line.replace(functionNameRegex, \"\"));\n return {\n function: functionName,\n file: locationParts[0],\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n }\n });\n}\nfunction parseOpera(e, options) {\n if (!e.stacktrace || e.message.includes(\"\\n\") && e.message.split(\"\\n\").length > e.stacktrace.split(\"\\n\").length)\n return parseOpera9(e);\n else if (!e.stack)\n return parseOpera10(e);\n else\n return parseOpera11(e, options);\n}\nfunction parseOpera9(e, options) {\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n const lines = e.message.split(\"\\n\");\n const result = [];\n for (let i = 2, len = lines.length; i < len; i += 2) {\n const match = lineRE.exec(lines[i]);\n if (match) {\n result.push({\n file: match[2],\n line: +match[1],\n raw: lines[i]\n });\n }\n }\n return applySlice(result, options);\n}\nfunction parseOpera10(e, options) {\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n const lines = e.stacktrace.split(\"\\n\");\n const result = [];\n for (let i = 0, len = lines.length; i < len; i += 2) {\n const match = lineRE.exec(lines[i]);\n if (match) {\n result.push({\n function: match[3] || undefined,\n file: match[2],\n line: match[1] ? +match[1] : undefined,\n raw: lines[i]\n });\n }\n }\n return applySlice(result, options);\n}\nfunction parseOpera11(error, options) {\n const filtered = applySlice(\n // @ts-expect-error missing stack property\n error.stack.split(\"\\n\").filter((line) => {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }),\n options\n );\n return filtered.map((line) => {\n const tokens = line.split(\"@\");\n const locationParts = extractLocation(tokens.pop());\n const functionCall = tokens.shift() || \"\";\n const functionName = functionCall.replace(/<anonymous function(: (\\w+))?>/, \"$2\").replace(/\\([^)]*\\)/g, \"\") || undefined;\n let argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/))\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, \"$1\");\n const args = argsRaw === undefined || argsRaw === \"[arguments not available]\" ? undefined : argsRaw.split(\",\");\n return {\n function: functionName,\n args,\n file: locationParts[0],\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n });\n}\n\nexport { extractLocation, parse, parseFFOrSafari, parseFFOrSafariString, parseOpera, parseOpera10, parseOpera11, parseOpera9, parseStack, parseV8OrIE, parseV8OrIeString };\n","import { parse as parse$1, parseV8OrIE as parseV8OrIE$1, parseFFOrSafari as parseFFOrSafari$1, parseOpera as parseOpera$1, parseOpera9 as parseOpera9$1, parseOpera10 as parseOpera10$1, parseOpera11 as parseOpera11$1 } from './lite.mjs';\nexport { extractLocation } from './lite.mjs';\n\nfunction stackframesLiteToStackframes(liteStackframes) {\n return liteStackframes.map((liteStackframe) => {\n return {\n functionName: liteStackframe.function,\n args: liteStackframe.args,\n fileName: liteStackframe.file,\n lineNumber: liteStackframe.line,\n columnNumber: liteStackframe.col,\n source: liteStackframe.raw\n };\n });\n}\nfunction parse(error, options) {\n return stackframesLiteToStackframes(parse$1(error, options));\n}\nfunction parseV8OrIE(error) {\n return stackframesLiteToStackframes(parseV8OrIE$1(error));\n}\nfunction parseFFOrSafari(error) {\n return stackframesLiteToStackframes(parseFFOrSafari$1(error));\n}\nfunction parseOpera(e) {\n return stackframesLiteToStackframes(parseOpera$1(e));\n}\nfunction parseOpera9(e) {\n return stackframesLiteToStackframes(parseOpera9$1(e));\n}\nfunction parseOpera10(e) {\n return stackframesLiteToStackframes(parseOpera10$1(e));\n}\nfunction parseOpera11(error) {\n return stackframesLiteToStackframes(parseOpera11$1(error));\n}\n\nexport { parse, parseFFOrSafari, parseOpera, parseOpera10, parseOpera11, parseOpera9, parseV8OrIE };\n","import { parse as parseErrorStack } from 'error-stack-parser-es';\n\nvar UNKNOWN_FUNCTION = '?';\nvar ERR_CLASS_REGEXP = new RegExp(\n '^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ',\n);\n\nfunction guessFunctionName() {\n return UNKNOWN_FUNCTION;\n}\n\nfunction gatherContext() {\n return null;\n}\n\nfunction Frame(stackFrame) {\n var data = {};\n\n data._stackFrame = stackFrame;\n\n data.url = stackFrame.fileName;\n data.line = stackFrame.lineNumber;\n data.func = stackFrame.functionName;\n data.column = stackFrame.columnNumber;\n data.args = stackFrame.args;\n\n data.context = gatherContext();\n\n return data;\n}\n\nfunction Stack(exception, skip) {\n function getStack() {\n var parserStack = [];\n\n skip = skip || 0;\n\n try {\n parserStack = parseErrorStack(exception);\n } catch (_e) {\n parserStack = [];\n }\n\n var stack = [];\n\n for (var i = skip; i < parserStack.length; i++) {\n stack.push(new Frame(parserStack[i]));\n }\n\n return stack;\n }\n\n return {\n stack: getStack(),\n message: exception.message,\n name: _mostSpecificErrorName(exception),\n rawStack: exception.stack,\n rawException: exception,\n };\n}\n\nfunction parse(e, skip) {\n var err = e;\n\n if (err.nested || err.cause) {\n var traceChain = [];\n while (err) {\n traceChain.push(new Stack(err, skip));\n err = err.nested || err.cause;\n\n skip = 0; // Only apply skip value to primary error\n }\n\n // Return primary error with full trace chain attached.\n traceChain[0].traceChain = traceChain;\n return traceChain[0];\n } else {\n return new Stack(err, skip);\n }\n}\n\nfunction guessErrorClass(errMsg) {\n if (!errMsg || !errMsg.match) {\n return ['Unknown error. There was no error message to display.', ''];\n }\n var errClassMatch = errMsg.match(ERR_CLASS_REGEXP);\n var errClass = '(unknown)';\n\n if (errClassMatch) {\n errClass = errClassMatch[errClassMatch.length - 1];\n errMsg = errMsg.replace(\n (errClassMatch[errClassMatch.length - 2] || '') + errClass + ':',\n '',\n );\n errMsg = errMsg.replace(/(^[\\s]+|[\\s]+$)/g, '');\n }\n return [errClass, errMsg];\n}\n\n// * Prefers any value over an empty string\n// * Prefers any value over 'Error' where possible\n// * Prefers name over constructor.name when both are more specific than 'Error'\nfunction _mostSpecificErrorName(error) {\n var name = error.name && error.name.length && error.name;\n var constructorName =\n error.constructor.name &&\n error.constructor.name.length &&\n error.constructor.name;\n\n if (!name || !constructorName) {\n return name || constructorName;\n }\n\n if (name === 'Error') {\n return constructorName;\n }\n return name;\n}\n\nexport default {\n guessFunctionName,\n guessErrorClass,\n gatherContext,\n parse,\n Stack,\n Frame,\n};\n","import * as _ from './utility.js';\n\nfunction checkLevel(item, settings) {\n var level = item.level;\n var levelVal = _.LEVELS[level] || 0;\n var reportLevel = settings.reportLevel;\n var reportLevelVal = _.LEVELS[reportLevel] || 0;\n\n if (levelVal < reportLevelVal) {\n return false;\n }\n return true;\n}\n\nfunction userCheckIgnore(logger) {\n return function (item, settings) {\n var isUncaught = Boolean(item._isUncaught);\n delete item._isUncaught;\n var args = item._originalArgs;\n delete item._originalArgs;\n try {\n if (_.isFunction(settings.onSendCallback)) {\n settings.onSendCallback(isUncaught, args, item);\n }\n } catch (e) {\n settings.onSendCallback = null;\n logger.error('Error while calling onSendCallback, removing', e);\n }\n try {\n if (\n _.isFunction(settings.checkIgnore) &&\n settings.checkIgnore(isUncaught, args, item)\n ) {\n return false;\n }\n } catch (e) {\n settings.checkIgnore = null;\n logger.error('Error while calling custom checkIgnore(), removing', e);\n }\n return true;\n };\n}\n\nfunction urlIsNotBlockListed(logger) {\n return function (item, settings) {\n return !urlIsOnAList(item, settings, 'blocklist', logger);\n };\n}\n\nfunction urlIsSafeListed(logger) {\n return function (item, settings) {\n return urlIsOnAList(item, settings, 'safelist', logger);\n };\n}\n\nfunction matchFrames(trace, list, block) {\n if (!trace) {\n return !block;\n }\n\n var frames = trace.frames;\n\n if (!frames || frames.length === 0) {\n return !block;\n }\n\n var frame, filename, url, urlRegex;\n var listLength = list.length;\n var frameLength = frames.length;\n for (var i = 0; i < frameLength; i++) {\n frame = frames[i];\n filename = frame.filename;\n\n if (!_.isType(filename, 'string')) {\n return !block;\n }\n\n for (var j = 0; j < listLength; j++) {\n url = list[j];\n urlRegex = new RegExp(url);\n\n if (urlRegex.test(filename)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction urlIsOnAList(item, settings, safeOrBlock, logger) {\n // safelist is the default\n var block = false;\n if (safeOrBlock === 'blocklist') {\n block = true;\n }\n\n var list, traces;\n try {\n list = block ? settings.hostBlockList : settings.hostSafeList;\n traces = _.get(item, 'body.trace_chain') || [_.get(item, 'body.trace')];\n\n // These two checks are important to come first as they are defaults\n // in case the list is missing or the trace is missing or not well-formed\n if (!list || list.length === 0) {\n return !block;\n }\n if (traces.length === 0 || !traces[0]) {\n return !block;\n }\n\n var tracesLength = traces.length;\n for (var i = 0; i < tracesLength; i++) {\n if (matchFrames(traces[i], list, block)) {\n return true;\n }\n }\n } catch (\n e\n /* istanbul ignore next */\n ) {\n if (block) {\n settings.hostBlockList = null;\n } else {\n settings.hostSafeList = null;\n }\n var listName = block ? 'hostBlockList' : 'hostSafeList';\n logger.error(\n \"Error while reading your configuration's \" +\n listName +\n ' option. Removing custom ' +\n listName +\n '.',\n e,\n );\n return !block;\n }\n return false;\n}\n\nfunction messageIsIgnored(logger) {\n return function (item, settings) {\n var i, j, ignoredMessages, len, messageIsIgnored, rIgnoredMessage, messages;\n\n try {\n messageIsIgnored = false;\n ignoredMessages = settings.ignoredMessages;\n\n if (!ignoredMessages || ignoredMessages.length === 0) {\n return true;\n }\n\n messages = messagesFromItem(item);\n\n if (messages.length === 0) {\n return true;\n }\n\n len = ignoredMessages.length;\n for (i = 0; i < len; i++) {\n rIgnoredMessage = new RegExp(ignoredMessages[i], 'gi');\n\n for (j = 0; j < messages.length; j++) {\n messageIsIgnored = rIgnoredMessage.test(messages[j]);\n\n if (messageIsIgnored) {\n return false;\n }\n }\n }\n } catch (\n _e\n /* istanbul ignore next */\n ) {\n settings.ignoredMessages = null;\n logger.error(\n \"Error while reading your configuration's ignoredMessages option. Removing custom ignoredMessages.\",\n );\n }\n\n return true;\n };\n}\n\nfunction messagesFromItem(item) {\n var body = item.body;\n var messages = [];\n\n // The payload schema only allows one of trace_chain, message, or trace.\n // However, existing test cases are based on having both trace and message present.\n // So here we preserve the ability to collect strings from any combination of these keys.\n if (body.trace_chain) {\n var traceChain = body.trace_chain;\n for (const trace of traceChain) {\n messages.push(_.get(trace, 'exception.message'));\n }\n }\n if (body.trace) {\n messages.push(_.get(body, 'trace.exception.message'));\n }\n if (body.message) {\n messages.push(_.get(body, 'message.body'));\n }\n return messages;\n}\n\nexport {\n checkLevel,\n userCheckIgnore,\n urlIsNotBlockListed,\n urlIsSafeListed,\n messageIsIgnored,\n};\n","import { merge, isFunction } from './utility.js';\n\n/*\n * Notifier - delegates between the client exposed API, the chain of transforms\n * necessary to turn an item into something that can be sent to Rollbar, and the\n * queue which handles the communcation with the Rollbar API servers.\n */\nexport default class Notifier {\n /**\n *\n * @param {Object} queue - an object that conforms to the interface:\n * `addItem(item, callback)`\n * @param {Object} options - an object representing the options to be set for\n * this notifier, this should have any defaults already set by the caller\n */\n constructor(queue, options) {\n this.queue = queue;\n this.options = options;\n this.transforms = [];\n this.diagnostic = {};\n }\n\n /**\n * configure - updates the options for this notifier with the passed in object\n *\n * @param {Object} options - an object which gets merged with the current\n * options set on this notifier\n * @returns this\n */\n configure(options) {\n this.queue?.configure(options);\n const oldOptions = this.options;\n this.options = merge(oldOptions, options);\n return this;\n }\n\n /**\n * Adds a transform onto the end of the queue of transforms for this notifier\n *\n * @param {Function} transform - a function which takes three arguments:\n * - item: An Object representing the data to eventually be sent to Rollbar\n * - options: The current value of the options for this notifier\n * - callback: `function(err: (Null|Error), item: (Null|Object))` the\n * transform must call this callback with a null value for error if it\n * wants the processing chain to continue, otherwise with an error to\n * terminate the processing. The item should be the updated item after\n * this transform is finished modifying it.\n */\n addTransform(transform) {\n if (isFunction(transform)) {\n this.transforms.push(transform);\n }\n return this;\n }\n\n /**\n * The internal log function which applies the configured transforms and then\n * pushes onto the queue to be sent to the backend.\n *\n * @param {Object} item - An object with the following structure:\n * - message [String] - An optional string to be sent to rollbar\n * - error [Error] - An optional error\n * @param {Function} callback - A function of type `function(err, resp)` which\n * will be called with exactly one null argument and one non-null argument.\n * The callback will be called once, either during the transform stage if\n * an error occurs inside a transform, or in response to the communication\n * with the backend. The second argument will be the response from the\n * backend in case of success.\n */\n log(item, callback) {\n callback = isFunction(callback) ? callback : () => {};\n\n if (!this.options.enabled) {\n return callback(new Error('Rollbar is not enabled'), null);\n }\n\n this.queue.addPendingItem(item);\n const originalError = item.err;\n this._applyTransforms(item, (err, i) => {\n if (err) {\n this.queue.removePendingItem(item);\n return callback(err, null);\n }\n this.queue.addItem(i, callback, originalError, item);\n });\n }\n\n /* Internal */\n\n /**\n * Applies the transforms that have been added to this notifier sequentially.\n * See `addTransform` for more information.\n *\n * @param {Object} item - An item to be transformed\n * @param {Function} callback - A function of type `function(err, item)` which\n * will be called with a non-null error and a null item in the case of a\n * transform failure, or a null error and non-null item after all\n * transforms have been applied.\n */\n _applyTransforms(item, callback) {\n let transformIndex = -1;\n const transformsLength = this.transforms.length;\n const transforms = this.transforms;\n const options = this.options;\n\n const next = (err, i) => {\n if (err) {\n callback(err, null);\n return;\n }\n\n transformIndex++;\n\n if (transformIndex === transformsLength) {\n callback(null, i);\n return;\n }\n\n transforms[transformIndex](i, options, next);\n };\n\n next(null, item);\n }\n}\n","import * as _ from './utility.js';\n\n/**\n * Queue - an object which handles which handles a queue of items to be sent to Rollbar.\n * This object handles rate limiting via a passed in rate limiter, retries based on connection\n * errors, and filtering of items based on a set of configurable predicates. The communication to\n * the backend is performed via a given API object.\n */\nclass Queue {\n /**\n * @param rateLimiter - An object which conforms to the interface\n * `rateLimiter.shouldSend(item) -> bool`\n * @param api - An object which conforms to the interface\n * `api.postItem(payload, function(err, response))`\n * @param logger - An object used to log verbose messages if desired\n * @param options - see `Queue.prototype.configure`\n * @param replay - Optional `Replay` for coordinating session replay with error occurrences\n */\n constructor(rateLimiter, api, logger, options, replay) {\n this.rateLimiter = rateLimiter;\n this.api = api;\n this.logger = logger;\n this.options = options;\n this.replay = replay;\n this.predicates = [];\n this.pendingItems = [];\n this.pendingRequests = [];\n this.retryQueue = [];\n this.retryHandle = null;\n this.waitCallback = null;\n this.waitIntervalID = null;\n }\n\n /**\n * configure - updates the options this queue uses\n *\n * @param options\n */\n configure(options) {\n this.api?.configure(options);\n const oldOptions = this.options;\n this.options = _.merge(oldOptions, options);\n return this;\n }\n\n /**\n * addPredicate - adds a predicate to the end of the list of predicates for this queue\n *\n * @param predicate - function(item, options) -> (bool|{err: Error})\n * Returning true means that this predicate passes and the item is okay to go on the queue\n * Returning false means do not add the item to the queue, but it is not an error\n * Returning {err: Error} means do not add the item to the queue, and the given error explains why\n * Returning {err: undefined} is equivalent to returning true but don't do that\n */\n addPredicate(predicate) {\n if (_.isFunction(predicate)) {\n this.predicates.push(predicate);\n }\n return this;\n }\n\n addPendingItem(item) {\n this.pendingItems.push(item);\n }\n\n removePendingItem(item) {\n const idx = this.pendingItems.indexOf(item);\n if (idx !== -1) {\n this.pendingItems.splice(idx, 1);\n }\n }\n\n /**\n * addItem - Send an item to the Rollbar API if all of the predicates are satisfied\n *\n * @param item - Item instance with the payload to send to the backend\n * @param callback - function(error, repsonse) which will be called with the response from the API\n * in the case of a success, otherwise response will be null and error will have a value. If both\n * error and response are null then the item was stopped by a predicate which did not consider this\n * to be an error condition, but nonetheless did not send the item to the API.\n * @param originalError - The original error before any transformations that is to be logged if any\n * @param originalItem - The original item before transforms, used in pendingItems queue\n */\n addItem(item, callback, originalError, originalItem) {\n if (!callback || !_.isFunction(callback)) {\n callback = function () {\n return;\n };\n }\n const data = item.data;\n const predicateResult = this._applyPredicates(data);\n if (predicateResult.stop) {\n this.removePendingItem(originalItem);\n callback(predicateResult.err);\n return;\n }\n this._maybeLog(data, originalError);\n this.removePendingItem(originalItem);\n if (!this.options.transmit) {\n callback(new Error('Transmit disabled'));\n return;\n }\n\n if (this.replay && data.body) {\n item.replayId = this.replay.capture(null, data.uuid, {\n type: 'occurrence',\n level: item.level,\n });\n\n if (item.replayId) {\n _.addItemAttributes(item.data, [\n { key: 'replay_id', value: item.replayId },\n ]);\n }\n }\n\n this.pendingRequests.push(data);\n try {\n this._makeApiRequest(data, (err, resp, headers) => {\n this._dequeuePendingRequest(data);\n\n if (item.replayId) {\n this.replay.sendOrDiscardReplay(item.replayId, err, resp, headers);\n }\n\n callback(err, resp);\n });\n } catch (err) {\n this._dequeuePendingRequest(data);\n\n if (item.replayId) {\n this.replay?.discard(item.replayId);\n }\n\n callback(err);\n }\n }\n\n /**\n * wait - Stop any further errors from being added to the queue, and get called back when all items\n * currently processing have finished sending to the backend.\n *\n * @param callback - function() called when all pending items have been sent\n */\n wait(callback) {\n if (!_.isFunction(callback)) {\n return;\n }\n this.waitCallback = callback;\n if (this._maybeCallWait()) {\n return;\n }\n if (this.waitIntervalID) {\n this.waitIntervalID = clearInterval(this.waitIntervalID);\n }\n this.waitIntervalID = setInterval(() => {\n this._maybeCallWait();\n }, 500);\n }\n\n /**\n * Sequentially applies the predicates that have been added to the queue to the\n * given item with the currently configured options.\n *\n * @param item - An item in the queue\n * @returns {stop: bool, err: (Error|null)} - stop being true means do not add item to the queue,\n * the error value should be passed up to a callbak if we are stopping.\n */\n _applyPredicates(item) {\n let p = null;\n for (let i = 0, len = this.predicates.length; i < len; i++) {\n p = this.predicates[i](item, this.options);\n if (!p || p.err !== undefined) {\n return { stop: true, err: p.err };\n }\n }\n return { stop: false, err: null };\n }\n\n /**\n * Send an item to Rollbar, callback when done, if there is an error make an\n * effort to retry if we are configured to do so.\n *\n * @param item - an item ready to send to the backend\n * @param callback - function(err, response)\n */\n _makeApiRequest(item, callback) {\n const rateLimitResponse = this.rateLimiter.shouldSend(item);\n if (rateLimitResponse.shouldSend) {\n this.api.postItem(item, (err, resp, headers) => {\n if (err) {\n this._maybeRetry(err, item, callback);\n } else {\n callback(err, resp, headers);\n }\n });\n } else if (rateLimitResponse.error) {\n callback(rateLimitResponse.error);\n } else {\n this.api.postItem(rateLimitResponse.payload, callback);\n }\n }\n\n // These are errors basically mean there is no internet connection\n static RETRIABLE_ERRORS = [\n 'ECONNRESET',\n 'ENOTFOUND',\n 'ESOCKETTIMEDOUT',\n 'ETIMEDOUT',\n 'ECONNREFUSED',\n 'EHOSTUNREACH',\n 'EPIPE',\n 'EAI_AGAIN',\n ];\n\n /**\n * Given the error returned by the API, decide if we should retry or just callback\n * with the error.\n *\n * @param err - an error returned by the API transport\n * @param item - the item that was trying to be sent when this error occured\n * @param callback - function(err, response)\n */\n _maybeRetry(err, item, callback) {\n let shouldRetry = false;\n if (this.options.retryInterval) {\n for (let i = 0, len = Queue.RETRIABLE_ERRORS.length; i < len; i++) {\n if (err.code === Queue.RETRIABLE_ERRORS[i]) {\n shouldRetry = true;\n break;\n }\n }\n if (shouldRetry && _.isFiniteNumber(this.options.maxRetries)) {\n item.retries = item.retries ? item.retries + 1 : 1;\n if (item.retries > this.options.maxRetries) {\n shouldRetry = false;\n }\n }\n }\n if (shouldRetry) {\n this._retryApiRequest(item, callback);\n } else {\n callback(err);\n }\n }\n\n /**\n * Add an item and a callback to a queue and possibly start a timer to process\n * that queue based on the retryInterval in the options for this queue.\n *\n * @param item - an item that failed to send due to an error we deem retriable\n * @param callback - function(err, response)\n */\n _retryApiRequest(item, callback) {\n this.retryQueue.push({ item, callback });\n\n if (!this.retryHandle) {\n this.retryHandle = setInterval(() => {\n while (this.retryQueue.length) {\n const retryObject = this.retryQueue.shift();\n this._makeApiRequest(retryObject.item, retryObject.callback);\n }\n }, this.options.retryInterval);\n }\n }\n\n /**\n * Removes the item from the pending request queue, this queue is used to\n * enable to functionality of providing a callback that clients can pass to `wait` to be notified\n * when the pending request queue has been emptied. This must be called when the API finishes\n * processing this item. If a `wait` callback is configured, it is called by this function.\n *\n * @param item - the item previously added to the pending request queue\n */\n _dequeuePendingRequest(item) {\n const idx = this.pendingRequests.indexOf(item);\n if (idx !== -1) {\n this.pendingRequests.splice(idx, 1);\n this._maybeCallWait();\n }\n }\n\n _maybeLog(data, originalError) {\n if (this.logger && this.options.verbose) {\n let message =\n originalError ||\n _.get(data, 'body.trace.exception.message') ||\n _.get(data, 'body.trace_chain.0.exception.message');\n if (message) {\n this.logger.error(message);\n return;\n }\n message = _.get(data, 'body.message.body');\n if (message) {\n this.logger.log(message);\n }\n }\n }\n\n _maybeCallWait() {\n if (\n _.isFunction(this.waitCallback) &&\n this.pendingItems.length === 0 &&\n this.pendingRequests.length === 0\n ) {\n if (this.waitIntervalID) {\n this.waitIntervalID = clearInterval(this.waitIntervalID);\n }\n this.waitCallback();\n return true;\n }\n return false;\n }\n}\n\nexport default Queue;\n","/*\n * RateLimiter - encapsulates the logic for counting items sent to Rollbar.\n *\n * @param options - the same options that are accepted by configureGlobal offered as a convenience\n */\nclass RateLimiter {\n static globalSettings = {\n startTime: Date.now(),\n maxItems: undefined,\n itemsPerMinute: undefined,\n };\n\n constructor(options = {}) {\n this.startTime = Date.now();\n this.counter = 0;\n this.perMinCounter = 0;\n this.platform = null;\n this.platformOptions = {};\n this.configureGlobal(options);\n }\n\n /*\n * configureGlobal - set the global rate limiter options\n *\n * @param options - Only the following values are recognized:\n * startTime: a timestamp of the form returned by (new Date()).getTime()\n * maxItems: the maximum items\n * itemsPerMinute: the max number of items to send in a given minute\n */\n configureGlobal(options = {}) {\n const { startTime, maxItems, itemsPerMinute } = options;\n\n if (startTime !== undefined) {\n RateLimiter.globalSettings.startTime = startTime;\n }\n if (maxItems !== undefined) {\n RateLimiter.globalSettings.maxItems = maxItems;\n }\n if (itemsPerMinute !== undefined) {\n RateLimiter.globalSettings.itemsPerMinute = itemsPerMinute;\n }\n }\n\n /*\n * shouldSend - determine if we should send a given item based on rate limit settings\n *\n * @param item - the item we are about to send\n * @returns An object with the following structure:\n * error: (Error|null)\n * shouldSend: bool\n * payload: (Object|null)\n * If shouldSend is false, the item passed as a parameter should not be sent to Rollbar, and\n * exactly one of error or payload will be non-null. If error is non-null, the returned Error will\n * describe the situation, but it means that we were already over a rate limit (either globally or\n * per minute) when this item was checked. If error is null, and therefore payload is non-null, it\n * means this item put us over the global rate limit and the payload should be sent to Rollbar in\n * place of the passed in item.\n */\n shouldSend(item, now = Date.now()) {\n const elapsedTime = now - this.startTime;\n if (elapsedTime < 0 || elapsedTime >= 60000) {\n this.startTime = now;\n this.perMinCounter = 0;\n }\n\n const globalRateLimit = RateLimiter.globalSettings.maxItems;\n const globalRateLimitPerMin = RateLimiter.globalSettings.itemsPerMinute;\n\n if (checkRate(item, globalRateLimit, this.counter)) {\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n `${globalRateLimit} max items reached`,\n false,\n );\n }\n\n if (checkRate(item, globalRateLimitPerMin, this.perMinCounter)) {\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n `${globalRateLimitPerMin} items per minute reached`,\n false,\n );\n }\n\n this.counter += 1;\n this.perMinCounter += 1;\n\n const underGlobalLimit = !checkRate(item, globalRateLimit, this.counter);\n const perMinute = underGlobalLimit;\n const shouldSend =\n underGlobalLimit &&\n !checkRate(item, globalRateLimitPerMin, this.perMinCounter);\n\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n null,\n shouldSend,\n globalRateLimit,\n globalRateLimitPerMin,\n perMinute,\n );\n }\n\n setPlatformOptions(platform, options) {\n this.platform = platform;\n this.platformOptions = options;\n }\n}\n\n/* Helpers */\n\nfunction checkRate(item, limit, counter) {\n return !item.ignoreRateLimit && limit >= 1 && counter > limit;\n}\n\nfunction shouldSendValue(\n platform,\n options,\n error,\n shouldSend,\n globalRateLimit,\n limitPerMin,\n perMinute,\n) {\n let payload = null;\n const errorResult = error ? new Error(error) : null;\n\n if (!errorResult && !shouldSend) {\n payload = rateLimitPayload(\n platform,\n options,\n globalRateLimit,\n limitPerMin,\n perMinute,\n );\n }\n\n return { error: errorResult, shouldSend, payload };\n}\n\nfunction rateLimitPayload(\n platform,\n options,\n globalRateLimit,\n limitPerMin,\n perMinute,\n) {\n const environment =\n options.environment || (options.payload && options.payload.environment);\n const msg = perMinute\n ? 'item per minute limit reached, ignoring errors until timeout'\n : 'maxItems has been hit, ignoring errors until reset.';\n const item = {\n body: {\n message: {\n body: msg,\n extra: {\n maxItems: globalRateLimit,\n itemsPerMinute: limitPerMin,\n },\n },\n },\n language: 'javascript',\n environment: environment,\n notifier: {\n version:\n (options.notifier && options.notifier.version) || options.version,\n },\n };\n if (platform === 'browser') {\n item.platform = 'browser';\n item.framework = 'browser-js';\n item.notifier.name = 'rollbar-browser-js';\n } else if (platform === 'server') {\n item.framework = options.framework || 'node-js';\n item.notifier.name = options.notifier.name;\n } else if (platform === 'react-native') {\n item.framework = options.framework || 'react-native';\n item.notifier.name = options.notifier.name;\n }\n return item;\n}\n\nexport default RateLimiter;\n","import Notifier from './notifier.js';\nimport Queue from './queue.js';\nimport RateLimiter from './rateLimiter.js';\nimport * as _ from './utility.js';\n\n/*\n * Rollbar - the interface to Rollbar\n *\n * @param options\n * @param api\n * @param logger\n */\nfunction Rollbar(options, api, logger, telemeter, tracing, replay, platform) {\n this.options = _.merge(options);\n this.logger = logger;\n Rollbar.rateLimiter.configureGlobal(this.options);\n Rollbar.rateLimiter.setPlatformOptions(platform, this.options);\n this.api = api;\n this.queue = new Queue(\n Rollbar.rateLimiter,\n api,\n logger,\n this.options,\n replay,\n );\n\n this.tracing = tracing;\n\n // Legacy OpenTracing support\n // This must happen before the Notifier is created\n var tracer = this.options.tracer || null;\n if (validateTracer(tracer)) {\n this.tracer = tracer;\n // set to a string for api response serialization\n this.options.tracer = 'opentracing-tracer-enabled';\n this.options._configuredOptions.tracer = 'opentracing-tracer-enabled';\n } else {\n this.tracer = null;\n }\n\n this.notifier = new Notifier(this.queue, this.options);\n this.telemeter = telemeter;\n setStackTraceLimit(options);\n this.lastError = null;\n this.lastErrorHash = 'none';\n}\n\nvar defaultOptions = {\n maxItems: 0,\n itemsPerMinute: 60,\n};\n\nRollbar.rateLimiter = new RateLimiter(defaultOptions);\n\nRollbar.prototype.global = function (options) {\n Rollbar.rateLimiter.configureGlobal(options);\n return this;\n};\n\nRollbar.prototype.configure = function (options, payloadData) {\n var oldOptions = this.options;\n var payload = {};\n if (payloadData) {\n payload = { payload: payloadData };\n }\n\n this.options = _.merge(oldOptions, options, payload);\n\n // Legacy OpenTracing support\n // This must happen before the Notifier is configured\n var tracer = this.options.tracer || null;\n if (validateTracer(tracer)) {\n this.tracer = tracer;\n // set to a string for api response serialization\n this.options.tracer = 'opentracing-tracer-enabled';\n this.options._configuredOptions.tracer = 'opentracing-tracer-enabled';\n } else {\n this.tracer = null;\n }\n\n this.notifier && this.notifier.configure(this.options);\n this.telemeter && this.telemeter.configure(this.options);\n setStackTraceLimit(options);\n this.global(this.options);\n\n if (validateTracer(options.tracer)) {\n this.tracer = options.tracer;\n }\n\n return this;\n};\n\nRollbar.prototype.log = function (item) {\n var level = this._defaultLogLevel();\n return this._log(level, item);\n};\n\nRollbar.prototype.debug = function (item) {\n this._log('debug', item);\n};\n\nRollbar.prototype.info = function (item) {\n this._log('info', item);\n};\n\nRollbar.prototype.warn = function (item) {\n this._log('warning', item);\n};\n\nRollbar.prototype.warning = function (item) {\n this._log('warning', item);\n};\n\nRollbar.prototype.error = function (item) {\n this._log('error', item);\n};\n\nRollbar.prototype.critical = function (item) {\n this._log('critical', item);\n};\n\nRollbar.prototype.wait = function (callback) {\n this.queue.wait(callback);\n};\n\nRollbar.prototype.captureEvent = function (type, metadata, level) {\n return this.telemeter && this.telemeter.captureEvent(type, metadata, level);\n};\n\nRollbar.prototype.captureDomContentLoaded = function (ts) {\n return this.telemeter && this.telemeter.captureDomContentLoaded(ts);\n};\n\nRollbar.prototype.captureLoad = function (ts) {\n return this.telemeter && this.telemeter.captureLoad(ts);\n};\n\nRollbar.prototype.buildJsonPayload = function (item) {\n return this.api.buildJsonPayload(item);\n};\n\nRollbar.prototype.sendJsonPayload = function (jsonPayload) {\n this.api.postJsonPayload(jsonPayload);\n};\n\n/* Internal */\n\nRollbar.prototype._log = function (defaultLevel, item) {\n var callback;\n if (item.callback) {\n callback = item.callback;\n delete item.callback;\n }\n if (this.options.ignoreDuplicateErrors && this._sameAsLastError(item)) {\n if (callback) {\n var error = new Error('ignored identical item');\n error.item = item;\n callback(error);\n }\n return;\n }\n try {\n item.level = item.level || defaultLevel;\n\n this._addItemAttributes(item);\n\n // Legacy OpenTracing support\n this._addTracingInfo(item);\n\n const telemeter = this.telemeter;\n if (telemeter) {\n telemeter._captureRollbarItem(item);\n item.telemetryEvents = telemeter.copyEvents() || [];\n }\n\n this.notifier.log(item, callback);\n } catch (e) {\n if (callback) {\n callback(e);\n }\n this.logger.error(e);\n }\n};\n\nRollbar.prototype._addItemAttributes = function (item) {\n const span = this.tracing?.getSpan();\n const asyncLocalSessionId = _.getSessionIdFromAsyncLocalStorage(this);\n const sessionId = asyncLocalSessionId || this.tracing?.sessionId;\n\n const attributes = [\n { key: 'session_id', value: sessionId },\n { key: 'span_id', value: span?.spanId },\n { key: 'trace_id', value: span?.traceId },\n ];\n if (item._isUncaught) {\n attributes.push({ key: 'is_uncaught', value: 'true' });\n }\n _.addItemAttributes(item.data, attributes);\n\n span?.addEvent('rollbar.occurrence', [\n { key: 'rollbar.occurrence.uuid', value: item.uuid },\n ]);\n};\n\nRollbar.prototype._defaultLogLevel = function () {\n return this.options.logLevel || 'debug';\n};\n\nRollbar.prototype._sameAsLastError = function (item) {\n if (!item._isUncaught) {\n return false;\n }\n var itemHash = generateItemHash(item);\n if (this.lastErrorHash === itemHash) {\n return true;\n }\n this.lastError = item.err;\n this.lastErrorHash = itemHash;\n return false;\n};\n\nRollbar.prototype._addTracingInfo = function (item) {\n // Tracer validation occurs in the constructor\n // or in the Rollbar.prototype.configure methods\n if (this.tracer) {\n // add rollbar occurrence uuid to span\n var span = this.tracer.scope().active();\n\n if (validateSpan(span)) {\n span.setTag('rollbar.error_uuid', item.uuid);\n span.setTag('rollbar.has_error', true);\n span.setTag('error', true);\n span.setTag(\n 'rollbar.item_url',\n `https://rollbar.com/item/uuid/?uuid=${item.uuid}`,\n );\n span.setTag(\n 'rollbar.occurrence_url',\n `https://rollbar.com/occurrence/uuid/?uuid=${item.uuid}`,\n );\n\n // add span ID & trace ID to occurrence\n var opentracingSpanId = span.context().toSpanId();\n var opentracingTraceId = span.context().toTraceId();\n\n if (item.custom) {\n item.custom.opentracing_span_id = opentracingSpanId;\n item.custom.opentracing_trace_id = opentracingTraceId;\n } else {\n item.custom = {\n opentracing_span_id: opentracingSpanId,\n opentracing_trace_id: opentracingTraceId,\n };\n }\n }\n }\n};\n\nfunction generateItemHash(item) {\n var message = item.message || '';\n var stack = (item.err || {}).stack || String(item.err);\n return message + '::' + stack;\n}\n\n// Node.js, Chrome, Safari, and some other browsers support this property\n// which globally sets the number of stack frames returned in an Error object.\n// If a browser can't use it, no harm done.\nfunction setStackTraceLimit(options) {\n if (options.stackTraceLimit) {\n Error.stackTraceLimit = options.stackTraceLimit;\n }\n}\n\n/**\n * Validate the Tracer object provided to the Client\n * is valid for our Opentracing use case.\n * @param {opentracer.Tracer} tracer\n */\nfunction validateTracer(tracer) {\n if (!tracer) {\n return false;\n }\n\n if (!tracer.scope || typeof tracer.scope !== 'function') {\n return false;\n }\n\n var scope = tracer.scope();\n\n if (!scope || !scope.active || typeof scope.active !== 'function') {\n return false;\n }\n\n return true;\n}\n\n/**\n * Validate the Span object provided\n * @param {opentracer.Span} span\n */\nfunction validateSpan(span) {\n if (!span || !span.context || typeof span.context !== 'function') {\n return false;\n }\n\n var spanContext = span.context();\n\n if (\n !spanContext ||\n !spanContext.toSpanId ||\n !spanContext.toTraceId ||\n typeof spanContext.toSpanId !== 'function' ||\n typeof spanContext.toTraceId !== 'function'\n ) {\n return false;\n }\n\n return true;\n}\n\nexport default Rollbar;\n","import * as _ from './utility.js';\n\nfunction itemToPayload(item, options, callback) {\n if (item._isUncaught) {\n item.data._isUncaught = true;\n }\n if (item._originalArgs) {\n item.data._originalArgs = item._originalArgs;\n }\n callback(null, item);\n}\n\nfunction addPayloadOptions(item, options, callback) {\n var payloadOptions = options.payload || {};\n if (payloadOptions.body) {\n delete payloadOptions.body;\n }\n\n item.data = _.merge(item.data, payloadOptions);\n callback(null, item);\n}\n\nfunction addTelemetryData(item, options, callback) {\n if (item.telemetryEvents) {\n _.set(item, 'data.body.telemetry', item.telemetryEvents);\n }\n callback(null, item);\n}\n\nfunction addMessageWithError(item, options, callback) {\n if (!item.message) {\n callback(null, item);\n return;\n }\n var tracePath = 'data.body.trace_chain.0';\n var trace = _.get(item, tracePath);\n if (!trace) {\n tracePath = 'data.body.trace';\n trace = _.get(item, tracePath);\n }\n if (trace) {\n if (!(trace.exception && trace.exception.description)) {\n _.set(item, tracePath + '.exception.description', item.message);\n callback(null, item);\n return;\n }\n var extra = _.get(item, tracePath + '.extra') || {};\n var newExtra = _.merge(extra, { message: item.message });\n _.set(item, tracePath + '.extra', newExtra);\n }\n callback(null, item);\n}\n\nfunction userTransform(logger) {\n return function (item, options, callback) {\n var newItem = _.merge(item);\n var response = null;\n try {\n if (_.isFunction(options.transform)) {\n response = options.transform(newItem.data, item);\n }\n } catch (e) {\n options.transform = null;\n logger.error(\n 'Error while calling custom transform() function. Removing custom transform().',\n e,\n );\n callback(null, item);\n return;\n }\n if (_.isPromise(response)) {\n response.then(\n function (promisedItem) {\n if (promisedItem) {\n newItem.data = promisedItem;\n }\n callback(null, newItem);\n },\n function (error) {\n callback(error, item);\n },\n );\n } else {\n callback(null, newItem);\n }\n };\n}\n\nfunction addConfigToPayload(item, options, callback) {\n if (!options.sendConfig) {\n return callback(null, item);\n }\n var configKey = '_rollbarConfig';\n var custom = _.get(item, 'data.custom') || {};\n custom[configKey] = options;\n item.data.custom = custom;\n callback(null, item);\n}\n\nfunction addFunctionOption(options, name) {\n if (_.isFunction(options[name])) {\n options[name] = options[name].toString();\n }\n}\n\nfunction addConfiguredOptions(item, options, callback) {\n var configuredOptions = options._configuredOptions;\n\n // These must be stringified or they'll get dropped during serialization.\n addFunctionOption(configuredOptions, 'transform');\n addFunctionOption(configuredOptions, 'checkIgnore');\n addFunctionOption(configuredOptions, 'onSendCallback');\n\n delete configuredOptions.accessToken;\n item.data.notifier.configured_options = configuredOptions;\n callback(null, item);\n}\n\nfunction addDiagnosticKeys(item, options, callback) {\n var diagnostic = _.merge(\n item.notifier.client.notifier.diagnostic,\n item.diagnostic,\n );\n\n if (_.get(item, 'err._isAnonymous')) {\n diagnostic.is_anonymous = true;\n }\n\n if (item._isUncaught) {\n diagnostic.is_uncaught = item._isUncaught;\n }\n\n if (item.err) {\n try {\n diagnostic.raw_error = {\n message: item.err.message,\n name: item.err.name,\n constructor_name: item.err.constructor && item.err.constructor.name,\n filename: item.err.fileName,\n line: item.err.lineNumber,\n column: item.err.columnNumber,\n stack: item.err.stack,\n };\n } catch (e) {\n diagnostic.raw_error = { failed: String(e) };\n }\n }\n\n item.data.notifier.diagnostic = _.merge(\n item.data.notifier.diagnostic,\n diagnostic,\n );\n callback(null, item);\n}\n\nexport {\n itemToPayload,\n addPayloadOptions,\n addTelemetryData,\n addMessageWithError,\n userTransform,\n addConfigToPayload,\n addConfiguredOptions,\n addDiagnosticKeys,\n};\n","/**\n * Default browser options\n */\nimport { commonScrubFields } from '../defaults.js';\n\nexport const scrubFields = [\n ...commonScrubFields,\n 'cc-number',\n 'card number',\n 'cardnumber',\n 'cardnum',\n 'ccnum',\n 'ccnumber',\n 'cc num',\n 'creditcardnumber',\n 'credit card number',\n 'newcreditcardnumber',\n 'new credit card',\n 'creditcardno',\n 'credit card no',\n 'card#',\n 'card #',\n 'cc-csc',\n 'cvc',\n 'cvc2',\n 'cvv2',\n 'ccv2',\n 'security code',\n 'card verification',\n 'name on credit card',\n 'name on card',\n 'nameoncard',\n 'cardholder',\n 'card holder',\n 'name des karteninhabers',\n 'ccname',\n 'card type',\n 'cardtype',\n 'cc type',\n 'cctype',\n 'payment type',\n 'expiration date',\n 'expirationdate',\n 'expdate',\n 'cc-exp',\n 'ccmonth',\n 'ccyear',\n];\n\n// For compatibility with existing code that expects default export with scrubFields property\nexport default { scrubFields };\n","import * as _ from '../utility.js';\n\nfunction checkIgnore(item, settings) {\n if (_.get(settings, 'plugins.jquery.ignoreAjaxErrors')) {\n return !_.get(item, 'body.message.extra.isAjax');\n }\n return true;\n}\n\nexport { checkIgnore };\n","import errorParser from '../errorParser.js';\nimport logger from '../logger.js';\nimport * as _ from '../utility.js';\n\nfunction handleDomException(item, options, callback) {\n if (item.err && errorParser.Stack(item.err).name === 'DOMException') {\n var originalError = new Error();\n originalError.name = item.err.name;\n originalError.message = item.err.message;\n originalError.stack = item.err.stack;\n originalError.nested = item.err;\n item.err = originalError;\n }\n callback(null, item);\n}\n\nfunction handleItemWithError(item, options, callback) {\n item.data = item.data || {};\n if (item.err) {\n try {\n item.stackInfo =\n item.err._savedStackTrace ||\n errorParser.parse(item.err, item.skipFrames);\n\n if (options.addErrorContext) {\n addErrorContext(item);\n }\n } catch (e) {\n logger.error('Error while parsing the error object.', e);\n try {\n item.message =\n item.err.message ||\n item.err.description ||\n item.message ||\n String(item.err);\n } catch (e2) {\n item.message = String(item.err) || String(e2);\n }\n delete item.err;\n }\n }\n callback(null, item);\n}\n\nfunction addErrorContext(item) {\n var chain = [];\n var err = item.err;\n\n chain.push(err);\n\n while (err.nested || err.cause) {\n err = err.nested || err.cause;\n chain.push(err);\n }\n\n _.addErrorContext(item, chain);\n}\n\nfunction ensureItemHasSomethingToSay(item, options, callback) {\n if (!item.message && !item.stackInfo && !item.custom) {\n callback(new Error('No message, stack info, or custom data'), null);\n }\n callback(null, item);\n}\n\nfunction addBaseInfo(item, options, callback) {\n var environment =\n (options.payload && options.payload.environment) || options.environment;\n item.data = _.merge(item.data, {\n environment: environment,\n level: item.level,\n endpoint: options.endpoint,\n platform: 'browser',\n framework: 'browser-js',\n language: 'javascript',\n server: {},\n uuid: item.uuid,\n notifier: {\n name: 'rollbar-browser-js',\n version: options.version,\n },\n custom: item.custom,\n });\n callback(null, item);\n}\n\nfunction addRequestInfo(window) {\n return function (item, options, callback) {\n var requestInfo = {};\n\n if (window && window.location) {\n requestInfo.url = window.location.href;\n requestInfo.query_string = window.location.search;\n }\n\n var remoteString = '$remote_ip';\n if (!options.captureIp) {\n remoteString = null;\n } else if (options.captureIp !== true) {\n remoteString += '_anonymize';\n }\n if (remoteString) requestInfo.user_ip = remoteString;\n\n if (Object.keys(requestInfo).length > 0) {\n _.set(item, 'data.request', requestInfo);\n }\n\n callback(null, item);\n };\n}\n\nfunction addClientInfo(window) {\n return function (item, options, callback) {\n if (!window) {\n return callback(null, item);\n }\n var nav = window.navigator || {};\n var scr = window.screen || {};\n _.set(item, 'data.client', {\n runtime_ms: item.timestamp - window._rollbarStartTime,\n timestamp: Math.round(item.timestamp / 1000),\n javascript: {\n browser: nav.userAgent,\n language: nav.language,\n cookie_enabled: nav.cookieEnabled,\n screen: {\n width: scr.width,\n height: scr.height,\n },\n },\n });\n callback(null, item);\n };\n}\n\nfunction addPluginInfo(window) {\n return function (item, options, callback) {\n if (!window || !window.navigator) {\n return callback(null, item);\n }\n var plugins = [];\n var navPlugins = window.navigator.plugins || [];\n var cur;\n for (var i = 0, l = navPlugins.length; i < l; ++i) {\n cur = navPlugins[i];\n plugins.push({ name: cur.name, description: cur.description });\n }\n _.set(item, 'data.client.javascript.plugins', plugins);\n callback(null, item);\n };\n}\n\nfunction addBody(item, options, callback) {\n if (item.stackInfo) {\n if (item.stackInfo.traceChain) {\n addBodyTraceChain(item, options, callback);\n } else {\n addBodyTrace(item, options, callback);\n }\n } else {\n addBodyMessage(item, options, callback);\n }\n}\n\nfunction addBodyMessage(item, options, callback) {\n var message = item.message;\n var custom = item.custom;\n\n if (!message) {\n message = 'Item sent with null or missing arguments.';\n }\n var result = {\n body: message,\n };\n\n if (custom) {\n result.extra = _.merge(custom);\n }\n\n _.set(item, 'data.body', { message: result });\n callback(null, item);\n}\n\nfunction stackFromItem(item, stackInfo = null) {\n // Transform a TraceKit stackInfo object into a Rollbar trace\n let stack = (stackInfo || item.stackInfo).stack;\n if (\n stack &&\n stack.length === 0 &&\n item._unhandledStackInfo &&\n item._unhandledStackInfo.stack\n ) {\n stack = item._unhandledStackInfo.stack;\n }\n return stack;\n}\n\nfunction addBodyTraceChain(item, options, callback) {\n var traceChain = item.stackInfo.traceChain;\n var traces = [];\n\n var traceChainLength = traceChain.length;\n for (var i = 0; i < traceChainLength; i++) {\n var trace = buildTrace(item, traceChain[i], options);\n traces.push(trace);\n }\n\n _.set(item, 'data.body', { trace_chain: traces });\n callback(null, item);\n}\n\nfunction addBodyTrace(item, options, callback) {\n var stack = stackFromItem(item);\n\n if (stack) {\n var trace = buildTrace(item, item.stackInfo, options);\n _.set(item, 'data.body', { trace: trace });\n callback(null, item);\n } else {\n var stackInfo = item.stackInfo;\n var guess = errorParser.guessErrorClass(stackInfo.message);\n var className = errorClass(stackInfo, guess[0], options);\n var message = guess[1];\n\n item.message = className + ': ' + message;\n addBodyMessage(item, options, callback);\n }\n}\n\nfunction buildTrace(item, stackInfo, options) {\n var description = item && item.data.description;\n var custom = item && item.custom;\n var stack = stackFromItem(item, stackInfo);\n\n var guess = errorParser.guessErrorClass(stackInfo.message);\n var className = errorClass(stackInfo, guess[0], options);\n var message = guess[1];\n var trace = {\n exception: {\n class: className,\n message: message,\n },\n };\n\n if (description) {\n trace.exception.description = description;\n }\n\n if (stack) {\n if (stack.length === 0) {\n trace.exception.stack = stackInfo.rawStack;\n trace.exception.raw = String(stackInfo.rawException);\n }\n var stackFrame;\n var frame;\n var code;\n var pre;\n var post;\n var contextLength;\n var i, mid;\n\n trace.frames = [];\n for (i = 0; i < stack.length; ++i) {\n stackFrame = stack[i];\n frame = {\n filename: stackFrame.url ? _.sanitizeUrl(stackFrame.url) : '(unknown)',\n lineno: stackFrame.line || null,\n method:\n !stackFrame.func || stackFrame.func === '?'\n ? '[anonymous]'\n : stackFrame.func,\n colno: stackFrame.column,\n };\n if (options.sendFrameUrl) {\n frame.url = stackFrame.url;\n }\n if (\n frame.method &&\n frame.method.endsWith &&\n frame.method.endsWith('_rollbar_wrapped')\n ) {\n continue;\n }\n\n code = pre = post = null;\n contextLength = stackFrame.context ? stackFrame.context.length : 0;\n if (contextLength) {\n mid = Math.floor(contextLength / 2);\n pre = stackFrame.context.slice(0, mid);\n code = stackFrame.context[mid];\n post = stackFrame.context.slice(mid);\n }\n\n if (code) {\n frame.code = code;\n }\n\n if (pre || post) {\n frame.context = {};\n if (pre && pre.length) {\n frame.context.pre = pre;\n }\n if (post && post.length) {\n frame.context.post = post;\n }\n }\n\n if (stackFrame.args) {\n frame.args = stackFrame.args;\n }\n\n trace.frames.push(frame);\n }\n\n // NOTE(cory): reverse the frames since rollbar.com expects the most recent call last\n trace.frames.reverse();\n\n if (custom) {\n trace.extra = _.merge(custom);\n }\n }\n\n return trace;\n}\n\nfunction errorClass(stackInfo, guess, options) {\n if (stackInfo.name) {\n return stackInfo.name;\n } else if (options.guessErrorClass) {\n return guess;\n } else {\n return '(unknown)';\n }\n}\n\nfunction addScrubber(scrubFn) {\n return function (item, options, callback) {\n if (scrubFn) {\n var scrubFields = options.scrubFields || [];\n var scrubPaths = options.scrubPaths || [];\n item.data = scrubFn(item.data, scrubFields, scrubPaths);\n }\n callback(null, item);\n };\n}\n\nexport {\n handleDomException,\n handleItemWithError,\n ensureItemHasSomethingToSay,\n addBaseInfo,\n addRequestInfo,\n addClientInfo,\n addPluginInfo,\n addBody,\n addScrubber,\n};\n","import logger from '../../logger.js';\nimport * as _ from '../../utility.js';\n\nfunction makeFetchRequest({\n accessToken,\n url,\n method,\n payload,\n headers,\n callback,\n timeout,\n}) {\n var controller;\n var timeoutId;\n\n if (_.isFiniteNumber(timeout)) {\n controller = new AbortController();\n timeoutId = setTimeout(function () {\n controller.abort();\n }, timeout);\n }\n\n headers = {\n 'Content-Type': 'application/json',\n 'X-Rollbar-Access-Token': accessToken,\n signal: controller && controller.signal,\n ...headers,\n };\n\n fetch(url, {\n method,\n headers,\n body: payload,\n })\n .then(function (response) {\n if (timeoutId) clearTimeout(timeoutId);\n const respHeaders = response.headers;\n\n const isItemRoute = url.endsWith('/api/1/item/');\n const headers = isItemRoute\n ? {\n 'Rollbar-Replay-Enabled': respHeaders.get('Rollbar-Replay-Enabled'),\n 'Rollbar-Replay-RateLimit-Remaining': respHeaders.get(\n 'Rollbar-Replay-RateLimit-Remaining',\n ),\n 'Rollbar-Replay-RateLimit-Reset': respHeaders.get(\n 'Rollbar-Replay-RateLimit-Reset',\n ),\n }\n : {};\n\n const json = response.json();\n callback(null, json, headers);\n })\n .catch(function (error) {\n logger.error(error.message);\n callback(error);\n });\n}\n\nexport default makeFetchRequest;\n","/*global XDomainRequest*/\n\nimport logger from '../../logger.js';\nimport * as _ from '../../utility.js';\n\nfunction makeXhrRequest({\n accessToken,\n url,\n method,\n payload,\n headers,\n callback,\n requestFactory,\n timeout,\n}) {\n var request;\n if (requestFactory) {\n request = requestFactory();\n } else {\n request = _createXMLHTTPObject();\n }\n if (!request) {\n // Give up, no way to send requests\n return callback(new Error('No way to send a request'));\n }\n try {\n try {\n var onreadystatechange = function () {\n try {\n if (onreadystatechange && request.readyState === 4) {\n onreadystatechange = undefined;\n\n var parseResponse = _.jsonParse(request.responseText);\n if (_isSuccess(request)) {\n const isItemRoute = url.endsWith('/api/1/item/');\n\n const headers = isItemRoute\n ? {\n 'Rollbar-Replay-Enabled': request.getResponseHeader(\n 'Rollbar-Replay-Enabled',\n ),\n 'Rollbar-Replay-RateLimit-Remaining':\n request.getResponseHeader(\n 'Rollbar-Replay-RateLimit-Remaining',\n ),\n 'Rollbar-Replay-RateLimit-Reset': request.getResponseHeader(\n 'Rollbar-Replay-RateLimit-Reset',\n ),\n }\n : {};\n callback(parseResponse.error, parseResponse.value, headers);\n return;\n } else if (_isNormalFailure(request)) {\n if (request.status === 403) {\n // likely caused by using a server access token\n var message =\n parseResponse.value && parseResponse.value.message;\n logger.error(message);\n }\n // return valid http status codes\n callback(new Error(String(request.status)));\n } else {\n // IE will return a status 12000+ on some sort of connection failure,\n // so we return a blank error\n // http://msdn.microsoft.com/en-us/library/aa383770%28VS.85%29.aspx\n var msg =\n 'XHR response had no status code (likely connection failure)';\n callback(_newRetriableError(msg));\n }\n }\n } catch (ex) {\n //jquery source mentions firefox may error out while accessing the\n //request members if there is a network error\n //https://github.com/jquery/jquery/blob/a938d7b1282fc0e5c52502c225ae8f0cef219f0a/src/ajax/xhr.js#L111\n var exc;\n if (ex && ex.stack) {\n exc = ex;\n } else {\n exc = new Error(ex);\n }\n callback(exc);\n }\n };\n\n request.open(method, url, true);\n if (request.setRequestHeader) {\n request.setRequestHeader('Content-Type', 'application/json');\n request.setRequestHeader('X-Rollbar-Access-Token', accessToken);\n for (const [h, v] of Object.entries(headers ?? {})) {\n request.setRequestHeader(h, v);\n }\n }\n\n if (_.isFiniteNumber(timeout)) {\n request.timeout = timeout;\n }\n\n request.onreadystatechange = onreadystatechange;\n request.send(payload);\n } catch (_e1) {\n // Sending using the normal xmlhttprequest object didn't work, try XDomainRequest\n if (typeof XDomainRequest !== 'undefined') {\n // Assume we are in a really old browser which has a bunch of limitations:\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n\n // Extreme paranoia: if we have XDomainRequest then we have a window, but just in case\n if (!window || !window.location) {\n return callback(\n new Error(\n 'No window available during request, unknown environment',\n ),\n );\n }\n\n // If the current page is http, try and send over http\n if (\n window.location.href.substring(0, 5) === 'http:' &&\n url.substring(0, 5) === 'https'\n ) {\n url = 'http' + url.substring(5);\n }\n\n var xdomainrequest = new XDomainRequest();\n xdomainrequest.onprogress = () => {};\n xdomainrequest.ontimeout = function () {\n var msg = 'Request timed out';\n var code = 'ETIMEDOUT';\n callback(_newRetriableError(msg, code));\n };\n xdomainrequest.onerror = function () {\n callback(new Error('Error during request'));\n };\n xdomainrequest.onload = function () {\n var parseResponse = _.jsonParse(xdomainrequest.responseText);\n callback(parseResponse.error, parseResponse.value);\n };\n xdomainrequest.open(method, url, true);\n xdomainrequest.send(payload);\n } else {\n callback(new Error('Cannot find a method to transport a request'));\n }\n }\n } catch (e2) {\n callback(e2);\n }\n}\n\nfunction _createXMLHTTPObject() {\n /* global ActiveXObject:false */\n\n var factories = [\n function () {\n return new XMLHttpRequest();\n },\n function () {\n return new ActiveXObject('Msxml2.XMLHTTP');\n },\n function () {\n return new ActiveXObject('Msxml3.XMLHTTP');\n },\n function () {\n return new ActiveXObject('Microsoft.XMLHTTP');\n },\n ];\n var xmlhttp;\n var i;\n var numFactories = factories.length;\n for (i = 0; i < numFactories; i++) {\n try {\n xmlhttp = factories[i]();\n break;\n } catch (_e) {\n // pass\n }\n }\n return xmlhttp;\n}\n\nfunction _isSuccess(r) {\n return r && r.status && r.status === 200;\n}\n\nfunction _isNormalFailure(r) {\n return r && _.isType(r.status, 'number') && r.status >= 400 && r.status < 600;\n}\n\nfunction _newRetriableError(message, code) {\n var err = new Error(message);\n err.code = code || 'ENOTFOUND';\n return err;\n}\n\nexport default makeXhrRequest;\n","import * as _ from '../utility.js';\n\nimport makeFetchRequest from './transport/fetch.js';\nimport makeXhrRequest from './transport/xhr.js';\n\n/*\n * accessToken may be embedded in payload but that should not\n * be assumed\n *\n * options: {\n * hostname\n * protocol\n * path\n * port\n * method\n * transport ('xhr' | 'fetch')\n * }\n *\n * params is an object containing key/value pairs. These\n * will be appended to the path as 'key=value&key=value'\n *\n * payload is an unserialized object\n */\nfunction Transport(truncation) {\n this.truncation = truncation;\n}\n\nTransport.prototype.get = function (\n accessToken,\n options,\n params,\n callback,\n requestFactory,\n) {\n if (!callback || !_.isFunction(callback)) {\n callback = () => {};\n }\n _.addParamsAndAccessTokenToPath(accessToken, options, params);\n\n var method = 'GET';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\nTransport.prototype.post = function ({\n accessToken,\n options,\n payload,\n headers,\n callback,\n requestFactory,\n}) {\n if (!callback || !_.isFunction(callback)) {\n callback = () => {};\n }\n\n if (!payload) {\n return callback(new Error('Cannot send empty request'));\n }\n\n var stringifyResult;\n // Check payload.body to ensure only items are truncated.\n if (this.truncation && payload.body) {\n stringifyResult = this.truncation.truncate(payload);\n } else {\n stringifyResult = _.stringify(payload);\n }\n if (stringifyResult.error) {\n return callback(stringifyResult.error);\n }\n\n var method = 'POST';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n payload: stringifyResult.value,\n headers,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\nTransport.prototype.postJsonPayload = function (\n accessToken,\n options,\n payload,\n callback,\n requestFactory,\n) {\n if (!callback || !_.isFunction(callback)) {\n callback = () => {};\n }\n\n var method = 'POST';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n payload,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\n// Wraps `_makeRequest` if zone.js is being used, ensuring that Rollbar\n// API calls are not intercepted by any child forked zones.\n// This is equivalent to `NgZone.runOutsideAngular` in Angular.\nTransport.prototype._makeZoneRequest = function () {\n var gWindow =\n (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && self);\n // Whenever zone.js is loaded and `Zone` is exposed globally, access\n // the root zone to ensure that requests are always made within it.\n // This approach is framework-agnostic, regardless of which\n // framework zone.js is used with.\n var rootZone = gWindow && gWindow.Zone && gWindow.Zone.root;\n var args = Array.prototype.slice.call(arguments);\n\n if (rootZone) {\n rootZone.run(() => {\n this._makeRequest.apply(undefined, args);\n });\n } else {\n this._makeRequest.apply(undefined, args);\n }\n};\n\nTransport.prototype._makeRequest = function (params) {\n const { payload, callback, transport } = params;\n if (typeof RollbarProxy !== 'undefined') {\n return _proxyRequest(payload, callback);\n }\n\n if (transport === 'fetch') {\n makeFetchRequest(params);\n } else {\n makeXhrRequest(params);\n }\n};\n\n/* global RollbarProxy */\nfunction _proxyRequest(json, callback) {\n var rollbarProxy = new RollbarProxy();\n rollbarProxy.sendJsonPayload(\n json,\n function (_msg) {\n /* do nothing */\n },\n function (err) {\n callback(new Error(err));\n },\n );\n}\n\nexport default Transport;\n","// See https://nodejs.org/docs/latest/api/url.html\nfunction parse(url) {\n var result = {\n protocol: null,\n auth: null,\n host: null,\n path: null,\n hash: null,\n href: url,\n hostname: null,\n port: null,\n pathname: null,\n search: null,\n query: null,\n };\n\n var i, last;\n i = url.indexOf('//');\n if (i !== -1) {\n result.protocol = url.substring(0, i);\n last = i + 2;\n } else {\n last = 0;\n }\n\n i = url.indexOf('@', last);\n if (i !== -1) {\n result.auth = url.substring(last, i);\n last = i + 1;\n }\n\n i = url.indexOf('/', last);\n if (i === -1) {\n i = url.indexOf('?', last);\n if (i === -1) {\n i = url.indexOf('#', last);\n if (i === -1) {\n result.host = url.substring(last);\n } else {\n result.host = url.substring(last, i);\n result.hash = url.substring(i);\n }\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n return result;\n } else {\n result.host = url.substring(last, i);\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n last = i;\n }\n } else {\n result.host = url.substring(last, i);\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n last = i;\n }\n\n i = url.indexOf('#', last);\n if (i === -1) {\n result.path = url.substring(last);\n } else {\n result.path = url.substring(last, i);\n result.hash = url.substring(i);\n }\n\n if (result.path) {\n var pathParts = result.path.split('?');\n result.pathname = pathParts[0];\n result.query = pathParts[1];\n result.search = result.query ? '?' + result.query : null;\n }\n return result;\n}\n\nexport { parse };\n","import API from '../api.js';\nimport defaults from '../defaults.js';\nimport errorParser from '../errorParser.js';\nimport logger from '../logger.js';\nimport * as sharedPredicates from '../predicates.js';\nimport Client from '../rollbar.js';\nimport tracingDefaults from '../tracing/defaults.js';\nimport * as sharedTransforms from '../transforms.js';\nimport * as _ from '../utility.js';\n\nimport browserDefaults from './defaults.js';\nimport * as globals from './globalSetup.js';\nimport * as predicates from './predicates.js';\nimport replayDefaults from './replay/defaults.js';\nimport * as transforms from './transforms.js';\nimport Transport from './transport.js';\nimport * as urllib from './url.js';\n\n// Used to support global `Rollbar` instance.\nlet _instance = null;\n\nclass Rollbar {\n constructor(options, client) {\n logger.init({ logLevel: options.logLevel || 'error' });\n this.options = _.handleOptions(defaultOptions, options, null, logger);\n this.options._configuredOptions = options;\n this.components = this.components || {};\n const Telemeter = this.components.telemeter;\n const Instrumenter = this.components.instrumenter;\n this.wrapGlobals = this.components.wrapGlobals;\n this.scrub = this.components.scrub;\n const truncation = this.components.truncation;\n const Tracing = this.components.tracing;\n const Replay = this.components.replay;\n\n const transport = new Transport(truncation);\n const api = new API(this.options, transport, urllib, truncation);\n if (Tracing) {\n this.tracing = new Tracing(_gWindow(), api, this.options);\n this.tracing.initSession();\n }\n if (Telemeter) {\n this.telemeter = new Telemeter(this.options, this.tracing);\n }\n\n if (Replay && _.isBrowser()) {\n const replayOptions = this.options.replay;\n this.replay = new Replay({\n tracing: this.tracing,\n telemeter: this.telemeter,\n options: replayOptions,\n });\n\n if (replayOptions.enabled && replayOptions.autoStart) {\n this.replay.recorder.start();\n }\n }\n\n this.client =\n client ||\n new Client(\n this.options,\n api,\n logger,\n this.telemeter,\n this.tracing,\n this.replay,\n 'browser',\n );\n var gWindow = _gWindow();\n var gDocument = typeof document !== 'undefined' && document;\n this.isChrome = gWindow.chrome && gWindow.chrome.runtime; // check .runtime to avoid Edge browsers\n this.anonymousErrorsPending = 0;\n addTransformsToNotifier(this.client.notifier, this, gWindow);\n addPredicatesToQueue(this.client.queue);\n this.setupUnhandledCapture();\n if (Instrumenter) {\n this.instrumenter = new Instrumenter(\n this.options,\n this.client.telemeter,\n this,\n gWindow,\n gDocument,\n );\n this.instrumenter.instrument();\n }\n\n this.setSessionAttributesFromOptions(options);\n\n // Used with rollbar-react for rollbar-react-native compatibility.\n this.rollbar = this;\n }\n\n static init(options, client) {\n if (_instance) {\n return _instance.global(options).configure(options);\n }\n _instance = new Rollbar(options, client);\n return _instance;\n }\n\n static setComponents(components) {\n Rollbar.prototype.components = components;\n }\n\n global(options) {\n this.client.global(options);\n return this;\n }\n\n configure(options, payloadData) {\n if (options.logLevel) {\n logger.init({ logLevel: options.logLevel });\n }\n this.setSessionAttributesFromOptions(options);\n var oldOptions = this.options;\n var payload = {};\n if (payloadData) {\n payload = { payload: payloadData };\n }\n\n this.options = _.handleOptions(oldOptions, options, payload, logger);\n this.options._configuredOptions = _.handleOptions(\n oldOptions._configuredOptions,\n options,\n payload,\n );\n\n this.tracing?.configure(this.options);\n this.replay?.configure(this.options.replay);\n this.client.configure(this.options, payloadData);\n this.instrumenter?.configure(this.options);\n this.setupUnhandledCapture();\n return this;\n }\n\n lastError() {\n return this.client.lastError;\n }\n\n log() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.log(item);\n return { uuid: uuid };\n }\n\n debug() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.debug(item);\n return { uuid: uuid };\n }\n\n info() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.info(item);\n return { uuid: uuid };\n }\n\n warn() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.warn(item);\n return { uuid: uuid };\n }\n\n warning() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.warning(item);\n return { uuid: uuid };\n }\n\n error() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.error(item);\n return { uuid: uuid };\n }\n\n critical() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.critical(item);\n return { uuid: uuid };\n }\n\n buildJsonPayload(item) {\n return this.client.buildJsonPayload(item);\n }\n\n sendJsonPayload(jsonPayload) {\n return this.client.sendJsonPayload(jsonPayload);\n }\n\n triggerDirectReplay(context) {\n return this.triggerReplay({ type: 'direct', ...context });\n }\n\n triggerReplay(context) {\n if (!this.replay) return null;\n\n return this.replay.triggerReplay(context);\n }\n\n setupUnhandledCapture() {\n var gWindow = _gWindow();\n\n if (!this.unhandledExceptionsInitialized) {\n if (\n this.options.captureUncaught ||\n this.options.handleUncaughtExceptions\n ) {\n globals.captureUncaughtExceptions(gWindow, this);\n if (this.wrapGlobals && this.options.wrapGlobalEventHandlers) {\n this.wrapGlobals(gWindow, this);\n }\n this.unhandledExceptionsInitialized = true;\n }\n }\n if (!this.unhandledRejectionsInitialized) {\n if (\n this.options.captureUnhandledRejections ||\n this.options.handleUnhandledRejections\n ) {\n globals.captureUnhandledRejections(gWindow, this);\n this.unhandledRejectionsInitialized = true;\n }\n }\n }\n\n handleUncaughtException(message, url, lineno, colno, error, context) {\n if (\n !this.options.captureUncaught &&\n !this.options.handleUncaughtExceptions\n ) {\n return;\n }\n\n // Chrome will always send 5+ arguments and error will be valid or null, not undefined.\n // If error is undefined, we have a different caller.\n // Chrome also sends errors from web workers with null error, but does not invoke\n // prepareStackTrace() for these. Test for empty url to skip them.\n if (\n this.options.inspectAnonymousErrors &&\n this.isChrome &&\n error === null &&\n url === ''\n ) {\n return 'anonymous';\n }\n\n var item;\n var stackInfo = _.makeUnhandledStackInfo(\n message,\n url,\n lineno,\n colno,\n error,\n 'onerror',\n 'uncaught exception',\n errorParser,\n );\n if (_.isError(error)) {\n item = this._createItem([message, error, context]);\n item._unhandledStackInfo = stackInfo;\n } else if (_.isError(url)) {\n item = this._createItem([message, url, context]);\n item._unhandledStackInfo = stackInfo;\n } else {\n item = this._createItem([message, context]);\n item.stackInfo = stackInfo;\n }\n item.level = this.options.uncaughtErrorLevel;\n item._isUncaught = true;\n this.client.log(item);\n }\n\n /**\n * Chrome only. Other browsers will ignore.\n *\n * Use Error.prepareStackTrace to extract information about errors that\n * do not have a valid error object in onerror().\n *\n * In tested version of Chrome, onerror is called first but has no way\n * to communicate with prepareStackTrace. Use a counter to let this\n * handler know which errors to send to Rollbar.\n *\n * In config options, set inspectAnonymousErrors to enable.\n */\n handleAnonymousErrors() {\n if (!this.options.inspectAnonymousErrors || !this.isChrome) {\n return;\n }\n\n const prepareStackTrace = (error, _stack) => {\n if (this.options.inspectAnonymousErrors) {\n if (this.anonymousErrorsPending) {\n // This is the only known way to detect that onerror saw an anonymous error.\n // It depends on onerror reliably being called before Error.prepareStackTrace,\n // which so far holds true on tested versions of Chrome. If versions of Chrome\n // are tested that behave differently, this logic will need to be updated\n // accordingly.\n this.anonymousErrorsPending -= 1;\n\n if (!error) {\n // Not likely to get here, but calling handleUncaughtException from here\n // without an error object would throw off the anonymousErrorsPending counter,\n // so return now.\n return;\n }\n\n // Allow this to be tracked later.\n error._isAnonymous = true;\n\n // url, lineno, colno shouldn't be needed for these errors.\n // If that changes, update this accordingly, using the unused\n // _stack param as needed (rather than parse error.toString()).\n this.handleUncaughtException(error.message, null, null, null, error);\n }\n }\n\n // Workaround to ensure stack is preserved for normal errors.\n return error.stack;\n };\n\n // https://v8.dev/docs/stack-trace-api\n try {\n Error.prepareStackTrace = prepareStackTrace;\n } catch (e) {\n this.options.inspectAnonymousErrors = false;\n this.error('anonymous error handler failed', e);\n }\n }\n\n handleUnhandledRejection(reason, promise) {\n if (\n !this.options.captureUnhandledRejections &&\n !this.options.handleUnhandledRejections\n ) {\n return;\n }\n\n var message = 'unhandled rejection was null or undefined!';\n if (reason) {\n if (reason.message) {\n message = reason.message;\n } else {\n var reasonResult = _.stringify(reason);\n if (reasonResult.value) {\n message = reasonResult.value;\n }\n }\n }\n var context =\n (reason && reason._rollbarContext) ||\n (promise && promise._rollbarContext);\n\n var item;\n if (_.isError(reason)) {\n item = this._createItem([message, reason, context]);\n } else {\n item = this._createItem([message, reason, context]);\n item.stackInfo = _.makeUnhandledStackInfo(\n message,\n '',\n 0,\n 0,\n null,\n 'unhandledrejection',\n '',\n errorParser,\n );\n }\n item.level = this.options.uncaughtErrorLevel;\n item._isUncaught = true;\n item._originalArgs = item._originalArgs || [];\n item._originalArgs.push(promise);\n this.client.log(item);\n }\n\n wrap(f, context, _before) {\n try {\n var ctxFn;\n if (_.isFunction(context)) {\n ctxFn = context;\n } else {\n ctxFn = function () {\n return context || {};\n };\n }\n\n if (!_.isFunction(f)) {\n return f;\n }\n\n if (f._isWrap) {\n return f;\n }\n\n if (!f._rollbar_wrapped) {\n f._rollbar_wrapped = function () {\n if (_before && _.isFunction(_before)) {\n _before.apply(this, arguments);\n }\n try {\n return f.apply(this, arguments);\n } catch (exc) {\n var e = exc;\n if (e && window._rollbarWrappedError !== e) {\n if (_.isType(e, 'string')) {\n e = new String(e);\n }\n e._rollbarContext = ctxFn() || {};\n e._rollbarContext._wrappedSource = f.toString();\n\n window._rollbarWrappedError = e;\n }\n throw e;\n }\n };\n\n f._rollbar_wrapped._isWrap = true;\n\n for (var prop in f) {\n if (_.hasOwn(f, prop) && prop !== '_rollbar_wrapped') {\n f._rollbar_wrapped[prop] = f[prop];\n }\n }\n }\n\n return f._rollbar_wrapped;\n } catch (_e) {\n // Return the original function if the wrap fails.\n return f;\n }\n }\n\n captureEvent() {\n var event = _.createTelemetryEvent(arguments);\n return this.client.captureEvent(event.type, event.metadata, event.level);\n }\n\n setSessionUser(user) {\n if (!this.tracing?.session) return;\n\n this.tracing.session.setUser(user);\n }\n\n setSessionAttributes(attrs) {\n if (!this.tracing?.session) return;\n\n attrs = { ...attrs };\n\n this.tracing.session.setAttributes(attrs);\n }\n\n setSessionAttributesFromOptions(options) {\n const person = options.person || options.payload?.person;\n if (person) {\n this.setSessionUser(person);\n }\n const code_version =\n options.client?.javascript?.code_version ||\n options.codeVersion ||\n options.code_version ||\n options.payload?.client?.javascript?.code_version ||\n options.payload?.code_version ||\n options.payload?.codeVersion;\n this.setSessionAttributes({\n 'rollbar.codeVersion': code_version,\n 'rollbar.notifier.name': 'rollbar-browser-js',\n 'rollbar.notifier.version': options.version,\n });\n }\n\n // The following two methods are used internally and are not meant for public use\n captureDomContentLoaded(e, ts) {\n if (!ts) {\n ts = new Date();\n }\n return this.client.captureDomContentLoaded(ts);\n }\n\n captureLoad(e, ts) {\n if (!ts) {\n ts = new Date();\n }\n return this.client.captureLoad(ts);\n }\n\n loadFull() {\n logger.info(\n 'Unexpected Rollbar.loadFull() called on a Notifier instance. This can happen when Rollbar is loaded multiple times.',\n );\n }\n\n _createItem(args) {\n return _.createItem(args, logger, this);\n }\n\n // Static version of instance methods support the legacy pattern of a\n // global `Rollbar` instance, where after calling `Rollbar.init()`,\n // `Rollbar` can be used as if it were an instance.\n // If support for this pattern is dropped, these static methods can be removed.\n static callInstance(method, args) {\n if (!_instance) {\n const message = 'Rollbar is not initialized';\n logger.error(message);\n const maybeCallback = _getFirstFunction(args);\n if (maybeCallback) {\n maybeCallback(new Error(message));\n }\n return;\n }\n return _instance[method].apply(_instance, args);\n }\n\n static global = (...args) => Rollbar.callInstance('global', args);\n static configure = (...args) => Rollbar.callInstance('configure', args);\n static lastError = (...args) => Rollbar.callInstance('lastError', args);\n static log = (...args) => Rollbar.callInstance('log', args);\n static debug = (...args) => Rollbar.callInstance('debug', args);\n static info = (...args) => Rollbar.callInstance('info', args);\n static warn = (...args) => Rollbar.callInstance('warn', args);\n static warning = (...args) => Rollbar.callInstance('warning', args);\n static error = (...args) => Rollbar.callInstance('error', args);\n static critical = (...args) => Rollbar.callInstance('critical', args);\n static buildJsonPayload = (...args) =>\n Rollbar.callInstance('buildJsonPayload', args);\n static sendJsonPayload = (...args) =>\n Rollbar.callInstance('sendJsonPayload', args);\n static wrap = (...args) => Rollbar.callInstance('wrap', args);\n static captureEvent = (...args) => Rollbar.callInstance('captureEvent', args);\n}\n\n/* Internal */\n\nfunction addTransformsToNotifier(notifier, rollbar, gWindow) {\n notifier\n .addTransform(transforms.handleDomException)\n .addTransform(transforms.handleItemWithError)\n .addTransform(transforms.ensureItemHasSomethingToSay)\n .addTransform(transforms.addBaseInfo)\n .addTransform(transforms.addRequestInfo(gWindow))\n .addTransform(transforms.addClientInfo(gWindow))\n .addTransform(transforms.addPluginInfo(gWindow))\n .addTransform(transforms.addBody)\n .addTransform(sharedTransforms.addMessageWithError)\n .addTransform(sharedTransforms.addTelemetryData)\n .addTransform(sharedTransforms.addConfigToPayload)\n .addTransform(transforms.addScrubber(rollbar.scrub))\n .addTransform(sharedTransforms.addPayloadOptions)\n .addTransform(sharedTransforms.userTransform(logger))\n .addTransform(sharedTransforms.addConfiguredOptions)\n .addTransform(sharedTransforms.addDiagnosticKeys)\n .addTransform(sharedTransforms.itemToPayload);\n}\n\nfunction addPredicatesToQueue(queue) {\n queue\n .addPredicate(sharedPredicates.checkLevel)\n .addPredicate(predicates.checkIgnore)\n .addPredicate(sharedPredicates.userCheckIgnore(logger))\n .addPredicate(sharedPredicates.urlIsNotBlockListed(logger))\n .addPredicate(sharedPredicates.urlIsSafeListed(logger))\n .addPredicate(sharedPredicates.messageIsIgnored(logger));\n}\n\nfunction _getFirstFunction(args) {\n for (var i = 0, len = args.length; i < len; ++i) {\n if (_.isFunction(args[i])) {\n return args[i];\n }\n }\n return undefined;\n}\n\nfunction _gWindow() {\n return (\n (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && self)\n );\n}\n\nconst defaultOptions = {\n environment: 'unknown',\n version: defaults.version,\n scrubFields: browserDefaults.scrubFields,\n logLevel: defaults.logLevel,\n reportLevel: defaults.reportLevel,\n uncaughtErrorLevel: defaults.uncaughtErrorLevel,\n endpoint: defaults.endpoint,\n verbose: false,\n enabled: true,\n transmit: true,\n sendConfig: false,\n includeItemsInTelemetry: true,\n captureIp: true,\n inspectAnonymousErrors: true,\n ignoreDuplicateErrors: true,\n wrapGlobalEventHandlers: false,\n replay: replayDefaults,\n tracing: tracingDefaults,\n};\n\nexport default Rollbar;\n","function captureUncaughtExceptions(window, handler, shim) {\n if (!window) {\n return;\n }\n var oldOnError;\n\n if (typeof handler._rollbarOldOnError === 'function') {\n oldOnError = handler._rollbarOldOnError;\n } else if (window.onerror) {\n oldOnError = window.onerror;\n while (oldOnError._rollbarOldOnError) {\n oldOnError = oldOnError._rollbarOldOnError;\n }\n handler._rollbarOldOnError = oldOnError;\n }\n\n handler.handleAnonymousErrors();\n\n var fn = function () {\n var args = Array.prototype.slice.call(arguments, 0);\n _rollbarWindowOnError(window, handler, oldOnError, args);\n };\n if (shim) {\n fn._rollbarOldOnError = oldOnError;\n }\n window.onerror = fn;\n}\n\nfunction _rollbarWindowOnError(window, r, old, args) {\n if (window._rollbarWrappedError) {\n if (!args[4]) {\n args[4] = window._rollbarWrappedError;\n }\n if (!args[5]) {\n args[5] = window._rollbarWrappedError._rollbarContext;\n }\n window._rollbarWrappedError = null;\n }\n\n var ret = r.handleUncaughtException.apply(r, args);\n\n if (old) {\n old.apply(window, args);\n }\n\n // Let other chained onerror handlers above run before setting this.\n // If an error is thrown and caught within a chained onerror handler,\n // Error.prepareStackTrace() will see that one before the one we want.\n if (ret === 'anonymous') {\n r.anonymousErrorsPending += 1; // See Rollbar.prototype.handleAnonymousErrors()\n }\n}\n\nfunction captureUnhandledRejections(window, handler, shim) {\n if (!window) {\n return;\n }\n\n if (\n typeof window._rollbarURH === 'function' &&\n window._rollbarURH.belongsToShim\n ) {\n window.removeEventListener('unhandledrejection', window._rollbarURH);\n }\n\n var rejectionHandler = function (evt) {\n var reason, promise, detail;\n try {\n reason = evt.reason;\n } catch (_e) {\n reason = undefined;\n }\n try {\n promise = evt.promise;\n } catch (_e) {\n promise = '[unhandledrejection] error getting `promise` from event';\n }\n try {\n detail = evt.detail;\n if (!reason && detail) {\n reason = detail.reason;\n promise = detail.promise;\n }\n } catch (_e) {\n // Ignore\n }\n if (!reason) {\n reason = '[unhandledrejection] error getting `reason` from event';\n }\n\n if (handler && handler.handleUnhandledRejection) {\n handler.handleUnhandledRejection(reason, promise);\n }\n };\n rejectionHandler.belongsToShim = shim;\n window._rollbarURH = rejectionHandler;\n window.addEventListener('unhandledrejection', rejectionHandler);\n}\n\nexport { captureUncaughtExceptions, captureUnhandledRejections };\n","/**\n * Default session replay recording options\n * See https://github.com/rrweb-io/rrweb/blob/master/guide.md#options for details\n */\nexport default {\n enabled: false, // Whether recording is enabled\n autoStart: true, // Start recording automatically when Rollbar initializes\n\n // defaults used by triggers that don't specify them\n triggerDefaults: {\n samplingRatio: 1.0,\n preDuration: 300,\n postDuration: 5,\n },\n triggers: [\n {\n type: 'occurrence',\n level: ['error', 'critical'],\n },\n ],\n\n debug: {\n logErrors: true, // Whether to log errors emitted by rrweb.\n logEmits: false, // Whether to log emitted events\n },\n\n // Recording options\n inlineStylesheet: true, // Whether to inline stylesheets to improve replay accuracy\n inlineImages: false, // Whether to record the image content\n collectFonts: true, // Whether to collect fonts in the website\n\n // Privacy options\n // Fine-grained control over which input types to mask\n // By default only password inputs are masked if maskInputs is true\n maskInputOptions: {\n password: true,\n email: false,\n tel: false,\n text: false,\n color: false,\n date: false,\n 'datetime-local': false,\n month: false,\n number: false,\n range: false,\n search: false,\n time: false,\n url: false,\n week: false,\n },\n\n // Mask all input values\n maskAllInputs: false,\n\n // Class names to block, mask, or ignore the content of elements.\n blockClass: 'rb-block',\n maskTextClass: 'rb-mask',\n ignoreClass: 'rb-ignore',\n\n // Remove unnecessary parts of the DOM\n // By default all removable elements are removed\n slimDOMOptions: {\n script: true, // Remove script elements\n comment: true, // Remove comments\n headFavicon: true, // Remove favicons in the head\n headWhitespace: true, // Remove whitespace in head\n headMetaDescKeywords: true, // Remove meta description and keywords\n headMetaSocial: true, // Remove social media meta tags\n headMetaRobots: true, // Remove robots meta directives\n headMetaHttpEquiv: true, // Remove http-equiv meta directives\n headMetaAuthorship: true, // Remove authorship meta directives\n headMetaVerification: true, // Remove verification meta directives\n },\n\n // Custom callbacks for advanced use cases\n // These are undefined by default and can be set programmatically\n // maskInputFn: undefined, // Custom function to mask input values\n // maskTextFn: undefined, // Custom function to mask text content\n // errorHandler: undefined, // Custom error handler for recording errors\n\n // Plugin system\n // plugins: [] // List of plugins to use (must be set programmatically)\n};\n","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\n","import { hasOwn } from '../utility.js';\n\n/*\n * headers - Detect when fetch Headers are undefined and use a partial polyfill.\n *\n * A full polyfill is not used in order to keep package size as small as possible.\n * Since this is only used internally and is not added to the window object,\n * the full interface doesn't need to be supported.\n *\n * This implementation is modified from whatwg-fetch:\n * https://github.com/github/fetch\n */\nfunction headers(headers) {\n if (typeof Headers === 'undefined') {\n return new FetchHeaders(headers);\n }\n\n return new Headers(headers);\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n return name.toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value;\n}\n\nfunction iteratorFor(items) {\n var iterator = {\n next: function () {\n var value = items.shift();\n return { done: value === undefined, value: value };\n },\n };\n\n return iterator;\n}\n\nfunction FetchHeaders(headers) {\n this.map = {};\n\n if (headers instanceof FetchHeaders) {\n headers.forEach(function (value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function (header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function (name) {\n this.append(name, headers[name]);\n }, this);\n }\n}\n\nFetchHeaders.prototype.append = function (name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n};\n\nFetchHeaders.prototype.get = function (name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null;\n};\n\nFetchHeaders.prototype.has = function (name) {\n return hasOwn(this.map, normalizeName(name));\n};\n\nFetchHeaders.prototype.forEach = function (callback, thisArg) {\n for (var name in this.map) {\n if (hasOwn(this.map, name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n};\n\nFetchHeaders.prototype.entries = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items);\n};\n\nexport default headers;\n","function replace(obj, name, replacement, replacements, type) {\n var orig = obj[name];\n obj[name] = replacement(orig);\n if (replacements) {\n replacements[type].push([obj, name, orig]);\n }\n}\n\nexport default replace;\n","function getElementType(e) {\n return (e.getAttribute('type') || '').toLowerCase();\n}\n\nfunction isDescribedElement(element, type, subtypes) {\n if (element.tagName.toLowerCase() !== type.toLowerCase()) {\n return false;\n }\n if (!subtypes) {\n return true;\n }\n const elementType = getElementType(element);\n for (const subtype of subtypes) {\n if (subtype === elementType) {\n return true;\n }\n }\n return false;\n}\n\nfunction getElementFromEvent(evt, doc) {\n if (evt.target) {\n return evt.target;\n }\n if (doc && doc.elementFromPoint) {\n return doc.elementFromPoint(evt.clientX, evt.clientY);\n }\n return undefined;\n}\n\nfunction treeToArray(elem) {\n var MAX_HEIGHT = 5;\n var out = [];\n var nextDescription;\n for (var height = 0; elem && height < MAX_HEIGHT; height++) {\n nextDescription = describeElement(elem);\n if (!nextDescription || nextDescription.tagName === 'html') {\n break;\n }\n out.unshift(nextDescription);\n elem = elem.parentNode;\n }\n return out;\n}\n\nfunction elementArrayToString(a) {\n var MAX_LENGTH = 80;\n var separator = ' > ',\n separatorLength = separator.length;\n var out = [],\n len = 0,\n nextStr,\n totalLength;\n\n for (var i = a.length - 1; i >= 0; i--) {\n nextStr = descriptionToString(a[i]);\n totalLength = len + out.length * separatorLength + nextStr.length;\n if (i < a.length - 1 && totalLength >= MAX_LENGTH + 3) {\n out.unshift('...');\n break;\n }\n out.unshift(nextStr);\n len += nextStr.length;\n }\n return out.join(separator);\n}\n\nfunction elementString(elem) {\n return elementArrayToString(treeToArray(elem));\n}\n\nfunction descriptionToString(desc) {\n if (!desc || !desc.tagName) {\n return '';\n }\n var out = [desc.tagName];\n if (desc.id) {\n out.push('#' + desc.id);\n }\n if (desc.classes) {\n out.push('.' + desc.classes.join('.'));\n }\n for (const attribute of desc.attributes) {\n out.push('[' + attribute.key + '=\"' + attribute.value + '\"]');\n }\n\n return out.join('');\n}\n\n/**\n * Input: a dom element\n * Output: null if tagName is falsey or input is falsey, else\n * {\n * tagName: String,\n * id: String | undefined,\n * classes: [String] | undefined,\n * attributes: [\n * {\n * key: OneOf(type, name, title, alt),\n * value: String\n * }\n * ]\n * }\n */\nfunction describeElement(elem) {\n if (!elem || !elem.tagName) {\n return null;\n }\n var out = {},\n className;\n out.tagName = elem.tagName.toLowerCase();\n if (elem.id) {\n out.id = elem.id;\n }\n className = elem.className;\n if (className && typeof className === 'string') {\n out.classes = className.split(/\\s+/);\n }\n var attributes = ['type', 'name', 'title', 'alt'];\n out.attributes = [];\n for (const attribute of attributes) {\n const attr = elem.getAttribute(attribute);\n if (attr) {\n out.attributes.push({ key: attribute, value: attr });\n }\n }\n return out;\n}\n\n/*\n * Detects if the given element matches any of the given class names (string or regex),\n * or CSS selectors.\n * @param {HTMLElement} element - The DOM element to check.\n * @param {Array<string|RegExp>} classes - An array of class names (string or regex) to match against.\n * @param {Array<string>} selectors - An array of CSS selectors to match against.\n * @return {boolean} - True if the element matches any of the classes or selectors, false otherwise.\n */\nfunction isMatchingElement(element, classes, selectors) {\n try {\n for (const cls of classes) {\n if (typeof cls === 'string') {\n if (element.classList.contains(cls)) {\n return true;\n }\n } else {\n for (const c of element.classList) {\n if (cls.test(c)) {\n return true;\n }\n }\n }\n }\n for (const sel of selectors) {\n if (element.matches(sel)) {\n return true;\n }\n }\n } catch (_e) {\n // ignore errors from invalid arguments\n }\n return false;\n}\n\nexport {\n describeElement,\n descriptionToString,\n elementArrayToString,\n elementString,\n treeToArray,\n getElementFromEvent,\n isDescribedElement,\n getElementType,\n isMatchingElement,\n};\n","/* eslint-disable @typescript-eslint/no-this-alias */\n// TODO(matux): refactor to remove no-this-alias disable\n\nimport logger from '../logger.js';\nimport scrub from '../scrub.js';\nimport headers from '../utility/headers.js';\nimport replace from '../utility/replace.js';\nimport * as _ from '../utility.js';\n\nimport * as domUtil from './domUtility.js';\nimport * as urlparser from './url.js';\n\nconst defaults = {\n network: true,\n networkResponseHeaders: false,\n networkResponseBody: false,\n networkRequestHeaders: false,\n networkRequestBody: false,\n networkErrorOnHttp5xx: false,\n networkErrorOnHttp4xx: false,\n networkErrorOnHttp0: false,\n log: true,\n dom: true,\n navigation: true,\n connectivity: true,\n contentSecurityPolicy: true,\n errorOnContentSecurityPolicy: false,\n};\n\nfunction restore(replacements, type) {\n let b;\n while (replacements[type].length) {\n b = replacements[type].shift();\n b[0][b[1]] = b[2];\n }\n}\n\nfunction nameFromDescription(description) {\n if (!description || !description.attributes) {\n return null;\n }\n const attrs = description.attributes;\n for (const a of attrs) {\n if (a.key === 'name') {\n return a.value;\n }\n }\n return null;\n}\n\nfunction defaultValueScrubber(scrubFields) {\n const patterns = [];\n for (const field of scrubFields) {\n patterns.push(new RegExp(field, 'i'));\n }\n return function (description) {\n const name = nameFromDescription(description);\n if (!name) {\n return false;\n }\n for (const p of patterns) {\n if (p.test(name)) {\n return true;\n }\n }\n return false;\n };\n}\n\nclass Instrumenter {\n constructor(options, telemeter, rollbar, _window, _document) {\n this.options = options;\n let autoInstrument = options.autoInstrument;\n if (options.enabled === false || autoInstrument === false) {\n this.autoInstrument = {};\n } else {\n if (!_.isType(autoInstrument, 'object')) {\n autoInstrument = defaults;\n }\n this.autoInstrument = _.merge(defaults, autoInstrument);\n }\n this.configureScrubbing();\n this.telemeter = telemeter;\n this.rollbar = rollbar;\n this.diagnostic = rollbar.client.notifier.diagnostic;\n this._window = _window || {};\n this._document = _document || {};\n this.replacements = {\n network: [],\n log: [],\n navigation: [],\n connectivity: [],\n };\n this.eventRemovers = {\n dom: [],\n connectivity: [],\n contentsecuritypolicy: [],\n };\n\n this._location = this._window.location;\n this._lastHref = this._location && this._location.href;\n }\n\n configureScrubbing() {\n const options = this.options;\n this.scrubTelemetryInputs = Boolean(\n options.scrubTelemetryInputs ?? options.replay?.maskAllInputs,\n );\n this.telemetryScrubber = options.telemetryScrubber;\n this.defaultValueScrubber = defaultValueScrubber(options.scrubFields);\n this.maskInputFn = options.replay?.maskInputFn;\n this.maskInputOptions = options.replay?.maskInputOptions || {};\n this.scrubClasses = [\n options.replay?.blockClass,\n options.replay?.ignoreClass,\n options.replay?.maskTextClass,\n ].filter(Boolean);\n this.scrubSelectors = [\n options.replay?.blockSelector,\n options.replay?.ignoreSelector,\n options.replay?.maskTextSelector,\n ].filter(Boolean);\n }\n\n configure(options) {\n this.options = _.merge(this.options, options);\n let autoInstrument = options.autoInstrument;\n const oldSettings = _.merge(this.autoInstrument);\n if (options.enabled === false || autoInstrument === false) {\n this.autoInstrument = {};\n } else {\n if (!_.isType(autoInstrument, 'object')) {\n autoInstrument = defaults;\n }\n this.autoInstrument = _.merge(defaults, autoInstrument);\n }\n this.configureScrubbing();\n this.instrument(oldSettings);\n }\n\n // eslint-disable-next-line complexity\n instrument(oldSettings) {\n if (this.autoInstrument.network && !(oldSettings && oldSettings.network)) {\n this.instrumentNetwork();\n } else if (\n !this.autoInstrument.network &&\n oldSettings &&\n oldSettings.network\n ) {\n this.deinstrumentNetwork();\n }\n\n if (this.autoInstrument.log && !(oldSettings && oldSettings.log)) {\n this.instrumentConsole();\n } else if (!this.autoInstrument.log && oldSettings && oldSettings.log) {\n this.deinstrumentConsole();\n }\n\n if (this.autoInstrument.dom && !(oldSettings && oldSettings.dom)) {\n this.instrumentDom();\n } else if (!this.autoInstrument.dom && oldSettings && oldSettings.dom) {\n this.deinstrumentDom();\n }\n\n if (\n this.autoInstrument.navigation &&\n !(oldSettings && oldSettings.navigation)\n ) {\n this.instrumentNavigation();\n } else if (\n !this.autoInstrument.navigation &&\n oldSettings &&\n oldSettings.navigation\n ) {\n this.deinstrumentNavigation();\n }\n\n if (\n this.autoInstrument.connectivity &&\n !(oldSettings && oldSettings.connectivity)\n ) {\n this.instrumentConnectivity();\n } else if (\n !this.autoInstrument.connectivity &&\n oldSettings &&\n oldSettings.connectivity\n ) {\n this.deinstrumentConnectivity();\n }\n\n if (\n this.autoInstrument.contentSecurityPolicy &&\n !(oldSettings && oldSettings.contentSecurityPolicy)\n ) {\n this.instrumentContentSecurityPolicy();\n } else if (\n !this.autoInstrument.contentSecurityPolicy &&\n oldSettings &&\n oldSettings.contentSecurityPolicy\n ) {\n this.deinstrumentContentSecurityPolicy();\n }\n }\n\n deinstrumentNetwork() {\n restore(this.replacements, 'network');\n }\n\n instrumentNetwork() {\n const self = this;\n\n function wrapProp(prop, xhr) {\n if (prop in xhr && _.isFunction(xhr[prop])) {\n replace(xhr, prop, function (orig) {\n return self.rollbar.wrap(orig);\n });\n }\n }\n\n if ('XMLHttpRequest' in this._window) {\n const xhrp = this._window.XMLHttpRequest.prototype;\n replace(\n xhrp,\n 'open',\n function (orig) {\n return function (method, url) {\n const isUrlObject = _isUrlObject(url);\n if (_.isType(url, 'string') || isUrlObject) {\n url = isUrlObject ? url.toString() : url;\n if (this.__rollbar_xhr) {\n this.__rollbar_xhr.method = method;\n this.__rollbar_xhr.url = url;\n this.__rollbar_xhr.status_code = null;\n this.__rollbar_xhr.start_time_ms = _.now();\n this.__rollbar_xhr.end_time_ms = null;\n } else {\n this.__rollbar_xhr = {\n method: method,\n url: url,\n status_code: null,\n start_time_ms: _.now(),\n end_time_ms: null,\n };\n }\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n\n replace(\n xhrp,\n 'setRequestHeader',\n function (orig) {\n return function (header, value) {\n // If xhr.open is async, __rollbar_xhr may not be initialized yet.\n if (!this.__rollbar_xhr) {\n this.__rollbar_xhr = {};\n }\n if (_.isType(header, 'string') && _.isType(value, 'string')) {\n if (self.autoInstrument.networkRequestHeaders) {\n if (!this.__rollbar_xhr.request_headers) {\n this.__rollbar_xhr.request_headers = {};\n }\n this.__rollbar_xhr.request_headers[header] = value;\n }\n // We want the content type even if request header telemetry is off.\n if (header.toLowerCase() === 'content-type') {\n this.__rollbar_xhr.request_content_type = value;\n }\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n\n replace(\n xhrp,\n 'send',\n function (orig) {\n return function (data) {\n const xhr = this;\n const tracing = self.rollbar?.tracing;\n if (\n _.shouldAddBaggageHeader(\n self.options,\n tracing,\n xhr.__rollbar_xhr?.url,\n )\n ) {\n try {\n xhr.setRequestHeader(\n 'baggage',\n `rollbar.session.id=${tracing.sessionId}`,\n );\n } catch (_e) {\n /* ignore errors from adding baggage header */\n }\n }\n\n function onreadystatechangeHandler() {\n if (xhr.__rollbar_xhr) {\n if (xhr.__rollbar_xhr.status_code === null) {\n xhr.__rollbar_xhr.status_code = 0;\n if (self.autoInstrument.networkRequestBody) {\n xhr.__rollbar_xhr.request = data;\n }\n xhr.__rollbar_event = self.captureNetwork(\n xhr.__rollbar_xhr,\n 'xhr',\n undefined,\n );\n }\n if (xhr.readyState < 2) {\n xhr.__rollbar_xhr.start_time_ms = _.now();\n }\n if (xhr.readyState > 3) {\n const end_time_ms = _.now();\n xhr.__rollbar_xhr.end_time_ms = end_time_ms;\n\n let headers = null;\n xhr.__rollbar_xhr.response_content_type =\n xhr.getResponseHeader('Content-Type');\n if (self.autoInstrument.networkResponseHeaders) {\n const headersConfig =\n self.autoInstrument.networkResponseHeaders;\n headers = {};\n try {\n let header;\n if (headersConfig === true) {\n const allHeaders = xhr.getAllResponseHeaders();\n if (allHeaders) {\n const arr = allHeaders.trim().split(/[\\r\\n]+/);\n let parts, value;\n for (const h of arr) {\n parts = h.split(': ');\n header = parts.shift();\n value = parts.join(': ');\n headers[header] = value;\n }\n }\n } else {\n for (const h of headersConfig) {\n headers[h] = xhr.getResponseHeader(h);\n }\n }\n } catch (_e) {\n /* we ignore the errors here that could come from different\n * browser issues with the xhr methods */\n }\n }\n let body = null;\n if (self.autoInstrument.networkResponseBody) {\n try {\n body = xhr.responseText;\n } catch (_e) {\n /* ignore errors from reading responseText */\n }\n }\n let response = null;\n if (body || headers) {\n response = {};\n if (body) {\n if (\n self.isJsonContentType(\n xhr.__rollbar_xhr.response_content_type,\n )\n ) {\n response.body = self.scrubJson(body);\n } else {\n response.body = body;\n }\n }\n if (headers) {\n response.headers = headers;\n }\n }\n if (response) {\n xhr.__rollbar_xhr.response = response;\n }\n try {\n let code = xhr.status;\n code = code === 1223 ? 204 : code;\n xhr.__rollbar_xhr.status_code = code;\n self.addOtelNetworkResponse(\n xhr.__rollbar_event,\n end_time_ms,\n code,\n );\n xhr.__rollbar_event.level =\n self.telemeter.levelFromStatus(code);\n self.errorOnHttpStatus(xhr.__rollbar_xhr);\n } catch (_e) {\n /* ignore possible exception from xhr.status */\n }\n }\n }\n }\n\n wrapProp('onload', xhr);\n wrapProp('onerror', xhr);\n wrapProp('onprogress', xhr);\n\n if (\n 'onreadystatechange' in xhr &&\n _.isFunction(xhr.onreadystatechange)\n ) {\n replace(xhr, 'onreadystatechange', function (orig) {\n return self.rollbar.wrap(\n orig,\n undefined,\n onreadystatechangeHandler,\n );\n });\n } else {\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n if (xhr.__rollbar_xhr && self.trackHttpErrors()) {\n xhr.__rollbar_xhr.stack = new Error().stack;\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n }\n\n if ('fetch' in this._window) {\n replace(\n this._window,\n 'fetch',\n function (orig) {\n return function (_fn, _t) {\n const args = [...arguments];\n const input = args[0];\n let method = 'GET';\n let url;\n const isUrlObject = _isUrlObject(input);\n if (_.isType(input, 'string') || isUrlObject) {\n url = isUrlObject ? input.toString() : input;\n } else if (input) {\n url = input.url;\n if (input.method) {\n method = input.method;\n }\n }\n if (args[1] && args[1].method) {\n method = args[1].method;\n }\n const tracing = self.rollbar?.tracing;\n if (_.shouldAddBaggageHeader(self.options, tracing, url)) {\n const headers = {\n baggage: `rollbar.session.id=${tracing.sessionId}`,\n };\n\n _.addHeadersToFetch(args, headers);\n }\n const metadata = {\n method: method,\n url: url,\n status_code: null,\n start_time_ms: _.now(),\n end_time_ms: null,\n };\n if (args[1] && args[1].headers) {\n // Argument may be a Headers object, or plain object. Ensure here that\n // we are working with a Headers object with case-insensitive keys.\n const reqHeaders = headers(args[1].headers);\n\n metadata.request_content_type = reqHeaders.get('Content-Type');\n\n if (self.autoInstrument.networkRequestHeaders) {\n metadata.request_headers = self.fetchHeaders(\n reqHeaders,\n self.autoInstrument.networkRequestHeaders,\n );\n }\n }\n\n if (self.autoInstrument.networkRequestBody) {\n if (args[1] && args[1].body) {\n metadata.request = args[1].body;\n } else if (\n args[0] &&\n !_.isType(args[0], 'string') &&\n args[0].body\n ) {\n metadata.request = args[0].body;\n }\n }\n const telemetryEvent = self.captureNetwork(\n metadata,\n 'fetch',\n undefined,\n );\n if (self.trackHttpErrors()) {\n metadata.stack = new Error().stack;\n }\n\n // Start our handler before returning the promise. This allows resp.clone()\n // to execute before other handlers touch the response.\n return orig.apply(this, args).then(function (resp) {\n const end_time_ms = _.now();\n metadata.end_time_ms = end_time_ms;\n metadata.status_code = resp.status;\n self.addOtelNetworkResponse(\n telemetryEvent,\n end_time_ms,\n resp.status,\n );\n\n metadata.response_content_type = resp.headers.get('Content-Type');\n let headers = null;\n if (self.autoInstrument.networkResponseHeaders) {\n headers = self.fetchHeaders(\n resp.headers,\n self.autoInstrument.networkResponseHeaders,\n );\n }\n let body = null;\n if (self.autoInstrument.networkResponseBody) {\n if (typeof resp.text === 'function') {\n // Response.text() is not implemented on some platforms\n // The response must be cloned to prevent reading (and locking) the original stream.\n // This must be done before other handlers touch the response.\n body = resp.clone().text(); //returns a Promise\n }\n }\n if (headers || body) {\n metadata.response = {};\n if (body) {\n // Test to ensure body is a Promise, which it should always be.\n if (typeof body.then === 'function') {\n body.then(function (text) {\n if (\n text &&\n self.isJsonContentType(metadata.response_content_type)\n ) {\n metadata.response.body = self.scrubJson(text);\n } else {\n metadata.response.body = text;\n }\n });\n } else {\n metadata.response.body = body;\n }\n }\n if (headers) {\n metadata.response.headers = headers;\n }\n }\n self.errorOnHttpStatus(metadata);\n return resp;\n });\n };\n },\n this.replacements,\n 'network',\n );\n }\n }\n\n captureNetwork(metadata, subtype, rollbarUUID) {\n if (\n metadata.request &&\n this.isJsonContentType(metadata.request_content_type)\n ) {\n metadata.request = this.scrubJson(metadata.request);\n }\n return this.telemeter.captureNetwork(metadata, subtype, rollbarUUID);\n }\n\n isJsonContentType(contentType) {\n return contentType &&\n _.isType(contentType, 'string') &&\n contentType.toLowerCase().includes('json')\n ? true\n : false;\n }\n\n addOtelNetworkResponse(event, endTimeMs, statusCode) {\n if (event.otelAttributes) {\n event.otelAttributes['response.timeUnixNano'] = (\n endTimeMs * 1e6\n ).toString();\n event.otelAttributes.statusCode = statusCode;\n }\n }\n\n scrubJson(json) {\n return JSON.stringify(scrub(JSON.parse(json), this.options.scrubFields));\n }\n\n fetchHeaders(inHeaders, headersConfig) {\n const outHeaders = {};\n try {\n if (headersConfig === true) {\n if (typeof inHeaders.entries === 'function') {\n // Headers.entries() is not implemented in IE\n const allHeaders = inHeaders.entries();\n let currentHeader = allHeaders.next();\n while (!currentHeader.done) {\n outHeaders[currentHeader.value[0]] = currentHeader.value[1];\n currentHeader = allHeaders.next();\n }\n }\n } else {\n for (const h of headersConfig) {\n outHeaders[h] = inHeaders.get(h);\n }\n }\n } catch (_e) {\n /* ignore probable IE errors */\n }\n return outHeaders;\n }\n\n trackHttpErrors() {\n return (\n this.autoInstrument.networkErrorOnHttp5xx ||\n this.autoInstrument.networkErrorOnHttp4xx ||\n this.autoInstrument.networkErrorOnHttp0\n );\n }\n\n errorOnHttpStatus(metadata) {\n const status = metadata.status_code;\n\n if (\n (status >= 500 && this.autoInstrument.networkErrorOnHttp5xx) ||\n (status >= 400 && this.autoInstrument.networkErrorOnHttp4xx) ||\n (status === 0 && this.autoInstrument.networkErrorOnHttp0)\n ) {\n const error = new Error('HTTP request failed with Status ' + status);\n error.stack = metadata.stack;\n this.rollbar.error(error, { skipFrames: 1 });\n }\n }\n\n deinstrumentConsole() {\n let b;\n while (this.replacements['log'].length) {\n b = this.replacements['log'].shift();\n this._window.console[b[0]] = b[1];\n }\n }\n\n instrumentConsole() {\n if (!this._window?.console?.log) {\n return;\n }\n\n const self = this;\n const c = this._window.console;\n\n function wrapConsole(method) {\n // eslint-disable-next-line strict\n 'use strict'; // See https://github.com/rollbar/rollbar.js/pull/778\n\n const orig = c[method];\n const origConsole = c;\n const level = method === 'warn' ? 'warning' : method;\n c[method] = function () {\n const args = Array.prototype.slice.call(arguments);\n const message = _.formatArgsAsString(args);\n self.telemeter.captureLog(message, level, null, _.now());\n if (orig) {\n Function.prototype.apply.call(orig, origConsole, args);\n }\n };\n self.replacements['log'].push([method, orig]);\n }\n const methods = ['debug', 'info', 'warn', 'error', 'log'];\n try {\n for (const m of methods) {\n wrapConsole(m);\n }\n } catch (e) {\n this.diagnostic.instrumentConsole = { error: e.message };\n }\n }\n\n deinstrumentDom() {\n this.removeListeners('dom');\n }\n\n instrumentDom() {\n this.addListener(\n 'dom',\n this._window,\n ['click', 'dblclick', 'contextmenu'],\n (e) => this.handleEvent('click', e),\n );\n this.addListener(\n 'dom',\n this._window,\n ['dragstart', 'dragend', 'dragenter', 'dragleave', 'drop'],\n (e) => this.handleEvent('dragdrop', e),\n );\n this.addListener('dom', this._window, ['blur', 'focus'], (e) =>\n this.handleEvent('focus', e),\n );\n this.addListener('dom', this._window, ['submit', 'invalid'], (e) =>\n this.handleEvent('form', e),\n );\n this.addListener('dom', this._window, ['input', 'change'], (e) =>\n this.handleEvent('input', e),\n );\n this.addListener('dom', this._window, ['resize'], (e) =>\n this.handleEvent('resize', e),\n );\n this.addListener('dom', this._document, ['DOMContentLoaded'], (e) =>\n this.handleEvent('contentLoaded', e),\n );\n }\n\n handleEvent(name, evt) {\n try {\n return {\n click: this.handleClick,\n dragdrop: this.handleDrag,\n focus: this.handleFocus,\n form: this.handleForm,\n input: this.handleInput,\n resize: this.handleResize,\n contentLoaded: this.handleContentLoaded,\n }[name].call(this, evt);\n } catch (exc) {\n logger.log(`${name} handler error`, evt, exc, exc.stack);\n }\n }\n\n handleContentLoaded(_evt) {\n this.rollbar.triggerReplay({\n type: 'navigation',\n path: new URL(this._location.href).pathname,\n });\n }\n\n handleClick(evt) {\n const tagName = evt.target?.tagName.toLowerCase();\n if (['input', 'select', 'textarea'].includes(tagName)) return;\n\n this.telemeter.captureClick({\n type: evt.type,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n timestamp: _.now(),\n });\n }\n\n handleFocus(evt) {\n const type = evt.type;\n const element = evt.target?.window\n ? 'window'\n : domUtil.elementString(evt.target);\n\n this.telemeter.captureFocus({\n type: type,\n isSynthetic: !evt.isTrusted,\n element,\n timestamp: _.now(),\n });\n }\n\n handleForm(_evt) {\n // TODO: implement form event handling\n //const type = evt.type;\n //const elementString = evt.target?.window\n // ? 'window'\n // : domUtil.elementString(evt.target);\n }\n\n handleResize(evt) {\n const textZoomRatio = window.screen.width / window.innerWidth;\n\n this.telemeter.captureResize({\n type: evt.type,\n isSynthetic: !evt.isTrusted,\n width: window.innerWidth,\n height: window.innerHeight,\n textZoomRatio: textZoomRatio,\n timestamp: _.now(),\n });\n }\n\n handleDrag(evt) {\n const type = evt.type;\n let kinds, mediaTypes, dropEffect, effectAllowed;\n\n if (type === 'drop') {\n kinds = [];\n mediaTypes = [];\n const objs = [...evt.dataTransfer.files, ...evt.dataTransfer.items];\n for (const o of objs) {\n if (o.kind && o.type) {\n kinds.push(o.kind);\n mediaTypes.push(o.type);\n }\n }\n }\n if (['drop', 'dragstart'].includes(type)) {\n dropEffect = evt.dataTransfer?.dropEffect;\n effectAllowed = evt.dataTransfer?.effectAllowed;\n }\n\n this.telemeter.captureDragDrop({\n type,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n dropEffect: dropEffect,\n effectAllowed: effectAllowed,\n kinds: JSON.stringify(kinds),\n mediaTypes: JSON.stringify(mediaTypes),\n timestamp: _.now(),\n });\n }\n\n /*\n * Applies Rollbar telemetry scrubbing options to the dom input value.\n * When replay options are present, applies those as well.\n */\n scrubInputValue(value, element, tagName, inputType) {\n const mask = '******';\n\n if (inputType === 'password') {\n return mask;\n }\n\n if (this.scrubTelemetryInputs) {\n return mask;\n } else {\n const description = domUtil.describeElement(element);\n if (this.telemetryScrubber) {\n if (this.telemetryScrubber(description)) {\n return mask;\n }\n } else if (this.defaultValueScrubber(description)) {\n return mask;\n }\n }\n\n // Apply replay options regardless of other scrubbing\n if (\n domUtil.isMatchingElement(element, this.scrubClasses, this.scrubSelectors)\n ) {\n return mask;\n }\n\n // This check is last since maskInputFn returns a modified value rather\n // than a boolean, which would cause an early return even if the value\n // was not scrubbed.\n if (\n this.maskInputOptions[tagName.toLowerCase()] ||\n this.maskInputOptions[inputType]\n ) {\n if (this.maskInputFn) {\n return this.maskInputFn(value, element);\n } else {\n return mask;\n }\n }\n\n return value;\n }\n\n /*\n * Uses the `input` event for everything except radio and checkbox inputs.\n * For those, it uses the `change` event.\n */\n handleInput(evt) {\n const type = evt.type;\n const tagName = evt.target?.tagName.toLowerCase();\n let value = evt.target?.value;\n let inputType = evt.target?.attributes?.type?.value || evt.target?.type;\n\n if (value !== undefined) {\n value = this.scrubInputValue(value, evt.target, tagName, inputType);\n }\n\n switch (type) {\n case 'input':\n if (['radio', 'checkbox'].includes(inputType)) return;\n if (['select', 'textarea'].includes(tagName)) {\n inputType = tagName;\n }\n break;\n\n case 'change':\n if (!['radio', 'checkbox'].includes(inputType)) return;\n if (inputType === 'checkbox') {\n value = evt.target?.checked;\n }\n break;\n }\n\n this.telemeter.captureInput({\n type: inputType,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n value,\n timestamp: _.now(),\n });\n }\n\n deinstrumentNavigation() {\n const chrome = this._window.chrome;\n const chromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n // See https://github.com/angular/angular.js/pull/13945/files\n const hasPushState =\n !chromePackagedApp &&\n this._window.history &&\n this._window.history.pushState;\n if (!hasPushState) {\n return;\n }\n restore(this.replacements, 'navigation');\n }\n\n instrumentNavigation() {\n const chrome = this._window.chrome;\n const chromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n // See https://github.com/angular/angular.js/pull/13945/files\n const hasPushState =\n !chromePackagedApp &&\n this._window.history &&\n this._window.history.pushState;\n if (!hasPushState) {\n return;\n }\n const self = this;\n replace(\n this._window,\n 'onpopstate',\n function (orig) {\n return function () {\n const current = self._location.href;\n self.handleUrlChange(self._lastHref, current);\n if (orig) {\n orig.apply(this, arguments);\n }\n };\n },\n this.replacements,\n 'navigation',\n );\n\n replace(\n this._window.history,\n 'pushState',\n function (orig) {\n return function () {\n const url = arguments.length > 2 ? arguments[2] : undefined;\n if (url) {\n self.handleUrlChange(self._lastHref, String(url));\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'navigation',\n );\n }\n\n handleUrlChange(from, to) {\n const parsedHref = urlparser.parse(this._location.href);\n const parsedTo = urlparser.parse(to);\n const parsedFrom = urlparser.parse(from);\n this._lastHref = to;\n if (\n parsedHref.protocol === parsedTo.protocol &&\n parsedHref.host === parsedTo.host\n ) {\n to = parsedTo.path + (parsedTo.hash || '');\n }\n if (\n parsedHref.protocol === parsedFrom.protocol &&\n parsedHref.host === parsedFrom.host\n ) {\n from = parsedFrom.path + (parsedFrom.hash || '');\n }\n this.telemeter.captureNavigation(from, to, null, _.now());\n this.rollbar.triggerReplay({\n type: 'navigation',\n path: to,\n });\n }\n\n deinstrumentConnectivity = function () {\n this.removeListeners('connectivity');\n };\n\n instrumentConnectivity() {\n const self = this;\n this.addListener(\n 'connectivity',\n this._window,\n ['online', 'offline'],\n (evt) => self.handleConnectivity(evt),\n );\n }\n\n handleConnectivity(evt) {\n const type = evt.type;\n\n this.telemeter.captureConnectivityChange({\n type,\n isSynthetic: !evt.isTrusted,\n timestamp: _.now(),\n });\n }\n\n handleCspEvent(cspEvent) {\n let message =\n 'Security Policy Violation: ' +\n 'blockedURI: ' +\n cspEvent.blockedURI +\n ', ' +\n 'violatedDirective: ' +\n cspEvent.violatedDirective +\n ', ' +\n 'effectiveDirective: ' +\n cspEvent.effectiveDirective +\n ', ';\n\n if (cspEvent.sourceFile) {\n message +=\n 'location: ' +\n cspEvent.sourceFile +\n ', ' +\n 'line: ' +\n cspEvent.lineNumber +\n ', ' +\n 'col: ' +\n cspEvent.columnNumber +\n ', ';\n }\n\n message += 'originalPolicy: ' + cspEvent.originalPolicy;\n\n this.telemeter.captureLog(message, 'error', null, _.now());\n this.handleCspError(message);\n }\n\n handleCspError(message) {\n if (this.autoInstrument.errorOnContentSecurityPolicy) {\n this.rollbar.error(message);\n }\n }\n\n deinstrumentContentSecurityPolicy() {\n this.removeListeners('contentsecuritypolicy');\n }\n\n instrumentContentSecurityPolicy() {\n if (!('addEventListener' in this._document)) {\n return;\n }\n\n const cspHandler = this.handleCspEvent.bind(this);\n this.addListener(\n 'contentsecuritypolicy',\n this._document,\n ['securitypolicyviolation'],\n cspHandler,\n );\n }\n\n addListener(section, obj, types, handler) {\n if (obj.addEventListener) {\n for (const t of types) {\n const options = { capture: true, passive: true };\n obj.addEventListener(t, handler, options, true);\n this.eventRemovers[section].push(function () {\n obj.removeEventListener(t, handler, options);\n });\n }\n }\n }\n\n removeListeners(section) {\n let r;\n while (this.eventRemovers[section].length) {\n r = this.eventRemovers[section].shift();\n r();\n }\n }\n}\n\nfunction _isUrlObject(input) {\n return typeof URL !== 'undefined' && input instanceof URL;\n}\n\nexport default Instrumenter;\n","import { hasOwn } from '../utility.js';\n\nfunction wrapGlobals(window, handler, shim) {\n if (!window) {\n return;\n }\n // Adapted from https://github.com/bugsnag/bugsnag-js\n var globals =\n 'EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload'.split(\n ',',\n );\n var i, global;\n for (i = 0; i < globals.length; ++i) {\n global = globals[i];\n\n if (window[global] && window[global].prototype) {\n _extendListenerPrototype(handler, window[global].prototype, shim);\n }\n }\n}\n\nfunction _extendListenerPrototype(handler, prototype, shim) {\n if (hasOwn(prototype, 'addEventListener')) {\n var oldAddEventListener = prototype.addEventListener;\n while (\n oldAddEventListener._rollbarOldAdd &&\n oldAddEventListener.belongsToShim\n ) {\n oldAddEventListener = oldAddEventListener._rollbarOldAdd;\n }\n var addFn = function (event, callback, bubble) {\n oldAddEventListener.call(this, event, handler.wrap(callback), bubble);\n };\n addFn._rollbarOldAdd = oldAddEventListener;\n addFn.belongsToShim = shim;\n prototype.addEventListener = addFn;\n\n var oldRemoveEventListener = prototype.removeEventListener;\n while (\n oldRemoveEventListener._rollbarOldRemove &&\n oldRemoveEventListener.belongsToShim\n ) {\n oldRemoveEventListener = oldRemoveEventListener._rollbarOldRemove;\n }\n var removeFn = function (event, callback, bubble) {\n oldRemoveEventListener.call(\n this,\n event,\n (callback && callback._rollbar_wrapped) || callback,\n bubble,\n );\n };\n removeFn._rollbarOldRemove = oldRemoveEventListener;\n removeFn.belongsToShim = shim;\n prototype.removeEventListener = removeFn;\n }\n}\n\nexport default wrapGlobals;\n","import scrub from '../scrub.js';\nimport Telemeter from '../telemetry.js';\nimport Tracing from '../tracing/tracing.js';\nimport truncation from '../truncation.js';\n\nimport Rollbar from './core.js';\nimport Instrumenter from './telemetry.js';\nimport wrapGlobals from './wrapGlobals.js';\n\nRollbar.setComponents({\n telemeter: Telemeter,\n instrumenter: Instrumenter,\n wrapGlobals: wrapGlobals,\n scrub: scrub,\n truncation: truncation,\n tracing: Tracing,\n});\n\nexport default Rollbar;\n","import rollbar from '../rollbar.js';\n\nvar options = (typeof window !== 'undefined') && window._rollbarConfig;\nvar alias = options && options.globalAlias || 'Rollbar';\nvar shimRunning = (typeof window !== 'undefined') && window[alias] && typeof window[alias].shimId === 'function' && window[alias].shimId() !== undefined;\n\nif ((typeof window !== 'undefined') && !window._rollbarStartTime) {\n window._rollbarStartTime = (new Date()).getTime();\n}\n\nif (!shimRunning && options) {\n var Rollbar = new rollbar(options);\n window[alias] = Rollbar;\n} else if (typeof window !== 'undefined') {\n window.rollbar = rollbar;\n window._rollbarDidLoad = true;\n} else if (typeof self !== 'undefined') {\n self.rollbar = rollbar;\n self._rollbarDidLoad = true;\n}\n\nexport default rollbar;\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","isType","x","t","typeName","name","_typeof","Error","toString","match","toLowerCase","isFunction","f","isObject","hasOwn","isFiniteNumber","n","Number","isFinite","isError","e","redact","LEVELS","debug","info","warning","error","critical","sanitizeUrl","url","baseUrlParts","str","parseUriOptions","m","parser","strictMode","exec","uri","i","l","length","q","replace","$0","$1","$2","parseUri","anchor","source","query","strict","loose","formatUrl","u","protocol","port","hostname","result","path","stringify","backup","JSON","jsonError","backupError","jsonParse","s","parse","makeUnhandledStackInfo","message","lineno","colno","mode","backupMessage","errorParser","location","line","column","func","guessFunctionName","context","gatherContext","href","document","useragent","window","navigator","userAgent","String","stack","wrapCallback","logger","err","resp","nonCircularClone","clone","seen","newSeen","includes","slice","push","createItem","args","notifier","requestKeys","lambdaContext","custom","callback","request","arg","extraArgs","argTypes","typ","DOMException","j","len","undefined","d","item","timestamp","now","diagnostic","uuid","c","r","Math","random","floor","data","level","skipFrames","setCustomItemKeys","_originalArgs","original_arg_types","TELEMETRY_TYPES","TELEMETRY_LEVELS","arrayIncludes","arr","val","_step2","_iterator2","_createForOfIteratorHelper","done","addItemAttributes","itemData","attributes","_step3","_iterator3","a","keys","split","_e","set","setPrototypeOf","temp","replacement","Date","handleOptions","current","input","payload","merge","options","hostWhiteList","hostSafeList","log","hostBlackList","hostBlockList","updateDeprecatedOptions","overwriteScrubFields","scrubFields","concat","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","src","copy","create","arguments","shouldAddBaggageHeader","tracing","_options$tracing","sessionId","propagation","enabledHeaders","Array","isArray","enabledCorsUrls","some","pattern","test","addHeadersToFetch","newHeaders","_init","init","initHeaders","headers","reqHeaders","Request","Headers","_i","_Object$keys","append","_i2","_Object$keys2","k","v","seenIndex","isObj","_","mapped","indexOf","same","scrubPath","last","_step4","_iterator4","entries","_step4$value","_slicedToArray","index","scrubPaths","_step","_iterator","paramRes","_step5","ret","_iterator5","pat","RegExp","_getScrubFieldRegexs","queryRes","_step6","_iterator6","_getScrubQueryParamRegexs","redactQueryParam","dummy0","paramPart","traverse","scrubber","tmpV","valScrubber","regex","paramScrubber","MAX_EVENTS","fromMillis","millis","trunc","round","Telemeter","_this$tracing","_classCallCheck","this","queue","maxTelemetryEvents","maxQueueSize","max","min","telemetrySpan","startSpan","oldOptions","newMaxEvents","deleteCount","splice","events","filterTelemetry","filter","type","map","_ref","otelAttributes","event","_objectWithoutProperties","_excluded","end","metadata","rollbarUUID","getLevel","timestamp_ms","body","_exc","capture","_this$telemetrySpan","addEvent","_this$telemetrySpan2","_objectSpread","subtype","requestData","_metadata$response","_metadata$response2","_this$telemetrySpan3","levelFromStatus","status_code","endTimeNano","end_time_ms","method","statusCode","request_headers","response","requestBody","responseBody","start_time_ms","element","checked","_ref2","_this$telemetrySpan4","isSynthetic","endTimeUnixNano","_getRepeatedEvent","_updateRepeatedEvent","_ref3","_this$telemetrySpan5","lastEvent","_lastEvent","target","duration","height","width","textZoomRatio","count","rate","list","_ref4","_this$telemetrySpan6","_ref5","_this$telemetrySpan7","_ref6","_this$telemetrySpan8","dropEffect","effectAllowed","kinds","mediaTypes","from","to","_this$telemetrySpan9","ts","getTime","_ref7","_this$telemetrySpan0","includeItemsInTelemetry","captureError","captureLog","shift","manual","Context","parentContext","_currentContext","Map","self","delete","ROOT_CONTEXT","ContextManager","currentContext","previousContext","fn","thisArg","enterContext","_len","_key","apply","exitContext","add","b","toMillis","hrtime","toNanos","performance","timeOrigin","isHrTime","SpanExporter","api","spans","_resultCallback","spanExportQueue","_toConsumableArray","_this","resourceSpans","resource","scopeMap","span","scopeKey","instrumentationScope","version","has","scope","_transformSpan","_transformResource","scopeSpans","values","scopeData","_transformInstrumentationScope","postSpans","_this2","transformAttributes","_transformAnyValue","traceId","spanContext","spanId","parentSpanId","kind","startTimeUnixNano","startTime","endTime","timeUnixNano","time","_this3","_this4","attr","_this5","stringValue","isInteger","intValue","doubleValue","boolValue","arrayValue","kvlistValue","gen","randomBytes","Uint8Array","crypto","getRandomValues","byte","padStart","join","SESSION_KEY","Session","_defineProperty","session","_attributes","attrs","getSession","createSession","initSessionAttributes","serializedSession","sessionStorage","getItem","_unused","id","createdAt","setSession","sessionString","setItem","_unused2","user","setAttributes","email","username","_navigator$userAgentD","_navigator$userAgentD2","_navigator$userAgentD3","userAgentData","brands","language","mobile","platform","levels","warn","disable","_len2","_key2","_len3","_key3","_len4","_key4","_len5","_key5","logLevel","unshift","console","SpanProcessor","exporter","pendingSpans","transforms","userTransform","bind","transformFn","transformSpan","transform","_parentContext","applyTransforms","export","Span","usePerformance","initReadableSpan","spanProcessor","onStart","_options$session","status","code","links","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount","_Object$entries","_Object$entries$_i","setAttribute","onEnd","Tracer","_this$tracing$resourc","_options$resource","_this$tracing$session","contextManager","active","parentSpan","getSpan","parentSpanContext","traceState","traceFlags","SPAN_KEY","for","Tracing","gWindow","createTracer","_this$options$payload","_this$options$payload2","environment","bytes","tracer","addTransform","getValue","setValue","_this$contextManager","with","setSpan","raw","jsonBackup","selectFrames","frames","range","truncateFrames","trace_chain","trace","maybeTruncateValue","truncateStrings","truncator","truncateTraceData","traceData","exception","description","minBody","chain","_step2$value","needsTruncation","maxSize","string","charCodeAt","truncate","strategy","results","strategies","buildPayload","contextResult","substr","getTransportFromOptions","defaults","search","timeout","transport","defaultTransport","fetch","XMLHttpRequest","detectTransport","proxy","endpoint","opts","pathname","transportOptions","transportAPI","host","iterator","Generator","_regeneratorDefine2","p","y","G","TypeError","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","__proto__","displayName","_regenerator","w","_invoke","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_defineProperties","_toPropertyKey","toPrimitive","_toPrimitive","defaultOptions","OTLPDefaultOptions","Api","urllib","truncation","accessToken","_getTransport","OTLPTransportOptions","_getOTLPTransport","reject","post","helpers","setTimeout","_callee","_args","_context","_postPromise","_postSpans","_next","_throw","_x","stringifyResult","jsonPayload","postJsonPayload","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","lineRE","lines","file","applySlice","parseOpera9","filtered","argsRaw","tokens","locationParts","extractLocation","pop","functionCall","functionName","function","col","parseOpera11","parseOpera10","parseOpera","parseV8OrIeString","parseV8OrIE","parseFFOrSafariString","parseFFOrSafari","allowEmpty","urlLike","parts","sanitizedLine","functionNameRegex","matches","stackframesLiteToStackframes","liteStackframes","liteStackframe","fileName","lineNumber","columnNumber","ERR_CLASS_REGEXP","Frame","stackFrame","_stackFrame","Stack","skip","parserStack","parse$1","parseErrorStack","getStack","_mostSpecificErrorName","rawStack","rawException","constructorName","guessErrorClass","errMsg","errClassMatch","errClass","nested","cause","traceChain","checkLevel","settings","levelVal","reportLevel","matchFrames","block","filename","listLength","frameLength","urlIsOnAList","safeOrBlock","traces","tracesLength","listName","messageIsIgnored","ignoredMessages","rIgnoredMessage","messages","messagesFromItem","Notifier","_this$queue","configure","enabled","addPendingItem","originalError","_applyTransforms","removePendingItem","addItem","transformIndex","transformsLength","next","Queue","rateLimiter","replay","predicates","pendingItems","pendingRequests","retryQueue","retryHandle","waitCallback","waitIntervalID","_this$api","predicate","idx","originalItem","predicateResult","_applyPredicates","stop","_maybeLog","transmit","replayId","_makeApiRequest","_dequeuePendingRequest","sendOrDiscardReplay","_this$replay","discard","_maybeCallWait","clearInterval","setInterval","rateLimitResponse","shouldSend","postItem","_maybeRetry","shouldRetry","retryInterval","RETRIABLE_ERRORS","maxRetries","retries","_retryApiRequest","retryObject","verbose","RateLimiter","counter","perMinCounter","platformOptions","configureGlobal","_createClass","maxItems","itemsPerMinute","globalSettings","elapsedTime","globalRateLimit","globalRateLimitPerMin","checkRate","shouldSendValue","underGlobalLimit","perMinute","limit","ignoreRateLimit","limitPerMin","errorResult","msg","extra","framework","rateLimitPayload","Rollbar","telemeter","setPlatformOptions","validateTracer","_configuredOptions","setStackTraceLimit","lastError","lastErrorHash","stackTraceLimit","global","payloadData","_defaultLogLevel","_log","wait","captureEvent","captureDomContentLoaded","captureLoad","buildJsonPayload","sendJsonPayload","defaultLevel","ignoreDuplicateErrors","_sameAsLastError","_addItemAttributes","_addTracingInfo","_captureRollbarItem","telemetryEvents","copyEvents","_this$tracing2","client","storage","asyncLocalStorage","getStore","store","_isUncaught","itemHash","generateItemHash","toSpanId","toTraceId","validateSpan","setTag","opentracingSpanId","opentracingTraceId","opentracing_span_id","opentracing_trace_id","itemToPayload","addPayloadOptions","payloadOptions","addTelemetryData","addMessageWithError","tracePath","newItem","promisedItem","addConfigToPayload","sendConfig","addFunctionOption","addConfiguredOptions","configuredOptions","configured_options","addDiagnosticKeys","is_anonymous","is_uncaught","raw_error","constructor_name","failed","checkIgnore","handleDomException","handleItemWithError","stackInfo","_savedStackTrace","addErrorContext","errors","contextAdded","rollbarContext","error_context","e2","ensureItemHasSomethingToSay","addBaseInfo","server","addBody","traceChainLength","buildTrace","addBodyTraceChain","stackFromItem","guess","className","errorClass","addBodyMessage","addBodyTrace","_unhandledStackInfo","class","frame","pre","contextLength","mid","sendFrameUrl","endsWith","reverse","controller","timeoutId","AbortController","abort","signal","clearTimeout","respHeaders","json","catch","_newRetriableError","requestFactory","xmlhttp","factories","ActiveXObject","numFactories","_createXMLHTTPObject","onreadystatechange","readyState","parseResponse","responseText","_isSuccess","getResponseHeader","_isNormalFailure","ex","exc","open","setRequestHeader","h","send","_e1","XDomainRequest","substring","xdomainrequest","onprogress","ontimeout","onerror","onload","Transport","params","access_token","paramsArray","sort","qs","_makeZoneRequest","rootZone","Zone","root","run","_makeRequest","RollbarProxy","_msg","_proxyRequest","makeFetchRequest","makeXhrRequest","auth","hash","parseInt","pathParts","_instance","components","Instrumenter","instrumenter","wrapGlobals","scrub","Replay","API","_gWindow","initSession","replayOptions","autoStart","recorder","start","Client","gDocument","isChrome","chrome","runtime","anonymousErrorsPending","rollbar","requestInfo","query_string","remoteString","captureIp","user_ip","nav","scr","screen","runtime_ms","_rollbarStartTime","javascript","browser","cookie_enabled","cookieEnabled","cur","plugins","navPlugins","sharedTransforms","scrubFn","addTransformsToNotifier","addPredicate","sharedPredicates","isUncaught","Boolean","onSendCallback","addPredicatesToQueue","setupUnhandledCapture","instrument","setSessionAttributesFromOptions","_this$instrumenter","_createItem","triggerReplay","unhandledExceptionsInitialized","captureUncaught","handleUncaughtExceptions","handler","shim","oldOnError","_rollbarOldOnError","handleAnonymousErrors","old","_rollbarWrappedError","_rollbarContext","handleUncaughtException","_rollbarWindowOnError","globals","wrapGlobalEventHandlers","unhandledRejectionsInitialized","captureUnhandledRejections","handleUnhandledRejections","_rollbarURH","belongsToShim","removeEventListener","rejectionHandler","evt","reason","promise","detail","handleUnhandledRejection","addEventListener","inspectAnonymousErrors","uncaughtErrorLevel","prepareStackTrace","_stack","_isAnonymous","reasonResult","_before","ctxFn","_isWrap","_rollbar_wrapped","_wrappedSource","setUser","_this$tracing3","_options$payload","_options$client","_options$payload2","_options$payload3","_options$payload4","person","setSessionUser","code_version","codeVersion","setSessionAttributes","maybeCallback","_getFirstFunction","_Rollbar","callInstance","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len0","_key0","_len1","_key1","_len10","_key10","_len11","_key11","_len12","_key12","browserDefaults","triggerDefaults","samplingRatio","preDuration","postDuration","triggers","logErrors","logEmits","inlineStylesheet","inlineImages","collectFonts","maskInputOptions","password","tel","text","color","date","month","number","week","maskAllInputs","blockClass","maskTextClass","ignoreClass","slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","normalizeName","FetchHeaders","forEach","header","getOwnPropertyNames","normalizeValue","oldValue","items","iteratorFor","replacements","orig","elementString","elem","nextStr","totalLength","out","descriptionToString","separator","MAX_LENGTH","elementArrayToString","nextDescription","describeElement","tagName","parentNode","treeToArray","desc","classes","attribute","getAttribute","network","networkResponseHeaders","networkResponseBody","networkRequestHeaders","networkRequestBody","networkErrorOnHttp5xx","networkErrorOnHttp4xx","networkErrorOnHttp0","dom","navigation","connectivity","contentSecurityPolicy","errorOnContentSecurityPolicy","restore","defaultValueScrubber","patterns","field","nameFromDescription","_patterns","_window","_document","removeListeners","autoInstrument","configureScrubbing","eventRemovers","contentsecuritypolicy","_location","_lastHref","_options$scrubTelemet","_options$replay","_options$replay2","_options$replay3","_options$replay4","_options$replay5","_options$replay6","_options$replay7","_options$replay8","_options$replay9","scrubTelemetryInputs","telemetryScrubber","maskInputFn","scrubClasses","scrubSelectors","blockSelector","ignoreSelector","maskTextSelector","oldSettings","deinstrumentNetwork","instrumentNetwork","deinstrumentConsole","instrumentConsole","deinstrumentDom","instrumentDom","deinstrumentNavigation","instrumentNavigation","deinstrumentConnectivity","instrumentConnectivity","deinstrumentContentSecurityPolicy","instrumentContentSecurityPolicy","wrapProp","xhr","wrap","xhrp","isUrlObject","_isUrlObject","__rollbar_xhr","request_content_type","_self$rollbar","_xhr$__rollbar_xhr","onreadystatechangeHandler","__rollbar_event","captureNetwork","response_content_type","headersConfig","allHeaders","getAllResponseHeaders","trim","isJsonContentType","scrubJson","addOtelNetworkResponse","errorOnHttpStatus","trackHttpErrors","_fn","_t","_self$rollbar2","baggage","fetchHeaders","telemetryEvent","contentType","endTimeMs","inHeaders","outHeaders","currentHeader","_this$_window","_methods","wrapConsole","origConsole","Function","addListener","handleEvent","click","handleClick","dragdrop","handleDrag","focus","handleFocus","form","handleForm","handleInput","resize","handleResize","contentLoaded","handleContentLoaded","_evt","URL","_evt$target","captureClick","isTrusted","domUtil","_evt$target2","captureFocus","innerWidth","captureResize","innerHeight","_evt$dataTransfer","_evt$dataTransfer2","dataTransfer","files","captureDragDrop","inputType","mask","selectors","cls","classList","contains","sel","_evt$target3","_evt$target4","_evt$target5","_evt$target6","scrubInputValue","_evt$target7","captureInput","app","history","pushState","handleUrlChange","parsedHref","urlparser","parsedTo","parsedFrom","captureNavigation","handleConnectivity","captureConnectivityChange","cspEvent","blockedURI","violatedDirective","effectiveDirective","sourceFile","originalPolicy","handleCspError","cspHandler","handleCspEvent","section","types","_step7","_iterator7","_loop","passive","_extendListenerPrototype","oldAddEventListener","_rollbarOldAdd","addFn","bubble","oldRemoveEventListener","_rollbarOldRemove","removeFn","setComponents","_rollbarConfig","alias","globalAlias","shimRunning","shimId","_rollbarDidLoad"],"sourceRoot":""}
|