From fb87e345004351de66d0d4d9c2aaa3b9b41ed250 Mon Sep 17 00:00:00 2001 From: Walt Jones Date: Wed, 11 Mar 2026 16:11:30 -0400 Subject: [PATCH] Release 3.1.0 --- dist/rollbar.cjs | 263 +++++++++++++++++- dist/rollbar.js | 90 +++++- dist/rollbar.js.map | 2 +- dist/rollbar.min.cjs | 2 +- dist/rollbar.min.js | 2 +- dist/rollbar.min.js.map | 2 +- dist/rollbar.named-amd.js | 90 +++++- dist/rollbar.named-amd.js.map | 2 +- dist/rollbar.named-amd.min.js | 2 +- dist/rollbar.named-amd.min.js.map | 2 +- dist/rollbar.noconflict.umd.js | 90 +++++- dist/rollbar.noconflict.umd.js.map | 2 +- dist/rollbar.noconflict.umd.min.js | 2 +- dist/rollbar.noconflict.umd.min.js.map | 2 +- dist/rollbar.replay.js | 90 +++++- dist/rollbar.replay.js.map | 2 +- dist/rollbar.replay.min.js | 2 +- dist/rollbar.replay.min.js.map | 2 +- dist/rollbar.replay.noconflict.umd.js | 90 +++++- dist/rollbar.replay.noconflict.umd.js.map | 2 +- dist/rollbar.replay.noconflict.umd.min.js | 2 +- dist/rollbar.replay.noconflict.umd.min.js.map | 2 +- dist/rollbar.replay.umd.js | 90 +++++- dist/rollbar.replay.umd.js.map | 2 +- dist/rollbar.replay.umd.min.js | 2 +- dist/rollbar.replay.umd.min.js.map | 2 +- dist/rollbar.snippet.js | 2 +- dist/rollbar.umd.js | 90 +++++- dist/rollbar.umd.js.map | 2 +- dist/rollbar.umd.min.js | 2 +- dist/rollbar.umd.min.js.map | 2 +- examples/browser_extension_v2/background.js | 2 +- examples/itemsPerMinute.html | 2 +- examples/no-conflict/test.html | 2 +- examples/snippet-with-replay.html | 2 +- examples/snippet.html | 2 +- examples/test.html | 2 +- .../test-with-non-default-options.html | 2 +- .../universal-browser/test-with-replay.html | 2 +- examples/universal-browser/test.html | 2 +- package-lock.json | 4 +- package.json | 2 +- src/defaults.js | 2 +- 43 files changed, 912 insertions(+), 53 deletions(-) diff --git a/dist/rollbar.cjs b/dist/rollbar.cjs index 968393d7..fc209688 100644 --- a/dist/rollbar.cjs +++ b/dist/rollbar.cjs @@ -181,6 +181,9 @@ function isPromise(p) { function isBrowser() { return typeof window !== 'undefined'; } +function isRequestObject(input) { + return typeof Request !== 'undefined' && input instanceof Request; +} function redact() { return '********'; } @@ -825,6 +828,70 @@ function merge() { } return result; } +function shouldAddBaggageHeader(options, tracing, url) { + var _options$tracing; + if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) { + return false; + } + var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation; + var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders; + if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) { + return false; + } + var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls; + if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) { + return false; + } + return enabledCorsUrls.some(function (pattern) { + if (isType(pattern, 'string')) { + return url === pattern; + } + if (isType(pattern, 'regexp')) { + return pattern.test(url); + } + return false; + }); +} +function addHeadersToFetch(args, newHeaders) { + var _init; + // Headers may be in the request object or the init object. + // If present in both places, the init object must be used. + // + var init = args[1]; + var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers; + var reqHeaders = isRequestObject(args[0]) && args[0].headers; + var headers = initHeaders || reqHeaders; + + // If headers are not present in either place, they are added to the init object. + // If there is no init object, one must be created and added to args. + if (!headers) { + if (!init) { + args[1] = init = {}; + } + headers = init.headers = {}; + } + + // `headers` may be a Headers object or a plain object. + if (headers instanceof Headers) { + for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) { + var key = _Object$keys[_i]; + headers.append(key, newHeaders[key]); + } + } else if (isObject(headers)) { + for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) { + var _key = _Object$keys2[_i2]; + headers[_key] = newHeaders[_key]; + } + } +} +function getSessionIdFromAsyncLocalStorage(client) { + var storage = client.asyncLocalStorage; + if (!storage || typeof storage.getStore !== 'function') { + return null; + } + var store = storage.getStore(); + return (store === null || store === void 0 ? void 0 : store.sessionId) || null; +} ;// ./src/apiUtility.js @@ -1130,7 +1197,7 @@ function _getOTLPTransport(options, url) { /** * Default options shared across platforms */ -var version = '3.0.0'; +var version = '3.1.0'; var endpoint = 'api.rollbar.com/api/1/item/'; var logLevel = 'debug'; var reportLevel = 'debug'; @@ -2167,9 +2234,11 @@ Rollbar.prototype._log = function (defaultLevel, item) { Rollbar.prototype._addItemAttributes = function (item) { var _this$tracing, _this$tracing2; var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan(); + var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this); + var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId); var attributes = [{ key: 'session_id', - value: (_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId + value: sessionId }, { key: 'span_id', value: span === null || span === void 0 ? void 0 : span.spanId @@ -3098,6 +3167,83 @@ function defaults_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r var notifierName = 'node_rollbar'; var scrubHeaders = commonScrubHeaders; var scrubFields = [].concat(_toConsumableArray(commonScrubFields), _toConsumableArray(apiScrubFields), _toConsumableArray(requestScrubFields)); +;// external "node:async_hooks" +const external_node_async_hooks_namespaceObject = require("node:async_hooks"); +;// ./src/server/middleware/rollbarExpressMiddleware.js +function rollbarExpressMiddleware_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = rollbarExpressMiddleware_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function rollbarExpressMiddleware_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return rollbarExpressMiddleware_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? rollbarExpressMiddleware_arrayLikeToArray(r, a) : void 0; } } +function rollbarExpressMiddleware_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } + +function extractSessionId(headerValue) { + if (!headerValue) { + return null; + } + var rawValue = Array.isArray(headerValue) ? headerValue.join(',') : headerValue; + if (typeof rawValue !== 'string') { + return null; + } + var entries = rawValue.split(','); + var _iterator = rollbarExpressMiddleware_createForOfIteratorHelper(entries), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var entry = _step.value; + var trimmed = entry.trim(); + if (!trimmed) { + continue; + } + var equalsIndex = trimmed.indexOf('='); + if (equalsIndex === -1) { + continue; + } + var key = trimmed.slice(0, equalsIndex).trim(); + if (key !== 'rollbar.session.id') { + continue; + } + var value = trimmed.slice(equalsIndex + 1).trim(); + if (!value) { + return null; + } + try { + return decodeURIComponent(value); + } catch (_e) { + return value; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + return null; +} +function getBaggageHeader(req) { + var _req$headers; + if (!req) { + return null; + } + if (typeof req.get === 'function') { + return req.get('baggage'); + } + return ((_req$headers = req.headers) === null || _req$headers === void 0 ? void 0 : _req$headers.baggage) || null; +} +function rollbarExpressMiddleware(rollbar) { + var storage = (rollbar === null || rollbar === void 0 ? void 0 : rollbar.client.asyncLocalStorage) || new external_node_async_hooks_namespaceObject.AsyncLocalStorage(); + if (rollbar) { + rollbar.client.asyncLocalStorage = storage; + } + return function rollbarExpressMiddlewareHandler(req, _res, next) { + var sessionId = extractSessionId(getBaggageHeader(req)); + if (!sessionId) { + return next(); + } + return storage.run({ + sessionId: sessionId + }, function () { + return next(); + }); + }; +} ;// external "http" const external_http_namespaceObject = require("http"); ;// external "https" @@ -3246,6 +3392,9 @@ Instrumenter.prototype.deinstrumentNetwork = function () { Instrumenter.prototype.instrumentNetwork = function () { utility_replace(external_http_namespaceObject, 'request', networkRequestWrapper.bind(this), this.replacements, 'network'); utility_replace(external_https_namespaceObject, 'request', networkRequestWrapper.bind(this), this.replacements, 'network'); + if (typeof globalThis.fetch === 'function') { + utility_replace(globalThis, 'fetch', fetchRequestWrapper.bind(this), this.replacements, 'network'); + } }; function networkRequestWrapper(orig) { var _this = this; @@ -3258,9 +3407,19 @@ function networkRequestWrapper(orig) { options = args[1], cb = args[2]; var mergedOptions = mergeOptions(url, options, cb); + var requestUrl = constructUrl(mergedOptions.options); + var sessionId = getSessionIdFromAsyncLocalStorage(_this.rollbar.client); + if (sessionId && shouldAddBaggageHeader(_this.options, { + sessionId: sessionId + }, requestUrl)) { + if (!mergedOptions.options.headers) { + mergedOptions.options.headers = {}; + } + mergedOptions.options.headers.baggage = "rollbar.session.id=".concat(sessionId); + } var metadata = { method: mergedOptions.options.method || 'GET', - url: constructUrl(mergedOptions.options), + url: requestUrl, status_code: null, start_time_ms: now(), end_time_ms: null @@ -3295,6 +3454,93 @@ function responseCallbackWrapper(options, metadata, callback) { } }; } +function fetchRequestWrapper(orig) { + var _this2 = this; + var telemeter = this.telemeter; + return function () { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + var input = args[0]; + var init = args[1]; + var method = 'GET'; + var url; + var sessionId = getSessionIdFromAsyncLocalStorage(_this2.rollbar.client); + if (isType(input, 'string') || input instanceof URL) { + url = input.toString(); + } else if (input) { + url = input.url; + if (input.method) { + method = input.method; + } + } + if (init && init.method) { + method = init.method; + } + if (sessionId && shouldAddBaggageHeader(_this2.options, { + sessionId: sessionId + }, url)) { + var headers = { + baggage: "rollbar.session.id=".concat(sessionId) + }; + addHeadersToFetch(args, headers); + } + var metadata = { + method: method, + url: url, + status_code: null, + start_time_ms: now(), + end_time_ms: null + }; + if (_this2.autoInstrument.networkRequestHeaders) { + var requestHeaders = normalizeFetchHeaders(init && init.headers ? init.headers : input && input.headers); + if (requestHeaders) { + metadata.request_headers = requestHeaders; + } + } + telemeter.captureNetwork(metadata, 'fetch'); + return orig.apply(globalThis, args).then(function (res) { + metadata.end_time_ms = now(); + metadata.status_code = res.status; + if (_this2.autoInstrument.networkResponseHeaders) { + var responseHeaders = normalizeFetchHeaders(res.headers); + if (responseHeaders) { + metadata.response = metadata.response || {}; + metadata.response.headers = responseHeaders; + } + } + return res; + }, function (err) { + metadata.end_time_ms = now(); + metadata.status_code = 0; + metadata.error = [err.name, err.message].join(': '); + throw err; + }); + }; +} +function normalizeFetchHeaders(headers) { + if (!headers) return null; + if (typeof headers.forEach === 'function') { + var normalized = {}; + headers.forEach(function (value, key) { + normalized[key] = value; + }); + return normalized; + } + if (Array.isArray(headers)) { + var _normalized = {}; + headers.forEach(function (pair) { + if (pair && pair.length > 1) { + _normalized[pair[0]] = pair[1]; + } + }); + return _normalized; + } + if (isType(headers, 'object')) { + return headers; + } + return null; +} Instrumenter.prototype.captureNetwork = function (metadata, subtype, rollbarUUID) { return this.telemeter.captureNetwork(metadata, subtype, rollbarUUID); }; @@ -4434,6 +4680,7 @@ function _currentTime() { + function rollbar_Rollbar(options, client) { if (isType(options, 'string')) { var accessToken = options; @@ -4839,6 +5086,16 @@ rollbar_Rollbar.wrapCallback = function (f) { handleUninitialized(); } }; +rollbar_Rollbar.prototype.expressMiddleware = function () { + return rollbarExpressMiddleware(this); +}; +rollbar_Rollbar.expressMiddleware = function () { + if (_instance) { + return rollbarExpressMiddleware(_instance); + } + handleUninitialized(); + return undefined; +}; rollbar_Rollbar.prototype.captureEvent = function () { var event = createTelemetryEvent(arguments); return this.client.captureEvent(event.type, event.metadata, event.level); diff --git a/dist/rollbar.js b/dist/rollbar.js index 72fe464d..c65a0d91 100644 --- a/dist/rollbar.js +++ b/dist/rollbar.js @@ -187,6 +187,9 @@ function isPromise(p) { function isBrowser() { return typeof window !== 'undefined'; } +function isRequestObject(input) { + return typeof Request !== 'undefined' && input instanceof Request; +} function redact() { return '********'; } @@ -831,6 +834,70 @@ function merge() { } return result; } +function shouldAddBaggageHeader(options, tracing, url) { + var _options$tracing; + if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) { + return false; + } + var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation; + var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders; + if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) { + return false; + } + var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls; + if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) { + return false; + } + return enabledCorsUrls.some(function (pattern) { + if (isType(pattern, 'string')) { + return url === pattern; + } + if (isType(pattern, 'regexp')) { + return pattern.test(url); + } + return false; + }); +} +function addHeadersToFetch(args, newHeaders) { + var _init; + // Headers may be in the request object or the init object. + // If present in both places, the init object must be used. + // + var init = args[1]; + var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers; + var reqHeaders = isRequestObject(args[0]) && args[0].headers; + var headers = initHeaders || reqHeaders; + + // If headers are not present in either place, they are added to the init object. + // If there is no init object, one must be created and added to args. + if (!headers) { + if (!init) { + args[1] = init = {}; + } + headers = init.headers = {}; + } + + // `headers` may be a Headers object or a plain object. + if (headers instanceof Headers) { + for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) { + var key = _Object$keys[_i]; + headers.append(key, newHeaders[key]); + } + } else if (isObject(headers)) { + for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) { + var _key = _Object$keys2[_i2]; + headers[_key] = newHeaders[_key]; + } + } +} +function getSessionIdFromAsyncLocalStorage(client) { + var storage = client.asyncLocalStorage; + if (!storage || typeof storage.getStore !== 'function') { + return null; + } + var store = storage.getStore(); + return (store === null || store === void 0 ? void 0 : store.sessionId) || null; +} ;// ./src/utility/traverse.js @@ -2980,7 +3047,7 @@ function _getOTLPTransport(options, url) { /** * Default options shared across platforms */ -var version = '3.0.0'; +var version = '3.1.0'; var endpoint = 'api.rollbar.com/api/1/item/'; var logLevel = 'debug'; var reportLevel = 'debug'; @@ -4243,9 +4310,11 @@ Rollbar.prototype._log = function (defaultLevel, item) { Rollbar.prototype._addItemAttributes = function (item) { var _this$tracing, _this$tracing2; var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan(); + var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this); + var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId); var attributes = [{ key: 'session_id', - value: (_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId + value: sessionId }, { key: 'span_id', value: span === null || span === void 0 ? void 0 : span.spanId @@ -6633,7 +6702,16 @@ var Instrumenter = /*#__PURE__*/function () { }, this.replacements, 'network'); utility_replace(xhrp, 'send', function (orig) { return function (data) { + var _self$rollbar, _xhr$__rollbar_xhr; var xhr = this; + var tracing = (_self$rollbar = self.rollbar) === null || _self$rollbar === void 0 ? void 0 : _self$rollbar.tracing; + if (shouldAddBaggageHeader(self.options, tracing, (_xhr$__rollbar_xhr = xhr.__rollbar_xhr) === null || _xhr$__rollbar_xhr === void 0 ? void 0 : _xhr$__rollbar_xhr.url)) { + try { + xhr.setRequestHeader('baggage', "rollbar.session.id=".concat(tracing.sessionId)); + } catch (_e) { + /* ignore errors from adding baggage header */ + } + } function onreadystatechangeHandler() { if (xhr.__rollbar_xhr) { if (xhr.__rollbar_xhr.status_code === null) { @@ -6754,6 +6832,7 @@ var Instrumenter = /*#__PURE__*/function () { if ('fetch' in this._window) { utility_replace(this._window, 'fetch', function (orig) { return function (_fn, _t) { + var _self$rollbar2; var args = Array.prototype.slice.call(arguments); var input = args[0]; var method = 'GET'; @@ -6770,6 +6849,13 @@ var Instrumenter = /*#__PURE__*/function () { if (args[1] && args[1].method) { method = args[1].method; } + var tracing = (_self$rollbar2 = self.rollbar) === null || _self$rollbar2 === void 0 ? void 0 : _self$rollbar2.tracing; + if (shouldAddBaggageHeader(self.options, tracing, url)) { + var _headers2 = { + baggage: "rollbar.session.id=".concat(tracing.sessionId) + }; + addHeadersToFetch(args, _headers2); + } var metadata = { method: method, url: url, diff --git a/dist/rollbar.js.map b/dist/rollbar.js.map index 619e2f43..30ff19af 100644 --- a/dist/rollbar.js.map +++ b/dist/rollbar.js.map @@ -1 +1 @@ -{"version":3,"file":"rollbar.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/tracing/defaults.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/replay/defaults.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/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} 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\", \"\"].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(//, \"$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","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\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","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","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","/**\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","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","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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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":["isType","x","t","typeName","name","_typeof","Error","toString","call","match","toLowerCase","isFunction","f","isNativeFunction","reRegExpChar","funcMatchString","Function","prototype","Object","hasOwnProperty","replace","reIsNative","RegExp","isObject","test","value","hasOwn","obj","prop","isString","String","isFiniteNumber","n","Number","isFinite","isIterable","i","type","isError","e","isPromise","p","then","isBrowser","window","redact","uuid4","d","now","uuid","c","r","Math","random","floor","LEVELS","debug","info","warning","error","critical","sanitizeHref","url","urlObject","URL","password","search","_","sanitizeUrl","baseUrlParts","parseUri","anchor","source","query","parseUriOptions","strictMode","key","q","parser","strict","loose","str","undefined","o","m","exec","uri","l","length","$0","$1","$2","addParamsAndAccessTokenToPath","accessToken","options","params","access_token","paramsArray","k","push","join","sort","path","qs","indexOf","h","substring","formatUrl","u","protocol","port","hostname","result","stringify","backup","JSON","jsonError","backupError","maxByteSize","string","count","code","charCodeAt","jsonParse","s","parse","makeUnhandledStackInfo","message","lineno","colno","mode","backupMessage","errorParser","location","line","column","func","guessFunctionName","context","gatherContext","href","document","useragent","navigator","userAgent","stack","wrapCallback","logger","err","resp","nonCircularClone","seen","clone","newSeen","includes","slice","createItem","args","notifier","requestKeys","lambdaContext","custom","callback","request","arg","extraArgs","diagnostic","argTypes","typ","DOMException","j","len","item","timestamp","data","setCustomItemKeys","_originalArgs","original_arg_types","level","skipFrames","addErrorContext","errors","contextAdded","_iterator","_createForOfIteratorHelper","_step","done","merge","rollbarContext","error_context","TELEMETRY_TYPES","TELEMETRY_LEVELS","arrayIncludes","arr","val","_iterator2","_step2","entry","createTelemetryEvent","metadata","event","addItemAttributes","itemData","attributes","_iterator3","_step3","a","get","keys","split","_e","set","setPrototypeOf","temp","replacement","formatArgsAsString","substr","Date","filterIp","requestData","captureIp","newIp","parts","pop","beginning","slashIdx","terminal","concat","handleOptions","current","input","payload","updateDeprecatedOptions","overwriteScrubFields","scrubFields","hostWhiteList","hostSafeList","log","hostBlackList","hostBlockList","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","src","copy","create","arguments","traverse","v","isObj","isArray","seenIndex","mapped","same","scrub","scrubPaths","scrubPath","paramRes","_getScrubFieldRegexs","queryRes","_getScrubQueryParamRegexs","redactQueryParam","dummy0","paramPart","paramScrubber","regex","valScrubber","scrubber","tmpV","last","_iterator4","entries","_step4","_step4$value","_slicedToArray","index","ret","_iterator5","_step5","field","pat","_iterator6","_step6","MAX_EVENTS","fromMillis","millis","trunc","round","Telemeter","tracing","_this$tracing","_classCallCheck","queue","maxTelemetryEvents","maxQueueSize","max","min","telemetrySpan","startSpan","_createClass","configure","oldOptions","newMaxEvents","deleteCount","splice","copyEvents","events","Array","filterTelemetry","filter","map","_ref","_otelAttributes","otelAttributes","_objectWithoutProperties","_excluded","exportTelemetrySpan","end","capture","rollbarUUID","getLevel","timestamp_ms","body","_exc","captureEvent","captureError","_this$telemetrySpan","addEvent","captureLog","_this$telemetrySpan2","_objectSpread","captureNetwork","subtype","_metadata$response","_metadata$response2","_this$telemetrySpan3","levelFromStatus","status_code","endTimeNano","end_time_ms","method","statusCode","request_headers","response","headers","requestBody","responseBody","start_time_ms","captureDom","element","checked","captureInput","_ref2","_this$telemetrySpan4","isSynthetic","endTimeUnixNano","_getRepeatedEvent","_updateRepeatedEvent","captureClick","_ref3","_this$telemetrySpan5","lastEvent","_lastEvent","target","duration","height","width","textZoomRatio","rate","list","captureFocus","_ref4","_this$telemetrySpan6","captureResize","_ref5","_this$telemetrySpan7","captureDragDrop","_ref6","_this$telemetrySpan8","dropEffect","effectAllowed","kinds","mediaTypes","captureNavigation","from","to","_this$telemetrySpan9","captureDomContentLoaded","ts","getTime","captureLoad","captureConnectivityChange","_ref7","_this$telemetrySpan0","_captureRollbarItem","includeItemsInTelemetry","shift","defaultLevel","manual","Context","parentContext","_currentContext","Map","getValue","setValue","deleteValue","self","delete","ROOT_CONTEXT","ContextManager","currentContext","active","enterContext","previousContext","exitContext","with","fn","thisArg","_len","_key","apply","createContextKey","Symbol","for","toMillis","hrtime","toNanos","add","b","usePerformance","performance","timeOrigin","isHrTime","SpanExporter","api","export","spans","_resultCallback","spanExportQueue","_toConsumableArray","toPayload","_this","resourceSpans","resource","scopeMap","span","scopeKey","instrumentationScope","version","has","scope","_transformSpan","_transformResource","scopeSpans","values","scopeData","_transformInstrumentationScope","post","postSpans","_this2","transformAttributes","_transformAnyValue","transformEvents","timeUnixNano","time","traceId","spanContext","spanId","parentSpanId","kind","startTimeUnixNano","startTime","endTime","_this3","keyValues","_this4","attr","_this5","stringValue","isInteger","intValue","doubleValue","boolValue","arrayValue","kvlistValue","gen","bytes","randomBytes","Uint8Array","crypto","getRandomValues","randHex","byte","padStart","id","SESSION_KEY","Session","_defineProperty","session","_attributes","init","attrs","getSession","createSession","initSessionAttributes","serializedSession","sessionStorage","getItem","_unused","createdAt","setSession","sessionString","setItem","_unused2","setAttributes","setUser","user","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","addTransform","transformFn","transformSpan","applyTransforms","transform","onStart","_parentContext","onEnd","Span","initReadableSpan","spanProcessor","_options$session","status","links","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount","setAttribute","_i","_Object$entries","_Object$entries$_i","isRecording","Tracer","_this$tracing$resourc","_options$resource","_this$tracing$session","contextManager","parentSpan","getSpan","parentSpanContext","traceFlags","traceState","SPAN_KEY","Tracing","gWindow","createTracer","initSession","_this$options$payload","_this$options$payload2","environment","idGen","tracer","getTracer","addSpanTransform","setSpan","_this$contextManager","withSpan","default","raw","jsonBackup","selectFrames","frames","range","truncateFrames","trace_chain","chain","trace","maybeTruncateValue","truncateStrings","truncator","truncateTraceData","traceData","exception","description","minBody","_step2$value","needsTruncation","maxSize","truncate","strategies","strategy","results","buildPayload","contextResult","getTransportFromOptions","defaults","timeout","transport","detectTransport","proxy","endpoint","opts","pathname","defaultTransport","fetch","XMLHttpRequest","transportOptions","transportAPI","host","appendPathToPath","base","baseTrailingSlash","pathBeginningSlash","iterator","toStringTag","Generator","_regeneratorDefine2","y","G","TypeError","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","__proto__","displayName","_regenerator","w","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","helpers","defaultOptions","OTLPDefaultOptions","Api","urllib","truncation","_getTransport","OTLPTransportOptions","_getOTLPTransport","_postPromise","reject","postItem","setTimeout","_postSpans","_callee","_args","_context","_x","buildJsonPayload","stringifyResult","postJsonPayload","jsonPayload","_options$tracing","reportLevel","uncaughtErrorLevel","maxItems","itemsPerMin","commonScrubFields","apiScrubFields","requestScrubFields","commonScrubHeaders","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","allowEmpty","parseStack","stackString","parseV8OrIeString","parseFFOrSafariString","extractLocation","urlLike","regExp","applySlice","lines","filtered","sanitizedLine","locationParts","functionName","fileName","function","file","col","functionNameRegex","matches","parseOpera9","parseOpera10","parseOpera11","lineRE","tokens","functionCall","argsRaw","parse$1","parseV8OrIE$1","parseFFOrSafari$1","parseOpera$1","parseOpera9$1","parseOpera10$1","parseOpera11$1","stackframesLiteToStackframes","liteStackframes","liteStackframe","lineNumber","columnNumber","parseErrorStack","UNKNOWN_FUNCTION","ERR_CLASS_REGEXP","Frame","stackFrame","_stackFrame","Stack","skip","getStack","parserStack","_mostSpecificErrorName","rawStack","rawException","nested","cause","traceChain","guessErrorClass","errMsg","errClassMatch","errClass","constructorName","checkLevel","settings","levelVal","reportLevelVal","userCheckIgnore","isUncaught","Boolean","_isUncaught","onSendCallback","checkIgnore","urlIsNotBlockListed","urlIsOnAList","urlIsSafeListed","matchFrames","block","frame","filename","urlRegex","listLength","frameLength","safeOrBlock","traces","tracesLength","listName","messageIsIgnored","ignoredMessages","rIgnoredMessage","messages","messagesFromItem","Notifier","_this$queue","enabled","addPendingItem","originalError","_applyTransforms","removePendingItem","addItem","transformIndex","transformsLength","next","Queue","rateLimiter","replay","predicates","pendingItems","pendingRequests","retryQueue","retryHandle","waitCallback","waitIntervalID","_this$api","addPredicate","predicate","idx","originalItem","predicateResult","_applyPredicates","stop","_maybeLog","transmit","replayId","_makeApiRequest","_dequeuePendingRequest","sendOrDiscardReplay","_this$replay","discard","wait","_maybeCallWait","clearInterval","setInterval","rateLimitResponse","shouldSend","_maybeRetry","shouldRetry","retryInterval","RETRIABLE_ERRORS","maxRetries","retries","_retryApiRequest","retryObject","verbose","RateLimiter","counter","perMinCounter","platformOptions","configureGlobal","itemsPerMinute","globalSettings","elapsedTime","globalRateLimit","globalRateLimitPerMin","checkRate","shouldSendValue","underGlobalLimit","perMinute","setPlatformOptions","limit","ignoreRateLimit","limitPerMin","errorResult","rateLimitPayload","msg","extra","framework","Rollbar","telemeter","validateTracer","_configuredOptions","setStackTraceLimit","lastError","lastErrorHash","global","payloadData","_defaultLogLevel","_log","sendJsonPayload","ignoreDuplicateErrors","_sameAsLastError","_addItemAttributes","_addTracingInfo","telemetryEvents","_this$tracing2","sessionId","itemHash","generateItemHash","validateSpan","setTag","opentracingSpanId","toSpanId","opentracingTraceId","toTraceId","opentracing_span_id","opentracing_trace_id","stackTraceLimit","itemToPayload","addPayloadOptions","payloadOptions","addTelemetryData","addMessageWithError","tracePath","newExtra","newItem","promisedItem","addConfigToPayload","sendConfig","configKey","addFunctionOption","addConfiguredOptions","configuredOptions","configured_options","addDiagnosticKeys","client","is_anonymous","is_uncaught","raw_error","constructor_name","failed","captureUncaughtExceptions","handler","shim","oldOnError","_rollbarOldOnError","onerror","handleAnonymousErrors","_rollbarWindowOnError","old","_rollbarWrappedError","_rollbarContext","handleUncaughtException","anonymousErrorsPending","captureUnhandledRejections","_rollbarURH","belongsToShim","removeEventListener","rejectionHandler","evt","reason","promise","detail","handleUnhandledRejection","addEventListener","autoStart","triggerDefaults","samplingRatio","preDuration","postDuration","triggers","logErrors","logEmits","inlineStylesheet","inlineImages","collectFonts","maskInputOptions","tel","text","color","date","month","number","week","maskAllInputs","blockClass","maskTextClass","ignoreClass","slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","handleDomException","handleItemWithError","stackInfo","_savedStackTrace","e2","ensureItemHasSomethingToSay","addBaseInfo","server","addRequestInfo","requestInfo","query_string","remoteString","user_ip","addClientInfo","nav","scr","screen","runtime_ms","_rollbarStartTime","javascript","browser","cookie_enabled","cookieEnabled","addPluginInfo","plugins","navPlugins","cur","addBody","addBodyTraceChain","addBodyTrace","addBodyMessage","stackFromItem","_unhandledStackInfo","traceChainLength","buildTrace","guess","className","errorClass","class","pre","contextLength","mid","sendFrameUrl","endsWith","reverse","addScrubber","scrubFn","makeFetchRequest","controller","timeoutId","AbortController","abort","signal","clearTimeout","respHeaders","isItemRoute","json","catch","makeXhrRequest","requestFactory","_createXMLHTTPObject","onreadystatechange","readyState","parseResponse","responseText","_isSuccess","getResponseHeader","_isNormalFailure","_newRetriableError","ex","exc","open","setRequestHeader","send","_e1","XDomainRequest","xdomainrequest","onprogress","ontimeout","onload","factories","ActiveXObject","xmlhttp","numFactories","Transport","_makeZoneRequest","rootZone","Zone","root","run","_makeRequest","RollbarProxy","_proxyRequest","rollbarProxy","_msg","auth","hash","parseInt","pathParts","API","sharedPredicates","Client","tracingDefaults","sharedTransforms","browserDefaults","globals","replayDefaults","_instance","components","Instrumenter","instrumenter","wrapGlobals","Replay","_gWindow","replayOptions","recorder","start","gDocument","isChrome","chrome","runtime","addTransformsToNotifier","addPredicatesToQueue","setupUnhandledCapture","instrument","setSessionAttributesFromOptions","rollbar","_this$instrumenter","_createItem","triggerDirectReplay","triggerReplay","unhandledExceptionsInitialized","captureUncaught","handleUncaughtExceptions","wrapGlobalEventHandlers","unhandledRejectionsInitialized","handleUnhandledRejections","inspectAnonymousErrors","prepareStackTrace","_stack","_isAnonymous","reasonResult","wrap","_before","ctxFn","_isWrap","_rollbar_wrapped","_wrappedSource","setSessionUser","setSessionAttributes","_this$tracing3","_options$payload","_options$client","_options$payload2","_options$payload3","_options$payload4","person","code_version","codeVersion","loadFull","setComponents","callInstance","maybeCallback","_getFirstFunction","_Rollbar","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len0","_key0","_len1","_key1","_len10","_key10","_len11","_key11","_len12","_key12","Headers","FetchHeaders","normalizeName","normalizeValue","iteratorFor","items","forEach","append","header","getOwnPropertyNames","oldValue","replacements","orig","getElementType","getAttribute","isDescribedElement","subtypes","tagName","elementType","getElementFromEvent","doc","elementFromPoint","clientX","clientY","treeToArray","elem","MAX_HEIGHT","out","nextDescription","describeElement","parentNode","elementArrayToString","MAX_LENGTH","separator","separatorLength","nextStr","totalLength","descriptionToString","elementString","desc","classes","attribute","isMatchingElement","selectors","cls","classList","contains","sel","domUtil","urlparser","network","networkResponseHeaders","networkResponseBody","networkRequestHeaders","networkRequestBody","networkErrorOnHttp5xx","networkErrorOnHttp4xx","networkErrorOnHttp0","dom","navigation","connectivity","contentSecurityPolicy","errorOnContentSecurityPolicy","restore","nameFromDescription","defaultValueScrubber","patterns","_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","instrumentNetwork","deinstrumentNetwork","instrumentConsole","deinstrumentConsole","instrumentDom","deinstrumentDom","instrumentNavigation","deinstrumentNavigation","instrumentConnectivity","deinstrumentConnectivity","instrumentContentSecurityPolicy","deinstrumentContentSecurityPolicy","wrapProp","xhr","xhrp","isUrlObject","_isUrlObject","__rollbar_xhr","request_content_type","onreadystatechangeHandler","__rollbar_event","response_content_type","headersConfig","allHeaders","getAllResponseHeaders","trim","isJsonContentType","scrubJson","addOtelNetworkResponse","errorOnHttpStatus","trackHttpErrors","_fn","_t","reqHeaders","fetchHeaders","telemetryEvent","contentType","endTimeMs","inHeaders","outHeaders","currentHeader","_this$_window","wrapConsole","origConsole","methods","_i2","_methods","addListener","handleEvent","click","handleClick","dragdrop","handleDrag","focus","handleFocus","form","handleForm","handleInput","resize","handleResize","contentLoaded","handleContentLoaded","_evt","_evt$target","isTrusted","_evt$target2","innerWidth","innerHeight","objs","dataTransfer","files","_evt$dataTransfer","_evt$dataTransfer2","scrubInputValue","inputType","mask","_evt$target3","_evt$target4","_evt$target5","_evt$target6","_evt$target7","chromePackagedApp","app","hasPushState","history","pushState","handleUrlChange","parsedHref","parsedTo","parsedFrom","handleConnectivity","handleCspEvent","cspEvent","blockedURI","violatedDirective","effectiveDirective","sourceFile","originalPolicy","handleCspError","cspHandler","section","types","_iterator7","_step7","_loop","passive","_extendListenerPrototype","oldAddEventListener","_rollbarOldAdd","addFn","bubble","oldRemoveEventListener","_rollbarOldRemove","removeFn","_rollbarConfig","alias","globalAlias","shimRunning","shimId","_rollbarDidLoad"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"rollbar.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/tracing/defaults.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/replay/defaults.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/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} 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\", \"\"].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(//, \"$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","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\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","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","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","/**\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","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","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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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":["isType","x","t","typeName","name","_typeof","Error","toString","call","match","toLowerCase","isFunction","f","isNativeFunction","reRegExpChar","funcMatchString","Function","prototype","Object","hasOwnProperty","replace","reIsNative","RegExp","isObject","test","value","hasOwn","obj","prop","isString","String","isFiniteNumber","n","Number","isFinite","isIterable","i","type","isError","e","isPromise","p","then","isBrowser","window","isRequestObject","input","Request","redact","uuid4","d","now","uuid","c","r","Math","random","floor","LEVELS","debug","info","warning","error","critical","sanitizeHref","url","urlObject","URL","password","search","_","sanitizeUrl","baseUrlParts","parseUri","anchor","source","query","parseUriOptions","strictMode","key","q","parser","strict","loose","str","undefined","o","m","exec","uri","l","length","$0","$1","$2","addParamsAndAccessTokenToPath","accessToken","options","params","access_token","paramsArray","k","push","join","sort","path","qs","indexOf","h","substring","formatUrl","u","protocol","port","hostname","result","stringify","backup","JSON","jsonError","backupError","maxByteSize","string","count","code","charCodeAt","jsonParse","s","parse","makeUnhandledStackInfo","message","lineno","colno","mode","backupMessage","errorParser","location","line","column","func","guessFunctionName","context","gatherContext","href","document","useragent","navigator","userAgent","stack","wrapCallback","logger","err","resp","nonCircularClone","seen","clone","newSeen","includes","slice","createItem","args","notifier","requestKeys","lambdaContext","custom","callback","request","arg","extraArgs","diagnostic","argTypes","typ","DOMException","j","len","item","timestamp","data","setCustomItemKeys","_originalArgs","original_arg_types","level","skipFrames","addErrorContext","errors","contextAdded","_iterator","_createForOfIteratorHelper","_step","done","merge","rollbarContext","error_context","TELEMETRY_TYPES","TELEMETRY_LEVELS","arrayIncludes","arr","val","_iterator2","_step2","entry","createTelemetryEvent","metadata","event","addItemAttributes","itemData","attributes","_iterator3","_step3","a","get","keys","split","_e","set","setPrototypeOf","temp","replacement","formatArgsAsString","substr","Date","filterIp","requestData","captureIp","newIp","parts","pop","beginning","slashIdx","terminal","concat","handleOptions","current","payload","updateDeprecatedOptions","overwriteScrubFields","scrubFields","hostWhiteList","hostSafeList","log","hostBlackList","hostBlockList","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","src","copy","create","arguments","shouldAddBaggageHeader","tracing","_options$tracing","sessionId","propagation","enabledHeaders","Array","isArray","enabledCorsUrls","some","pattern","addHeadersToFetch","newHeaders","_init","init","initHeaders","headers","reqHeaders","Headers","_i","_Object$keys","append","_i2","_Object$keys2","getSessionIdFromAsyncLocalStorage","client","storage","asyncLocalStorage","getStore","store","traverse","v","isObj","seenIndex","mapped","same","scrub","scrubPaths","scrubPath","paramRes","_getScrubFieldRegexs","queryRes","_getScrubQueryParamRegexs","redactQueryParam","dummy0","paramPart","paramScrubber","regex","valScrubber","scrubber","tmpV","last","_iterator4","entries","_step4","_step4$value","_slicedToArray","index","ret","_iterator5","_step5","field","pat","_iterator6","_step6","MAX_EVENTS","fromMillis","millis","trunc","round","Telemeter","_this$tracing","_classCallCheck","queue","maxTelemetryEvents","maxQueueSize","max","min","telemetrySpan","startSpan","_createClass","configure","oldOptions","newMaxEvents","deleteCount","splice","copyEvents","events","filterTelemetry","filter","map","_ref","_otelAttributes","otelAttributes","_objectWithoutProperties","_excluded","exportTelemetrySpan","end","capture","rollbarUUID","getLevel","timestamp_ms","body","_exc","captureEvent","captureError","_this$telemetrySpan","addEvent","captureLog","_this$telemetrySpan2","_objectSpread","captureNetwork","subtype","_metadata$response","_metadata$response2","_this$telemetrySpan3","levelFromStatus","status_code","endTimeNano","end_time_ms","method","statusCode","request_headers","response","requestBody","responseBody","start_time_ms","captureDom","element","checked","captureInput","_ref2","_this$telemetrySpan4","isSynthetic","endTimeUnixNano","_getRepeatedEvent","_updateRepeatedEvent","captureClick","_ref3","_this$telemetrySpan5","lastEvent","_lastEvent","target","duration","height","width","textZoomRatio","rate","list","captureFocus","_ref4","_this$telemetrySpan6","captureResize","_ref5","_this$telemetrySpan7","captureDragDrop","_ref6","_this$telemetrySpan8","dropEffect","effectAllowed","kinds","mediaTypes","captureNavigation","from","to","_this$telemetrySpan9","captureDomContentLoaded","ts","getTime","captureLoad","captureConnectivityChange","_ref7","_this$telemetrySpan0","_captureRollbarItem","includeItemsInTelemetry","shift","defaultLevel","manual","Context","parentContext","_currentContext","Map","getValue","setValue","deleteValue","self","delete","ROOT_CONTEXT","ContextManager","currentContext","active","enterContext","previousContext","exitContext","with","fn","thisArg","_len","_key","apply","createContextKey","Symbol","for","toMillis","hrtime","toNanos","add","b","usePerformance","performance","timeOrigin","isHrTime","SpanExporter","api","export","spans","_resultCallback","spanExportQueue","_toConsumableArray","toPayload","_this","resourceSpans","resource","scopeMap","span","scopeKey","instrumentationScope","version","has","scope","_transformSpan","_transformResource","scopeSpans","values","scopeData","_transformInstrumentationScope","post","postSpans","_this2","transformAttributes","_transformAnyValue","transformEvents","timeUnixNano","time","traceId","spanContext","spanId","parentSpanId","kind","startTimeUnixNano","startTime","endTime","_this3","keyValues","_this4","attr","_this5","stringValue","isInteger","intValue","doubleValue","boolValue","arrayValue","kvlistValue","gen","bytes","randomBytes","Uint8Array","crypto","getRandomValues","randHex","byte","padStart","id","SESSION_KEY","Session","_defineProperty","session","_attributes","attrs","getSession","createSession","initSessionAttributes","serializedSession","sessionStorage","getItem","_unused","createdAt","setSession","sessionString","setItem","_unused2","setAttributes","setUser","user","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","addTransform","transformFn","transformSpan","applyTransforms","transform","onStart","_parentContext","onEnd","Span","initReadableSpan","spanProcessor","_options$session","status","links","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount","setAttribute","_Object$entries","_Object$entries$_i","isRecording","Tracer","_this$tracing$resourc","_options$resource","_this$tracing$session","contextManager","parentSpan","getSpan","parentSpanContext","traceFlags","traceState","SPAN_KEY","Tracing","gWindow","createTracer","initSession","_this$options$payload","_this$options$payload2","environment","idGen","tracer","getTracer","addSpanTransform","setSpan","_this$contextManager","withSpan","default","raw","jsonBackup","selectFrames","frames","range","truncateFrames","trace_chain","chain","trace","maybeTruncateValue","truncateStrings","truncator","truncateTraceData","traceData","exception","description","minBody","_step2$value","needsTruncation","maxSize","truncate","strategies","strategy","results","buildPayload","contextResult","getTransportFromOptions","defaults","timeout","transport","detectTransport","proxy","endpoint","opts","pathname","defaultTransport","fetch","XMLHttpRequest","transportOptions","transportAPI","host","appendPathToPath","base","baseTrailingSlash","pathBeginningSlash","iterator","toStringTag","Generator","_regeneratorDefine2","y","G","TypeError","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","__proto__","displayName","_regenerator","w","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","helpers","defaultOptions","OTLPDefaultOptions","Api","urllib","truncation","_getTransport","OTLPTransportOptions","_getOTLPTransport","_postPromise","reject","postItem","setTimeout","_postSpans","_callee","_args","_context","_x","buildJsonPayload","stringifyResult","postJsonPayload","jsonPayload","reportLevel","uncaughtErrorLevel","maxItems","itemsPerMin","commonScrubFields","apiScrubFields","requestScrubFields","commonScrubHeaders","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","allowEmpty","parseStack","stackString","parseV8OrIeString","parseFFOrSafariString","extractLocation","urlLike","regExp","applySlice","lines","filtered","sanitizedLine","locationParts","functionName","fileName","function","file","col","functionNameRegex","matches","parseOpera9","parseOpera10","parseOpera11","lineRE","tokens","functionCall","argsRaw","parse$1","parseV8OrIE$1","parseFFOrSafari$1","parseOpera$1","parseOpera9$1","parseOpera10$1","parseOpera11$1","stackframesLiteToStackframes","liteStackframes","liteStackframe","lineNumber","columnNumber","parseErrorStack","UNKNOWN_FUNCTION","ERR_CLASS_REGEXP","Frame","stackFrame","_stackFrame","Stack","skip","getStack","parserStack","_mostSpecificErrorName","rawStack","rawException","nested","cause","traceChain","guessErrorClass","errMsg","errClassMatch","errClass","constructorName","checkLevel","settings","levelVal","reportLevelVal","userCheckIgnore","isUncaught","Boolean","_isUncaught","onSendCallback","checkIgnore","urlIsNotBlockListed","urlIsOnAList","urlIsSafeListed","matchFrames","block","frame","filename","urlRegex","listLength","frameLength","safeOrBlock","traces","tracesLength","listName","messageIsIgnored","ignoredMessages","rIgnoredMessage","messages","messagesFromItem","Notifier","_this$queue","enabled","addPendingItem","originalError","_applyTransforms","removePendingItem","addItem","transformIndex","transformsLength","next","Queue","rateLimiter","replay","predicates","pendingItems","pendingRequests","retryQueue","retryHandle","waitCallback","waitIntervalID","_this$api","addPredicate","predicate","idx","originalItem","predicateResult","_applyPredicates","stop","_maybeLog","transmit","replayId","_makeApiRequest","_dequeuePendingRequest","sendOrDiscardReplay","_this$replay","discard","wait","_maybeCallWait","clearInterval","setInterval","rateLimitResponse","shouldSend","_maybeRetry","shouldRetry","retryInterval","RETRIABLE_ERRORS","maxRetries","retries","_retryApiRequest","retryObject","verbose","RateLimiter","counter","perMinCounter","platformOptions","configureGlobal","itemsPerMinute","globalSettings","elapsedTime","globalRateLimit","globalRateLimitPerMin","checkRate","shouldSendValue","underGlobalLimit","perMinute","setPlatformOptions","limit","ignoreRateLimit","limitPerMin","errorResult","rateLimitPayload","msg","extra","framework","Rollbar","telemeter","validateTracer","_configuredOptions","setStackTraceLimit","lastError","lastErrorHash","global","payloadData","_defaultLogLevel","_log","sendJsonPayload","ignoreDuplicateErrors","_sameAsLastError","_addItemAttributes","_addTracingInfo","telemetryEvents","_this$tracing2","asyncLocalSessionId","itemHash","generateItemHash","validateSpan","setTag","opentracingSpanId","toSpanId","opentracingTraceId","toTraceId","opentracing_span_id","opentracing_trace_id","stackTraceLimit","itemToPayload","addPayloadOptions","payloadOptions","addTelemetryData","addMessageWithError","tracePath","newExtra","newItem","promisedItem","addConfigToPayload","sendConfig","configKey","addFunctionOption","addConfiguredOptions","configuredOptions","configured_options","addDiagnosticKeys","is_anonymous","is_uncaught","raw_error","constructor_name","failed","captureUncaughtExceptions","handler","shim","oldOnError","_rollbarOldOnError","onerror","handleAnonymousErrors","_rollbarWindowOnError","old","_rollbarWrappedError","_rollbarContext","handleUncaughtException","anonymousErrorsPending","captureUnhandledRejections","_rollbarURH","belongsToShim","removeEventListener","rejectionHandler","evt","reason","promise","detail","handleUnhandledRejection","addEventListener","autoStart","triggerDefaults","samplingRatio","preDuration","postDuration","triggers","logErrors","logEmits","inlineStylesheet","inlineImages","collectFonts","maskInputOptions","tel","text","color","date","month","number","week","maskAllInputs","blockClass","maskTextClass","ignoreClass","slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","handleDomException","handleItemWithError","stackInfo","_savedStackTrace","e2","ensureItemHasSomethingToSay","addBaseInfo","server","addRequestInfo","requestInfo","query_string","remoteString","user_ip","addClientInfo","nav","scr","screen","runtime_ms","_rollbarStartTime","javascript","browser","cookie_enabled","cookieEnabled","addPluginInfo","plugins","navPlugins","cur","addBody","addBodyTraceChain","addBodyTrace","addBodyMessage","stackFromItem","_unhandledStackInfo","traceChainLength","buildTrace","guess","className","errorClass","class","pre","contextLength","mid","sendFrameUrl","endsWith","reverse","addScrubber","scrubFn","makeFetchRequest","controller","timeoutId","AbortController","abort","signal","clearTimeout","respHeaders","isItemRoute","json","catch","makeXhrRequest","requestFactory","_createXMLHTTPObject","onreadystatechange","readyState","parseResponse","responseText","_isSuccess","getResponseHeader","_isNormalFailure","_newRetriableError","ex","exc","open","setRequestHeader","send","_e1","XDomainRequest","xdomainrequest","onprogress","ontimeout","onload","factories","ActiveXObject","xmlhttp","numFactories","Transport","_makeZoneRequest","rootZone","Zone","root","run","_makeRequest","RollbarProxy","_proxyRequest","rollbarProxy","_msg","auth","hash","parseInt","pathParts","API","sharedPredicates","Client","tracingDefaults","sharedTransforms","browserDefaults","globals","replayDefaults","_instance","components","Instrumenter","instrumenter","wrapGlobals","Replay","_gWindow","replayOptions","recorder","start","gDocument","isChrome","chrome","runtime","addTransformsToNotifier","addPredicatesToQueue","setupUnhandledCapture","instrument","setSessionAttributesFromOptions","rollbar","_this$instrumenter","_createItem","triggerDirectReplay","triggerReplay","unhandledExceptionsInitialized","captureUncaught","handleUncaughtExceptions","wrapGlobalEventHandlers","unhandledRejectionsInitialized","handleUnhandledRejections","inspectAnonymousErrors","prepareStackTrace","_stack","_isAnonymous","reasonResult","wrap","_before","ctxFn","_isWrap","_rollbar_wrapped","_wrappedSource","setSessionUser","setSessionAttributes","_this$tracing3","_options$payload","_options$client","_options$payload2","_options$payload3","_options$payload4","person","code_version","codeVersion","loadFull","setComponents","callInstance","maybeCallback","_getFirstFunction","_Rollbar","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len0","_key0","_len1","_key1","_len10","_key10","_len11","_key11","_len12","_key12","FetchHeaders","normalizeName","normalizeValue","iteratorFor","items","forEach","header","getOwnPropertyNames","oldValue","replacements","orig","getElementType","getAttribute","isDescribedElement","subtypes","tagName","elementType","getElementFromEvent","doc","elementFromPoint","clientX","clientY","treeToArray","elem","MAX_HEIGHT","out","nextDescription","describeElement","parentNode","elementArrayToString","MAX_LENGTH","separator","separatorLength","nextStr","totalLength","descriptionToString","elementString","desc","classes","attribute","isMatchingElement","selectors","cls","classList","contains","sel","domUtil","urlparser","network","networkResponseHeaders","networkResponseBody","networkRequestHeaders","networkRequestBody","networkErrorOnHttp5xx","networkErrorOnHttp4xx","networkErrorOnHttp0","dom","navigation","connectivity","contentSecurityPolicy","errorOnContentSecurityPolicy","restore","nameFromDescription","defaultValueScrubber","patterns","_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","instrumentNetwork","deinstrumentNetwork","instrumentConsole","deinstrumentConsole","instrumentDom","deinstrumentDom","instrumentNavigation","deinstrumentNavigation","instrumentConnectivity","deinstrumentConnectivity","instrumentContentSecurityPolicy","deinstrumentContentSecurityPolicy","wrapProp","xhr","xhrp","isUrlObject","_isUrlObject","__rollbar_xhr","request_content_type","_self$rollbar","_xhr$__rollbar_xhr","onreadystatechangeHandler","__rollbar_event","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","wrapConsole","origConsole","methods","_methods","addListener","handleEvent","click","handleClick","dragdrop","handleDrag","focus","handleFocus","form","handleForm","handleInput","resize","handleResize","contentLoaded","handleContentLoaded","_evt","_evt$target","isTrusted","_evt$target2","innerWidth","innerHeight","objs","dataTransfer","files","_evt$dataTransfer","_evt$dataTransfer2","scrubInputValue","inputType","mask","_evt$target3","_evt$target4","_evt$target5","_evt$target6","_evt$target7","chromePackagedApp","app","hasPushState","history","pushState","handleUrlChange","parsedHref","parsedTo","parsedFrom","handleConnectivity","handleCspEvent","cspEvent","blockedURI","violatedDirective","effectiveDirective","sourceFile","originalPolicy","handleCspError","cspHandler","section","types","_iterator7","_step7","_loop","passive","_extendListenerPrototype","oldAddEventListener","_rollbarOldAdd","addFn","bubble","oldRemoveEventListener","_rollbarOldRemove","removeFn","_rollbarConfig","alias","globalAlias","shimRunning","shimId","_rollbarDidLoad"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/rollbar.min.cjs b/dist/rollbar.min.cjs index 69a3bf88..32678511 100644 --- a/dist/rollbar.min.cjs +++ b/dist/rollbar.min.cjs @@ -1,2 +1,2 @@ /*! For license information please see rollbar.min.cjs.LICENSE.txt */ -(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};t.d(e,{default:()=>kr});const r=require("os"),n=require("url"),o=require("util"),i=require("json-stringify-safe");function a(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return s(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(s||(s=g({})),s.extraArgs=g(p));var k,_={message:i,err:a,custom:s,timestamp:O(),callback:u,notifier:r,diagnostic:{},uuid:(k=O(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(k+16*Math.random())%16|0;return k=Math.floor(k/16),("x"===t?e:7&e|8).toString(16)}))};return _.data=_.data||{},function(t,e){e&&void 0!==e.level&&(t.level=e.level,delete e.level);e&&void 0!==e.skipFrames&&(t.skipFrames=e.skipFrames,delete e.skipFrames)}(_,s),n&&l&&(_.request=l),o&&(_.lambdaContext=o),_._originalArgs=t,_.diagnostic.original_arg_types=h,_}var w=["log","network","dom","navigation","error","manual"],k=["critical","error","warning","info","debug"];function _(t,e){var r,n=a(t);try{for(n.s();!(r=n.n()).done;){if(r.value===e)return!0}}catch(t){n.e(t)}finally{n.f()}return!1}function S(t,e){t.attributes=t.attributes||[];var r,n=a(e);try{for(n.s();!(r=n.n()).done;){var o=r.value;void 0!==o.value&&t.attributes.push(o)}}catch(t){n.e(t)}finally{n.f()}}function E(t,e){if(t){var r=e.split("."),n=t;try{for(var o=0,i=r.length;o255&&(t.context=t.context.substr(0,255))}return{data:t}}function P(t,e,r){var n=e.hostname,o=e.protocol,i=e.port,a=e.path,s=e.search,u=t.timeout,l=function(t){var e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=t.defaultTransport||"xhr";void 0===e.fetch&&(r="xhr");void 0===e.XMLHttpRequest&&(r="fetch");return r}(t),c=t.proxy;if(t.endpoint){var f=r.parse(t.endpoint);n=f.hostname,o=f.protocol,i=f.port,a=f.pathname,s=f.search}return{timeout:u,hostname:n,protocol:o,port:i,path:a,search:s,proxy:c,transport:l}}function R(t,e){var r=t.protocol||"https:",n=t.port||("http:"===r?80:"https:"===r?443:void 0),o=t.hostname,i=t.path,a=t.timeout,s=t.transport;return t.search&&(i+=t.search),t.proxy&&(i=r+"//"+o+i,o=t.proxy.host||t.proxy.hostname,n=t.proxy.port,r=t.proxy.protocol||r),{timeout:a,protocol:r,hostname:o,path:i,port:n,method:e,transport:s}}function L(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function A(t){for(var e=1;e3?(o=d===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=h&&((o=r<2&&hn||n>d)&&(i[4]=r,i[5]=n,p.n=d,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,d){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,d),s=c,u=d;(e=s<2?t:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=t}else if((e=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(e){i=t,s=1,u=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(U(e={},n,function(){return this}),e),f=l.prototype=s.prototype=Object.create(c);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,U(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,U(f,"constructor",l),U(l,"constructor",u),u.displayName="GeneratorFunction",U(l,o,"GeneratorFunction"),U(f),U(f,o,"Generator"),U(f,n,function(){return this}),U(f,"toString",function(){return"[object Generator]"}),(M=function(){return{w:i,m:p}})()}function U(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}U=function(t,e,r,n){function i(e,r){U(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},U(t,e,r,n)}function D(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function N(t,e){for(var r=0;r1&&void 0!==o[1]?o[1]:{},n=R(this.OTLPTransportOptions,"POST"),t.a(2,this._postPromise({accessToken:this.accessToken,options:n,payload:e,headers:r}))},t,this)}),o=function(){var t=this,e=arguments;return new Promise(function(r,o){var i=n.apply(t,e);function a(t){D(i,r,o,a,s,"next",t)}function s(t){D(i,r,o,a,s,"throw",t)}a(void 0)})},function(t){return o.apply(this,arguments)})},{key:"buildJsonPayload",value:function(t,e){var r,n=j(t);return(r=this.truncation?this.truncation.truncate(n):y(n)).error?(e&&e(r.error),null):r.value}},{key:"postJsonPayload",value:function(t,e){var r=R(this.transportOptions,"POST");this.transport.postJsonPayload(this.accessToken,r,t,e)}},{key:"configure",value:function(t){var e=this.options;return this.options=T(e,t),this.transportOptions=W(this.options,this.url),this.OTLPTransportOptions=G(this.options,this.url),void 0!==this.options.accessToken&&(this.accessToken=this.options.accessToken),this}}],e&&N(t.prototype,e),r&&N(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r,n,o}();function W(t,e){return P(t,H,e)}function G(t,e){var r;return P(t=A(A({},t),{},{endpoint:null===(r=t.tracing)||void 0===r?void 0:r.endpoint}),B,e)}const z=J;var $="3.0.0",Q="debug";var Z=function(){},V={debug:0,info:1,warn:2,error:3,disable:4},X={error:function(){for(var t=arguments.length,e=new Array(t),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function tt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rthis.options.maxRetries&&(i=!1))}i?this._retryApiRequest(r,n):n(e)}},{key:"_retryApiRequest",value:function(t,e){var r=this;this.retryQueue.push({item:t,callback:e}),this.retryHandle||(this.retryHandle=setInterval(function(){for(;r.retryQueue.length;){var t=r.retryQueue.shift();r._makeApiRequest(t.item,t.callback)}},this.options.retryInterval))}},{key:"_dequeuePendingRequest",value:function(t){var e=this.pendingRequests.indexOf(t);-1!==e&&(this.pendingRequests.splice(e,1),this._maybeCallWait())}},{key:"_maybeLog",value:function(t,e){if(this.logger&&this.options.verbose){var r=e||E(t,"body.trace.exception.message")||E(t,"body.trace_chain.0.exception.message");if(r)return void this.logger.error(r);(r=E(t,"body.message.body"))&&this.logger.log(r)}}},{key:"_maybeCallWait",value:function(){return!(!f(this.waitCallback)||0!==this.pendingItems.length||0!==this.pendingRequests.length||(this.waitIntervalID&&(this.waitIntervalID=clearInterval(this.waitIntervalID)),this.waitCallback(),0))}}])&&ct(e.prototype,r),n&&ct(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();pt=mt,dt=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE","EAI_AGAIN"],(ht=ft(ht="RETRIABLE_ERRORS"))in pt?Object.defineProperty(pt,ht,{value:dt,enumerable:!0,configurable:!0,writable:!0}):pt[ht]=dt;const yt=mt;function vt(t){return vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vt(t)}function gt(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.startTime=Date.now(),this.counter=0,this.perMinCounter=0,this.platform=null,this.platformOptions={},this.configureGlobal(e)}return function(t,e,r){return e&>(t.prototype,e),r&>(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(t,[{key:"configureGlobal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.startTime,n=e.maxItems,o=e.itemsPerMinute;void 0!==r&&(t.globalSettings.startTime=r),void 0!==n&&(t.globalSettings.maxItems=n),void 0!==o&&(t.globalSettings.itemsPerMinute=o)}},{key:"shouldSend",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=r-this.startTime;(n<0||n>=6e4)&&(this.startTime=r,this.perMinCounter=0);var o=t.globalSettings.maxItems,i=t.globalSettings.itemsPerMinute;if(kt(e,o,this.counter))return _t(this.platform,this.platformOptions,"".concat(o," max items reached"),!1);if(kt(e,i,this.perMinCounter))return _t(this.platform,this.platformOptions,"".concat(i," items per minute reached"),!1);this.counter+=1,this.perMinCounter+=1;var a=!kt(e,o,this.counter),s=a,u=a&&!kt(e,i,this.perMinCounter);return _t(this.platform,this.platformOptions,null,u,o,i,s)}},{key:"setPlatformOptions",value:function(t,e){this.platform=t,this.platformOptions=e}}])}();function kt(t,e,r){return!t.ignoreRateLimit&&e>=1&&r>e}function _t(t,e,r,n,o,i,a){var s=null,u=r?new Error(r):null;return u||n||(s=function(t,e,r,n,o){var i=e.environment||e.payload&&e.payload.environment,a=o?"item per minute limit reached, ignoring errors until timeout":"maxItems has been hit, ignoring errors until reset.",s={body:{message:{body:a,extra:{maxItems:r,itemsPerMinute:n}}},language:"javascript",environment:i,notifier:{version:e.notifier&&e.notifier.version||e.version}};"browser"===t?(s.platform="browser",s.framework="browser-js",s.notifier.name="rollbar-browser-js"):"server"===t?(s.framework=e.framework||"node-js",s.notifier.name=e.notifier.name):"react-native"===t&&(s.framework=e.framework||"react-native",s.notifier.name=e.notifier.name);return s}(t,e,o,i,a)),{error:u,shouldSend:n,payload:s}}!function(t,e,r){(e=bt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}(wt,"globalSettings",{startTime:Date.now(),maxItems:void 0,itemsPerMinute:void 0});const St=wt;function Et(t,e,r,n,o,i,a){this.options=T(t),this.logger=r,Et.rateLimiter.configureGlobal(this.options),Et.rateLimiter.setPlatformOptions(a,this.options),this.api=e,this.queue=new yt(Et.rateLimiter,e,r,this.options,i),this.tracing=o;var s=this.options.tracer||null;Ot(s)?(this.tracer=s,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier=new ut(this.queue,this.options),this.telemeter=n,xt(t),this.lastError=null,this.lastErrorHash="none"}function xt(t){t.stackTraceLimit&&(Error.stackTraceLimit=t.stackTraceLimit)}function Ot(t){if(!t)return!1;if(!t.scope||"function"!=typeof t.scope)return!1;var e=t.scope();return!(!e||!e.active||"function"!=typeof e.active)}Et.rateLimiter=new St({maxItems:0,itemsPerMinute:60}),Et.prototype.global=function(t){return Et.rateLimiter.configureGlobal(t),this},Et.prototype.configure=function(t,e){var r=this.options,n={};e&&(n={payload:e}),this.options=T(r,t,n);var o=this.options.tracer||null;return Ot(o)?(this.tracer=o,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier&&this.notifier.configure(this.options),this.telemeter&&this.telemeter.configure(this.options),xt(t),this.global(this.options),Ot(t.tracer)&&(this.tracer=t.tracer),this},Et.prototype.log=function(t){var e=this._defaultLogLevel();return this._log(e,t)},Et.prototype.debug=function(t){this._log("debug",t)},Et.prototype.info=function(t){this._log("info",t)},Et.prototype.warn=function(t){this._log("warning",t)},Et.prototype.warning=function(t){this._log("warning",t)},Et.prototype.error=function(t){this._log("error",t)},Et.prototype.critical=function(t){this._log("critical",t)},Et.prototype.wait=function(t){this.queue.wait(t)},Et.prototype.captureEvent=function(t,e,r){return this.telemeter&&this.telemeter.captureEvent(t,e,r)},Et.prototype.captureDomContentLoaded=function(t){return this.telemeter&&this.telemeter.captureDomContentLoaded(t)},Et.prototype.captureLoad=function(t){return this.telemeter&&this.telemeter.captureLoad(t)},Et.prototype.buildJsonPayload=function(t){return this.api.buildJsonPayload(t)},Et.prototype.sendJsonPayload=function(t){this.api.postJsonPayload(t)},Et.prototype._log=function(t,e){var r;if(e.callback&&(r=e.callback,delete e.callback),this.options.ignoreDuplicateErrors&&this._sameAsLastError(e)){if(r){var n=new Error("ignored identical item");n.item=e,r(n)}}else try{e.level=e.level||t,this._addItemAttributes(e),this._addTracingInfo(e);var o=this.telemeter;o&&(o._captureRollbarItem(e),e.telemetryEvents=o.copyEvents()||[]),this.notifier.log(e,r)}catch(t){r&&r(t),this.logger.error(t)}},Et.prototype._addItemAttributes=function(t){var e,r,n=null===(e=this.tracing)||void 0===e?void 0:e.getSpan(),o=[{key:"session_id",value:null===(r=this.tracing)||void 0===r?void 0:r.sessionId},{key:"span_id",value:null==n?void 0:n.spanId},{key:"trace_id",value:null==n?void 0:n.traceId}];t._isUncaught&&o.push({key:"is_uncaught",value:"true"}),S(t.data,o),null==n||n.addEvent("rollbar.occurrence",[{key:"rollbar.occurrence.uuid",value:t.uuid}])},Et.prototype._defaultLogLevel=function(){return this.options.logLevel||"debug"},Et.prototype._sameAsLastError=function(t){if(!t._isUncaught)return!1;var e=function(t){var e=t.message||"",r=(t.err||{}).stack||String(t.err);return e+"::"+r}(t);return this.lastErrorHash===e||(this.lastError=t.err,this.lastErrorHash=e,!1)},Et.prototype._addTracingInfo=function(t){if(this.tracer){var e=this.tracer.scope().active();if(function(t){if(!t||!t.context||"function"!=typeof t.context)return!1;var e=t.context();if(!e||!e.toSpanId||!e.toTraceId||"function"!=typeof e.toSpanId||"function"!=typeof e.toTraceId)return!1;return!0}(e)){e.setTag("rollbar.error_uuid",t.uuid),e.setTag("rollbar.has_error",!0),e.setTag("error",!0),e.setTag("rollbar.item_url","https://rollbar.com/item/uuid/?uuid=".concat(t.uuid)),e.setTag("rollbar.occurrence_url","https://rollbar.com/occurrence/uuid/?uuid=".concat(t.uuid));var r=e.context().toSpanId(),n=e.context().toTraceId();t.custom?(t.custom.opentracing_span_id=r,t.custom.opentracing_trace_id=n):t.custom={opentracing_span_id:r,opentracing_trace_id:n}}}};const It=Et;var Tt=["otelAttributes"];function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function Pt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Rt(t){for(var e=1;en&&(o=this.queue.length-n),this.maxQueueSize=n,this.queue.splice(0,o)}},{key:"copyEvents",value:function(){var t=Array.prototype.slice.call(this.queue,0);if(f(this.options.filterTelemetry))try{for(var e=t.length;e--;)this.options.filterTelemetry(t[e])&&t.splice(e,1)}catch(t){this.options.filterTelemetry=null}return t=t.filter(function(t){return"connectivity"!==t.type}),t=t.map(function(t){t.otelAttributes;var e=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.telemetrySpan&&(this.telemetrySpan.end(t),this.telemetrySpan=this.tracing.startSpan("rollbar-telemetry",{}))}},{key:"capture",value:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a={level:Dt(t,r),type:t,timestamp_ms:o||O(),body:e,source:"client"};n&&(a.uuid=n),i&&(a.otelAttributes=i);try{if(f(this.options.filterTelemetry)&&this.options.filterTelemetry(a))return!1}catch(t){this.options.filterTelemetry=null}return this.push(a),a}},{key:"captureEvent",value:function(t,e,r,n){return this.capture(t,e,r,n)}},{key:"captureError",value:function(t,e,r,n){var o,i=t.message||String(t),a={message:i};t.stack&&(a.stack=t.stack);var s={message:i,level:e,type:"error",uuid:r};return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-occurrence-event",s,Mt(n)),this.capture("error",a,e,r,n,s)}},{key:"captureLog",value:function(t,e,r,n){var o,i=r?"rollbar-occurrence-event":"rollbar-log-event",a=Rt({message:t,level:e},r?{type:"message",uuid:r}:{});return null===(o=this.telemetrySpan)||void 0===o||o.addEvent(i,a,Mt(n)),this.capture("log",{message:t},e,r,n,a)}},{key:"captureNetwork",value:function(t,e,r,n){var o,i,a;e=e||"xhr",t.subtype=t.subtype||e,n&&(t.request=n);var s=this.levelFromStatus(t.status_code),u=1e6*(t.end_time_ms||0),l={type:t.subtype,method:t.method,url:t.url,statusCode:t.status_code,"request.headers":JSON.stringify(t.request_headers||{}),"response.headers":JSON.stringify((null===(o=t.response)||void 0===o?void 0:o.headers)||{}),"response.timeUnixNano":u.toString()},c=t.request,f=null===(i=t.response)||void 0===i?void 0:i.body;return c&&(l["request.body"]=JSON.stringify(c)),f&&(l["response.body"]=JSON.stringify(f)),null===(a=this.telemetrySpan)||void 0===a||a.addEvent("rollbar-network-event",l,Mt(t.start_time_ms)),this.capture("network",t,s,r,t.start_time_ms,l)}},{key:"levelFromStatus",value:function(t){return t>=200&&t<400?"info":0===t||t>=400?"error":"info"}},{key:"captureDom",value:function(t,e,r,n,o){var i={subtype:t,element:e};return void 0!==r&&(i.value=r),void 0!==n&&(i.checked=n),this.capture("dom",i,"info",o)}},{key:"captureInput",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.value,a=t.timestamp,s="rollbar-input-event",u={type:s,subtype:r,element:o,value:i},l={type:r,isSynthetic:n,element:o,value:i,endTimeUnixNano:Mt(a)},c=this._getRepeatedEvent(s,l);return c?this._updateRepeatedEvent(c,l,a):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(s,l,Mt(a)),this.capture("dom",u,"info",null,a,l))}},{key:"captureClick",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-click-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o,endTimeUnixNano:Mt(i)},l=this._getRepeatedEvent(a,u);return l?this._updateRepeatedEvent(l,u,i):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,Mt(i)),this.capture("dom",s,"info",null,i,u))}},{key:"_getRepeatedEvent",value:function(t,e){var r=this._lastEvent(this.queue);if(r&&r.body.type===t&&r.otelAttributes.target===e.target)return r}},{key:"_updateRepeatedEvent",value:function(t,e,r){var n=Math.max(r-t.timestamp_ms,1);t.body.value=e.value,t.otelAttributes.value=e.value,t.otelAttributes.height=e.height,t.otelAttributes.width=e.width,t.otelAttributes.textZoomRatio=e.textZoomRatio,t.otelAttributes.endTimeUnixNano=Mt(r),t.otelAttributes.durationUnixNano=Mt(n),t.otelAttributes.count=(t.otelAttributes.count||1)+1,t.otelAttributes.rate=t.otelAttributes.count/(n/1e3)}},{key:"_lastEvent",value:function(t){return t.length>0?t[t.length-1]:null}},{key:"captureFocus",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-focus-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,Mt(i)),this.capture("dom",s,"info",null,i,u)}},{key:"captureResize",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.width,i=t.height,a=t.textZoomRatio,s=t.timestamp,u="rollbar-resize-event",l={type:u,subtype:r,width:o,height:i,textZoomRatio:a},c={type:r,isSynthetic:n,width:o,height:i,textZoomRatio:a},f=this._getRepeatedEvent(u,c);return f?this._updateRepeatedEvent(f,c,s):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(u,c,Mt(s)),this.capture("dom",l,"info",null,s,c))}},{key:"captureDragDrop",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.dropEffect,a=t.effectAllowed,s=t.kinds,u=t.mediaTypes,l=t.timestamp,c="rollbar-dragdrop-event",f={type:c,subtype:r,isSynthetic:n},p={type:r,isSynthetic:n};return"dragstart"===r&&(f=Rt(Rt({},f),{},{element:o,dropEffect:i,effectAllowed:a}),p=Rt(Rt({},p),{},{element:o,dropEffect:i,effectAllowed:a})),"drop"===r&&(f=Rt(Rt({},f),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u}),p=Rt(Rt({},p),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u})),null===(e=this.telemetrySpan)||void 0===e||e.addEvent(c,p,Mt(l)),this.capture("dom",f,"info",null,l,p)}},{key:"captureNavigation",value:function(t,e,r,n){var o;return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-navigation-event",{"previous.url.full":t,"url.full":e},Mt(n)),this.capture("navigation",{from:t,to:e},"info",r,n)}},{key:"captureDomContentLoaded",value:function(t){return this.capture("navigation",{subtype:"DOMContentLoaded"},"info",void 0,t&&t.getTime())}},{key:"captureLoad",value:function(t){return this.capture("navigation",{subtype:"load"},"info",void 0,t&&t.getTime())}},{key:"captureConnectivityChange",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.timestamp,i="rollbar-connectivity-event",a={type:i,subtype:r},s={type:r,isSynthetic:n};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(i,s,Mt(o)),this.capture("connectivity",a,"info",null,o,s)}},{key:"_captureRollbarItem",value:function(t){if(this.options.includeItemsInTelemetry)return t.err?this.captureError(t.err,t.level,t.uuid,t.timestamp):t.message?this.captureLog(t.message,t.level,t.uuid,t.timestamp):t.custom?this.capture("log",t.custom,t.level,t.uuid,t.timestamp):void 0}},{key:"push",value:function(t){this.queue.push(t),this.queue.length>this.maxQueueSize&&this.queue.shift()}}])}();function Dt(t,e){if(e)return e;return{error:"error",manual:"info"}[t]||"info"}const Nt=Ut;function Ft(t,e,r){t._isUncaught&&(t.data._isUncaught=!0),t._originalArgs&&(t.data._originalArgs=t._originalArgs),r(null,t)}function Ht(t,e,r){var n=e.payload||{};n.body&&delete n.body,t.data=T(t.data,n),r(null,t)}function Bt(t,e,r){t.telemetryEvents&&x(t,"data.body.telemetry",t.telemetryEvents),r(null,t)}function Jt(t,e,r){if(t.message){var n="data.body.trace_chain.0",o=E(t,n);if(o||(o=E(t,n="data.body.trace")),o){if(!o.exception||!o.exception.description)return x(t,n+".exception.description",t.message),void r(null,t);x(t,n+".extra",T(E(t,n+".extra")||{},{message:t.message}))}r(null,t)}else r(null,t)}function Wt(t){return function(e,r,n){var o,i=T(e),a=null;try{f(r.transform)&&(a=r.transform(i.data,e))}catch(o){return r.transform=null,t.error("Error while calling custom transform() function. Removing custom transform().",o),void n(null,e)}p(o=a)&&l(o.then,"function")?a.then(function(t){t&&(i.data=t),n(null,i)},function(t){n(t,e)}):n(null,i)}}function Gt(t,e,r){if(!e.sendConfig)return r(null,t);var n=E(t,"data.custom")||{};n._rollbarConfig=e,t.data.custom=n,r(null,t)}function zt(t,e){f(t[e])&&(t[e]=t[e].toString())}function $t(t,e,r){var n=e._configuredOptions;zt(n,"transform"),zt(n,"checkIgnore"),zt(n,"onSendCallback"),delete n.accessToken,t.data.notifier.configured_options=n,r(null,t)}function Qt(t,e,r){var n=T(t.notifier.client.notifier.diagnostic,t.diagnostic);if(E(t,"err._isAnonymous")&&(n.is_anonymous=!0),t._isUncaught&&(n.is_uncaught=t._isUncaught),t.err)try{n.raw_error={message:t.err.message,name:t.err.name,constructor_name:t.err.constructor&&t.err.constructor.name,filename:t.err.fileName,line:t.err.lineNumber,column:t.err.columnNumber,stack:t.err.stack}}catch(t){n.raw_error={failed:String(t)}}t.data.notifier.diagnostic=T(t.data.notifier.diagnostic,n),r(null,t)}const Zt=function(t,e,r){var n,o,i,a,s=l(t,"object"),u=l(t,"array"),c=[];if(r=r||{obj:[],mapped:[]},s){if(a=r.obj.indexOf(t),s&&-1!==a)return r.mapped[a]||r.obj[a];r.obj.push(t),a=r.obj.length-1}if(s)for(n in t)h(t,n)&&c.push(n);else if(u)for(i=0;i=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Kt(t,e){if(t){if("string"==typeof t)return Yt(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Yt(t,e):void 0}}function Yt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2*e?t.slice(0,e).concat(t.slice(r-e)):t}function re(t,e,r){r=void 0===r?30:r;var n,o=t.data.body;if(o.trace_chain){var i,a=Xt(o.trace_chain);try{for(a.s();!(i=a.n()).done;){var s=i.value;n=ee(n=s.frames,r),s.frames=n}}catch(t){a.e(t)}finally{a.f()}}else o.trace&&(n=ee(n=o.trace.frames,r),o.trace.frames=n);return[t,y(t,e)]}function ne(t,e){return e&&e.length>t?e.slice(0,t-3).concat("..."):e}function oe(t,e,r){return e=Zt(e,function e(r,n,o){switch(c(n)){case"string":return ne(t,n);case"object":case"array":return Zt(n,e,o);default:return n}}),[e,y(e,r)]}function ie(t){return t.exception&&(delete t.exception.description,t.exception.message=ne(255,t.exception.message)),t.frames=ee(t.frames,1),t}function ae(t,e){var r=t.data.body;if(r.trace_chain){var n,o=r.trace_chain,i=Xt(o.entries());try{for(i.s();!(n=i.n()).done;){var a=Vt(n.value,2),s=a[0],u=a[1];o[s]=ie(u)}}catch(t){i.e(t)}finally{i.f()}}else r.trace&&(r.trace=ie(r.trace));return[t,y(t,e)]}function se(t,e){return function(t){for(var e=0,r=t.length,n=0;ne}const ue={truncate:function(t,e,r){r=void 0===r?524288:r;for(var n,o,i,a=[te,re,oe.bind(null,1024),oe.bind(null,512),oe.bind(null,256),ae];n=a.shift();)if(t=(o=n(t,e))[0],(i=o[1]).error||!se(i.value,r))return i;return i},raw:te,truncateFrames:re,truncateStrings:oe,maybeTruncateValue:ne};function le(t){return function(t){if(Array.isArray(t))return ce(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return ce(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ce(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ce(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Ie(t,e){if(t){if("string"==typeof t)return Te(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Te(t,e):void 0}}function Te(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r:(\d+):(\d+))?)?\)?$/,ze=/^\s*at .+ \(.+ (at[^)]+\))\)$/,$e=/^\s*(>?) [0-9]+\|(\s*.+)$/m,Qe=new Le({max:100}),Ze={};function Ve(t,e){var r,n,o,i,a;if((r=(n=t).match(ze))&&(n=r[1]),!(r=n.match(Ge)))return e(null,null);var s={source:(o=r.slice(1))[1],line:Math.floor(o[2]),column:Math.floor(o[3])-1};a=this.useSourceMaps?function(t,e){return Be({source:t.source,line:t.line,column:t.column},e)}(s,this.diagnostic):s,i={method:o[0]||"",filename:a.source,lineno:a.line,colno:a.column,runtimePosition:s},o[4]&&(i.compiled_lineno=Math.floor(o[4])),o[5]&&(i.compiled_colno=Math.floor(o[5])),e(null,i)}function Xe(t,e){var r,n,o;r="/"===t[0]||"."===t[0],n=Boolean(Qe.get(t)),o=Boolean(Ze[t]),e(null,r&&!n&&!o)}function Ke(t,e){if(Je(t))return e(null,!0);Re.stat(t,function(t){e(null,!t)})}function Ye(t,e){var r=[];t.forEach(function(t){-1===r.indexOf(t.filename)&&r.push(t.filename)}),Se.filter(r,Xe,function(r,n){if(r)return e(r);var o;function i(t,e){o[t]=e,Qe.set(t,e)}function a(t,e){var r=Je(t);if(r)try{var n=r.split("\n");return i(t,n),e(null)}catch(t){return e(t)}!function(t,e){try{Re.readFile(t,function(t,r){var n;return t?e(t):(n=r.toString("utf8").split("\n"),e(null,n))})}catch(t){K.log(t)}}(t,function(r,n){return r?e(r):(i(t,n),e(null))})}function s(t,e){var r=o[t.filename]||Qe.get(t.filename);r&&function(t,e){t.code=e[t.lineno-1],t.context={pre:e.slice(Math.max(0,t.lineno-4),t.lineno-1),post:e.slice(t.lineno,t.lineno+3)}}(t,r),e(null)}o={},Se.filter(n,Ke,function(r,n){if(r)return e(r);Se.each(n,a,function(r){if(r)return e(r);Se.eachSeries(t,s,function(r){if(r)return e(r);e(null,t)})})})})}function tr(t,e,r,n){var i=function(t){var e,r;if(null==t)return null;if("object"!==We(t))return null;if(o.isArray(t))return t;for(r in e=[],t)Object.prototype.hasOwnProperty.call(t,r)&&e.push(t[r]);return e}(t.errors);return function(t,e,r,n){var o,i=t;for(;"object"===We(i);)i=i&&i.stack;o=(i||"").split("\n").slice(1),e.nodeSourceMaps&&(r.diagnostic.node_source_maps={},r.diagnostic.node_source_maps.source_mapping_urls={});Se.map(o,Ve.bind({useSourceMaps:e.nodeSourceMaps,diagnostic:r.diagnostic}),function(t,e){if(t)return n(t);e.reverse(),Se.filter(e,function(t,e){e(null,Boolean(t))},function(t,e){if(t)return n(t);Ye(e,n)})})}(t.stack,e,r,function(e,o){var a,s,u,l,c;return e?(K.error("could not parse exception, err: "+e),n(e)):(a=String(t.message||""),s=String(t.name||""),u={class:s,message:a,frames:o},i&&i.length&&(l=i[0],u={class:s,message:String(l.message||""),frames:o}),a.match($e)&&(c=function(t){var e,r,n,o,i,a,s,u,l,c,f;for(r=(e=t.split("\n"))[0].indexOf(":"),n=e[0].slice(0,r),o=parseInt(e[0].slice(r+1),10),a=e[(i=e.length)-1],e=e.slice(1,i-1),l=[],c=[],s=0;s"===f[1]?u=f[2]:u?f[2]&&c.push(f[2]):f[2]&&l.push(f[2]));return{frame:{method:"",filename:n,lineno:o,code:u,context:{pre:l=l.slice(0,Math.min(l.length,3)),post:c=c.slice(0,Math.min(c.length,3))}},message:a}}(a),u.message=c.message,u.frames.push(c.frame)),r.localsMap?void r.notifier.locals.mergeLocals(r.localsMap,o,t.stack,function(t){return t&&(K.error("could not parse locals, err: "+t),r.diagnostic["error parsing locals"]=t),n(null,u)}):n(null,u))})}function er(t,e,r){var n,o=e.payload&&e.payload.environment||e.environment,i={timestamp:Math.round(t.timestamp/1e3),environment:t.environment||o,level:t.level||"error",language:"javascript",framework:t.framework||e.framework,uuid:t.uuid,notifier:JSON.parse(JSON.stringify(e.notifier)),custom:t.custom,attributes:null===(n=t.data)||void 0===n?void 0:n.attributes};e.codeVersion?i.code_version=e.codeVersion:e.code_version&&(i.code_version=e.code_version),Object.getOwnPropertyNames(t.custom||{}).forEach(function(e){h(i,e)||(i[e]=t.custom[e])}),i.server={host:e.host,argv:process.argv.concat(),pid:process.pid},e.branch&&(i.server.branch=e.branch),e.root&&(i.server.root=e.root),t.data=i,r(null,t)}function rr(t,e,r){t.stackInfo?function(t,e,r){t.stackInfo&&(t.data=t.data||{},t.data.body=t.data.body||{},t.data.body.trace_chain=t.stackInfo),r(null,t)}(t,0,r):function(t,e,r){t.data=t.data||{},t.data.body=t.data.body||{};var n=t.message||"Item sent with null or missing arguments.";t.data.body.message={body:n},r(null,t)}(t,0,r)}function nr(t,e,r){if(!t.err)return r(null,t);var n=t.err,o=[],i=[];do{o.push(n),n=n.nested||n.cause}while(n);t.stackInfo=i,e.addErrorContext&&function(t,e){var r=t.data.custom||{},n=!1;try{var o,i=a(e);try{for(i.s();!(o=i.n()).done;){var s=o.value;h(s,"rollbarContext")&&(r=T(r,g(s.rollbarContext)),n=!0)}}catch(t){i.e(t)}finally{i.f()}n&&(t.data.custom=r)}catch(e){t.diagnostic.error_context="Failed: "+e.message}}(t,o);Se.eachSeries(o,function(t,e,r){return function(n,o){tr(n,e,r,function(e,r){return e?o(e):(t.push({frames:r.frames,exception:{class:r.class,message:r.message}}),o(null))})}}(i,e,t),function(e){e&&(t.message=t.err.message||t.err.description||t.message||String(t.err),t.diagnostic.buildTraceData=e.message,delete t.stackInfo),r(null,t)})}function or(t,e,r){t.data=t.data||{};var o=t.request;if(o){var i=o.baseUrl||"";if(e.addRequestData&&f(e.addRequestData))return e.addRequestData(t.data,o),void r(null,t);var a,s=function(t){var e,r=t.headers||{},o=r.host||"",i=t.protocol||(t.socket&&t.socket.encrypted?"https":"http"),a=t.baseUrl||"";if(l(t.url,"string")){var s=a&&a.length?a+t.url:t.url;e=n.parse(s,!0)}else e=t.url||{};e.protocol=e.protocol||i,e.host=e.host||o;var u={url:n.format(e),user_ip:ur(t),headers:r,method:t.method};e.search&&e.search.length>0&&(u.GET=e.query);var f=t.body||t.payload;if(f){var p={};if("object"===(m=c(f))||"array"===m){for(var d in f)h(f,d)&&(p[d]=f[d]);u[t.method]=p}else u.body=f}var m;return u}(o);if(function(t,e){if(t&&t.user_ip&&!0!==e){var r=t.user_ip;if(e)try{var n;if(-1!==r.indexOf("."))(n=r.split(".")).pop(),n.push("0"),r=n.join(".");else if(-1!==r.indexOf(":")){if((n=r.split(":")).length>2){var o=n.slice(0,3),i=o[2].indexOf("/");-1!==i&&(o[2]=o[2].substring(0,i)),r=o.concat("0000:0000:0000:0000:0000").join(":")}}else r=null}catch(t){r=null}else r=null;t.user_ip=r}}(s,e.captureIp),t.data.request=s,o.route)a=o.route.path,t.data.context=i&&i.length?i+a:a;else try{a=o.app._router.matchRequest(o).path,t.data.context=i&&i.length?i+a:a}catch(t){}var u=e.captureEmail,p=e.captureUsername;if(o.rollbar_person){var d=o.rollbar_person;!u&&d.email&&(d.email=null),!p&&d.username&&(d.username=null),t.data.person=d}else if(o.user)t.data.person={id:o.user.id},o.user.username&&p&&(t.data.person.username=o.user.username),o.user.email&&u&&(t.data.person.email=o.user.email);else if(o.user_id||o.userId){var m=o.user_id||o.userId;f(m)&&(m=m()),t.data.person={id:m}}r(null,t)}else r(null,t)}function ir(t,e,r){var n=t.lambdaContext;if(n){var o={remainingTimeInMillis:n.getRemainingTimeInMillis(),callbackWaitsForEmptyEventLoop:n.callbackWaitsForEmptyEventLoop,functionName:n.functionName,functionVersion:n.functionVersion,arn:n.invokedFunctionArn,requestId:n.awsRequestId};t.data=t.data||{},t.data.custom=t.data.custom||{},t.data.custom.lambda=o,r(null,t)}else r(null,t)}function ar(t,e,r){var n=e.scrubHeaders||[],o=e.scrubFields||[],i=e.scrubPaths||[];o=n.concat(o),function(t,e){if(!t||!e.scrubRequestBody)return;try{("string"==typeof(r=t.body)||r instanceof String)&&sr(t)&&(t.body=JSON.parse(t.body))}catch(e){t.body=null,t.error="request.body parse failed: "+e.message}var r}(t.data.request,e),t.data=Pe(t.data,o,i),function(t,e){if(!t||!e.scrubRequestBody)return;try{p(t.body)&&sr(t)&&(t.body=JSON.stringify(t.body))}catch(e){t.body=null,t.error="request.body serialization failed: "+e.message}}(t.data.request,e),r(null,t)}function sr(t){return t.headers&&t.headers["content-type"]&&t.headers["content-type"].includes("json")}function ur(t){var e=t.ip;return e||(e=Ee.getClientIp(t)),e}function lr(){this.rateLimitExpires=0}function cr(t,e,r){var n=e&&e.headers||{};if(n["Content-Type"]="application/json",r)try{n["Content-Length"]=Buffer.byteLength(r,"utf8")}catch(t){K.error("Could not get the content length of the data")}return n["X-Rollbar-Access-Token"]=t,n}function fr(t){return{"http:":he,"https:":de}[t.protocol]}function pr(){return Math.floor(Date.now()/1e3)}lr.prototype.get=function(t,e,r,n,o){var i;if(n&&f(n)||(n=function(){}),function(t,e,r){(r=r||{}).access_token=t;var n,o=[];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&o.push([n,r[n]].join("="));var i="?"+o.sort().join("&");(e=e||{}).path=e.path||"";var a,s=e.path.indexOf("?"),u=e.path.indexOf("#");-1!==s&&(-1===u||u>s)?(a=e.path,e.path=a.substring(0,s)+i+"&"+a.substring(s+1)):-1!==u?(a=e.path,e.path=a.substring(0,u)+i+a.substring(u)):e.path=e.path+i}(t,e=e||{},r),e.headers=cr(t,e),!(i=o?o(e):fr(e)))return K.error("Unknown transport based on given protocol: "+e.protocol),n(new Error("Unknown transport"));var a=i.request(e,function(t){this.handleResponse(t,n)}.bind(this));a.on("error",function(t){n(t)}),a.end()},lr.prototype.post=function(t){var e,r=t.accessToken,n=t.options,o=t.payload,a=t.callback,s=t.transportFactory;if(a&&f(a)||(a=function(){}),pr(){"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};t.d(e,{default:()=>jr});const r=require("os"),n=require("url"),o=require("util"),i=require("json-stringify-safe");function a(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return s(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(s||(s=g({})),s.extraArgs=g(p));var k,_={message:i,err:a,custom:s,timestamp:O(),callback:u,notifier:r,diagnostic:{},uuid:(k=O(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(k+16*Math.random())%16|0;return k=Math.floor(k/16),("x"===t?e:7&e|8).toString(16)}))};return _.data=_.data||{},function(t,e){e&&void 0!==e.level&&(t.level=e.level,delete e.level);e&&void 0!==e.skipFrames&&(t.skipFrames=e.skipFrames,delete e.skipFrames)}(_,s),n&&l&&(_.request=l),o&&(_.lambdaContext=o),_._originalArgs=t,_.diagnostic.original_arg_types=d,_}var w=["log","network","dom","navigation","error","manual"],k=["critical","error","warning","info","debug"];function _(t,e){var r,n=a(t);try{for(n.s();!(r=n.n()).done;){if(r.value===e)return!0}}catch(t){n.e(t)}finally{n.f()}return!1}function S(t,e){t.attributes=t.attributes||[];var r,n=a(e);try{for(n.s();!(r=n.n()).done;){var o=r.value;void 0!==o.value&&t.attributes.push(o)}}catch(t){n.e(t)}finally{n.f()}}function E(t,e){if(t){var r=e.split("."),n=t;try{for(var o=0,i=r.length;o255&&(t.context=t.context.substr(0,255))}return{data:t}}function L(t,e,r){var n=e.hostname,o=e.protocol,i=e.port,a=e.path,s=e.search,u=t.timeout,l=function(t){var e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=t.defaultTransport||"xhr";void 0===e.fetch&&(r="xhr");void 0===e.XMLHttpRequest&&(r="fetch");return r}(t),c=t.proxy;if(t.endpoint){var f=r.parse(t.endpoint);n=f.hostname,o=f.protocol,i=f.port,a=f.pathname,s=f.search}return{timeout:u,hostname:n,protocol:o,port:i,path:a,search:s,proxy:c,transport:l}}function q(t,e){var r=t.protocol||"https:",n=t.port||("http:"===r?80:"https:"===r?443:void 0),o=t.hostname,i=t.path,a=t.timeout,s=t.transport;return t.search&&(i+=t.search),t.proxy&&(i=r+"//"+o+i,o=t.proxy.host||t.proxy.hostname,n=t.proxy.port,r=t.proxy.protocol||r),{timeout:a,protocol:r,hostname:o,path:i,port:n,method:e,transport:s}}function C(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function M(t){for(var e=1;e3?(o=h===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&dn||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,h),s=c,u=h;(e=s<2?t:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=t}else if((e=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(e){i=t,s=1,u=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(H(e={},n,function(){return this}),e),f=l.prototype=s.prototype=Object.create(c);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,H(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,H(f,"constructor",l),H(l,"constructor",u),u.displayName="GeneratorFunction",H(l,o,"GeneratorFunction"),H(f),H(f,o,"Generator"),H(f,n,function(){return this}),H(f,"toString",function(){return"[object Generator]"}),(N=function(){return{w:i,m:p}})()}function H(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}H=function(t,e,r,n){function i(e,r){H(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},H(t,e,r,n)}function F(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function B(t,e){for(var r=0;r1&&void 0!==o[1]?o[1]:{},n=q(this.OTLPTransportOptions,"POST"),t.a(2,this._postPromise({accessToken:this.accessToken,options:n,payload:e,headers:r}))},t,this)}),o=function(){var t=this,e=arguments;return new Promise(function(r,o){var i=n.apply(t,e);function a(t){F(i,r,o,a,s,"next",t)}function s(t){F(i,r,o,a,s,"throw",t)}a(void 0)})},function(t){return o.apply(this,arguments)})},{key:"buildJsonPayload",value:function(t,e){var r,n=A(t);return(r=this.truncation?this.truncation.truncate(n):y(n)).error?(e&&e(r.error),null):r.value}},{key:"postJsonPayload",value:function(t,e){var r=q(this.transportOptions,"POST");this.transport.postJsonPayload(this.accessToken,r,t,e)}},{key:"configure",value:function(t){var e=this.options;return this.options=T(e,t),this.transportOptions=$(this.options,this.url),this.OTLPTransportOptions=Q(this.options,this.url),void 0!==this.options.accessToken&&(this.accessToken=this.options.accessToken),this}}],e&&B(t.prototype,e),r&&B(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r,n,o}();function $(t,e){return L(t,W,e)}function Q(t,e){var r;return L(t=M(M({},t),{},{endpoint:null===(r=t.tracing)||void 0===r?void 0:r.endpoint}),G,e)}const Z=z;var V="3.1.0",X="debug";var K=function(){},Y={debug:0,info:1,warn:2,error:3,disable:4},tt={error:function(){for(var t=arguments.length,e=new Array(t),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function nt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rthis.options.maxRetries&&(i=!1))}i?this._retryApiRequest(r,n):n(e)}},{key:"_retryApiRequest",value:function(t,e){var r=this;this.retryQueue.push({item:t,callback:e}),this.retryHandle||(this.retryHandle=setInterval(function(){for(;r.retryQueue.length;){var t=r.retryQueue.shift();r._makeApiRequest(t.item,t.callback)}},this.options.retryInterval))}},{key:"_dequeuePendingRequest",value:function(t){var e=this.pendingRequests.indexOf(t);-1!==e&&(this.pendingRequests.splice(e,1),this._maybeCallWait())}},{key:"_maybeLog",value:function(t,e){if(this.logger&&this.options.verbose){var r=e||E(t,"body.trace.exception.message")||E(t,"body.trace_chain.0.exception.message");if(r)return void this.logger.error(r);(r=E(t,"body.message.body"))&&this.logger.log(r)}}},{key:"_maybeCallWait",value:function(){return!(!f(this.waitCallback)||0!==this.pendingItems.length||0!==this.pendingRequests.length||(this.waitIntervalID&&(this.waitIntervalID=clearInterval(this.waitIntervalID)),this.waitCallback(),0))}}])&&dt(e.prototype,r),n&&dt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();mt=gt,vt=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE","EAI_AGAIN"],(yt=ht(yt="RETRIABLE_ERRORS"))in mt?Object.defineProperty(mt,yt,{value:vt,enumerable:!0,configurable:!0,writable:!0}):mt[yt]=vt;const bt=gt;function wt(t){return wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wt(t)}function kt(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.startTime=Date.now(),this.counter=0,this.perMinCounter=0,this.platform=null,this.platformOptions={},this.configureGlobal(e)}return function(t,e,r){return e&&kt(t.prototype,e),r&&kt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(t,[{key:"configureGlobal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.startTime,n=e.maxItems,o=e.itemsPerMinute;void 0!==r&&(t.globalSettings.startTime=r),void 0!==n&&(t.globalSettings.maxItems=n),void 0!==o&&(t.globalSettings.itemsPerMinute=o)}},{key:"shouldSend",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=r-this.startTime;(n<0||n>=6e4)&&(this.startTime=r,this.perMinCounter=0);var o=t.globalSettings.maxItems,i=t.globalSettings.itemsPerMinute;if(Et(e,o,this.counter))return xt(this.platform,this.platformOptions,"".concat(o," max items reached"),!1);if(Et(e,i,this.perMinCounter))return xt(this.platform,this.platformOptions,"".concat(i," items per minute reached"),!1);this.counter+=1,this.perMinCounter+=1;var a=!Et(e,o,this.counter),s=a,u=a&&!Et(e,i,this.perMinCounter);return xt(this.platform,this.platformOptions,null,u,o,i,s)}},{key:"setPlatformOptions",value:function(t,e){this.platform=t,this.platformOptions=e}}])}();function Et(t,e,r){return!t.ignoreRateLimit&&e>=1&&r>e}function xt(t,e,r,n,o,i,a){var s=null,u=r?new Error(r):null;return u||n||(s=function(t,e,r,n,o){var i=e.environment||e.payload&&e.payload.environment,a=o?"item per minute limit reached, ignoring errors until timeout":"maxItems has been hit, ignoring errors until reset.",s={body:{message:{body:a,extra:{maxItems:r,itemsPerMinute:n}}},language:"javascript",environment:i,notifier:{version:e.notifier&&e.notifier.version||e.version}};"browser"===t?(s.platform="browser",s.framework="browser-js",s.notifier.name="rollbar-browser-js"):"server"===t?(s.framework=e.framework||"node-js",s.notifier.name=e.notifier.name):"react-native"===t&&(s.framework=e.framework||"react-native",s.notifier.name=e.notifier.name);return s}(t,e,o,i,a)),{error:u,shouldSend:n,payload:s}}!function(t,e,r){(e=_t(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}(St,"globalSettings",{startTime:Date.now(),maxItems:void 0,itemsPerMinute:void 0});const Ot=St;function It(t,e,r,n,o,i,a){this.options=T(t),this.logger=r,It.rateLimiter.configureGlobal(this.options),It.rateLimiter.setPlatformOptions(a,this.options),this.api=e,this.queue=new bt(It.rateLimiter,e,r,this.options,i),this.tracing=o;var s=this.options.tracer||null;jt(s)?(this.tracer=s,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier=new ft(this.queue,this.options),this.telemeter=n,Tt(t),this.lastError=null,this.lastErrorHash="none"}function Tt(t){t.stackTraceLimit&&(Error.stackTraceLimit=t.stackTraceLimit)}function jt(t){if(!t)return!1;if(!t.scope||"function"!=typeof t.scope)return!1;var e=t.scope();return!(!e||!e.active||"function"!=typeof e.active)}It.rateLimiter=new Ot({maxItems:0,itemsPerMinute:60}),It.prototype.global=function(t){return It.rateLimiter.configureGlobal(t),this},It.prototype.configure=function(t,e){var r=this.options,n={};e&&(n={payload:e}),this.options=T(r,t,n);var o=this.options.tracer||null;return jt(o)?(this.tracer=o,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier&&this.notifier.configure(this.options),this.telemeter&&this.telemeter.configure(this.options),Tt(t),this.global(this.options),jt(t.tracer)&&(this.tracer=t.tracer),this},It.prototype.log=function(t){var e=this._defaultLogLevel();return this._log(e,t)},It.prototype.debug=function(t){this._log("debug",t)},It.prototype.info=function(t){this._log("info",t)},It.prototype.warn=function(t){this._log("warning",t)},It.prototype.warning=function(t){this._log("warning",t)},It.prototype.error=function(t){this._log("error",t)},It.prototype.critical=function(t){this._log("critical",t)},It.prototype.wait=function(t){this.queue.wait(t)},It.prototype.captureEvent=function(t,e,r){return this.telemeter&&this.telemeter.captureEvent(t,e,r)},It.prototype.captureDomContentLoaded=function(t){return this.telemeter&&this.telemeter.captureDomContentLoaded(t)},It.prototype.captureLoad=function(t){return this.telemeter&&this.telemeter.captureLoad(t)},It.prototype.buildJsonPayload=function(t){return this.api.buildJsonPayload(t)},It.prototype.sendJsonPayload=function(t){this.api.postJsonPayload(t)},It.prototype._log=function(t,e){var r;if(e.callback&&(r=e.callback,delete e.callback),this.options.ignoreDuplicateErrors&&this._sameAsLastError(e)){if(r){var n=new Error("ignored identical item");n.item=e,r(n)}}else try{e.level=e.level||t,this._addItemAttributes(e),this._addTracingInfo(e);var o=this.telemeter;o&&(o._captureRollbarItem(e),e.telemetryEvents=o.copyEvents()||[]),this.notifier.log(e,r)}catch(t){r&&r(t),this.logger.error(t)}},It.prototype._addItemAttributes=function(t){var e,r,n=null===(e=this.tracing)||void 0===e?void 0:e.getSpan(),o=[{key:"session_id",value:R(this)||(null===(r=this.tracing)||void 0===r?void 0:r.sessionId)},{key:"span_id",value:null==n?void 0:n.spanId},{key:"trace_id",value:null==n?void 0:n.traceId}];t._isUncaught&&o.push({key:"is_uncaught",value:"true"}),S(t.data,o),null==n||n.addEvent("rollbar.occurrence",[{key:"rollbar.occurrence.uuid",value:t.uuid}])},It.prototype._defaultLogLevel=function(){return this.options.logLevel||"debug"},It.prototype._sameAsLastError=function(t){if(!t._isUncaught)return!1;var e=function(t){var e=t.message||"",r=(t.err||{}).stack||String(t.err);return e+"::"+r}(t);return this.lastErrorHash===e||(this.lastError=t.err,this.lastErrorHash=e,!1)},It.prototype._addTracingInfo=function(t){if(this.tracer){var e=this.tracer.scope().active();if(function(t){if(!t||!t.context||"function"!=typeof t.context)return!1;var e=t.context();if(!e||!e.toSpanId||!e.toTraceId||"function"!=typeof e.toSpanId||"function"!=typeof e.toTraceId)return!1;return!0}(e)){e.setTag("rollbar.error_uuid",t.uuid),e.setTag("rollbar.has_error",!0),e.setTag("error",!0),e.setTag("rollbar.item_url","https://rollbar.com/item/uuid/?uuid=".concat(t.uuid)),e.setTag("rollbar.occurrence_url","https://rollbar.com/occurrence/uuid/?uuid=".concat(t.uuid));var r=e.context().toSpanId(),n=e.context().toTraceId();t.custom?(t.custom.opentracing_span_id=r,t.custom.opentracing_trace_id=n):t.custom={opentracing_span_id:r,opentracing_trace_id:n}}}};const Pt=It;var Rt=["otelAttributes"];function At(t){return At="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},At(t)}function Lt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function qt(t){for(var e=1;en&&(o=this.queue.length-n),this.maxQueueSize=n,this.queue.splice(0,o)}},{key:"copyEvents",value:function(){var t=Array.prototype.slice.call(this.queue,0);if(f(this.options.filterTelemetry))try{for(var e=t.length;e--;)this.options.filterTelemetry(t[e])&&t.splice(e,1)}catch(t){this.options.filterTelemetry=null}return t=t.filter(function(t){return"connectivity"!==t.type}),t=t.map(function(t){t.otelAttributes;var e=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.telemetrySpan&&(this.telemetrySpan.end(t),this.telemetrySpan=this.tracing.startSpan("rollbar-telemetry",{}))}},{key:"capture",value:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a={level:Ft(t,r),type:t,timestamp_ms:o||O(),body:e,source:"client"};n&&(a.uuid=n),i&&(a.otelAttributes=i);try{if(f(this.options.filterTelemetry)&&this.options.filterTelemetry(a))return!1}catch(t){this.options.filterTelemetry=null}return this.push(a),a}},{key:"captureEvent",value:function(t,e,r,n){return this.capture(t,e,r,n)}},{key:"captureError",value:function(t,e,r,n){var o,i=t.message||String(t),a={message:i};t.stack&&(a.stack=t.stack);var s={message:i,level:e,type:"error",uuid:r};return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-occurrence-event",s,Nt(n)),this.capture("error",a,e,r,n,s)}},{key:"captureLog",value:function(t,e,r,n){var o,i=r?"rollbar-occurrence-event":"rollbar-log-event",a=qt({message:t,level:e},r?{type:"message",uuid:r}:{});return null===(o=this.telemetrySpan)||void 0===o||o.addEvent(i,a,Nt(n)),this.capture("log",{message:t},e,r,n,a)}},{key:"captureNetwork",value:function(t,e,r,n){var o,i,a;e=e||"xhr",t.subtype=t.subtype||e,n&&(t.request=n);var s=this.levelFromStatus(t.status_code),u=1e6*(t.end_time_ms||0),l={type:t.subtype,method:t.method,url:t.url,statusCode:t.status_code,"request.headers":JSON.stringify(t.request_headers||{}),"response.headers":JSON.stringify((null===(o=t.response)||void 0===o?void 0:o.headers)||{}),"response.timeUnixNano":u.toString()},c=t.request,f=null===(i=t.response)||void 0===i?void 0:i.body;return c&&(l["request.body"]=JSON.stringify(c)),f&&(l["response.body"]=JSON.stringify(f)),null===(a=this.telemetrySpan)||void 0===a||a.addEvent("rollbar-network-event",l,Nt(t.start_time_ms)),this.capture("network",t,s,r,t.start_time_ms,l)}},{key:"levelFromStatus",value:function(t){return t>=200&&t<400?"info":0===t||t>=400?"error":"info"}},{key:"captureDom",value:function(t,e,r,n,o){var i={subtype:t,element:e};return void 0!==r&&(i.value=r),void 0!==n&&(i.checked=n),this.capture("dom",i,"info",o)}},{key:"captureInput",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.value,a=t.timestamp,s="rollbar-input-event",u={type:s,subtype:r,element:o,value:i},l={type:r,isSynthetic:n,element:o,value:i,endTimeUnixNano:Nt(a)},c=this._getRepeatedEvent(s,l);return c?this._updateRepeatedEvent(c,l,a):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(s,l,Nt(a)),this.capture("dom",u,"info",null,a,l))}},{key:"captureClick",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-click-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o,endTimeUnixNano:Nt(i)},l=this._getRepeatedEvent(a,u);return l?this._updateRepeatedEvent(l,u,i):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,Nt(i)),this.capture("dom",s,"info",null,i,u))}},{key:"_getRepeatedEvent",value:function(t,e){var r=this._lastEvent(this.queue);if(r&&r.body.type===t&&r.otelAttributes.target===e.target)return r}},{key:"_updateRepeatedEvent",value:function(t,e,r){var n=Math.max(r-t.timestamp_ms,1);t.body.value=e.value,t.otelAttributes.value=e.value,t.otelAttributes.height=e.height,t.otelAttributes.width=e.width,t.otelAttributes.textZoomRatio=e.textZoomRatio,t.otelAttributes.endTimeUnixNano=Nt(r),t.otelAttributes.durationUnixNano=Nt(n),t.otelAttributes.count=(t.otelAttributes.count||1)+1,t.otelAttributes.rate=t.otelAttributes.count/(n/1e3)}},{key:"_lastEvent",value:function(t){return t.length>0?t[t.length-1]:null}},{key:"captureFocus",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-focus-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,Nt(i)),this.capture("dom",s,"info",null,i,u)}},{key:"captureResize",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.width,i=t.height,a=t.textZoomRatio,s=t.timestamp,u="rollbar-resize-event",l={type:u,subtype:r,width:o,height:i,textZoomRatio:a},c={type:r,isSynthetic:n,width:o,height:i,textZoomRatio:a},f=this._getRepeatedEvent(u,c);return f?this._updateRepeatedEvent(f,c,s):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(u,c,Nt(s)),this.capture("dom",l,"info",null,s,c))}},{key:"captureDragDrop",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.dropEffect,a=t.effectAllowed,s=t.kinds,u=t.mediaTypes,l=t.timestamp,c="rollbar-dragdrop-event",f={type:c,subtype:r,isSynthetic:n},p={type:r,isSynthetic:n};return"dragstart"===r&&(f=qt(qt({},f),{},{element:o,dropEffect:i,effectAllowed:a}),p=qt(qt({},p),{},{element:o,dropEffect:i,effectAllowed:a})),"drop"===r&&(f=qt(qt({},f),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u}),p=qt(qt({},p),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u})),null===(e=this.telemetrySpan)||void 0===e||e.addEvent(c,p,Nt(l)),this.capture("dom",f,"info",null,l,p)}},{key:"captureNavigation",value:function(t,e,r,n){var o;return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-navigation-event",{"previous.url.full":t,"url.full":e},Nt(n)),this.capture("navigation",{from:t,to:e},"info",r,n)}},{key:"captureDomContentLoaded",value:function(t){return this.capture("navigation",{subtype:"DOMContentLoaded"},"info",void 0,t&&t.getTime())}},{key:"captureLoad",value:function(t){return this.capture("navigation",{subtype:"load"},"info",void 0,t&&t.getTime())}},{key:"captureConnectivityChange",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.timestamp,i="rollbar-connectivity-event",a={type:i,subtype:r},s={type:r,isSynthetic:n};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(i,s,Nt(o)),this.capture("connectivity",a,"info",null,o,s)}},{key:"_captureRollbarItem",value:function(t){if(this.options.includeItemsInTelemetry)return t.err?this.captureError(t.err,t.level,t.uuid,t.timestamp):t.message?this.captureLog(t.message,t.level,t.uuid,t.timestamp):t.custom?this.capture("log",t.custom,t.level,t.uuid,t.timestamp):void 0}},{key:"push",value:function(t){this.queue.push(t),this.queue.length>this.maxQueueSize&&this.queue.shift()}}])}();function Ft(t,e){if(e)return e;return{error:"error",manual:"info"}[t]||"info"}const Bt=Ht;function Jt(t,e,r){t._isUncaught&&(t.data._isUncaught=!0),t._originalArgs&&(t.data._originalArgs=t._originalArgs),r(null,t)}function Wt(t,e,r){var n=e.payload||{};n.body&&delete n.body,t.data=T(t.data,n),r(null,t)}function Gt(t,e,r){t.telemetryEvents&&x(t,"data.body.telemetry",t.telemetryEvents),r(null,t)}function zt(t,e,r){if(t.message){var n="data.body.trace_chain.0",o=E(t,n);if(o||(o=E(t,n="data.body.trace")),o){if(!o.exception||!o.exception.description)return x(t,n+".exception.description",t.message),void r(null,t);x(t,n+".extra",T(E(t,n+".extra")||{},{message:t.message}))}r(null,t)}else r(null,t)}function $t(t){return function(e,r,n){var o,i=T(e),a=null;try{f(r.transform)&&(a=r.transform(i.data,e))}catch(o){return r.transform=null,t.error("Error while calling custom transform() function. Removing custom transform().",o),void n(null,e)}p(o=a)&&l(o.then,"function")?a.then(function(t){t&&(i.data=t),n(null,i)},function(t){n(t,e)}):n(null,i)}}function Qt(t,e,r){if(!e.sendConfig)return r(null,t);var n=E(t,"data.custom")||{};n._rollbarConfig=e,t.data.custom=n,r(null,t)}function Zt(t,e){f(t[e])&&(t[e]=t[e].toString())}function Vt(t,e,r){var n=e._configuredOptions;Zt(n,"transform"),Zt(n,"checkIgnore"),Zt(n,"onSendCallback"),delete n.accessToken,t.data.notifier.configured_options=n,r(null,t)}function Xt(t,e,r){var n=T(t.notifier.client.notifier.diagnostic,t.diagnostic);if(E(t,"err._isAnonymous")&&(n.is_anonymous=!0),t._isUncaught&&(n.is_uncaught=t._isUncaught),t.err)try{n.raw_error={message:t.err.message,name:t.err.name,constructor_name:t.err.constructor&&t.err.constructor.name,filename:t.err.fileName,line:t.err.lineNumber,column:t.err.columnNumber,stack:t.err.stack}}catch(t){n.raw_error={failed:String(t)}}t.data.notifier.diagnostic=T(t.data.notifier.diagnostic,n),r(null,t)}const Kt=function(t,e,r){var n,o,i,a,s=l(t,"object"),u=l(t,"array"),c=[];if(r=r||{obj:[],mapped:[]},s){if(a=r.obj.indexOf(t),s&&-1!==a)return r.mapped[a]||r.obj[a];r.obj.push(t),a=r.obj.length-1}if(s)for(n in t)d(t,n)&&c.push(n);else if(u)for(i=0;i=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ee(t,e){if(t){if("string"==typeof t)return re(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?re(t,e):void 0}}function re(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2*e?t.slice(0,e).concat(t.slice(r-e)):t}function ie(t,e,r){r=void 0===r?30:r;var n,o=t.data.body;if(o.trace_chain){var i,a=te(o.trace_chain);try{for(a.s();!(i=a.n()).done;){var s=i.value;n=oe(n=s.frames,r),s.frames=n}}catch(t){a.e(t)}finally{a.f()}}else o.trace&&(n=oe(n=o.trace.frames,r),o.trace.frames=n);return[t,y(t,e)]}function ae(t,e){return e&&e.length>t?e.slice(0,t-3).concat("..."):e}function se(t,e,r){return e=Kt(e,function e(r,n,o){switch(c(n)){case"string":return ae(t,n);case"object":case"array":return Kt(n,e,o);default:return n}}),[e,y(e,r)]}function ue(t){return t.exception&&(delete t.exception.description,t.exception.message=ae(255,t.exception.message)),t.frames=oe(t.frames,1),t}function le(t,e){var r=t.data.body;if(r.trace_chain){var n,o=r.trace_chain,i=te(o.entries());try{for(i.s();!(n=i.n()).done;){var a=Yt(n.value,2),s=a[0],u=a[1];o[s]=ue(u)}}catch(t){i.e(t)}finally{i.f()}}else r.trace&&(r.trace=ue(r.trace));return[t,y(t,e)]}function ce(t,e){return function(t){for(var e=0,r=t.length,n=0;ne}const fe={truncate:function(t,e,r){r=void 0===r?524288:r;for(var n,o,i,a=[ne,ie,se.bind(null,1024),se.bind(null,512),se.bind(null,256),le];n=a.shift();)if(t=(o=n(t,e))[0],(i=o[1]).error||!ce(i.value,r))return i;return i},raw:ne,truncateFrames:ie,truncateStrings:se,maybeTruncateValue:ae};function pe(t){return function(t){if(Array.isArray(t))return de(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return de(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?de(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function de(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ge(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&(r[t[0]]=t[1])}),r}return l(t,"object")?t:null}function je(t,e){for(var r;t[e].length;)(r=t[e].shift())[0][r[1]]=r[2]}xe.prototype.configure=function(t){this.options=T(this.options,t);var e=t.autoInstrument,r=T(this.autoInstrument);!1===t.enabled||!1===e?this.autoInstrument={}:(l(e,"object")||(e=Ee),this.autoInstrument=T(Ee,e)),this.instrument(r)},xe.prototype.instrument=function(t){!this.autoInstrument.network||t&&t.network?!this.autoInstrument.network&&t&&t.network&&this.deinstrumentNetwork():this.instrumentNetwork(),!this.autoInstrument.log||t&&t.log?!this.autoInstrument.log&&t&&t.log&&this.deinstrumentConsole():this.instrumentConsole()},xe.prototype.deinstrumentNetwork=function(){je(this.replacements,"network")},xe.prototype.instrumentNetwork=function(){_e(we,"request",Oe.bind(this),this.replacements,"network"),_e(ke,"request",Oe.bind(this),this.replacements,"network"),"function"==typeof globalThis.fetch&&_e(globalThis,"fetch",Ie.bind(this),this.replacements,"network")},xe.prototype.captureNetwork=function(t,e,r){return this.telemeter.captureNetwork(t,e,r)},xe.prototype.deinstrumentConsole=function(){je(this.replacements,"log")},xe.prototype.instrumentConsole=function(){var t=this.telemeter,e=process.stdout;_e(e,"write",function(r){return function(n){return t.captureLog(n,"info"),r.apply(e,arguments)}},this.replacements,"log");var r=process.stderr;_e(r,"write",function(e){return function(n){return t.captureLog(n,"error"),e.apply(r,arguments)}},this.replacements,"log")};const Pe=xe,Re=require("async"),Ae=require("request-ip");function Le(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||Ce(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qe(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Ce(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Ce(t,e){if(t){if("string"==typeof t)return Me(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Me(t,e):void 0}}function Me(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r:(\d+):(\d+))?)?\)?$/,tr=/^\s*at .+ \(.+ (at[^)]+\))\)$/,er=/^\s*(>?) [0-9]+\|(\s*.+)$/m,rr=new He({max:100}),nr={};function or(t,e){var r,n,o,i,a;if((r=(n=t).match(tr))&&(n=r[1]),!(r=n.match(Ye)))return e(null,null);var s={source:(o=r.slice(1))[1],line:Math.floor(o[2]),column:Math.floor(o[3])-1};a=this.useSourceMaps?function(t,e){return Ve({source:t.source,line:t.line,column:t.column},e)}(s,this.diagnostic):s,i={method:o[0]||"",filename:a.source,lineno:a.line,colno:a.column,runtimePosition:s},o[4]&&(i.compiled_lineno=Math.floor(o[4])),o[5]&&(i.compiled_colno=Math.floor(o[5])),e(null,i)}function ir(t,e){var r,n,o;r="/"===t[0]||"."===t[0],n=Boolean(rr.get(t)),o=Boolean(nr[t]),e(null,r&&!n&&!o)}function ar(t,e){if(Xe(t))return e(null,!0);Ne.stat(t,function(t){e(null,!t)})}function sr(t,e){var r=[];t.forEach(function(t){-1===r.indexOf(t.filename)&&r.push(t.filename)}),Re.filter(r,ir,function(r,n){if(r)return e(r);var o;function i(t,e){o[t]=e,rr.set(t,e)}function a(t,e){var r=Xe(t);if(r)try{var n=r.split("\n");return i(t,n),e(null)}catch(t){return e(t)}!function(t,e){try{Ne.readFile(t,function(t,r){var n;return t?e(t):(n=r.toString("utf8").split("\n"),e(null,n))})}catch(t){et.log(t)}}(t,function(r,n){return r?e(r):(i(t,n),e(null))})}function s(t,e){var r=o[t.filename]||rr.get(t.filename);r&&function(t,e){t.code=e[t.lineno-1],t.context={pre:e.slice(Math.max(0,t.lineno-4),t.lineno-1),post:e.slice(t.lineno,t.lineno+3)}}(t,r),e(null)}o={},Re.filter(n,ar,function(r,n){if(r)return e(r);Re.each(n,a,function(r){if(r)return e(r);Re.eachSeries(t,s,function(r){if(r)return e(r);e(null,t)})})})})}function ur(t,e,r,n){var i=function(t){var e,r;if(null==t)return null;if("object"!==Ke(t))return null;if(o.isArray(t))return t;for(r in e=[],t)Object.prototype.hasOwnProperty.call(t,r)&&e.push(t[r]);return e}(t.errors);return function(t,e,r,n){var o,i=t;for(;"object"===Ke(i);)i=i&&i.stack;o=(i||"").split("\n").slice(1),e.nodeSourceMaps&&(r.diagnostic.node_source_maps={},r.diagnostic.node_source_maps.source_mapping_urls={});Re.map(o,or.bind({useSourceMaps:e.nodeSourceMaps,diagnostic:r.diagnostic}),function(t,e){if(t)return n(t);e.reverse(),Re.filter(e,function(t,e){e(null,Boolean(t))},function(t,e){if(t)return n(t);sr(e,n)})})}(t.stack,e,r,function(e,o){var a,s,u,l,c;return e?(et.error("could not parse exception, err: "+e),n(e)):(a=String(t.message||""),s=String(t.name||""),u={class:s,message:a,frames:o},i&&i.length&&(l=i[0],u={class:s,message:String(l.message||""),frames:o}),a.match(er)&&(c=function(t){var e,r,n,o,i,a,s,u,l,c,f;for(r=(e=t.split("\n"))[0].indexOf(":"),n=e[0].slice(0,r),o=parseInt(e[0].slice(r+1),10),a=e[(i=e.length)-1],e=e.slice(1,i-1),l=[],c=[],s=0;s"===f[1]?u=f[2]:u?f[2]&&c.push(f[2]):f[2]&&l.push(f[2]));return{frame:{method:"",filename:n,lineno:o,code:u,context:{pre:l=l.slice(0,Math.min(l.length,3)),post:c=c.slice(0,Math.min(c.length,3))}},message:a}}(a),u.message=c.message,u.frames.push(c.frame)),r.localsMap?void r.notifier.locals.mergeLocals(r.localsMap,o,t.stack,function(t){return t&&(et.error("could not parse locals, err: "+t),r.diagnostic["error parsing locals"]=t),n(null,u)}):n(null,u))})}function lr(t,e,r){var n,o=e.payload&&e.payload.environment||e.environment,i={timestamp:Math.round(t.timestamp/1e3),environment:t.environment||o,level:t.level||"error",language:"javascript",framework:t.framework||e.framework,uuid:t.uuid,notifier:JSON.parse(JSON.stringify(e.notifier)),custom:t.custom,attributes:null===(n=t.data)||void 0===n?void 0:n.attributes};e.codeVersion?i.code_version=e.codeVersion:e.code_version&&(i.code_version=e.code_version),Object.getOwnPropertyNames(t.custom||{}).forEach(function(e){d(i,e)||(i[e]=t.custom[e])}),i.server={host:e.host,argv:process.argv.concat(),pid:process.pid},e.branch&&(i.server.branch=e.branch),e.root&&(i.server.root=e.root),t.data=i,r(null,t)}function cr(t,e,r){t.stackInfo?function(t,e,r){t.stackInfo&&(t.data=t.data||{},t.data.body=t.data.body||{},t.data.body.trace_chain=t.stackInfo),r(null,t)}(t,0,r):function(t,e,r){t.data=t.data||{},t.data.body=t.data.body||{};var n=t.message||"Item sent with null or missing arguments.";t.data.body.message={body:n},r(null,t)}(t,0,r)}function fr(t,e,r){if(!t.err)return r(null,t);var n=t.err,o=[],i=[];do{o.push(n),n=n.nested||n.cause}while(n);t.stackInfo=i,e.addErrorContext&&function(t,e){var r=t.data.custom||{},n=!1;try{var o,i=a(e);try{for(i.s();!(o=i.n()).done;){var s=o.value;d(s,"rollbarContext")&&(r=T(r,g(s.rollbarContext)),n=!0)}}catch(t){i.e(t)}finally{i.f()}n&&(t.data.custom=r)}catch(e){t.diagnostic.error_context="Failed: "+e.message}}(t,o);Re.eachSeries(o,function(t,e,r){return function(n,o){ur(n,e,r,function(e,r){return e?o(e):(t.push({frames:r.frames,exception:{class:r.class,message:r.message}}),o(null))})}}(i,e,t),function(e){e&&(t.message=t.err.message||t.err.description||t.message||String(t.err),t.diagnostic.buildTraceData=e.message,delete t.stackInfo),r(null,t)})}function pr(t,e,r){t.data=t.data||{};var o=t.request;if(o){var i=o.baseUrl||"";if(e.addRequestData&&f(e.addRequestData))return e.addRequestData(t.data,o),void r(null,t);var a,s=function(t){var e,r=t.headers||{},o=r.host||"",i=t.protocol||(t.socket&&t.socket.encrypted?"https":"http"),a=t.baseUrl||"";if(l(t.url,"string")){var s=a&&a.length?a+t.url:t.url;e=n.parse(s,!0)}else e=t.url||{};e.protocol=e.protocol||i,e.host=e.host||o;var u={url:n.format(e),user_ip:yr(t),headers:r,method:t.method};e.search&&e.search.length>0&&(u.GET=e.query);var f=t.body||t.payload;if(f){var p={};if("object"===(m=c(f))||"array"===m){for(var h in f)d(f,h)&&(p[h]=f[h]);u[t.method]=p}else u.body=f}var m;return u}(o);if(function(t,e){if(t&&t.user_ip&&!0!==e){var r=t.user_ip;if(e)try{var n;if(-1!==r.indexOf("."))(n=r.split(".")).pop(),n.push("0"),r=n.join(".");else if(-1!==r.indexOf(":")){if((n=r.split(":")).length>2){var o=n.slice(0,3),i=o[2].indexOf("/");-1!==i&&(o[2]=o[2].substring(0,i)),r=o.concat("0000:0000:0000:0000:0000").join(":")}}else r=null}catch(t){r=null}else r=null;t.user_ip=r}}(s,e.captureIp),t.data.request=s,o.route)a=o.route.path,t.data.context=i&&i.length?i+a:a;else try{a=o.app._router.matchRequest(o).path,t.data.context=i&&i.length?i+a:a}catch(t){}var u=e.captureEmail,p=e.captureUsername;if(o.rollbar_person){var h=o.rollbar_person;!u&&h.email&&(h.email=null),!p&&h.username&&(h.username=null),t.data.person=h}else if(o.user)t.data.person={id:o.user.id},o.user.username&&p&&(t.data.person.username=o.user.username),o.user.email&&u&&(t.data.person.email=o.user.email);else if(o.user_id||o.userId){var m=o.user_id||o.userId;f(m)&&(m=m()),t.data.person={id:m}}r(null,t)}else r(null,t)}function dr(t,e,r){var n=t.lambdaContext;if(n){var o={remainingTimeInMillis:n.getRemainingTimeInMillis(),callbackWaitsForEmptyEventLoop:n.callbackWaitsForEmptyEventLoop,functionName:n.functionName,functionVersion:n.functionVersion,arn:n.invokedFunctionArn,requestId:n.awsRequestId};t.data=t.data||{},t.data.custom=t.data.custom||{},t.data.custom.lambda=o,r(null,t)}else r(null,t)}function hr(t,e,r){var n=e.scrubHeaders||[],o=e.scrubFields||[],i=e.scrubPaths||[];o=n.concat(o),function(t,e){if(!t||!e.scrubRequestBody)return;try{("string"==typeof(r=t.body)||r instanceof String)&&mr(t)&&(t.body=JSON.parse(t.body))}catch(e){t.body=null,t.error="request.body parse failed: "+e.message}var r}(t.data.request,e),t.data=De(t.data,o,i),function(t,e){if(!t||!e.scrubRequestBody)return;try{p(t.body)&&mr(t)&&(t.body=JSON.stringify(t.body))}catch(e){t.body=null,t.error="request.body serialization failed: "+e.message}}(t.data.request,e),r(null,t)}function mr(t){return t.headers&&t.headers["content-type"]&&t.headers["content-type"].includes("json")}function yr(t){var e=t.ip;return e||(e=Ae.getClientIp(t)),e}function vr(){this.rateLimitExpires=0}function gr(t,e,r){var n=e&&e.headers||{};if(n["Content-Type"]="application/json",r)try{n["Content-Length"]=Buffer.byteLength(r,"utf8")}catch(t){et.error("Could not get the content length of the data")}return n["X-Rollbar-Access-Token"]=t,n}function br(t){return{"http:":we,"https:":ke}[t.protocol]}function wr(){return Math.floor(Date.now()/1e3)}vr.prototype.get=function(t,e,r,n,o){var i;if(n&&f(n)||(n=function(){}),function(t,e,r){(r=r||{}).access_token=t;var n,o=[];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&o.push([n,r[n]].join("="));var i="?"+o.sort().join("&");(e=e||{}).path=e.path||"";var a,s=e.path.indexOf("?"),u=e.path.indexOf("#");-1!==s&&(-1===u||u>s)?(a=e.path,e.path=a.substring(0,s)+i+"&"+a.substring(s+1)):-1!==u?(a=e.path,e.path=a.substring(0,u)+i+a.substring(u)):e.path=e.path+i}(t,e=e||{},r),e.headers=gr(t,e),!(i=o?o(e):br(e)))return et.error("Unknown transport based on given protocol: "+e.protocol),n(new Error("Unknown transport"));var a=i.request(e,function(t){this.handleResponse(t,n)}.bind(this));a.on("error",function(t){n(t)}),a.end()},vr.prototype.post=function(t){var e,r=t.accessToken,n=t.options,o=t.payload,a=t.callback,s=t.transportFactory;if(a&&f(a)||(a=function(){}),wr()=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(u||(u=k({})),u.extraArgs=k(p));var g,S={message:i,err:s,custom:u,timestamp:T(),callback:l,notifier:r,diagnostic:{},uuid:(g=T(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(g+16*Math.random())%16|0;return g=Math.floor(g/16),("x"===t?e:7&e|8).toString(16)}))};return S.data=S.data||{},function(t,e){e&&void 0!==e.level&&(t.level=e.level,delete e.level);e&&void 0!==e.skipFrames&&(t.skipFrames=e.skipFrames,delete e.skipFrames)}(S,u),n&&c&&(S.request=c),o&&(S.lambdaContext=o),S._originalArgs=t,S.diagnostic.original_arg_types=d,S}var _=["log","network","dom","navigation","error","manual"],O=["critical","error","warning","info","debug"];function x(t,e){var n,o=r(t);try{for(o.s();!(n=o.n()).done;){if(n.value===e)return!0}}catch(t){o.e(t)}finally{o.f()}return!1}function E(t,e){t.attributes=t.attributes||[];var n,o=r(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;void 0!==i.value&&t.attributes.push(i)}}catch(t){o.e(t)}finally{o.f()}}function j(t,e){if(t){var r=e.split("."),n=t;try{for(var o=0,i=r.length;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function q(t,e){if(t){if("string"==typeof t)return N(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?N(t,e):void 0}}function N(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rn&&(o=this.queue.length-n),this.maxQueueSize=n,this.queue.splice(0,o)}},{key:"copyEvents",value:function(){var t=Array.prototype.slice.call(this.queue,0);if(s(this.options.filterTelemetry))try{for(var e=t.length;e--;)this.options.filterTelemetry(t[e])&&t.splice(e,1)}catch(t){this.options.filterTelemetry=null}return t=(t=t.filter(function(t){return"connectivity"!==t.type})).map(function(t){t.otelAttributes;var e=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.telemetrySpan&&(this.telemetrySpan.end(t),this.telemetrySpan=this.tracing.startSpan("rollbar-telemetry",{}))}},{key:"capture",value:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a={level:X(t,r),type:t,timestamp_ms:o||T(),body:e,source:"client"};n&&(a.uuid=n),i&&(a.otelAttributes=i);try{if(s(this.options.filterTelemetry)&&this.options.filterTelemetry(a))return!1}catch(t){this.options.filterTelemetry=null}return this.push(a),a}},{key:"captureEvent",value:function(t,e,r,n){return this.capture(t,e,r,n)}},{key:"captureError",value:function(t,e,r,n){var o,i=t.message||String(t),a={message:i};t.stack&&(a.stack=t.stack);var s={message:i,level:e,type:"error",uuid:r};return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-occurrence-event",s,G(n)),this.capture("error",a,e,r,n,s)}},{key:"captureLog",value:function(t,e,r,n){var o,i=r?"rollbar-occurrence-event":"rollbar-log-event",a=J({message:t,level:e},r?{type:"message",uuid:r}:{});return null===(o=this.telemetrySpan)||void 0===o||o.addEvent(i,a,G(n)),this.capture("log",{message:t},e,r,n,a)}},{key:"captureNetwork",value:function(t,e,r,n){var o,i,a;e=e||"xhr",t.subtype=t.subtype||e,n&&(t.request=n);var s=this.levelFromStatus(t.status_code),u=1e6*(t.end_time_ms||0),l={type:t.subtype,method:t.method,url:t.url,statusCode:t.status_code,"request.headers":JSON.stringify(t.request_headers||{}),"response.headers":JSON.stringify((null===(o=t.response)||void 0===o?void 0:o.headers)||{}),"response.timeUnixNano":u.toString()},c=t.request,f=null===(i=t.response)||void 0===i?void 0:i.body;return c&&(l["request.body"]=JSON.stringify(c)),f&&(l["response.body"]=JSON.stringify(f)),null===(a=this.telemetrySpan)||void 0===a||a.addEvent("rollbar-network-event",l,G(t.start_time_ms)),this.capture("network",t,s,r,t.start_time_ms,l)}},{key:"levelFromStatus",value:function(t){return t>=200&&t<400?"info":0===t||t>=400?"error":"info"}},{key:"captureDom",value:function(t,e,r,n,o){var i={subtype:t,element:e};return void 0!==r&&(i.value=r),void 0!==n&&(i.checked=n),this.capture("dom",i,"info",o)}},{key:"captureInput",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.value,a=t.timestamp,s="rollbar-input-event",u={type:s,subtype:r,element:o,value:i},l={type:r,isSynthetic:n,element:o,value:i,endTimeUnixNano:G(a)},c=this._getRepeatedEvent(s,l);return c?this._updateRepeatedEvent(c,l,a):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(s,l,G(a)),this.capture("dom",u,"info",null,a,l))}},{key:"captureClick",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-click-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o,endTimeUnixNano:G(i)},l=this._getRepeatedEvent(a,u);return l?this._updateRepeatedEvent(l,u,i):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,G(i)),this.capture("dom",s,"info",null,i,u))}},{key:"_getRepeatedEvent",value:function(t,e){var r=this._lastEvent(this.queue);if(r&&r.body.type===t&&r.otelAttributes.target===e.target)return r}},{key:"_updateRepeatedEvent",value:function(t,e,r){var n=Math.max(r-t.timestamp_ms,1);t.body.value=e.value,t.otelAttributes.value=e.value,t.otelAttributes.height=e.height,t.otelAttributes.width=e.width,t.otelAttributes.textZoomRatio=e.textZoomRatio,t.otelAttributes.endTimeUnixNano=G(r),t.otelAttributes.durationUnixNano=G(n),t.otelAttributes.count=(t.otelAttributes.count||1)+1,t.otelAttributes.rate=t.otelAttributes.count/(n/1e3)}},{key:"_lastEvent",value:function(t){return t.length>0?t[t.length-1]:null}},{key:"captureFocus",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-focus-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,G(i)),this.capture("dom",s,"info",null,i,u)}},{key:"captureResize",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.width,i=t.height,a=t.textZoomRatio,s=t.timestamp,u="rollbar-resize-event",l={type:u,subtype:r,width:o,height:i,textZoomRatio:a},c={type:r,isSynthetic:n,width:o,height:i,textZoomRatio:a},f=this._getRepeatedEvent(u,c);return f?this._updateRepeatedEvent(f,c,s):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(u,c,G(s)),this.capture("dom",l,"info",null,s,c))}},{key:"captureDragDrop",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.dropEffect,a=t.effectAllowed,s=t.kinds,u=t.mediaTypes,l=t.timestamp,c="rollbar-dragdrop-event",f={type:c,subtype:r,isSynthetic:n},p={type:r,isSynthetic:n};return"dragstart"===r&&(f=J(J({},f),{},{element:o,dropEffect:i,effectAllowed:a}),p=J(J({},p),{},{element:o,dropEffect:i,effectAllowed:a})),"drop"===r&&(f=J(J({},f),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u}),p=J(J({},p),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u})),null===(e=this.telemetrySpan)||void 0===e||e.addEvent(c,p,G(l)),this.capture("dom",f,"info",null,l,p)}},{key:"captureNavigation",value:function(t,e,r,n){var o;return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-navigation-event",{"previous.url.full":t,"url.full":e},G(n)),this.capture("navigation",{from:t,to:e},"info",r,n)}},{key:"captureDomContentLoaded",value:function(t){return this.capture("navigation",{subtype:"DOMContentLoaded"},"info",void 0,t&&t.getTime())}},{key:"captureLoad",value:function(t){return this.capture("navigation",{subtype:"load"},"info",void 0,t&&t.getTime())}},{key:"captureConnectivityChange",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.timestamp,i="rollbar-connectivity-event",a={type:i,subtype:r},s={type:r,isSynthetic:n};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(i,s,G(o)),this.capture("connectivity",a,"info",null,o,s)}},{key:"_captureRollbarItem",value:function(t){if(this.options.includeItemsInTelemetry)return t.err?this.captureError(t.err,t.level,t.uuid,t.timestamp):t.message?this.captureLog(t.message,t.level,t.uuid,t.timestamp):t.custom?this.capture("log",t.custom,t.level,t.uuid,t.timestamp):void 0}},{key:"push",value:function(t){this.queue.push(t),this.queue.length>this.maxQueueSize&&this.queue.shift()}}],e&&B(t.prototype,e),r&&B(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function X(t,e){if(e)return e;return{error:"error",manual:"info"}[t]||"info"}var Z=z;function Q(t){return Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Q(t)}function K(t,e){for(var r=0;r3?o-3:0),a=3;a0&&void 0!==arguments[0]&&arguments[0]?st(at(performance.timeOrigin),at(performance.now())):at(Date.now())},isHrTime:function(t){return Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]}};function lt(t){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lt(t)}function ct(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||pt(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ft(t){return function(t){if(Array.isArray(t))return dt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||pt(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pt(t,e){if(t){if("string"==typeof t)return dt(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dt(t,e):void 0}}function dt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.api=e,this.options=r},e=[{key:"export",value:function(t,e){mt.push.apply(mt,ft(t))}},{key:"toPayload",value:function(){var t=this,e=mt.slice();if(mt.length=0,!e||!e.length)return{resourceSpans:[]};var r,n=e[0]&&e[0].resource||{},o=new Map,i=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=pt(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e);try{for(i.s();!(r=i.n()).done;){var a=r.value,s=a.instrumentationScope?"".concat(a.instrumentationScope.name,":").concat(a.instrumentationScope.version):"default:1.0.0";o.has(s)||o.set(s,{scope:a.instrumentationScope||{name:"default",version:"1.0.0",attributes:[]},spans:[]}),o.get(s).spans.push(this._transformSpan(a))}}catch(t){i.e(t)}finally{i.f()}return{resourceSpans:[{resource:this._transformResource(n),scopeSpans:Array.from(o.values()).map(function(e){return{scope:t._transformInstrumentationScope(e.scope),spans:e.spans}})}]}}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.api.postSpans(t,e)}},{key:"_transformSpan",value:function(t){var e,r=this,n=function(t){return Object.entries(t||{}).map(function(t){var e=ct(t,2),n=e[0],o=e[1];return{key:n,value:r._transformAnyValue(o)}})};return{traceId:t.spanContext.traceId,spanId:t.spanContext.spanId,parentSpanId:t.parentSpanId||"",name:t.name,kind:t.kind||1,startTimeUnixNano:ut.toNanos(t.startTime),endTimeUnixNano:ut.toNanos(t.endTime),attributes:n(t.attributes),events:(e=t.events,(e||[]).map(function(t){return{timeUnixNano:ut.toNanos(t.time),name:t.name,attributes:n(t.attributes)}}))}}},{key:"_transformResource",value:function(t){var e=this,r=t.attributes||{};return{attributes:Object.entries(r).map(function(t){var r=ct(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}},{key:"_transformInstrumentationScope",value:function(t){var e=this;return{name:t.name||"",version:t.version||"",attributes:(t.attributes||[]).map(function(t){return{key:t.key,value:e._transformAnyValue(t.value)}})}}},{key:"_transformAnyValue",value:function(t){var e=this;if(null==t)return{stringValue:""};var r=lt(t);return"string"===r?{stringValue:t}:"number"===r?Number.isInteger(t)?{intValue:t.toString()}:{doubleValue:t}:"boolean"===r?{boolValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(function(t){return e._transformAnyValue(t)})}}:"object"===r?{kvlistValue:{values:Object.entries(t).map(function(t){var r=ct(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}:{stringValue:String(t)}}}],e&&ht(t.prototype,e),r&&ht(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),mt=[];var bt={gen:function(){var t=new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:16);return crypto.getRandomValues(t),Array.from(t,function(t){return t.toString(16).padStart(2,"0")}).join("")}};function gt(t){return gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gt(t)}function wt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function kt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.session||(this.getSession()||this.createSession(),this.initSessionAttributes(t)),this}},{key:"getSession",value:function(){try{var t=this.window.sessionStorage.getItem(xt);if(!t)return null;this.session=JSON.parse(t)}catch(t){return null}return this}},{key:"createSession",value:function(){return this.session={id:bt.gen(),createdAt:Date.now()},this.setSession(this.session)}},{key:"setSession",value:function(t){var e=JSON.stringify(t);try{this.window.sessionStorage.setItem(xt,e)}catch(t){return null}return this}},{key:"attributes",get:function(){return this._attributes}},{key:"setAttributes",value:function(t){return this._attributes=kt(kt({},this._attributes),t),this}},{key:"setUser",value:function(t){return this.setAttributes({"user.id":null==t?void 0:t.id,"user.email":null==t?void 0:t.email,"user.name":(null==t?void 0:t.name)||(null==t?void 0:t.username)}),this}},{key:"initSessionAttributes",value:function(t){var e,r,n;return this.setAttributes(kt({"session.id":this.session.id,"browser.brands":null===(e=navigator.userAgentData)||void 0===e?void 0:e.brands,"browser.language":navigator.language,"browser.mobile":null===(r=navigator.userAgentData)||void 0===r?void 0:r.mobile,"browser.platform":null===(n=navigator.userAgentData)||void 0===n?void 0:n.platform,"client.address":"$remote_ip","rollbar.notifier.framework":"browser-js","user_agent.original":navigator.userAgent},t)),this}}],e&&St(t.prototype,e),r&&St(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),jt=function(){},It={debug:0,info:1,warn:2,error:3,disable:4},Tt={error:function(){for(var t=arguments.length,e=new Array(t),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Ct(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.exporter=e,this.options=r,this.pendingSpans=new Map,this.transforms=[this.userTransform.bind(this)]},e=[{key:"addTransform",value:function(t){this.transforms.unshift(t)}},{key:"userTransform",value:function(t){this.options.transformSpan&&this.options.transformSpan({span:t})}},{key:"applyTransforms",value:function(t){var e,r=Rt(this.transforms);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{n(t)}catch(t){Pt.error("Error running span transform callback",t)}}}catch(t){r.e(t)}finally{r.f()}}},{key:"onStart",value:function(t,e){this.pendingSpans.set(t.span.spanContext.spanId,t)}},{key:"onEnd",value:function(t){this.applyTransforms(t.span),this.exporter.export([t.export()]),this.pendingSpans.delete(t.span.spanContext.spanId)}}],e&&Lt(t.prototype,e),r&&Lt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Dt(t){return Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Dt(t)}function Mt(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Ut(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ut(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ut(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;return this.span.ended||this.span.events.push({name:t,attributes:e,time:r||ut.now(),droppedAttributesCount:0}),this}},{key:"isRecording",value:function(){return!1===this.span.ended}},{key:"end",value:function(t,e){t&&this.setAttributes(t),this.span.endTime=e||ut.now(this.usePerformance),this.span.ended=!0,this.spanProcessor.onEnd(this)}},{key:"export",value:function(){return this.span}}],e&&Ht(t.prototype,e),r&&Ht(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Vt(t){return Vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vt(t)}function Bt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Wt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.tracing.contextManager.active(),u=this.tracing.getSpan(s),l=null==u?void 0:u.spanContext(),c=bt.gen(8),f=null;l?(o=l.traceId,f=l.traceState,i=l.spanId):o=bt.gen(16);var p={traceId:o,spanId:c,traceFlags:0,traceState:f},d={attributes:Wt(Wt({},(null===(e=this.tracing.resource)||void 0===e?void 0:e.attributes)||{}),(null===(r=a.resource)||void 0===r?void 0:r.attributes)||{})};return new Jt({resource:d,scope:this.tracing.scope,session:null===(n=this.tracing.session)||void 0===n?void 0:n.session,context:s,spanContext:p,name:t,kind:0,parentSpanId:i,spanProcessor:this.spanProcessor,startTime:a.startTime,usePerformance:a.usePerformance})}}],e&&Gt(t.prototype,e),r&&Gt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Zt(t){return Zt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zt(t)}function Qt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Kt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:16;return bt.gen(t)}},{key:"createTracer",value:function(){this.contextManager=new it,this.exporter=new vt(this.api,this.options),this.spanProcessor=new Nt(this.exporter,this.options.tracing),this.tracer=new Xt(this,this.spanProcessor)}},{key:"getTracer",value:function(){return this.tracer}},{key:"addSpanTransform",value:function(t){this.spanProcessor.addTransform(t)}},{key:"getSpan",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active()).getValue(ne)}},{key:"setSpan",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active(),e=arguments.length>1?arguments[1]:void 0;return t.setValue(ne,e)}},{key:"startSpan",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.contextManager.active();return this.tracer.startSpan(t,e,r)}},{key:"with",value:function(t,e,r){for(var n,o=arguments.length,i=new Array(o>3?o-3:0),a=3;a=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function se(t,e){if(t){if("string"==typeof t)return ue(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ue(t,e):void 0}}function ue(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2*e?t.slice(0,e).concat(t.slice(r-e)):t}function fe(t,e,r){r=void 0===r?30:r;var n,o=t.data.body;if(o.trace_chain){var i,a=ae(o.trace_chain);try{for(a.s();!(i=a.n()).done;){var s=i.value;n=ce(n=s.frames,r),s.frames=n}}catch(t){a.e(t)}finally{a.f()}}else o.trace&&(n=ce(n=o.trace.frames,r),o.trace.frames=n);return[t,m(t,e)]}function pe(t,e){return e&&e.length>t?e.slice(0,t-3).concat("..."):e}function de(t,e,r){return e=R(e,function e(r,n,o){switch(a(n)){case"string":return pe(t,n);case"object":case"array":return R(n,e,o);default:return n}}),[e,m(e,r)]}function he(t){return t.exception&&(delete t.exception.description,t.exception.message=pe(255,t.exception.message)),t.frames=ce(t.frames,1),t}function ye(t,e){var r=t.data.body;if(r.trace_chain){var n,o=r.trace_chain,i=ae(o.entries());try{for(i.s();!(n=i.n()).done;){var a=ie(n.value,2),s=a[0],u=a[1];o[s]=he(u)}}catch(t){i.e(t)}finally{i.f()}}else r.trace&&(r.trace=he(r.trace));return[t,m(t,e)]}function ve(t,e){return function(t){for(var e=0,r=t.length,n=0;ne}var me={truncate:function(t,e,r){r=void 0===r?524288:r;for(var n,o,i,a=[le,fe,de.bind(null,1024),de.bind(null,512),de.bind(null,256),ye];n=a.shift();)if(t=(o=n(t,e))[0],(i=o[1]).error||!ve(i.value,r))return i;return i},raw:le,truncateFrames:fe,truncateStrings:de,maybeTruncateValue:pe};function be(t){if(!i(t.context,"string")){var e=m(t.context);e.error?t.context="Error: could not serialize 'context'":t.context=e.value||"",t.context.length>255&&(t.context=t.context.substr(0,255))}return{data:t}}function ge(t,e,r){var n=e.hostname,o=e.protocol,i=e.port,a=e.path,s=e.search,u=t.timeout,l=function(t){var e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=t.defaultTransport||"xhr";void 0===e.fetch&&(r="xhr");void 0===e.XMLHttpRequest&&(r="fetch");return r}(t),c=t.proxy;if(t.endpoint){var f=r.parse(t.endpoint);n=f.hostname,o=f.protocol,i=f.port,a=f.pathname,s=f.search}return{timeout:u,hostname:n,protocol:o,port:i,path:a,search:s,proxy:c,transport:l}}function we(t,e){var r=t.protocol||"https:",n=t.port||("http:"===r?80:"https:"===r?443:void 0),o=t.hostname,i=t.path,a=t.timeout,s=t.transport;return t.search&&(i+=t.search),t.proxy&&(i=r+"//"+o+i,o=t.proxy.host||t.proxy.hostname,n=t.proxy.port,r=t.proxy.protocol||r),{timeout:a,protocol:r,hostname:o,path:i,port:n,method:e,transport:s}}function ke(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Se(t){for(var e=1;e3?(o=h===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&dn||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,h),s=c,u=h;(e=s<2?t:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=t}else if((e=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(e){i=t,s=1,u=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(Ee(e={},n,function(){return this}),e),f=l.prototype=s.prototype=Object.create(c);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,Ee(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,Ee(f,"constructor",l),Ee(l,"constructor",u),u.displayName="GeneratorFunction",Ee(l,o,"GeneratorFunction"),Ee(f),Ee(f,o,"Generator"),Ee(f,n,function(){return this}),Ee(f,"toString",function(){return"[object Generator]"}),(xe=function(){return{w:i,m:p}})()}function Ee(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}Ee=function(t,e,r,n){function i(e,r){Ee(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},Ee(t,e,r,n)}function je(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function Ie(t,e){for(var r=0;r1&&void 0!==o[1]?o[1]:{},n=we(this.OTLPTransportOptions,"POST"),t.a(2,this._postPromise({accessToken:this.accessToken,options:n,payload:e,headers:r}))},t,this)}),o=function(){var t=this,e=arguments;return new Promise(function(r,o){var i=n.apply(t,e);function a(t){je(i,r,o,a,s,"next",t)}function s(t){je(i,r,o,a,s,"throw",t)}a(void 0)})},function(t){return o.apply(this,arguments)})},{key:"buildJsonPayload",value:function(t,e){var r,n=be(t);return(r=this.truncation?this.truncation.truncate(n):m(n)).error?(e&&e(r.error),null):r.value}},{key:"postJsonPayload",value:function(t,e){var r=we(this.transportOptions,"POST");this.transport.postJsonPayload(this.accessToken,r,t,e)}},{key:"configure",value:function(t){var e=this.options;return this.options=A(e,t),this.transportOptions=Ce(this.options,this.url),this.OTLPTransportOptions=Le(this.options,this.url),void 0!==this.options.accessToken&&(this.accessToken=this.options.accessToken),this}}],e&&Ie(t.prototype,e),r&&Ie(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r,n,o}();function Ce(t,e){return ge(t,Pe,e)}function Le(t,e){var r;return ge(t=Se(Se({},t),{},{endpoint:null===(r=t.tracing)||void 0===r?void 0:r.endpoint}),Ae,e)}var qe=Re,Ne="3.0.0",De="api.rollbar.com/api/1/item/",Me="debug",Ue="debug",He="error",Fe=/(^|@)\S+:\d+/,Je=/^\s*at .*(\S+:\d+|\(native\))/m,Ve=/^(eval@)?(\[native code\])?$/;function Be(t,e){if(void 0!==t.stacktrace||void 0!==t["opera#sourceloc"])return function(t,e){return!t.stacktrace||t.message.includes("\n")&&t.message.split("\n").length>t.stacktrace.split("\n").length?function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)/i,n=t.message.split("\n"),o=[],i=2,a=n.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;return o.match(/\(([^)]*)\)/)&&(e=o.replace(/^[^(]+\(([^)]*)\)$/,"$1")),{function:i,args:void 0===e||"[arguments not available]"===e?void 0:e.split(","),file:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}(t,e):function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,n=t.stacktrace.split("\n"),o=[],i=0,a=n.length;i"].includes(n[0])?void 0:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}function ze(t,e){return $e(t.split("\n").filter(function(t){return!t.match(Ve)}),e).map(function(t){if(t.includes(" > eval")&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),t.includes("@")||t.includes(":")){var e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,r=t.match(e),n=r&&r[1]?r[1]:void 0,o=We(t.replace(e,""));return{function:n,file:o[0],line:o[1]?+o[1]:void 0,col:o[2]?+o[2]:void 0,raw:t}}return{function:t}})}function Xe(t){return t.map(function(t){return{functionName:t.function,args:t.args,fileName:t.file,lineNumber:t.line,columnNumber:t.col,source:t.raw}})}var Ze=new RegExp("^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ");function Qe(){return null}function Ke(t){var e={};return e._stackFrame=t,e.url=t.fileName,e.line=t.lineNumber,e.func=t.functionName,e.column=t.columnNumber,e.args=t.args,e.context=null,e}function Ye(t,e){return{stack:function(){var r=[];e=e||0;try{r=function(t,e){return Xe(Be(t,e))}(t)}catch(t){r=[]}for(var n=[],o=e;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function nr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rthis.options.maxRetries&&(o=!1))}o?this._retryApiRequest(r,n):n(e)}},{key:"_retryApiRequest",value:function(t,e){var r=this;this.retryQueue.push({item:t,callback:e}),this.retryHandle||(this.retryHandle=setInterval(function(){for(;r.retryQueue.length;){var t=r.retryQueue.shift();r._makeApiRequest(t.item,t.callback)}},this.options.retryInterval))}},{key:"_dequeuePendingRequest",value:function(t){var e=this.pendingRequests.indexOf(t);-1!==e&&(this.pendingRequests.splice(e,1),this._maybeCallWait())}},{key:"_maybeLog",value:function(t,e){if(this.logger&&this.options.verbose){var r=e||j(t,"body.trace.exception.message")||j(t,"body.trace_chain.0.exception.message");if(r)return void this.logger.error(r);(r=j(t,"body.message.body"))&&this.logger.log(r)}}},{key:"_maybeCallWait",value:function(){return!(!s(this.waitCallback)||0!==this.pendingItems.length||0!==this.pendingRequests.length||(this.waitIntervalID&&(this.waitIntervalID=clearInterval(this.waitIntervalID)),this.waitCallback(),0))}}],r&&dr(e.prototype,r),n&&dr(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();yr=br,mr=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE","EAI_AGAIN"],(vr=hr(vr="RETRIABLE_ERRORS"))in yr?Object.defineProperty(yr,vr,{value:mr,enumerable:!0,configurable:!0,writable:!0}):yr[vr]=mr;var gr=br;function wr(t){return wr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wr(t)}function kr(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.startTime=Date.now(),this.counter=0,this.perMinCounter=0,this.platform=null,this.platformOptions={},this.configureGlobal(e)}return function(t,e,r){return e&&kr(t.prototype,e),r&&kr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(t,[{key:"configureGlobal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.startTime,n=e.maxItems,o=e.itemsPerMinute;void 0!==r&&(t.globalSettings.startTime=r),void 0!==n&&(t.globalSettings.maxItems=n),void 0!==o&&(t.globalSettings.itemsPerMinute=o)}},{key:"shouldSend",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=r-this.startTime;(n<0||n>=6e4)&&(this.startTime=r,this.perMinCounter=0);var o=t.globalSettings.maxItems,i=t.globalSettings.itemsPerMinute;if(Or(e,o,this.counter))return xr(this.platform,this.platformOptions,"".concat(o," max items reached"),!1);if(Or(e,i,this.perMinCounter))return xr(this.platform,this.platformOptions,"".concat(i," items per minute reached"),!1);this.counter+=1,this.perMinCounter+=1;var a=!Or(e,o,this.counter),s=a,u=a&&!Or(e,i,this.perMinCounter);return xr(this.platform,this.platformOptions,null,u,o,i,s)}},{key:"setPlatformOptions",value:function(t,e){this.platform=t,this.platformOptions=e}}])}();function Or(t,e,r){return!t.ignoreRateLimit&&e>=1&&r>e}function xr(t,e,r,n,o,i,a){var s=null,u=r?new Error(r):null;return u||n||(s=function(t,e,r,n,o){var i=e.environment||e.payload&&e.payload.environment,a=o?"item per minute limit reached, ignoring errors until timeout":"maxItems has been hit, ignoring errors until reset.",s={body:{message:{body:a,extra:{maxItems:r,itemsPerMinute:n}}},language:"javascript",environment:i,notifier:{version:e.notifier&&e.notifier.version||e.version}};"browser"===t?(s.platform="browser",s.framework="browser-js",s.notifier.name="rollbar-browser-js"):"server"===t?(s.framework=e.framework||"node-js",s.notifier.name=e.notifier.name):"react-native"===t&&(s.framework=e.framework||"react-native",s.notifier.name=e.notifier.name);return s}(t,e,o,i,a)),{error:u,shouldSend:n,payload:s}}!function(t,e,r){(e=Sr(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}(_r,"globalSettings",{startTime:Date.now(),maxItems:void 0,itemsPerMinute:void 0});var Er=_r;function jr(t,e,r,n,o,i,a){this.options=A(t),this.logger=r,jr.rateLimiter.configureGlobal(this.options),jr.rateLimiter.setPlatformOptions(a,this.options),this.api=e,this.queue=new gr(jr.rateLimiter,e,r,this.options,i),this.tracing=o;var s=this.options.tracer||null;Tr(s)?(this.tracer=s,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier=new fr(this.queue,this.options),this.telemeter=n,Ir(t),this.lastError=null,this.lastErrorHash="none"}function Ir(t){t.stackTraceLimit&&(Error.stackTraceLimit=t.stackTraceLimit)}function Tr(t){if(!t)return!1;if(!t.scope||"function"!=typeof t.scope)return!1;var e=t.scope();return!(!e||!e.active||"function"!=typeof e.active)}jr.rateLimiter=new Er({maxItems:0,itemsPerMinute:60}),jr.prototype.global=function(t){return jr.rateLimiter.configureGlobal(t),this},jr.prototype.configure=function(t,e){var r=this.options,n={};e&&(n={payload:e}),this.options=A(r,t,n);var o=this.options.tracer||null;return Tr(o)?(this.tracer=o,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier&&this.notifier.configure(this.options),this.telemeter&&this.telemeter.configure(this.options),Ir(t),this.global(this.options),Tr(t.tracer)&&(this.tracer=t.tracer),this},jr.prototype.log=function(t){var e=this._defaultLogLevel();return this._log(e,t)},jr.prototype.debug=function(t){this._log("debug",t)},jr.prototype.info=function(t){this._log("info",t)},jr.prototype.warn=function(t){this._log("warning",t)},jr.prototype.warning=function(t){this._log("warning",t)},jr.prototype.error=function(t){this._log("error",t)},jr.prototype.critical=function(t){this._log("critical",t)},jr.prototype.wait=function(t){this.queue.wait(t)},jr.prototype.captureEvent=function(t,e,r){return this.telemeter&&this.telemeter.captureEvent(t,e,r)},jr.prototype.captureDomContentLoaded=function(t){return this.telemeter&&this.telemeter.captureDomContentLoaded(t)},jr.prototype.captureLoad=function(t){return this.telemeter&&this.telemeter.captureLoad(t)},jr.prototype.buildJsonPayload=function(t){return this.api.buildJsonPayload(t)},jr.prototype.sendJsonPayload=function(t){this.api.postJsonPayload(t)},jr.prototype._log=function(t,e){var r;if(e.callback&&(r=e.callback,delete e.callback),this.options.ignoreDuplicateErrors&&this._sameAsLastError(e)){if(r){var n=new Error("ignored identical item");n.item=e,r(n)}}else try{e.level=e.level||t,this._addItemAttributes(e),this._addTracingInfo(e);var o=this.telemeter;o&&(o._captureRollbarItem(e),e.telemetryEvents=o.copyEvents()||[]),this.notifier.log(e,r)}catch(t){r&&r(t),this.logger.error(t)}},jr.prototype._addItemAttributes=function(t){var e,r,n=null===(e=this.tracing)||void 0===e?void 0:e.getSpan(),o=[{key:"session_id",value:null===(r=this.tracing)||void 0===r?void 0:r.sessionId},{key:"span_id",value:null==n?void 0:n.spanId},{key:"trace_id",value:null==n?void 0:n.traceId}];t._isUncaught&&o.push({key:"is_uncaught",value:"true"}),E(t.data,o),null==n||n.addEvent("rollbar.occurrence",[{key:"rollbar.occurrence.uuid",value:t.uuid}])},jr.prototype._defaultLogLevel=function(){return this.options.logLevel||"debug"},jr.prototype._sameAsLastError=function(t){if(!t._isUncaught)return!1;var e=function(t){var e=t.message||"",r=(t.err||{}).stack||String(t.err);return e+"::"+r}(t);return this.lastErrorHash===e||(this.lastError=t.err,this.lastErrorHash=e,!1)},jr.prototype._addTracingInfo=function(t){if(this.tracer){var e=this.tracer.scope().active();if(function(t){if(!t||!t.context||"function"!=typeof t.context)return!1;var e=t.context();if(!e||!e.toSpanId||!e.toTraceId||"function"!=typeof e.toSpanId||"function"!=typeof e.toTraceId)return!1;return!0}(e)){e.setTag("rollbar.error_uuid",t.uuid),e.setTag("rollbar.has_error",!0),e.setTag("error",!0),e.setTag("rollbar.item_url","https://rollbar.com/item/uuid/?uuid=".concat(t.uuid)),e.setTag("rollbar.occurrence_url","https://rollbar.com/occurrence/uuid/?uuid=".concat(t.uuid));var r=e.context().toSpanId(),n=e.context().toTraceId();t.custom?(t.custom.opentracing_span_id=r,t.custom.opentracing_trace_id=n):t.custom={opentracing_span_id:r,opentracing_trace_id:n}}}};var Pr=jr;function Ar(t,e,r){t._isUncaught&&(t.data._isUncaught=!0),t._originalArgs&&(t.data._originalArgs=t._originalArgs),r(null,t)}function Rr(t,e,r){var n=e.payload||{};n.body&&delete n.body,t.data=A(t.data,n),r(null,t)}function Cr(t,e,r){t.telemetryEvents&&I(t,"data.body.telemetry",t.telemetryEvents),r(null,t)}function Lr(t,e,r){if(t.message){var n="data.body.trace_chain.0",o=j(t,n);if(o||(o=j(t,n="data.body.trace")),o){if(!o.exception||!o.exception.description)return I(t,n+".exception.description",t.message),void r(null,t);I(t,n+".extra",A(j(t,n+".extra")||{},{message:t.message}))}r(null,t)}else r(null,t)}function qr(t){return function(e,r,n){var o,a=A(e),l=null;try{s(r.transform)&&(l=r.transform(a.data,e))}catch(o){return r.transform=null,t.error("Error while calling custom transform() function. Removing custom transform().",o),void n(null,e)}u(o=l)&&i(o.then,"function")?l.then(function(t){t&&(a.data=t),n(null,a)},function(t){n(t,e)}):n(null,a)}}function Nr(t,e,r){if(!e.sendConfig)return r(null,t);var n=j(t,"data.custom")||{};n._rollbarConfig=e,t.data.custom=n,r(null,t)}function Dr(t,e){s(t[e])&&(t[e]=t[e].toString())}function Mr(t,e,r){var n=e._configuredOptions;Dr(n,"transform"),Dr(n,"checkIgnore"),Dr(n,"onSendCallback"),delete n.accessToken,t.data.notifier.configured_options=n,r(null,t)}function Ur(t,e,r){var n=A(t.notifier.client.notifier.diagnostic,t.diagnostic);if(j(t,"err._isAnonymous")&&(n.is_anonymous=!0),t._isUncaught&&(n.is_uncaught=t._isUncaught),t.err)try{n.raw_error={message:t.err.message,name:t.err.name,constructor_name:t.err.constructor&&t.err.constructor.name,filename:t.err.fileName,line:t.err.lineNumber,column:t.err.columnNumber,stack:t.err.stack}}catch(t){n.raw_error={failed:String(t)}}t.data.notifier.diagnostic=A(t.data.notifier.diagnostic,n),r(null,t)}function Hr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:null)||t.stackInfo).stack;return e&&0===e.length&&t._unhandledStackInfo&&t._unhandledStackInfo.stack&&(e=t._unhandledStackInfo.stack),e}function Qr(t,e,r){var n=t&&t.data.description,o=t&&t.custom,i=Zr(t,e),a=er.guessErrorClass(e.message),s={exception:{class:Kr(e,a[0],r),message:a[1]}};if(n&&(s.exception.description=n),i){var u,l,c,f,p,d,y,v;for(0===i.length&&(s.exception.stack=e.rawStack,s.exception.raw=String(e.rawException)),s.frames=[],y=0;yt.length)&&(e=t.length);for(var r=0,n=Array(e);r=400&&t.status<600}(e)){if(403===e.status){var o=t.value&&t.value.message;Pt.error(o)}u(new Error(String(e.status)))}else{u(an("XHR response had no status code (likely connection failure)"))}}}catch(t){var a;a=t&&t.stack?t:new Error(t),u(a)}};if(e.open(o,n,!0),e.setRequestHeader){e.setRequestHeader("Content-Type","application/json"),e.setRequestHeader("X-Rollbar-Access-Token",r);for(var d=0,h=Object.entries(null!=s?s:{});ds)?(a=e.path,e.path=a.substring(0,s)+i+"&"+a.substring(s+1)):-1!==u?(a=e.path,e.path=a.substring(0,u)+i+a.substring(u)):e.path=e.path+i}(t,e,r);var i=v(e);this._makeZoneRequest({accessToken:t,url:i,method:"GET",callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},un.prototype.post=function(t){var e,r=t.accessToken,n=t.options,o=t.payload,i=t.headers,a=t.callback,u=t.requestFactory;if(a&&s(a)||(a=function(){}),!o)return a(new Error("Cannot send empty request"));if((e=this.truncation&&o.body?this.truncation.truncate(o):m(o)).error)return a(e.error);var l=v(n);this._makeZoneRequest({accessToken:r,url:l,method:"POST",payload:e.value,headers:i,callback:a,requestFactory:u,timeout:n.timeout,transport:n.transport})},un.prototype.postJsonPayload=function(t,e,r,n,o){n&&s(n)||(n=function(){});var i=v(e);this._makeZoneRequest({accessToken:t,url:i,method:"POST",payload:r,callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},un.prototype._makeZoneRequest=function(){var t=this,e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=e&&e.Zone&&e.Zone.root,n=Array.prototype.slice.call(arguments);r?r.run(function(){t._makeRequest.apply(void 0,n)}):this._makeRequest.apply(void 0,n)},un.prototype._makeRequest=function(t){var e=t.payload,r=t.callback,n=t.transport;if("undefined"!=typeof RollbarProxy)return function(t,e){(new RollbarProxy).sendJsonPayload(t,function(t){},function(t){e(new Error(t))})}(e,r);"fetch"===n?rn(t):sn(t)};var ln,cn=un;function fn(t){var e,r,n={protocol:null,auth:null,host:null,path:null,hash:null,href:t,hostname:null,port:null,pathname:null,search:null,query:null};if(-1!==(e=t.indexOf("//"))?(n.protocol=t.substring(0,e),r=e+2):r=0,-1!==(e=t.indexOf("@",r))&&(n.auth=t.substring(r,e),r=e+1),-1===(e=t.indexOf("/",r))){if(-1===(e=t.indexOf("?",r)))return-1===(e=t.indexOf("#",r))?n.host=t.substring(r):(n.host=t.substring(r,e),n.hash=t.substring(e)),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),n;n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e}else n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e;if(-1===(e=t.indexOf("#",r))?n.path=t.substring(r):(n.path=t.substring(r,e),n.hash=t.substring(e)),n.path){var o=n.path.split("?");n.pathname=o[0],n.query=o[1],n.search=n.query?"?"+n.query:null}return n}function pn(t){return pn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pn(t)}function dn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function hn(t){for(var e=1;e0&&I(e,"data.request",o),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t)return n(null,e);var o=t.navigator||{},i=t.screen||{};I(e,"data.client",{runtime_ms:e.timestamp-t._rollbarStartTime,timestamp:Math.round(e.timestamp/1e3),javascript:{browser:o.userAgent,language:o.language,cookie_enabled:o.cookieEnabled,screen:{width:i.width,height:i.height}}}),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t||!t.navigator)return n(null,e);for(var o,i=[],a=t.navigator.plugins||[],s=0,u=a.length;s=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function In(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;i--){if(e=Pn(t[i]),r=o+3*n.length+e.length,i=83){n.unshift("...");break}n.unshift(e),o+=e.length}return n.join(" > ")}(function(t){for(var e,r=[],n=0;t&&n<5&&(e=An(t))&&"html"!==e.tagName;n++)r.unshift(e),t=t.parentNode;return r}(t))}function Pn(t){if(!t||!t.tagName)return"";var e=[t.tagName];t.id&&e.push("#"+t.id),t.classes&&e.push("."+t.classes.join("."));var r,n=jn(t.attributes);try{for(n.s();!(r=n.n()).done;){var o=r.value;e.push("["+o.key+'="'+o.value+'"]')}}catch(t){n.e(t)}finally{n.f()}return e.join("")}function An(t){if(!t||!t.tagName)return null;var e,r={};r.tagName=t.tagName.toLowerCase(),t.id&&(r.id=t.id),(e=t.className)&&"string"==typeof e&&(r.classes=e.split(/\s+/));r.attributes=[];for(var n=0,o=["type","name","title","alt"];n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Dn(t,e){if(t){if("string"==typeof t)return Mn(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Mn(t,e):void 0}}function Mn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r3)){var e=T();o.__rollbar_xhr.end_time_ms=e;var r=null;if(o.__rollbar_xhr.response_content_type=o.getResponseHeader("Content-Type"),t.autoInstrument.networkResponseHeaders){var i=t.autoInstrument.networkResponseHeaders;r={};try{var a;if(!0===i){var s=o.getAllResponseHeaders();if(s){var u,l,c,f=Nn(s.trim().split(/[\r\n]+/));try{for(f.s();!(c=f.n()).done;){a=(u=c.value.split(": ")).shift(),l=u.join(": "),r[a]=l}}catch(t){f.e(t)}finally{f.f()}}}else{var p,d=Nn(i);try{for(d.s();!(p=d.n()).done;){var h=p.value;r[h]=o.getResponseHeader(h)}}catch(t){d.e(t)}finally{d.f()}}}catch(t){}}var y=null;if(t.autoInstrument.networkResponseBody)try{y=o.responseText}catch(t){}var v=null;(y||r)&&(v={},y&&(t.isJsonContentType(o.__rollbar_xhr.response_content_type)?v.body=t.scrubJson(y):v.body=y),r&&(v.headers=r)),v&&(o.__rollbar_xhr.response=v);try{var m=o.status;m=1223===m?204:m,o.__rollbar_xhr.status_code=m,t.addOtelNetworkResponse(o.__rollbar_event,e,m),o.__rollbar_event.level=t.telemeter.levelFromStatus(m),t.errorOnHttpStatus(o.__rollbar_xhr)}catch(t){}}}return e("onload",o),e("onerror",o),e("onprogress",o),"onreadystatechange"in o&&s(o.onreadystatechange)?En(o,"onreadystatechange",function(e){return t.rollbar.wrap(e,void 0,i)}):o.onreadystatechange=i,o.__rollbar_xhr&&t.trackHttpErrors()&&(o.__rollbar_xhr.stack=(new Error).stack),r.apply(this,arguments)}},this.replacements,"network")}"fetch"in this._window&&En(this._window,"fetch",function(e){return function(r,n){var o,a=Array.prototype.slice.call(arguments),s=a[0],u="GET",l=Vn(s);i(s,"string")||l?o=l?s.toString():s:s&&(o=s.url,s.method&&(u=s.method)),a[1]&&a[1].method&&(u=a[1].method);var c={method:u,url:o,status_code:null,start_time_ms:T(),end_time_ms:null};if(a[1]&&a[1].headers){var f=xn(a[1].headers);c.request_content_type=f.get("Content-Type"),t.autoInstrument.networkRequestHeaders&&(c.request_headers=t.fetchHeaders(f,t.autoInstrument.networkRequestHeaders))}t.autoInstrument.networkRequestBody&&(a[1]&&a[1].body?c.request=a[1].body:a[0]&&!i(a[0],"string")&&a[0].body&&(c.request=a[0].body));var p=t.captureNetwork(c,"fetch",void 0);return t.trackHttpErrors()&&(c.stack=(new Error).stack),e.apply(this,a).then(function(e){var r=T();c.end_time_ms=r,c.status_code=e.status,t.addOtelNetworkResponse(p,r,e.status),c.response_content_type=e.headers.get("Content-Type");var n=null;t.autoInstrument.networkResponseHeaders&&(n=t.fetchHeaders(e.headers,t.autoInstrument.networkResponseHeaders));var o=null;return t.autoInstrument.networkResponseBody&&"function"==typeof e.text&&(o=e.clone().text()),(n||o)&&(c.response={},o&&("function"==typeof o.then?o.then(function(e){e&&t.isJsonContentType(c.response_content_type)?c.response.body=t.scrubJson(e):c.response.body=e}):c.response.body=o),n&&(c.response.headers=n)),t.errorOnHttpStatus(c),e})}},this.replacements,"network")}},{key:"captureNetwork",value:function(t,e,r){return t.request&&this.isJsonContentType(t.request_content_type)&&(t.request=this.scrubJson(t.request)),this.telemeter.captureNetwork(t,e,r)}},{key:"isJsonContentType",value:function(t){return!!(t&&i(t,"string")&&t.toLowerCase().includes("json"))}},{key:"addOtelNetworkResponse",value:function(t,e,r){t.otelAttributes&&(t.otelAttributes["response.timeUnixNano"]=(1e6*e).toString(),t.otelAttributes.statusCode=r)}},{key:"scrubJson",value:function(t){return JSON.stringify(M(JSON.parse(t),this.options.scrubFields))}},{key:"fetchHeaders",value:function(t,e){var r={};try{if(!0===e){if("function"==typeof t.entries)for(var n=t.entries(),o=n.next();!o.done;)r[o.value[0]]=o.value[1],o=n.next()}else{var i,a=Nn(e);try{for(a.s();!(i=a.n()).done;){var s=i.value;r[s]=t.get(s)}}catch(t){a.e(t)}finally{a.f()}}}catch(t){}return r}},{key:"trackHttpErrors",value:function(){return this.autoInstrument.networkErrorOnHttp5xx||this.autoInstrument.networkErrorOnHttp4xx||this.autoInstrument.networkErrorOnHttp0}},{key:"errorOnHttpStatus",value:function(t){var e=t.status_code;if(e>=500&&this.autoInstrument.networkErrorOnHttp5xx||e>=400&&this.autoInstrument.networkErrorOnHttp4xx||0===e&&this.autoInstrument.networkErrorOnHttp0){var r=new Error("HTTP request failed with Status "+e);r.stack=t.stack,this.rollbar.error(r,{skipFrames:1})}}},{key:"deinstrumentConsole",value:function(){for(var t;this.replacements.log.length;)t=this.replacements.log.shift(),this._window.console[t[0]]=t[1]}},{key:"instrumentConsole",value:function(){var t;if(null!==(t=this._window)&&void 0!==t&&null!==(t=t.console)&&void 0!==t&&t.log){var e=this,r=this._window.console;try{for(var n=0,o=["debug","info","warn","error","log"];n500&&(n=n.substr(0,497)+"...");break;case"null":n="null";break;case"undefined":n="undefined";break;case"symbol":n=n.toString()}o.push(n)}return o.join(" ")}(t);e.telemeter.captureLog(r,i,null,T()),n&&Function.prototype.apply.call(n,o,t)},e.replacements.log.push([t,n])}}},{key:"deinstrumentDom",value:function(){this.removeListeners("dom")}},{key:"instrumentDom",value:function(){var t=this;this.addListener("dom",this._window,["click","dblclick","contextmenu"],function(e){return t.handleEvent("click",e)}),this.addListener("dom",this._window,["dragstart","dragend","dragenter","dragleave","drop"],function(e){return t.handleEvent("dragdrop",e)}),this.addListener("dom",this._window,["blur","focus"],function(e){return t.handleEvent("focus",e)}),this.addListener("dom",this._window,["submit","invalid"],function(e){return t.handleEvent("form",e)}),this.addListener("dom",this._window,["input","change"],function(e){return t.handleEvent("input",e)}),this.addListener("dom",this._window,["resize"],function(e){return t.handleEvent("resize",e)}),this.addListener("dom",this._document,["DOMContentLoaded"],function(e){return t.handleEvent("contentLoaded",e)})}},{key:"handleEvent",value:function(t,e){try{return{click:this.handleClick,dragdrop:this.handleDrag,focus:this.handleFocus,form:this.handleForm,input:this.handleInput,resize:this.handleResize,contentLoaded:this.handleContentLoaded}[t].call(this,e)}catch(r){Pt.log("".concat(t," handler error"),e,r,r.stack)}}},{key:"handleContentLoaded",value:function(t){this.rollbar.triggerReplay({type:"navigation",path:new URL(this._location.href).pathname})}},{key:"handleClick",value:function(t){var e,r=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase();["input","select","textarea"].includes(r)||this.telemeter.captureClick({type:t.type,isSynthetic:!t.isTrusted,element:Tn(t.target),timestamp:T()})}},{key:"handleFocus",value:function(t){var e,r=t.type,n=null!==(e=t.target)&&void 0!==e&&e.window?"window":Tn(t.target);this.telemeter.captureFocus({type:r,isSynthetic:!t.isTrusted,element:n,timestamp:T()})}},{key:"handleForm",value:function(t){}},{key:"handleResize",value:function(t){var e=window.screen.width/window.innerWidth;this.telemeter.captureResize({type:t.type,isSynthetic:!t.isTrusted,width:window.innerWidth,height:window.innerHeight,textZoomRatio:e,timestamp:T()})}},{key:"handleDrag",value:function(t){var e,r,n,o,i,a,s=t.type;if("drop"===s){e=[],r=[];var u,l=Nn([].concat(Cn(t.dataTransfer.files),Cn(t.dataTransfer.items)));try{for(l.s();!(u=l.n()).done;){var c=u.value;c.kind&&c.type&&(e.push(c.kind),r.push(c.type))}}catch(t){l.e(t)}finally{l.f()}}["drop","dragstart"].includes(s)&&(n=null===(i=t.dataTransfer)||void 0===i?void 0:i.dropEffect,o=null===(a=t.dataTransfer)||void 0===a?void 0:a.effectAllowed);this.telemeter.captureDragDrop({type:s,isSynthetic:!t.isTrusted,element:Tn(t.target),dropEffect:n,effectAllowed:o,kinds:JSON.stringify(e),mediaTypes:JSON.stringify(r),timestamp:T()})}},{key:"scrubInputValue",value:function(t,e,r,n){var o="******";if("password"===n)return o;if(this.scrubTelemetryInputs)return o;var i=An(e);if(this.telemetryScrubber){if(this.telemetryScrubber(i))return o}else if(this.defaultValueScrubber(i))return o;return function(t,e,r){try{var n,o=jn(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;if("string"==typeof i){if(t.classList.contains(i))return!0}else{var a,s=jn(t.classList);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(i.test(u))return!0}}catch(t){s.e(t)}finally{s.f()}}}}catch(t){o.e(t)}finally{o.f()}var l,c=jn(r);try{for(c.s();!(l=c.n()).done;){var f=l.value;if(t.matches(f))return!0}}catch(t){c.e(t)}finally{c.f()}}catch(t){}return!1}(e,this.scrubClasses,this.scrubSelectors)?o:this.maskInputOptions[r.toLowerCase()]||this.maskInputOptions[n]?this.maskInputFn?this.maskInputFn(t,e):o:t}},{key:"handleInput",value:function(t){var e,r,n,o,i=t.type,a=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase(),s=null===(r=t.target)||void 0===r?void 0:r.value,u=(null===(n=t.target)||void 0===n||null===(n=n.attributes)||void 0===n||null===(n=n.type)||void 0===n?void 0:n.value)||(null===(o=t.target)||void 0===o?void 0:o.type);switch(void 0!==s&&(s=this.scrubInputValue(s,t.target,a,u)),i){case"input":if(["radio","checkbox"].includes(u))return;["select","textarea"].includes(a)&&(u=a);break;case"change":if(!["radio","checkbox"].includes(u))return;var l;if("checkbox"===u)s=null===(l=t.target)||void 0===l?void 0:l.checked}this.telemeter.captureInput({type:u,isSynthetic:!t.isTrusted,element:Tn(t.target),value:s,timestamp:T()})}},{key:"deinstrumentNavigation",value:function(){var t=this._window.chrome;!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState&&Hn(this.replacements,"navigation")}},{key:"instrumentNavigation",value:function(){var t=this._window.chrome;if(!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState){var e=this;En(this._window,"onpopstate",function(t){return function(){var r=e._location.href;e.handleUrlChange(e._lastHref,r),t&&t.apply(this,arguments)}},this.replacements,"navigation"),En(this._window.history,"pushState",function(t){return function(){var r=arguments.length>2?arguments[2]:void 0;return r&&e.handleUrlChange(e._lastHref,String(r)),t.apply(this,arguments)}},this.replacements,"navigation")}}},{key:"handleUrlChange",value:function(t,e){var r=fn(this._location.href),n=fn(e),o=fn(t);this._lastHref=e,r.protocol===n.protocol&&r.host===n.host&&(e=n.path+(n.hash||"")),r.protocol===o.protocol&&r.host===o.host&&(t=o.path+(o.hash||"")),this.telemeter.captureNavigation(t,e,null,T()),this.rollbar.triggerReplay({type:"navigation",path:e})}},{key:"instrumentConnectivity",value:function(){var t=this;this.addListener("connectivity",this._window,["online","offline"],function(e){return t.handleConnectivity(e)})}},{key:"handleConnectivity",value:function(t){var e=t.type;this.telemeter.captureConnectivityChange({type:e,isSynthetic:!t.isTrusted,timestamp:T()})}},{key:"handleCspEvent",value:function(t){var e="Security Policy Violation: blockedURI: "+t.blockedURI+", violatedDirective: "+t.violatedDirective+", effectiveDirective: "+t.effectiveDirective+", ";t.sourceFile&&(e+="location: "+t.sourceFile+", line: "+t.lineNumber+", col: "+t.columnNumber+", "),e+="originalPolicy: "+t.originalPolicy,this.telemeter.captureLog(e,"error",null,T()),this.handleCspError(e)}},{key:"handleCspError",value:function(t){this.autoInstrument.errorOnContentSecurityPolicy&&this.rollbar.error(t)}},{key:"deinstrumentContentSecurityPolicy",value:function(){this.removeListeners("contentsecuritypolicy")}},{key:"instrumentContentSecurityPolicy",value:function(){if("addEventListener"in this._document){var t=this.handleCspEvent.bind(this);this.addListener("contentsecuritypolicy",this._document,["securitypolicyviolation"],t)}}},{key:"addListener",value:function(t,e,r,n){var o=this;if(e.addEventListener){var i,a=Nn(r);try{var s=function(){var r=i.value,a={capture:!0,passive:!0};e.addEventListener(r,n,a,!0),o.eventRemovers[t].push(function(){e.removeEventListener(r,n,a)})};for(a.s();!(i=a.n()).done;)s()}catch(t){a.e(t)}finally{a.f()}}}},{key:"removeListeners",value:function(t){for(;this.eventRemovers[t].length;)this.eventRemovers[t].shift()()}}])}();function Vn(t){return"undefined"!=typeof URL&&t instanceof URL}var Bn=Jn;function Wn(t,e,r){if(l(e,"addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var o=function(e,r,o){n.call(this,e,t.wrap(r),o)};o._rollbarOldAdd=n,o.belongsToShim=r,e.addEventListener=o;for(var i=e.removeEventListener;i._rollbarOldRemove&&i.belongsToShim;)i=i._rollbarOldRemove;var a=function(t,e,r){i.call(this,t,e&&e._rollbar_wrapped||e,r)};a._rollbarOldRemove=i,a.belongsToShim=r,e.removeEventListener=a}}var $n=function(t,e,r){if(t){var n,o,i="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(",");for(n=0;n=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(u||(u=k({})),u.extraArgs=k(p));var g,S={message:i,err:s,custom:u,timestamp:T(),callback:l,notifier:r,diagnostic:{},uuid:(g=T(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(g+16*Math.random())%16|0;return g=Math.floor(g/16),("x"===t?e:7&e|8).toString(16)}))};return S.data=S.data||{},function(t,e){e&&void 0!==e.level&&(t.level=e.level,delete e.level);e&&void 0!==e.skipFrames&&(t.skipFrames=e.skipFrames,delete e.skipFrames)}(S,u),n&&c&&(S.request=c),o&&(S.lambdaContext=o),S._originalArgs=t,S.diagnostic.original_arg_types=d,S}var _=["log","network","dom","navigation","error","manual"],O=["critical","error","warning","info","debug"];function x(t,e){var n,o=r(t);try{for(o.s();!(n=o.n()).done;){if(n.value===e)return!0}}catch(t){o.e(t)}finally{o.f()}return!1}function E(t,e){t.attributes=t.attributes||[];var n,o=r(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;void 0!==i.value&&t.attributes.push(i)}}catch(t){o.e(t)}finally{o.f()}}function j(t,e){if(t){var r=e.split("."),n=t;try{for(var o=0,i=r.length;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function D(t,e){if(t){if("string"==typeof t)return M(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?M(t,e):void 0}}function M(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rn&&(o=this.queue.length-n),this.maxQueueSize=n,this.queue.splice(0,o)}},{key:"copyEvents",value:function(){var t=Array.prototype.slice.call(this.queue,0);if(s(this.options.filterTelemetry))try{for(var e=t.length;e--;)this.options.filterTelemetry(t[e])&&t.splice(e,1)}catch(t){this.options.filterTelemetry=null}return t=(t=t.filter(function(t){return"connectivity"!==t.type})).map(function(t){t.otelAttributes;var e=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.telemetrySpan&&(this.telemetrySpan.end(t),this.telemetrySpan=this.tracing.startSpan("rollbar-telemetry",{}))}},{key:"capture",value:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a={level:Q(t,r),type:t,timestamp_ms:o||T(),body:e,source:"client"};n&&(a.uuid=n),i&&(a.otelAttributes=i);try{if(s(this.options.filterTelemetry)&&this.options.filterTelemetry(a))return!1}catch(t){this.options.filterTelemetry=null}return this.push(a),a}},{key:"captureEvent",value:function(t,e,r,n){return this.capture(t,e,r,n)}},{key:"captureError",value:function(t,e,r,n){var o,i=t.message||String(t),a={message:i};t.stack&&(a.stack=t.stack);var s={message:i,level:e,type:"error",uuid:r};return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-occurrence-event",s,X(n)),this.capture("error",a,e,r,n,s)}},{key:"captureLog",value:function(t,e,r,n){var o,i=r?"rollbar-occurrence-event":"rollbar-log-event",a=B({message:t,level:e},r?{type:"message",uuid:r}:{});return null===(o=this.telemetrySpan)||void 0===o||o.addEvent(i,a,X(n)),this.capture("log",{message:t},e,r,n,a)}},{key:"captureNetwork",value:function(t,e,r,n){var o,i,a;e=e||"xhr",t.subtype=t.subtype||e,n&&(t.request=n);var s=this.levelFromStatus(t.status_code),u=1e6*(t.end_time_ms||0),l={type:t.subtype,method:t.method,url:t.url,statusCode:t.status_code,"request.headers":JSON.stringify(t.request_headers||{}),"response.headers":JSON.stringify((null===(o=t.response)||void 0===o?void 0:o.headers)||{}),"response.timeUnixNano":u.toString()},c=t.request,f=null===(i=t.response)||void 0===i?void 0:i.body;return c&&(l["request.body"]=JSON.stringify(c)),f&&(l["response.body"]=JSON.stringify(f)),null===(a=this.telemetrySpan)||void 0===a||a.addEvent("rollbar-network-event",l,X(t.start_time_ms)),this.capture("network",t,s,r,t.start_time_ms,l)}},{key:"levelFromStatus",value:function(t){return t>=200&&t<400?"info":0===t||t>=400?"error":"info"}},{key:"captureDom",value:function(t,e,r,n,o){var i={subtype:t,element:e};return void 0!==r&&(i.value=r),void 0!==n&&(i.checked=n),this.capture("dom",i,"info",o)}},{key:"captureInput",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.value,a=t.timestamp,s="rollbar-input-event",u={type:s,subtype:r,element:o,value:i},l={type:r,isSynthetic:n,element:o,value:i,endTimeUnixNano:X(a)},c=this._getRepeatedEvent(s,l);return c?this._updateRepeatedEvent(c,l,a):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(s,l,X(a)),this.capture("dom",u,"info",null,a,l))}},{key:"captureClick",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-click-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o,endTimeUnixNano:X(i)},l=this._getRepeatedEvent(a,u);return l?this._updateRepeatedEvent(l,u,i):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,X(i)),this.capture("dom",s,"info",null,i,u))}},{key:"_getRepeatedEvent",value:function(t,e){var r=this._lastEvent(this.queue);if(r&&r.body.type===t&&r.otelAttributes.target===e.target)return r}},{key:"_updateRepeatedEvent",value:function(t,e,r){var n=Math.max(r-t.timestamp_ms,1);t.body.value=e.value,t.otelAttributes.value=e.value,t.otelAttributes.height=e.height,t.otelAttributes.width=e.width,t.otelAttributes.textZoomRatio=e.textZoomRatio,t.otelAttributes.endTimeUnixNano=X(r),t.otelAttributes.durationUnixNano=X(n),t.otelAttributes.count=(t.otelAttributes.count||1)+1,t.otelAttributes.rate=t.otelAttributes.count/(n/1e3)}},{key:"_lastEvent",value:function(t){return t.length>0?t[t.length-1]:null}},{key:"captureFocus",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-focus-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,X(i)),this.capture("dom",s,"info",null,i,u)}},{key:"captureResize",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.width,i=t.height,a=t.textZoomRatio,s=t.timestamp,u="rollbar-resize-event",l={type:u,subtype:r,width:o,height:i,textZoomRatio:a},c={type:r,isSynthetic:n,width:o,height:i,textZoomRatio:a},f=this._getRepeatedEvent(u,c);return f?this._updateRepeatedEvent(f,c,s):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(u,c,X(s)),this.capture("dom",l,"info",null,s,c))}},{key:"captureDragDrop",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.dropEffect,a=t.effectAllowed,s=t.kinds,u=t.mediaTypes,l=t.timestamp,c="rollbar-dragdrop-event",f={type:c,subtype:r,isSynthetic:n},p={type:r,isSynthetic:n};return"dragstart"===r&&(f=B(B({},f),{},{element:o,dropEffect:i,effectAllowed:a}),p=B(B({},p),{},{element:o,dropEffect:i,effectAllowed:a})),"drop"===r&&(f=B(B({},f),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u}),p=B(B({},p),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u})),null===(e=this.telemetrySpan)||void 0===e||e.addEvent(c,p,X(l)),this.capture("dom",f,"info",null,l,p)}},{key:"captureNavigation",value:function(t,e,r,n){var o;return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-navigation-event",{"previous.url.full":t,"url.full":e},X(n)),this.capture("navigation",{from:t,to:e},"info",r,n)}},{key:"captureDomContentLoaded",value:function(t){return this.capture("navigation",{subtype:"DOMContentLoaded"},"info",void 0,t&&t.getTime())}},{key:"captureLoad",value:function(t){return this.capture("navigation",{subtype:"load"},"info",void 0,t&&t.getTime())}},{key:"captureConnectivityChange",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.timestamp,i="rollbar-connectivity-event",a={type:i,subtype:r},s={type:r,isSynthetic:n};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(i,s,X(o)),this.capture("connectivity",a,"info",null,o,s)}},{key:"_captureRollbarItem",value:function(t){if(this.options.includeItemsInTelemetry)return t.err?this.captureError(t.err,t.level,t.uuid,t.timestamp):t.message?this.captureLog(t.message,t.level,t.uuid,t.timestamp):t.custom?this.capture("log",t.custom,t.level,t.uuid,t.timestamp):void 0}},{key:"push",value:function(t){this.queue.push(t),this.queue.length>this.maxQueueSize&&this.queue.shift()}}],e&&$(t.prototype,e),r&&$(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Q(t,e){if(e)return e;return{error:"error",manual:"info"}[t]||"info"}var K=Z;function Y(t){return Y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Y(t)}function tt(t,e){for(var r=0;r3?o-3:0),a=3;a0&&void 0!==arguments[0]&&arguments[0]?lt(ut(performance.timeOrigin),ut(performance.now())):ut(Date.now())},isHrTime:function(t){return Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]}};function ft(t){return ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ft(t)}function pt(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||ht(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dt(t){return function(t){if(Array.isArray(t))return yt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||ht(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ht(t,e){if(t){if("string"==typeof t)return yt(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?yt(t,e):void 0}}function yt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.api=e,this.options=r},e=[{key:"export",value:function(t,e){gt.push.apply(gt,dt(t))}},{key:"toPayload",value:function(){var t=this,e=gt.slice();if(gt.length=0,!e||!e.length)return{resourceSpans:[]};var r,n=e[0]&&e[0].resource||{},o=new Map,i=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=ht(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e);try{for(i.s();!(r=i.n()).done;){var a=r.value,s=a.instrumentationScope?"".concat(a.instrumentationScope.name,":").concat(a.instrumentationScope.version):"default:1.0.0";o.has(s)||o.set(s,{scope:a.instrumentationScope||{name:"default",version:"1.0.0",attributes:[]},spans:[]}),o.get(s).spans.push(this._transformSpan(a))}}catch(t){i.e(t)}finally{i.f()}return{resourceSpans:[{resource:this._transformResource(n),scopeSpans:Array.from(o.values()).map(function(e){return{scope:t._transformInstrumentationScope(e.scope),spans:e.spans}})}]}}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.api.postSpans(t,e)}},{key:"_transformSpan",value:function(t){var e,r=this,n=function(t){return Object.entries(t||{}).map(function(t){var e=pt(t,2),n=e[0],o=e[1];return{key:n,value:r._transformAnyValue(o)}})};return{traceId:t.spanContext.traceId,spanId:t.spanContext.spanId,parentSpanId:t.parentSpanId||"",name:t.name,kind:t.kind||1,startTimeUnixNano:ct.toNanos(t.startTime),endTimeUnixNano:ct.toNanos(t.endTime),attributes:n(t.attributes),events:(e=t.events,(e||[]).map(function(t){return{timeUnixNano:ct.toNanos(t.time),name:t.name,attributes:n(t.attributes)}}))}}},{key:"_transformResource",value:function(t){var e=this,r=t.attributes||{};return{attributes:Object.entries(r).map(function(t){var r=pt(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}},{key:"_transformInstrumentationScope",value:function(t){var e=this;return{name:t.name||"",version:t.version||"",attributes:(t.attributes||[]).map(function(t){return{key:t.key,value:e._transformAnyValue(t.value)}})}}},{key:"_transformAnyValue",value:function(t){var e=this;if(null==t)return{stringValue:""};var r=ft(t);return"string"===r?{stringValue:t}:"number"===r?Number.isInteger(t)?{intValue:t.toString()}:{doubleValue:t}:"boolean"===r?{boolValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(function(t){return e._transformAnyValue(t)})}}:"object"===r?{kvlistValue:{values:Object.entries(t).map(function(t){var r=pt(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}:{stringValue:String(t)}}}],e&&vt(t.prototype,e),r&&vt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),gt=[];var wt={gen:function(){var t=new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:16);return crypto.getRandomValues(t),Array.from(t,function(t){return t.toString(16).padStart(2,"0")}).join("")}};function kt(t){return kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},kt(t)}function St(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function _t(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.session||(this.getSession()||this.createSession(),this.initSessionAttributes(t)),this}},{key:"getSession",value:function(){try{var t=this.window.sessionStorage.getItem(jt);if(!t)return null;this.session=JSON.parse(t)}catch(t){return null}return this}},{key:"createSession",value:function(){return this.session={id:wt.gen(),createdAt:Date.now()},this.setSession(this.session)}},{key:"setSession",value:function(t){var e=JSON.stringify(t);try{this.window.sessionStorage.setItem(jt,e)}catch(t){return null}return this}},{key:"attributes",get:function(){return this._attributes}},{key:"setAttributes",value:function(t){return this._attributes=_t(_t({},this._attributes),t),this}},{key:"setUser",value:function(t){return this.setAttributes({"user.id":null==t?void 0:t.id,"user.email":null==t?void 0:t.email,"user.name":(null==t?void 0:t.name)||(null==t?void 0:t.username)}),this}},{key:"initSessionAttributes",value:function(t){var e,r,n;return this.setAttributes(_t({"session.id":this.session.id,"browser.brands":null===(e=navigator.userAgentData)||void 0===e?void 0:e.brands,"browser.language":navigator.language,"browser.mobile":null===(r=navigator.userAgentData)||void 0===r?void 0:r.mobile,"browser.platform":null===(n=navigator.userAgentData)||void 0===n?void 0:n.platform,"client.address":"$remote_ip","rollbar.notifier.framework":"browser-js","user_agent.original":navigator.userAgent},t)),this}}],e&&Ot(t.prototype,e),r&&Ot(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),Tt=function(){},Pt={debug:0,info:1,warn:2,error:3,disable:4},At={error:function(){for(var t=arguments.length,e=new Array(t),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function qt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.exporter=e,this.options=r,this.pendingSpans=new Map,this.transforms=[this.userTransform.bind(this)]},e=[{key:"addTransform",value:function(t){this.transforms.unshift(t)}},{key:"userTransform",value:function(t){this.options.transformSpan&&this.options.transformSpan({span:t})}},{key:"applyTransforms",value:function(t){var e,r=Lt(this.transforms);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{n(t)}catch(t){Rt.error("Error running span transform callback",t)}}}catch(t){r.e(t)}finally{r.f()}}},{key:"onStart",value:function(t,e){this.pendingSpans.set(t.span.spanContext.spanId,t)}},{key:"onEnd",value:function(t){this.applyTransforms(t.span),this.exporter.export([t.export()]),this.pendingSpans.delete(t.span.spanContext.spanId)}}],e&&Nt(t.prototype,e),r&&Nt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Ut(t){return Ut="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ut(t)}function Ht(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Ft(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ft(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ft(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;return this.span.ended||this.span.events.push({name:t,attributes:e,time:r||ct.now(),droppedAttributesCount:0}),this}},{key:"isRecording",value:function(){return!1===this.span.ended}},{key:"end",value:function(t,e){t&&this.setAttributes(t),this.span.endTime=e||ct.now(this.usePerformance),this.span.ended=!0,this.spanProcessor.onEnd(this)}},{key:"export",value:function(){return this.span}}],e&&Jt(t.prototype,e),r&&Jt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Wt(t){return Wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wt(t)}function $t(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Gt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.tracing.contextManager.active(),u=this.tracing.getSpan(s),l=null==u?void 0:u.spanContext(),c=wt.gen(8),f=null;l?(o=l.traceId,f=l.traceState,i=l.spanId):o=wt.gen(16);var p={traceId:o,spanId:c,traceFlags:0,traceState:f},d={attributes:Gt(Gt({},(null===(e=this.tracing.resource)||void 0===e?void 0:e.attributes)||{}),(null===(r=a.resource)||void 0===r?void 0:r.attributes)||{})};return new Bt({resource:d,scope:this.tracing.scope,session:null===(n=this.tracing.session)||void 0===n?void 0:n.session,context:s,spanContext:p,name:t,kind:0,parentSpanId:i,spanProcessor:this.spanProcessor,startTime:a.startTime,usePerformance:a.usePerformance})}}],e&&Xt(t.prototype,e),r&&Xt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Kt(t){return Kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Kt(t)}function Yt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function te(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:16;return wt.gen(t)}},{key:"createTracer",value:function(){this.contextManager=new st,this.exporter=new bt(this.api,this.options),this.spanProcessor=new Mt(this.exporter,this.options.tracing),this.tracer=new Qt(this,this.spanProcessor)}},{key:"getTracer",value:function(){return this.tracer}},{key:"addSpanTransform",value:function(t){this.spanProcessor.addTransform(t)}},{key:"getSpan",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active()).getValue(ie)}},{key:"setSpan",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active(),e=arguments.length>1?arguments[1]:void 0;return t.setValue(ie,e)}},{key:"startSpan",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.contextManager.active();return this.tracer.startSpan(t,e,r)}},{key:"with",value:function(t,e,r){for(var n,o=arguments.length,i=new Array(o>3?o-3:0),a=3;a=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function le(t,e){if(t){if("string"==typeof t)return ce(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ce(t,e):void 0}}function ce(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2*e?t.slice(0,e).concat(t.slice(r-e)):t}function de(t,e,r){r=void 0===r?30:r;var n,o=t.data.body;if(o.trace_chain){var i,a=ue(o.trace_chain);try{for(a.s();!(i=a.n()).done;){var s=i.value;n=pe(n=s.frames,r),s.frames=n}}catch(t){a.e(t)}finally{a.f()}}else o.trace&&(n=pe(n=o.trace.frames,r),o.trace.frames=n);return[t,m(t,e)]}function he(t,e){return e&&e.length>t?e.slice(0,t-3).concat("..."):e}function ye(t,e,r){return e=L(e,function e(r,n,o){switch(a(n)){case"string":return he(t,n);case"object":case"array":return L(n,e,o);default:return n}}),[e,m(e,r)]}function ve(t){return t.exception&&(delete t.exception.description,t.exception.message=he(255,t.exception.message)),t.frames=pe(t.frames,1),t}function me(t,e){var r=t.data.body;if(r.trace_chain){var n,o=r.trace_chain,i=ue(o.entries());try{for(i.s();!(n=i.n()).done;){var a=se(n.value,2),s=a[0],u=a[1];o[s]=ve(u)}}catch(t){i.e(t)}finally{i.f()}}else r.trace&&(r.trace=ve(r.trace));return[t,m(t,e)]}function be(t,e){return function(t){for(var e=0,r=t.length,n=0;ne}var ge={truncate:function(t,e,r){r=void 0===r?524288:r;for(var n,o,i,a=[fe,de,ye.bind(null,1024),ye.bind(null,512),ye.bind(null,256),me];n=a.shift();)if(t=(o=n(t,e))[0],(i=o[1]).error||!be(i.value,r))return i;return i},raw:fe,truncateFrames:de,truncateStrings:ye,maybeTruncateValue:he};function we(t){if(!i(t.context,"string")){var e=m(t.context);e.error?t.context="Error: could not serialize 'context'":t.context=e.value||"",t.context.length>255&&(t.context=t.context.substr(0,255))}return{data:t}}function ke(t,e,r){var n=e.hostname,o=e.protocol,i=e.port,a=e.path,s=e.search,u=t.timeout,l=function(t){var e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=t.defaultTransport||"xhr";void 0===e.fetch&&(r="xhr");void 0===e.XMLHttpRequest&&(r="fetch");return r}(t),c=t.proxy;if(t.endpoint){var f=r.parse(t.endpoint);n=f.hostname,o=f.protocol,i=f.port,a=f.pathname,s=f.search}return{timeout:u,hostname:n,protocol:o,port:i,path:a,search:s,proxy:c,transport:l}}function Se(t,e){var r=t.protocol||"https:",n=t.port||("http:"===r?80:"https:"===r?443:void 0),o=t.hostname,i=t.path,a=t.timeout,s=t.transport;return t.search&&(i+=t.search),t.proxy&&(i=r+"//"+o+i,o=t.proxy.host||t.proxy.hostname,n=t.proxy.port,r=t.proxy.protocol||r),{timeout:a,protocol:r,hostname:o,path:i,port:n,method:e,transport:s}}function _e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Oe(t){for(var e=1;e3?(o=h===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&dn||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,h),s=c,u=h;(e=s<2?t:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=t}else if((e=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(e){i=t,s=1,u=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(Ie(e={},n,function(){return this}),e),f=l.prototype=s.prototype=Object.create(c);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,Ie(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,Ie(f,"constructor",l),Ie(l,"constructor",u),u.displayName="GeneratorFunction",Ie(l,o,"GeneratorFunction"),Ie(f),Ie(f,o,"Generator"),Ie(f,n,function(){return this}),Ie(f,"toString",function(){return"[object Generator]"}),(je=function(){return{w:i,m:p}})()}function Ie(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}Ie=function(t,e,r,n){function i(e,r){Ie(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},Ie(t,e,r,n)}function Te(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function Pe(t,e){for(var r=0;r1&&void 0!==o[1]?o[1]:{},n=Se(this.OTLPTransportOptions,"POST"),t.a(2,this._postPromise({accessToken:this.accessToken,options:n,payload:e,headers:r}))},t,this)}),o=function(){var t=this,e=arguments;return new Promise(function(r,o){var i=n.apply(t,e);function a(t){Te(i,r,o,a,s,"next",t)}function s(t){Te(i,r,o,a,s,"throw",t)}a(void 0)})},function(t){return o.apply(this,arguments)})},{key:"buildJsonPayload",value:function(t,e){var r,n=we(t);return(r=this.truncation?this.truncation.truncate(n):m(n)).error?(e&&e(r.error),null):r.value}},{key:"postJsonPayload",value:function(t,e){var r=Se(this.transportOptions,"POST");this.transport.postJsonPayload(this.accessToken,r,t,e)}},{key:"configure",value:function(t){var e=this.options;return this.options=A(e,t),this.transportOptions=qe(this.options,this.url),this.OTLPTransportOptions=Ne(this.options,this.url),void 0!==this.options.accessToken&&(this.accessToken=this.options.accessToken),this}}],e&&Pe(t.prototype,e),r&&Pe(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r,n,o}();function qe(t,e){return ke(t,Re,e)}function Ne(t,e){var r;return ke(t=Oe(Oe({},t),{},{endpoint:null===(r=t.tracing)||void 0===r?void 0:r.endpoint}),Ce,e)}var De=Le,Me="3.1.0",Ue="api.rollbar.com/api/1/item/",He="debug",Fe="debug",Je="error",Ve=/(^|@)\S+:\d+/,Be=/^\s*at .*(\S+:\d+|\(native\))/m,We=/^(eval@)?(\[native code\])?$/;function $e(t,e){if(void 0!==t.stacktrace||void 0!==t["opera#sourceloc"])return function(t,e){return!t.stacktrace||t.message.includes("\n")&&t.message.split("\n").length>t.stacktrace.split("\n").length?function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)/i,n=t.message.split("\n"),o=[],i=2,a=n.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;return o.match(/\(([^)]*)\)/)&&(e=o.replace(/^[^(]+\(([^)]*)\)$/,"$1")),{function:i,args:void 0===e||"[arguments not available]"===e?void 0:e.split(","),file:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}(t,e):function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,n=t.stacktrace.split("\n"),o=[],i=0,a=n.length;i"].includes(n[0])?void 0:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}function Ze(t,e){return ze(t.split("\n").filter(function(t){return!t.match(We)}),e).map(function(t){if(t.includes(" > eval")&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),t.includes("@")||t.includes(":")){var e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,r=t.match(e),n=r&&r[1]?r[1]:void 0,o=Ge(t.replace(e,""));return{function:n,file:o[0],line:o[1]?+o[1]:void 0,col:o[2]?+o[2]:void 0,raw:t}}return{function:t}})}function Qe(t){return t.map(function(t){return{functionName:t.function,args:t.args,fileName:t.file,lineNumber:t.line,columnNumber:t.col,source:t.raw}})}var Ke=new RegExp("^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ");function Ye(){return null}function tr(t){var e={};return e._stackFrame=t,e.url=t.fileName,e.line=t.lineNumber,e.func=t.functionName,e.column=t.columnNumber,e.args=t.args,e.context=null,e}function er(t,e){return{stack:function(){var r=[];e=e||0;try{r=function(t,e){return Qe($e(t,e))}(t)}catch(t){r=[]}for(var n=[],o=e;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ir(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rthis.options.maxRetries&&(o=!1))}o?this._retryApiRequest(r,n):n(e)}},{key:"_retryApiRequest",value:function(t,e){var r=this;this.retryQueue.push({item:t,callback:e}),this.retryHandle||(this.retryHandle=setInterval(function(){for(;r.retryQueue.length;){var t=r.retryQueue.shift();r._makeApiRequest(t.item,t.callback)}},this.options.retryInterval))}},{key:"_dequeuePendingRequest",value:function(t){var e=this.pendingRequests.indexOf(t);-1!==e&&(this.pendingRequests.splice(e,1),this._maybeCallWait())}},{key:"_maybeLog",value:function(t,e){if(this.logger&&this.options.verbose){var r=e||j(t,"body.trace.exception.message")||j(t,"body.trace_chain.0.exception.message");if(r)return void this.logger.error(r);(r=j(t,"body.message.body"))&&this.logger.log(r)}}},{key:"_maybeCallWait",value:function(){return!(!s(this.waitCallback)||0!==this.pendingItems.length||0!==this.pendingRequests.length||(this.waitIntervalID&&(this.waitIntervalID=clearInterval(this.waitIntervalID)),this.waitCallback(),0))}}],r&&yr(e.prototype,r),n&&yr(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();mr=wr,gr=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE","EAI_AGAIN"],(br=vr(br="RETRIABLE_ERRORS"))in mr?Object.defineProperty(mr,br,{value:gr,enumerable:!0,configurable:!0,writable:!0}):mr[br]=gr;var kr=wr;function Sr(t){return Sr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sr(t)}function _r(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.startTime=Date.now(),this.counter=0,this.perMinCounter=0,this.platform=null,this.platformOptions={},this.configureGlobal(e)}return function(t,e,r){return e&&_r(t.prototype,e),r&&_r(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(t,[{key:"configureGlobal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.startTime,n=e.maxItems,o=e.itemsPerMinute;void 0!==r&&(t.globalSettings.startTime=r),void 0!==n&&(t.globalSettings.maxItems=n),void 0!==o&&(t.globalSettings.itemsPerMinute=o)}},{key:"shouldSend",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=r-this.startTime;(n<0||n>=6e4)&&(this.startTime=r,this.perMinCounter=0);var o=t.globalSettings.maxItems,i=t.globalSettings.itemsPerMinute;if(Er(e,o,this.counter))return jr(this.platform,this.platformOptions,"".concat(o," max items reached"),!1);if(Er(e,i,this.perMinCounter))return jr(this.platform,this.platformOptions,"".concat(i," items per minute reached"),!1);this.counter+=1,this.perMinCounter+=1;var a=!Er(e,o,this.counter),s=a,u=a&&!Er(e,i,this.perMinCounter);return jr(this.platform,this.platformOptions,null,u,o,i,s)}},{key:"setPlatformOptions",value:function(t,e){this.platform=t,this.platformOptions=e}}])}();function Er(t,e,r){return!t.ignoreRateLimit&&e>=1&&r>e}function jr(t,e,r,n,o,i,a){var s=null,u=r?new Error(r):null;return u||n||(s=function(t,e,r,n,o){var i=e.environment||e.payload&&e.payload.environment,a=o?"item per minute limit reached, ignoring errors until timeout":"maxItems has been hit, ignoring errors until reset.",s={body:{message:{body:a,extra:{maxItems:r,itemsPerMinute:n}}},language:"javascript",environment:i,notifier:{version:e.notifier&&e.notifier.version||e.version}};"browser"===t?(s.platform="browser",s.framework="browser-js",s.notifier.name="rollbar-browser-js"):"server"===t?(s.framework=e.framework||"node-js",s.notifier.name=e.notifier.name):"react-native"===t&&(s.framework=e.framework||"react-native",s.notifier.name=e.notifier.name);return s}(t,e,o,i,a)),{error:u,shouldSend:n,payload:s}}!function(t,e,r){(e=Or(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}(xr,"globalSettings",{startTime:Date.now(),maxItems:void 0,itemsPerMinute:void 0});var Ir=xr;function Tr(t,e,r,n,o,i,a){this.options=A(t),this.logger=r,Tr.rateLimiter.configureGlobal(this.options),Tr.rateLimiter.setPlatformOptions(a,this.options),this.api=e,this.queue=new kr(Tr.rateLimiter,e,r,this.options,i),this.tracing=o;var s=this.options.tracer||null;Ar(s)?(this.tracer=s,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier=new dr(this.queue,this.options),this.telemeter=n,Pr(t),this.lastError=null,this.lastErrorHash="none"}function Pr(t){t.stackTraceLimit&&(Error.stackTraceLimit=t.stackTraceLimit)}function Ar(t){if(!t)return!1;if(!t.scope||"function"!=typeof t.scope)return!1;var e=t.scope();return!(!e||!e.active||"function"!=typeof e.active)}Tr.rateLimiter=new Ir({maxItems:0,itemsPerMinute:60}),Tr.prototype.global=function(t){return Tr.rateLimiter.configureGlobal(t),this},Tr.prototype.configure=function(t,e){var r=this.options,n={};e&&(n={payload:e}),this.options=A(r,t,n);var o=this.options.tracer||null;return Ar(o)?(this.tracer=o,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier&&this.notifier.configure(this.options),this.telemeter&&this.telemeter.configure(this.options),Pr(t),this.global(this.options),Ar(t.tracer)&&(this.tracer=t.tracer),this},Tr.prototype.log=function(t){var e=this._defaultLogLevel();return this._log(e,t)},Tr.prototype.debug=function(t){this._log("debug",t)},Tr.prototype.info=function(t){this._log("info",t)},Tr.prototype.warn=function(t){this._log("warning",t)},Tr.prototype.warning=function(t){this._log("warning",t)},Tr.prototype.error=function(t){this._log("error",t)},Tr.prototype.critical=function(t){this._log("critical",t)},Tr.prototype.wait=function(t){this.queue.wait(t)},Tr.prototype.captureEvent=function(t,e,r){return this.telemeter&&this.telemeter.captureEvent(t,e,r)},Tr.prototype.captureDomContentLoaded=function(t){return this.telemeter&&this.telemeter.captureDomContentLoaded(t)},Tr.prototype.captureLoad=function(t){return this.telemeter&&this.telemeter.captureLoad(t)},Tr.prototype.buildJsonPayload=function(t){return this.api.buildJsonPayload(t)},Tr.prototype.sendJsonPayload=function(t){this.api.postJsonPayload(t)},Tr.prototype._log=function(t,e){var r;if(e.callback&&(r=e.callback,delete e.callback),this.options.ignoreDuplicateErrors&&this._sameAsLastError(e)){if(r){var n=new Error("ignored identical item");n.item=e,r(n)}}else try{e.level=e.level||t,this._addItemAttributes(e),this._addTracingInfo(e);var o=this.telemeter;o&&(o._captureRollbarItem(e),e.telemetryEvents=o.copyEvents()||[]),this.notifier.log(e,r)}catch(t){r&&r(t),this.logger.error(t)}},Tr.prototype._addItemAttributes=function(t){var e,r,n=null===(e=this.tracing)||void 0===e?void 0:e.getSpan(),o=[{key:"session_id",value:function(t){var e=t.asyncLocalStorage;if(!e||"function"!=typeof e.getStore)return null;var r=e.getStore();return(null==r?void 0:r.sessionId)||null}(this)||(null===(r=this.tracing)||void 0===r?void 0:r.sessionId)},{key:"span_id",value:null==n?void 0:n.spanId},{key:"trace_id",value:null==n?void 0:n.traceId}];t._isUncaught&&o.push({key:"is_uncaught",value:"true"}),E(t.data,o),null==n||n.addEvent("rollbar.occurrence",[{key:"rollbar.occurrence.uuid",value:t.uuid}])},Tr.prototype._defaultLogLevel=function(){return this.options.logLevel||"debug"},Tr.prototype._sameAsLastError=function(t){if(!t._isUncaught)return!1;var e=function(t){var e=t.message||"",r=(t.err||{}).stack||String(t.err);return e+"::"+r}(t);return this.lastErrorHash===e||(this.lastError=t.err,this.lastErrorHash=e,!1)},Tr.prototype._addTracingInfo=function(t){if(this.tracer){var e=this.tracer.scope().active();if(function(t){if(!t||!t.context||"function"!=typeof t.context)return!1;var e=t.context();if(!e||!e.toSpanId||!e.toTraceId||"function"!=typeof e.toSpanId||"function"!=typeof e.toTraceId)return!1;return!0}(e)){e.setTag("rollbar.error_uuid",t.uuid),e.setTag("rollbar.has_error",!0),e.setTag("error",!0),e.setTag("rollbar.item_url","https://rollbar.com/item/uuid/?uuid=".concat(t.uuid)),e.setTag("rollbar.occurrence_url","https://rollbar.com/occurrence/uuid/?uuid=".concat(t.uuid));var r=e.context().toSpanId(),n=e.context().toTraceId();t.custom?(t.custom.opentracing_span_id=r,t.custom.opentracing_trace_id=n):t.custom={opentracing_span_id:r,opentracing_trace_id:n}}}};var Rr=Tr;function Cr(t,e,r){t._isUncaught&&(t.data._isUncaught=!0),t._originalArgs&&(t.data._originalArgs=t._originalArgs),r(null,t)}function Lr(t,e,r){var n=e.payload||{};n.body&&delete n.body,t.data=A(t.data,n),r(null,t)}function qr(t,e,r){t.telemetryEvents&&I(t,"data.body.telemetry",t.telemetryEvents),r(null,t)}function Nr(t,e,r){if(t.message){var n="data.body.trace_chain.0",o=j(t,n);if(o||(o=j(t,n="data.body.trace")),o){if(!o.exception||!o.exception.description)return I(t,n+".exception.description",t.message),void r(null,t);I(t,n+".extra",A(j(t,n+".extra")||{},{message:t.message}))}r(null,t)}else r(null,t)}function Dr(t){return function(e,r,n){var o,a=A(e),l=null;try{s(r.transform)&&(l=r.transform(a.data,e))}catch(o){return r.transform=null,t.error("Error while calling custom transform() function. Removing custom transform().",o),void n(null,e)}u(o=l)&&i(o.then,"function")?l.then(function(t){t&&(a.data=t),n(null,a)},function(t){n(t,e)}):n(null,a)}}function Mr(t,e,r){if(!e.sendConfig)return r(null,t);var n=j(t,"data.custom")||{};n._rollbarConfig=e,t.data.custom=n,r(null,t)}function Ur(t,e){s(t[e])&&(t[e]=t[e].toString())}function Hr(t,e,r){var n=e._configuredOptions;Ur(n,"transform"),Ur(n,"checkIgnore"),Ur(n,"onSendCallback"),delete n.accessToken,t.data.notifier.configured_options=n,r(null,t)}function Fr(t,e,r){var n=A(t.notifier.client.notifier.diagnostic,t.diagnostic);if(j(t,"err._isAnonymous")&&(n.is_anonymous=!0),t._isUncaught&&(n.is_uncaught=t._isUncaught),t.err)try{n.raw_error={message:t.err.message,name:t.err.name,constructor_name:t.err.constructor&&t.err.constructor.name,filename:t.err.fileName,line:t.err.lineNumber,column:t.err.columnNumber,stack:t.err.stack}}catch(t){n.raw_error={failed:String(t)}}t.data.notifier.diagnostic=A(t.data.notifier.diagnostic,n),r(null,t)}function Jr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:null)||t.stackInfo).stack;return e&&0===e.length&&t._unhandledStackInfo&&t._unhandledStackInfo.stack&&(e=t._unhandledStackInfo.stack),e}function Yr(t,e,r){var n=t&&t.data.description,o=t&&t.custom,i=Kr(t,e),a=nr.guessErrorClass(e.message),s={exception:{class:tn(e,a[0],r),message:a[1]}};if(n&&(s.exception.description=n),i){var u,l,c,f,p,d,y,v;for(0===i.length&&(s.exception.stack=e.rawStack,s.exception.raw=String(e.rawException)),s.frames=[],y=0;yt.length)&&(e=t.length);for(var r=0,n=Array(e);r=400&&t.status<600}(e)){if(403===e.status){var o=t.value&&t.value.message;Rt.error(o)}u(new Error(String(e.status)))}else{u(un("XHR response had no status code (likely connection failure)"))}}}catch(t){var a;a=t&&t.stack?t:new Error(t),u(a)}};if(e.open(o,n,!0),e.setRequestHeader){e.setRequestHeader("Content-Type","application/json"),e.setRequestHeader("X-Rollbar-Access-Token",r);for(var d=0,h=Object.entries(null!=s?s:{});ds)?(a=e.path,e.path=a.substring(0,s)+i+"&"+a.substring(s+1)):-1!==u?(a=e.path,e.path=a.substring(0,u)+i+a.substring(u)):e.path=e.path+i}(t,e,r);var i=v(e);this._makeZoneRequest({accessToken:t,url:i,method:"GET",callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},cn.prototype.post=function(t){var e,r=t.accessToken,n=t.options,o=t.payload,i=t.headers,a=t.callback,u=t.requestFactory;if(a&&s(a)||(a=function(){}),!o)return a(new Error("Cannot send empty request"));if((e=this.truncation&&o.body?this.truncation.truncate(o):m(o)).error)return a(e.error);var l=v(n);this._makeZoneRequest({accessToken:r,url:l,method:"POST",payload:e.value,headers:i,callback:a,requestFactory:u,timeout:n.timeout,transport:n.transport})},cn.prototype.postJsonPayload=function(t,e,r,n,o){n&&s(n)||(n=function(){});var i=v(e);this._makeZoneRequest({accessToken:t,url:i,method:"POST",payload:r,callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},cn.prototype._makeZoneRequest=function(){var t=this,e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=e&&e.Zone&&e.Zone.root,n=Array.prototype.slice.call(arguments);r?r.run(function(){t._makeRequest.apply(void 0,n)}):this._makeRequest.apply(void 0,n)},cn.prototype._makeRequest=function(t){var e=t.payload,r=t.callback,n=t.transport;if("undefined"!=typeof RollbarProxy)return function(t,e){(new RollbarProxy).sendJsonPayload(t,function(t){},function(t){e(new Error(t))})}(e,r);"fetch"===n?on(t):ln(t)};var fn,pn=cn;function dn(t){var e,r,n={protocol:null,auth:null,host:null,path:null,hash:null,href:t,hostname:null,port:null,pathname:null,search:null,query:null};if(-1!==(e=t.indexOf("//"))?(n.protocol=t.substring(0,e),r=e+2):r=0,-1!==(e=t.indexOf("@",r))&&(n.auth=t.substring(r,e),r=e+1),-1===(e=t.indexOf("/",r))){if(-1===(e=t.indexOf("?",r)))return-1===(e=t.indexOf("#",r))?n.host=t.substring(r):(n.host=t.substring(r,e),n.hash=t.substring(e)),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),n;n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e}else n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e;if(-1===(e=t.indexOf("#",r))?n.path=t.substring(r):(n.path=t.substring(r,e),n.hash=t.substring(e)),n.path){var o=n.path.split("?");n.pathname=o[0],n.query=o[1],n.search=n.query?"?"+n.query:null}return n}function hn(t){return hn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hn(t)}function yn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function vn(t){for(var e=1;e0&&I(e,"data.request",o),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t)return n(null,e);var o=t.navigator||{},i=t.screen||{};I(e,"data.client",{runtime_ms:e.timestamp-t._rollbarStartTime,timestamp:Math.round(e.timestamp/1e3),javascript:{browser:o.userAgent,language:o.language,cookie_enabled:o.cookieEnabled,screen:{width:i.width,height:i.height}}}),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t||!t.navigator)return n(null,e);for(var o,i=[],a=t.navigator.plugins||[],s=0,u=a.length;s=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Pn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;i--){if(e=Rn(t[i]),r=o+3*n.length+e.length,i=83){n.unshift("...");break}n.unshift(e),o+=e.length}return n.join(" > ")}(function(t){for(var e,r=[],n=0;t&&n<5&&(e=Cn(t))&&"html"!==e.tagName;n++)r.unshift(e),t=t.parentNode;return r}(t))}function Rn(t){if(!t||!t.tagName)return"";var e=[t.tagName];t.id&&e.push("#"+t.id),t.classes&&e.push("."+t.classes.join("."));var r,n=Tn(t.attributes);try{for(n.s();!(r=n.n()).done;){var o=r.value;e.push("["+o.key+'="'+o.value+'"]')}}catch(t){n.e(t)}finally{n.f()}return e.join("")}function Cn(t){if(!t||!t.tagName)return null;var e,r={};r.tagName=t.tagName.toLowerCase(),t.id&&(r.id=t.id),(e=t.className)&&"string"==typeof e&&(r.classes=e.split(/\s+/));r.attributes=[];for(var n=0,o=["type","name","title","alt"];n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Un(t,e){if(t){if("string"==typeof t)return Hn(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Hn(t,e):void 0}}function Hn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r3)){var e=T();a.__rollbar_xhr.end_time_ms=e;var r=null;if(a.__rollbar_xhr.response_content_type=a.getResponseHeader("Content-Type"),t.autoInstrument.networkResponseHeaders){var o=t.autoInstrument.networkResponseHeaders;r={};try{var i;if(!0===o){var s=a.getAllResponseHeaders();if(s){var u,l,c,f=Mn(s.trim().split(/[\r\n]+/));try{for(f.s();!(c=f.n()).done;){i=(u=c.value.split(": ")).shift(),l=u.join(": "),r[i]=l}}catch(t){f.e(t)}finally{f.f()}}}else{var p,d=Mn(o);try{for(d.s();!(p=d.n()).done;){var h=p.value;r[h]=a.getResponseHeader(h)}}catch(t){d.e(t)}finally{d.f()}}}catch(t){}}var y=null;if(t.autoInstrument.networkResponseBody)try{y=a.responseText}catch(t){}var v=null;(y||r)&&(v={},y&&(t.isJsonContentType(a.__rollbar_xhr.response_content_type)?v.body=t.scrubJson(y):v.body=y),r&&(v.headers=r)),v&&(a.__rollbar_xhr.response=v);try{var m=a.status;m=1223===m?204:m,a.__rollbar_xhr.status_code=m,t.addOtelNetworkResponse(a.__rollbar_event,e,m),a.__rollbar_event.level=t.telemeter.levelFromStatus(m),t.errorOnHttpStatus(a.__rollbar_xhr)}catch(t){}}}return e("onload",a),e("onerror",a),e("onprogress",a),"onreadystatechange"in a&&s(a.onreadystatechange)?In(a,"onreadystatechange",function(e){return t.rollbar.wrap(e,void 0,l)}):a.onreadystatechange=l,a.__rollbar_xhr&&t.trackHttpErrors()&&(a.__rollbar_xhr.stack=(new Error).stack),r.apply(this,arguments)}},this.replacements,"network")}"fetch"in this._window&&In(this._window,"fetch",function(e){return function(r,n){var o,a,s=Array.prototype.slice.call(arguments),u=s[0],l="GET",c=Wn(u);i(u,"string")||c?a=c?u.toString():u:u&&(a=u.url,u.method&&(l=u.method)),s[1]&&s[1].method&&(l=s[1].method);var f=null===(o=t.rollbar)||void 0===o?void 0:o.tracing;R(t.options,f,a)&&C(s,{baggage:"rollbar.session.id=".concat(f.sessionId)});var p={method:l,url:a,status_code:null,start_time_ms:T(),end_time_ms:null};if(s[1]&&s[1].headers){var d=jn(s[1].headers);p.request_content_type=d.get("Content-Type"),t.autoInstrument.networkRequestHeaders&&(p.request_headers=t.fetchHeaders(d,t.autoInstrument.networkRequestHeaders))}t.autoInstrument.networkRequestBody&&(s[1]&&s[1].body?p.request=s[1].body:s[0]&&!i(s[0],"string")&&s[0].body&&(p.request=s[0].body));var h=t.captureNetwork(p,"fetch",void 0);return t.trackHttpErrors()&&(p.stack=(new Error).stack),e.apply(this,s).then(function(e){var r=T();p.end_time_ms=r,p.status_code=e.status,t.addOtelNetworkResponse(h,r,e.status),p.response_content_type=e.headers.get("Content-Type");var n=null;t.autoInstrument.networkResponseHeaders&&(n=t.fetchHeaders(e.headers,t.autoInstrument.networkResponseHeaders));var o=null;return t.autoInstrument.networkResponseBody&&"function"==typeof e.text&&(o=e.clone().text()),(n||o)&&(p.response={},o&&("function"==typeof o.then?o.then(function(e){e&&t.isJsonContentType(p.response_content_type)?p.response.body=t.scrubJson(e):p.response.body=e}):p.response.body=o),n&&(p.response.headers=n)),t.errorOnHttpStatus(p),e})}},this.replacements,"network")}},{key:"captureNetwork",value:function(t,e,r){return t.request&&this.isJsonContentType(t.request_content_type)&&(t.request=this.scrubJson(t.request)),this.telemeter.captureNetwork(t,e,r)}},{key:"isJsonContentType",value:function(t){return!!(t&&i(t,"string")&&t.toLowerCase().includes("json"))}},{key:"addOtelNetworkResponse",value:function(t,e,r){t.otelAttributes&&(t.otelAttributes["response.timeUnixNano"]=(1e6*e).toString(),t.otelAttributes.statusCode=r)}},{key:"scrubJson",value:function(t){return JSON.stringify(H(JSON.parse(t),this.options.scrubFields))}},{key:"fetchHeaders",value:function(t,e){var r={};try{if(!0===e){if("function"==typeof t.entries)for(var n=t.entries(),o=n.next();!o.done;)r[o.value[0]]=o.value[1],o=n.next()}else{var i,a=Mn(e);try{for(a.s();!(i=a.n()).done;){var s=i.value;r[s]=t.get(s)}}catch(t){a.e(t)}finally{a.f()}}}catch(t){}return r}},{key:"trackHttpErrors",value:function(){return this.autoInstrument.networkErrorOnHttp5xx||this.autoInstrument.networkErrorOnHttp4xx||this.autoInstrument.networkErrorOnHttp0}},{key:"errorOnHttpStatus",value:function(t){var e=t.status_code;if(e>=500&&this.autoInstrument.networkErrorOnHttp5xx||e>=400&&this.autoInstrument.networkErrorOnHttp4xx||0===e&&this.autoInstrument.networkErrorOnHttp0){var r=new Error("HTTP request failed with Status "+e);r.stack=t.stack,this.rollbar.error(r,{skipFrames:1})}}},{key:"deinstrumentConsole",value:function(){for(var t;this.replacements.log.length;)t=this.replacements.log.shift(),this._window.console[t[0]]=t[1]}},{key:"instrumentConsole",value:function(){var t;if(null!==(t=this._window)&&void 0!==t&&null!==(t=t.console)&&void 0!==t&&t.log){var e=this,r=this._window.console;try{for(var n=0,o=["debug","info","warn","error","log"];n500&&(n=n.substr(0,497)+"...");break;case"null":n="null";break;case"undefined":n="undefined";break;case"symbol":n=n.toString()}o.push(n)}return o.join(" ")}(t);e.telemeter.captureLog(r,i,null,T()),n&&Function.prototype.apply.call(n,o,t)},e.replacements.log.push([t,n])}}},{key:"deinstrumentDom",value:function(){this.removeListeners("dom")}},{key:"instrumentDom",value:function(){var t=this;this.addListener("dom",this._window,["click","dblclick","contextmenu"],function(e){return t.handleEvent("click",e)}),this.addListener("dom",this._window,["dragstart","dragend","dragenter","dragleave","drop"],function(e){return t.handleEvent("dragdrop",e)}),this.addListener("dom",this._window,["blur","focus"],function(e){return t.handleEvent("focus",e)}),this.addListener("dom",this._window,["submit","invalid"],function(e){return t.handleEvent("form",e)}),this.addListener("dom",this._window,["input","change"],function(e){return t.handleEvent("input",e)}),this.addListener("dom",this._window,["resize"],function(e){return t.handleEvent("resize",e)}),this.addListener("dom",this._document,["DOMContentLoaded"],function(e){return t.handleEvent("contentLoaded",e)})}},{key:"handleEvent",value:function(t,e){try{return{click:this.handleClick,dragdrop:this.handleDrag,focus:this.handleFocus,form:this.handleForm,input:this.handleInput,resize:this.handleResize,contentLoaded:this.handleContentLoaded}[t].call(this,e)}catch(r){Rt.log("".concat(t," handler error"),e,r,r.stack)}}},{key:"handleContentLoaded",value:function(t){this.rollbar.triggerReplay({type:"navigation",path:new URL(this._location.href).pathname})}},{key:"handleClick",value:function(t){var e,r=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase();["input","select","textarea"].includes(r)||this.telemeter.captureClick({type:t.type,isSynthetic:!t.isTrusted,element:An(t.target),timestamp:T()})}},{key:"handleFocus",value:function(t){var e,r=t.type,n=null!==(e=t.target)&&void 0!==e&&e.window?"window":An(t.target);this.telemeter.captureFocus({type:r,isSynthetic:!t.isTrusted,element:n,timestamp:T()})}},{key:"handleForm",value:function(t){}},{key:"handleResize",value:function(t){var e=window.screen.width/window.innerWidth;this.telemeter.captureResize({type:t.type,isSynthetic:!t.isTrusted,width:window.innerWidth,height:window.innerHeight,textZoomRatio:e,timestamp:T()})}},{key:"handleDrag",value:function(t){var e,r,n,o,i,a,s=t.type;if("drop"===s){e=[],r=[];var u,l=Mn([].concat(qn(t.dataTransfer.files),qn(t.dataTransfer.items)));try{for(l.s();!(u=l.n()).done;){var c=u.value;c.kind&&c.type&&(e.push(c.kind),r.push(c.type))}}catch(t){l.e(t)}finally{l.f()}}["drop","dragstart"].includes(s)&&(n=null===(i=t.dataTransfer)||void 0===i?void 0:i.dropEffect,o=null===(a=t.dataTransfer)||void 0===a?void 0:a.effectAllowed);this.telemeter.captureDragDrop({type:s,isSynthetic:!t.isTrusted,element:An(t.target),dropEffect:n,effectAllowed:o,kinds:JSON.stringify(e),mediaTypes:JSON.stringify(r),timestamp:T()})}},{key:"scrubInputValue",value:function(t,e,r,n){var o="******";if("password"===n)return o;if(this.scrubTelemetryInputs)return o;var i=Cn(e);if(this.telemetryScrubber){if(this.telemetryScrubber(i))return o}else if(this.defaultValueScrubber(i))return o;return function(t,e,r){try{var n,o=Tn(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;if("string"==typeof i){if(t.classList.contains(i))return!0}else{var a,s=Tn(t.classList);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(i.test(u))return!0}}catch(t){s.e(t)}finally{s.f()}}}}catch(t){o.e(t)}finally{o.f()}var l,c=Tn(r);try{for(c.s();!(l=c.n()).done;){var f=l.value;if(t.matches(f))return!0}}catch(t){c.e(t)}finally{c.f()}}catch(t){}return!1}(e,this.scrubClasses,this.scrubSelectors)?o:this.maskInputOptions[r.toLowerCase()]||this.maskInputOptions[n]?this.maskInputFn?this.maskInputFn(t,e):o:t}},{key:"handleInput",value:function(t){var e,r,n,o,i=t.type,a=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase(),s=null===(r=t.target)||void 0===r?void 0:r.value,u=(null===(n=t.target)||void 0===n||null===(n=n.attributes)||void 0===n||null===(n=n.type)||void 0===n?void 0:n.value)||(null===(o=t.target)||void 0===o?void 0:o.type);switch(void 0!==s&&(s=this.scrubInputValue(s,t.target,a,u)),i){case"input":if(["radio","checkbox"].includes(u))return;["select","textarea"].includes(a)&&(u=a);break;case"change":if(!["radio","checkbox"].includes(u))return;var l;if("checkbox"===u)s=null===(l=t.target)||void 0===l?void 0:l.checked}this.telemeter.captureInput({type:u,isSynthetic:!t.isTrusted,element:An(t.target),value:s,timestamp:T()})}},{key:"deinstrumentNavigation",value:function(){var t=this._window.chrome;!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState&&Jn(this.replacements,"navigation")}},{key:"instrumentNavigation",value:function(){var t=this._window.chrome;if(!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState){var e=this;In(this._window,"onpopstate",function(t){return function(){var r=e._location.href;e.handleUrlChange(e._lastHref,r),t&&t.apply(this,arguments)}},this.replacements,"navigation"),In(this._window.history,"pushState",function(t){return function(){var r=arguments.length>2?arguments[2]:void 0;return r&&e.handleUrlChange(e._lastHref,String(r)),t.apply(this,arguments)}},this.replacements,"navigation")}}},{key:"handleUrlChange",value:function(t,e){var r=dn(this._location.href),n=dn(e),o=dn(t);this._lastHref=e,r.protocol===n.protocol&&r.host===n.host&&(e=n.path+(n.hash||"")),r.protocol===o.protocol&&r.host===o.host&&(t=o.path+(o.hash||"")),this.telemeter.captureNavigation(t,e,null,T()),this.rollbar.triggerReplay({type:"navigation",path:e})}},{key:"instrumentConnectivity",value:function(){var t=this;this.addListener("connectivity",this._window,["online","offline"],function(e){return t.handleConnectivity(e)})}},{key:"handleConnectivity",value:function(t){var e=t.type;this.telemeter.captureConnectivityChange({type:e,isSynthetic:!t.isTrusted,timestamp:T()})}},{key:"handleCspEvent",value:function(t){var e="Security Policy Violation: blockedURI: "+t.blockedURI+", violatedDirective: "+t.violatedDirective+", effectiveDirective: "+t.effectiveDirective+", ";t.sourceFile&&(e+="location: "+t.sourceFile+", line: "+t.lineNumber+", col: "+t.columnNumber+", "),e+="originalPolicy: "+t.originalPolicy,this.telemeter.captureLog(e,"error",null,T()),this.handleCspError(e)}},{key:"handleCspError",value:function(t){this.autoInstrument.errorOnContentSecurityPolicy&&this.rollbar.error(t)}},{key:"deinstrumentContentSecurityPolicy",value:function(){this.removeListeners("contentsecuritypolicy")}},{key:"instrumentContentSecurityPolicy",value:function(){if("addEventListener"in this._document){var t=this.handleCspEvent.bind(this);this.addListener("contentsecuritypolicy",this._document,["securitypolicyviolation"],t)}}},{key:"addListener",value:function(t,e,r,n){var o=this;if(e.addEventListener){var i,a=Mn(r);try{var s=function(){var r=i.value,a={capture:!0,passive:!0};e.addEventListener(r,n,a,!0),o.eventRemovers[t].push(function(){e.removeEventListener(r,n,a)})};for(a.s();!(i=a.n()).done;)s()}catch(t){a.e(t)}finally{a.f()}}}},{key:"removeListeners",value:function(t){for(;this.eventRemovers[t].length;)this.eventRemovers[t].shift()()}}])}();function Wn(t){return"undefined"!=typeof URL&&t instanceof URL}var $n=Bn;function Gn(t,e,r){if(l(e,"addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var o=function(e,r,o){n.call(this,e,t.wrap(r),o)};o._rollbarOldAdd=n,o.belongsToShim=r,e.addEventListener=o;for(var i=e.removeEventListener;i._rollbarOldRemove&&i.belongsToShim;)i=i._rollbarOldRemove;var a=function(t,e,r){i.call(this,t,e&&e._rollbar_wrapped||e,r)};a._rollbarOldRemove=i,a.belongsToShim=r,e.removeEventListener=a}}var zn=function(t,e,r){if(t){var n,o,i="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(",");for(n=0;n 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} 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\", \"\"].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(//, \"$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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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":""} \ No newline at end of file +{"version":3,"file":"rollbar.min.js","mappings":";yBACA,IAAIA,EAAsB,CCA1BA,EAAwB,SAASC,EAASC,GACzC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAG3E,ECPAH,EAAwB,SAASS,EAAKC,GAAQ,OAAOL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,EAAO,ECCtGV,EAAwB,SAASC,GACX,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GACvD,G,guCCYA,SAASC,EAAOC,EAAGC,GACjB,OAAOA,IAAMC,EAASF,EACxB,CAKA,SAASE,EAASF,GAChB,IAAIG,EAAIC,EAAUJ,GAClB,MAAa,WAATG,EACKA,EAEJH,EAGDA,aAAaK,MACR,QAEF,CAAC,EAAEC,SACPX,KAAKK,GACLO,MAAM,iBAAiB,GACvBC,cARM,MASX,CAOA,SAASC,EAAWC,GAClB,OAAOX,EAAOW,EAAG,WACnB,CAsBA,SAASC,EAASb,GAChB,OACW,MAATA,IAAkC,UAAhBM,EAAON,IAAqC,mBAATA,EAEzD,CAGA,SAASc,EAAOrB,EAAKC,GACnB,OAAW,MAAPD,IAGAJ,OAAOyB,OACFzB,OAAOyB,OAAOrB,EAAKC,GAErBL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GACnD,CAiBA,SAASqB,EAAeC,GACtB,OAAOC,OAAOC,SAASF,EACzB,CAoBA,SAASG,EAAQC,GAEf,OAAOnB,EAAOmB,EAAG,UAAYnB,EAAOmB,EAAG,YACzC,CAwBA,SAASC,IACP,MAAO,UACT,C,4CAgBA,IAAIC,EAAS,CACXC,MAAO,EACPC,KAAM,EACNC,QAAS,EACTC,MAAO,EACPC,SAAU,GAkBZ,SAASC,EAAYC,GACnB,IAAIC,EA4CN,SAAkBC,GAChB,IAAK9B,EAAO8B,EAAK,UACf,OAOF,IAJA,IAAI3C,EAAI4C,EACJC,EAAI7C,EAAE8C,OAAO9C,EAAE+C,WAAa,SAAW,SAASC,KAAKL,GACrDM,EAAM,CAAC,EAEFC,EAAI,EAAGC,EAAInD,EAAED,IAAIqD,OAAQF,EAAIC,IAAKD,EACzCD,EAAIjD,EAAED,IAAImD,IAAML,EAAEK,IAAM,GAU1B,OAPAD,EAAIjD,EAAEqD,EAAEpC,MAAQ,CAAC,EACjBgC,EAAIjD,EAAED,IAAI,KAAKuD,QAAQtD,EAAEqD,EAAEP,OAAQ,SAAUS,EAAIC,EAAIC,GAC/CD,IACFP,EAAIjD,EAAEqD,EAAEpC,MAAMuC,GAAMC,EAExB,GAEOR,CACT,CAjEqBS,CAASjB,GAC5B,OAAKC,GAKuB,KAAxBA,EAAaiB,SACfjB,EAAakB,OAASlB,EAAakB,OAAON,QAAQ,IAAK,KAGzDb,EAAMC,EAAakB,OAAON,QAAQ,IAAMZ,EAAamB,MAAO,KARnD,WAUX,CAEA,IAAIjB,EAAkB,CACpBG,YAAY,EACZhD,IAAK,CACH,SACA,WACA,YACA,WACA,OACA,WACA,OACA,OACA,WACA,OACA,YACA,OACA,QACA,UAEFsD,EAAG,CACDpC,KAAM,WACN6B,OAAQ,6BAEVA,OAAQ,CACNgB,OACE,uIACFC,MACE,+LAyDN,SAASC,EAAUC,EAAGC,GAWpB,KAVAA,EAAWA,GAAYD,EAAEC,WACRD,EAAEE,OACF,KAAXF,EAAEE,KACJD,EAAW,QACS,MAAXD,EAAEE,OACXD,EAAW,WAGfA,EAAWA,GAAY,UAElBD,EAAEG,SACL,OAAO,KAET,IAAIC,EAASH,EAAW,KAAOD,EAAEG,SAOjC,OANIH,EAAEE,OACJE,EAASA,EAAS,IAAMJ,EAAEE,MAExBF,EAAEK,OACJD,GAAkBJ,EAAEK,MAEfD,CACT,CAEA,SAASE,EAAUlE,EAAKmE,GACtB,IAAI5D,EAAO0B,EACX,IACE1B,EAAQ6D,KAAKF,UAAUlE,EACzB,CAAE,MAAOqE,GACP,GAAIF,GAAUjD,EAAWiD,GACvB,IACE5D,EAAQ4D,EAAOnE,EACjB,CAAE,MAAOsE,GACPrC,EAAQqC,CACV,MAEArC,EAAQoC,CAEZ,CACA,MAAO,CAAEpC,MAAOA,EAAO1B,MAAOA,EAChC,CAgCA,SAASgE,EAAUC,GACjB,IAAIjE,EAAO0B,EACX,IACE1B,EAAQ6D,KAAKK,MAAMD,EACrB,CAAE,MAAO7C,GACPM,EAAQN,CACV,CACA,MAAO,CAAEM,MAAAA,EAAO1B,MAAAA,EAClB,CAEA,SAASmE,EACPC,EACAvC,EACAwC,EACAC,EACA5C,EACA6C,EACAC,EACAC,GAEA,IAAIC,EAAW,CACb7C,IAAKA,GAAO,GACZ8C,KAAMN,EACNO,OAAQN,GAEVI,EAASG,KAAOJ,EAAYK,kBAAkBJ,EAAS7C,IAAK6C,EAASC,MACrED,EAASK,QAAUN,EAAYO,cAAcN,EAAS7C,IAAK6C,EAASC,MACpE,IAAIM,EACkB,oBAAbC,UACPA,UACAA,SAASR,UACTQ,SAASR,SAASO,KAChBE,EACgB,oBAAXC,QACPA,QACAA,OAAOC,WACPD,OAAOC,UAAUC,UACnB,MAAO,CACLf,KAAMA,EACNH,QAAS1C,EAAQ6D,OAAO7D,GAAS0C,GAAWI,EAC5C3C,IAAKoD,EACLO,MAAO,CAACd,GACRS,UAAWA,EAEf,CAEA,SAASM,EAAaC,EAAQ9E,GAC5B,OAAO,SAAU+E,EAAKC,GACpB,IACEhF,EAAE+E,EAAKC,EACT,CAAE,MAAOxE,GACPsE,EAAOhE,MAAMN,EACf,CACF,CACF,CAEA,SAASyE,EAAiBpG,GA+BxB,OA5BA,SAASqG,EAAMrG,EAAKsG,GAClB,IAAI/F,EACFK,EACA2F,EACAvC,EAAS,CAAC,EAEZ,IACE,IAAKpD,KAAQZ,GACXO,EAAQP,EAAIY,MAEEJ,EAAOD,EAAO,WAAaC,EAAOD,EAAO,UACjD+F,EAAKE,SAASjG,GAChByD,EAAOpD,GAAQ,+BAAiCD,EAASJ,KAEzDgG,EAAUD,EAAKG,SACPC,KAAKnG,GACbyD,EAAOpD,GAAQyF,EAAM9F,EAAOgG,IAKhCvC,EAAOpD,GAAQL,CAEnB,CAAE,MAAOoB,GACPqC,EAAS,+BAAiCrC,EAAEgD,OAC9C,CACA,OAAOX,CACT,CACOqC,CAAMrG,EA9BF,CAACA,GA+Bd,CAEA,SAAS2G,EAAWC,EAAMX,EAAQY,EAAUC,EAAaC,GAOvD,IANA,IAAIpC,EAASuB,EAAKc,EAAQC,EAAUC,EAChCC,EACAC,EAAY,GAEZC,EAAW,GAENxE,EAAI,EAAGC,EAAI8D,EAAK7D,OAAQF,EAAIC,IAAKD,EAAG,CAG3C,IAAIyE,EAAM3G,EAFVwG,EAAMP,EAAK/D,IAIX,OADAwE,EAASX,KAAKY,GACNA,GACN,IAAK,YACH,MACF,IAAK,SACC3C,EACFyC,EAAUV,KAAKS,GAEfxC,EAAUwC,EAEZ,MACF,IAAK,WACHF,EAAWjB,EAAaC,EAAQkB,GAChC,MACF,IAAK,OACHC,EAAUV,KAAKS,GACf,MACF,IAAK,QACL,IAAK,eACL,IAAK,YACCjB,EACFkB,EAAUV,KAAKS,GAEfjB,EAAMiB,EAER,MACF,IAAK,SACL,IAAK,QACH,GACEA,aAAerG,OACU,oBAAjByG,cAAgCJ,aAAeI,aACvD,CACIrB,EACFkB,EAAUV,KAAKS,GAEfjB,EAAMiB,EAER,KACF,CACA,GAAIL,GAAuB,WAARQ,IAAqBJ,EAAS,CAC/C,IAAK,IAAIM,EAAI,EAAGC,EAAMX,EAAY/D,OAAQyE,EAAIC,IAAOD,EACnD,QAA4BE,IAAxBP,EAAIL,EAAYU,IAAmB,CACrCN,EAAUC,EACV,KACF,CAEF,GAAID,EACF,KAEJ,CACIF,EACFI,EAAUV,KAAKS,GAEfH,EAASG,EAEX,MACF,QACE,GACEA,aAAerG,OACU,oBAAjByG,cAAgCJ,aAAeI,aACvD,CACIrB,EACFkB,EAAUV,KAAKS,GAEfjB,EAAMiB,EAER,KACF,CACAC,EAAUV,KAAKS,GAErB,CAGIH,IAAQA,EAASZ,EAAiBY,IAElCI,EAAUrE,OAAS,IAChBiE,IAAQA,EAASZ,EAAiB,CAAC,IACxCY,EAAOI,UAAYhB,EAAiBgB,IAGtC,IAlYIO,EAkYAC,EAAO,CACTjD,QAASA,EACTuB,IAAKA,EACLc,OAAQA,EACRa,UAAWC,IACXb,SAAUA,EACVJ,SAAUA,EACVkB,WA9Fe,CAAC,EA+FhBC,MA1YEL,EAAIG,IACG,uCAAuC7E,QAChD,QACA,SAAUgF,GACR,IAAIC,GAAMP,EAAoB,GAAhBQ,KAAKC,UAAiB,GAAM,EAE1C,OADAT,EAAIQ,KAAKE,MAAMV,EAAI,KACL,MAANM,EAAYC,EAAS,EAAJA,EAAW,GAAKnH,SAAS,GACpD,KAkZF,OAZA6G,EAAKU,KAAOV,EAAKU,MAAQ,CAAC,EAe5B,SAA2BV,EAAMZ,GAC3BA,QAA2BU,IAAjBV,EAAOuB,QACnBX,EAAKW,MAAQvB,EAAOuB,aACbvB,EAAOuB,OAEZvB,QAAgCU,IAAtBV,EAAOwB,aACnBZ,EAAKY,WAAaxB,EAAOwB,kBAClBxB,EAAOwB,WAElB,CAtBEC,CAAkBb,EAAMZ,GAEpBF,GAAeI,IACjBU,EAAKV,QAAUA,GAEbH,IACFa,EAAKb,cAAgBA,GAEvBa,EAAKc,cAAgB9B,EACrBgB,EAAKG,WAAWY,mBAAqBtB,EAC9BO,CACT,CAkCA,IAAIgB,EAAkB,CACpB,MACA,UACA,MACA,aACA,QACA,UAEEC,EAAmB,CAAC,WAAY,QAAS,UAAW,OAAQ,SAEhE,SAASC,EAAcC,EAAKC,GAAK,IACRC,EADQC,EAAAC,EACXJ,GAAG,IAAvB,IAAAG,EAAA1E,MAAAyE,EAAAC,EAAA3H,KAAA6H,MAAyB,CACvB,GADcH,EAAA1I,QACAyI,EACZ,OAAO,CAEX,CAAC,OAAA9C,GAAAgD,EAAAvH,EAAAuE,EAAA,SAAAgD,EAAA/H,GAAA,CAED,OAAO,CACT,CAkCA,SAASkI,EAAkBC,EAAUC,GACnCD,EAASC,WAAaD,EAASC,YAAc,GAAG,IACtBC,EADsBC,EAAAN,EAChCI,GAAU,IAA1B,IAAAE,EAAAjF,MAAAgF,EAAAC,EAAAlI,KAAA6H,MAA4B,KAAjBM,EAACF,EAAAjJ,WACMmH,IAAZgC,EAAEnJ,OAGN+I,EAASC,WAAW7C,KAAKgD,EAC3B,CAAC,OAAAxD,GAAAuD,EAAA9H,EAAAuE,EAAA,SAAAuD,EAAAtI,GAAA,CACH,CAUA,SAASpB,EAAIC,EAAKiE,GAChB,GAAKjE,EAAL,CAGA,IAAI2J,EAAO1F,EAAK2F,MAAM,KAClB5F,EAAShE,EACb,IACE,IAAK,IAAI6C,EAAI,EAAG4E,EAAMkC,EAAK5G,OAAQF,EAAI4E,IAAO5E,EAC5CmB,EAASA,EAAO2F,EAAK9G,GAEzB,CAAE,MAAOgH,GACP7F,OAAS0D,CACX,CACA,OAAO1D,CAVP,CAWF,CAEA,SAAS8F,EAAI9J,EAAKiE,EAAM1D,GACtB,GAAKP,EAAL,CAKAJ,OAAOmK,eAAe/J,EAAK,MAE3B,IAAI2J,EAAO1F,EAAK2F,MAAM,KAClBnC,EAAMkC,EAAK5G,OACf,KAAI0E,EAAM,GAGV,GAAY,IAARA,EAIJ,IAGE,IAFA,IAAIuC,EAAOhK,EAAI2J,EAAK,KAAO,CAAC,EACxBM,EAAcD,EACTnH,EAAI,EAAGA,EAAI4E,EAAM,IAAK5E,EAC7BmH,EAAKL,EAAK9G,IAAMmH,EAAKL,EAAK9G,KAAO,CAAC,EAClCmH,EAAOA,EAAKL,EAAK9G,IAEnBmH,EAAKL,EAAKlC,EAAM,IAAMlH,EACtBP,EAAI2J,EAAK,IAAMM,CACjB,CAAE,MAAOJ,GACP,MACF,MAdE7J,EAAI2J,EAAK,IAAMpJ,CAXjB,CA0BF,CA8BA,SAASuH,IACP,OAAIoC,KAAKpC,IACAoC,KAAKpC,MAEPtG,OAAO,IAAI0I,KACpB,CAsCA,SAASC,EAAcC,EAASC,EAAOC,EAASrE,GAC9C,IAAIjC,EAASuG,EAAMH,EAASC,EAAOC,GAEnC,OADAtG,EAUF,SAAiCwG,EAASvE,GACpCuE,EAAQC,gBAAkBD,EAAQE,eACpCF,EAAQE,aAAeF,EAAQC,cAC/BD,EAAQC,mBAAgB/C,EACxBzB,GAAUA,EAAO0E,IAAI,mDAEnBH,EAAQI,gBAAkBJ,EAAQK,gBACpCL,EAAQK,cAAgBL,EAAQI,cAChCJ,EAAQI,mBAAgBlD,EACxBzB,GAAUA,EAAO0E,IAAI,oDAEvB,OAAOH,CACT,CAtBWM,CAAwB9G,EAAQiC,IACpCoE,GAASA,EAAMU,sBAGhBV,EAAMW,cACRhH,EAAOgH,aAAeZ,EAAQY,aAAe,IAAIC,OAAOZ,EAAMW,cAHvDhH,CAMX,CAgBA,SAASuG,IACP,SAASW,EAAclL,GACrB,IAAKA,GAA+C,oBAAxCJ,OAAOM,UAAUa,SAASX,KAAKJ,GACzC,OAAO,EAGT,IAYIN,EAZAyL,EAAoB9J,EAAOrB,EAAK,eAChCoL,EACFpL,EAAIqL,aACJrL,EAAIqL,YAAYnL,WAChBmB,EAAOrB,EAAIqL,YAAYnL,UAAW,iBAEpC,GAAIF,EAAIqL,cAAgBF,IAAsBC,EAC5C,OAAO,EAMT,IAAK1L,KAAOM,GAIZ,YAAsB,IAARN,GAAuB2B,EAAOrB,EAAKN,EACnD,CAEA,IAAImD,EACFyI,EACAC,EACAlF,EACAzF,EACAoD,EAASpE,OAAO4L,OAAO,MACvBpB,EAAU,KACVrH,EAAS0I,UAAU1I,OAErB,IAAKF,EAAI,EAAGA,EAAIE,EAAQF,IAEtB,GAAIuH,OADJA,EAAUqB,UAAU5I,IAKpB,IAAKjC,KAAQwJ,EACXkB,EAAMtH,EAAOpD,GAEToD,KADJuH,EAAOnB,EAAQxJ,MAET2K,GAAQL,EAAcK,IACxBlF,EAAQiF,GAAOJ,EAAcI,GAAOA,EAAM,CAAC,EAC3CtH,EAAOpD,GAAQ2J,EAAMlE,EAAOkF,SACH,IAATA,IAChBvH,EAAOpD,GAAQ2K,IAKvB,OAAOvH,CACT,CAEA,SAAS0H,EAAuBlB,EAASmB,EAASvJ,GAAK,IAAAwJ,EACrD,GAAKD,UAAAA,EAASE,YAAczJ,EAC1B,OAAO,EAET,IAAM0J,EAActB,SAAgB,QAAToB,EAAPpB,EAASmB,eAAO,IAAAC,OAAA,EAAhBA,EAAkBE,YAChCC,EAAiBD,aAAW,EAAXA,EAAaC,eACpC,IAAKC,MAAMC,QAAQF,KAAoBA,EAAevF,SAAS,WAC7D,OAAO,EAET,IAAM0F,EAAkBJ,aAAW,EAAXA,EAAaI,gBACrC,SAAKF,MAAMC,QAAQC,IAA+C,IAA3BA,EAAgBnJ,SAGhDmJ,EAAgBC,KAAK,SAACC,GAC3B,OAAI5L,EAAO4L,EAAS,UACXhK,IAAQgK,IAEb5L,EAAO4L,EAAS,WACXA,EAAQC,KAAKjK,EAGxB,EACF,CAEA,SAASkK,EAAkB1F,EAAM2F,GAAY,IAAAC,EA7uBpBnC,EAivBnBoC,EAAO7F,EAAK,GACV8F,EAAkB,QAAPF,EAAGC,SAAI,IAAAD,OAAA,EAAJA,EAAMG,QACpBC,GAnvBiBvC,EAmvBYzD,EAAK,GAlvBd,oBAAZiG,SAA2BxC,aAAiBwC,SAkvBXjG,EAAK,GAAG+F,SACnDA,EAAUD,GAAeE,EAY7B,GARKD,IACEF,IACH7F,EAAK,GAAK6F,EAAO,CAAC,GAEpBE,EAAUF,EAAKE,QAAU,CAAC,GAIxBA,aAAmBG,QACrB,IAAK,IAALC,EAAA,EAAAC,EAAkBpN,OAAO+J,KAAK4C,GAAWQ,EAAAC,EAAAjK,OAAAgK,IAAE,CAAtC,IAAMrN,EAAGsN,EAAAD,GACZJ,EAAQM,OAAOvN,EAAK6M,EAAW7M,GACjC,MACK,GAAI0B,EAASuL,GAClB,IAAK,IAALO,EAAA,EAAAC,EAAkBvN,OAAO+J,KAAK4C,GAAWW,EAAAC,EAAApK,OAAAmK,IAAE,CAAtC,IAAMxN,EAAGyN,EAAAD,GACZP,EAAQjN,GAAO6M,EAAW7M,EAC5B,CAEJ,CCz2BA,MAlDA,SAAkBM,EAAKoF,EAAMkB,GAC3B,IAAI8G,EAAGC,EAAGxK,EAINyK,EAHAC,EAAQC,EAASxN,EAAK,UACtBiM,EAAUuB,EAASxN,EAAK,SACxB2J,EAAO,GAMX,GAFArD,EAAOA,GAAQ,CAAEtG,IAAK,GAAIyN,OAAQ,IAE9BF,EAAO,CAGT,GAFAD,EAAYhH,EAAKtG,IAAI0N,QAAQ1N,GAEzBuN,IAAwB,IAAfD,EAEX,OAAOhH,EAAKmH,OAAOH,IAAchH,EAAKtG,IAAIsN,GAG5ChH,EAAKtG,IAAI0G,KAAK1G,GACdsN,EAAYhH,EAAKtG,IAAI+C,OAAS,CAChC,CAEA,GAAIwK,EACF,IAAKH,KAAKpN,EACJwN,EAASxN,EAAKoN,IAChBzD,EAAKjD,KAAK0G,QAGT,GAAInB,EACT,IAAKpJ,EAAI,EAAGA,EAAI7C,EAAI+C,SAAUF,EAC5B8G,EAAKjD,KAAK7D,GAId,IAAImB,EAASuJ,EAAQ,CAAC,EAAI,GACtBI,GAAO,EACX,IAAK9K,EAAI,EAAGA,EAAI8G,EAAK5G,SAAUF,EAE7BwK,EAAIrN,EADJoN,EAAIzD,EAAK9G,IAETmB,EAAOoJ,GAAKhI,EAAKgI,EAAGC,EAAG/G,GACvBqH,EAAOA,GAAQ3J,EAAOoJ,KAAOpN,EAAIoN,GAOnC,OAJIG,IAAUI,IACZrH,EAAKmH,OAAOH,GAAatJ,GAGnB2J,EAAgB3N,EAATgE,CACjB,E,qoDCGA,SAAS4J,EAAU5N,EAAKiE,GACtB,IAAI0F,EAAO1F,EAAK2F,MAAM,KAClBiE,EAAOlE,EAAK5G,OAAS,EACzB,IAAI,IACuC+K,EADvCC,EAAA5E,EACyBQ,EAAKqE,WAAS,IAAzC,IAAAD,EAAAvJ,MAAAsJ,EAAAC,EAAAxM,KAAA6H,MAA2C,KAAA6E,EAAAC,EAAAJ,EAAAvN,MAAA,GAA/B4N,EAAKF,EAAA,GAAEvO,EAAGuO,EAAA,GAChBE,EAAQN,EACV7N,EAAMA,EAAIN,GAEVM,EAAIN,GAAO8N,GAEf,CAAC,OAAAtH,GAAA6H,EAAApM,EAAAuE,EAAA,SAAA6H,EAAA5M,GAAA,CACH,CAAE,MAAO0I,GACP,CAEJ,CAoBA,MApFA,SAAevB,EAAM0C,EAAaoD,GAGhC,GAFApD,EAAcA,GAAe,GAEzBoD,EAAY,KACeC,EADfC,EAAAnF,EACKiF,GAAU,IAA7B,IAAAE,EAAA9J,MAAA6J,EAAAC,EAAA/M,KAAA6H,MAA+B,CAC7BwE,EAAUtF,EADG+F,EAAA9N,MAEf,CAAC,OAAA2F,GAAAoI,EAAA3M,EAAAuE,EAAA,SAAAoI,EAAAnN,GAAA,CACH,CAEA,IAAIoN,EAyDN,SAA8BvD,GAC5B,IAC+BwD,EAD3BC,EAAM,GAAGC,EAAAvF,EACO6B,GAAW,IAA/B,IAAA0D,EAAAlK,MAAAgK,EAAAE,EAAAnN,KAAA6H,MAAiC,KAC3BuF,EAAM,iBADIH,EAAAjO,MACuB,8BACrCkO,EAAI/H,KAAK,IAAIkI,OAAOD,EAAK,KAC3B,CAAC,OAAAzI,GAAAwI,EAAA/M,EAAAuE,EAAA,SAAAwI,EAAAvN,GAAA,CACD,OAAOsN,CACT,CAhEiBI,CAAqB7D,GAChC8D,EAiEN,SAAmC9D,GACjC,IAC+B+D,EAD3BN,EAAM,GAAGO,EAAA7F,EACO6B,GAAW,IAA/B,IAAAgE,EAAAxK,MAAAuK,EAAAC,EAAAzN,KAAA6H,MAAiC,KAC3BuF,EAAM,gBADII,EAAAxO,MACsB,6BACpCkO,EAAI/H,KAAK,IAAIkI,OAAO,IAAMD,EAAM,eAAgB,OAClD,CAAC,OAAAzI,GAAA8I,EAAArN,EAAAuE,EAAA,SAAA8I,EAAA7N,GAAA,CACD,OAAOsN,CACT,CAxEiBQ,CAA0BjE,GAEzC,SAASkE,EAAiBC,EAAQC,GAChC,OAAOA,EFyIF,UExIP,CAiCA,OAAOC,EAAS/G,EAZhB,SAASgH,EAASlC,EAAGC,EAAG/G,GACtB,IAAIiJ,EAXN,SAAqBnC,EAAGC,GAAG,IACG7D,EADHC,EAAAN,EACLoF,GAAQ,IAA5B,IAAA9E,EAAAjF,MAAAgF,EAAAC,EAAAlI,KAAA6H,MACE,GADcI,EAAAjJ,MACJ8L,KAAKe,GAAI,CACjBC,EAAIG,IACJ,KACF,CACD,OAAAtH,GAAAuD,EAAA9H,EAAAuE,EAAA,SAAAuD,EAAAtI,GAAA,CACD,OAAOkM,CACT,CAGamC,CAAYpC,EAAGC,GAC1B,OAAIkC,IAASlC,EACPG,EAASH,EAAG,WAAaG,EAASH,EAAG,SAChCgC,EAAShC,EAAGiC,EAAUhJ,GAvBnC,SAAuB+G,GACrB,GAAIG,EAASH,EAAG,UAAW,KACGpE,EADHC,EAAAC,EACL2F,GAAQ,IAA5B,IAAA5F,EAAA1E,MAAAyE,EAAAC,EAAA3H,KAAA6H,MAA8B,KAAnBqG,EAAKxG,EAAA1I,MACd8M,EAAIA,EAAEpK,QAAQwM,EAAOP,EACvB,CAAC,OAAAhJ,GAAAgD,EAAAvH,EAAAuE,EAAA,SAAAgD,EAAA/H,GAAA,CACH,CACA,OAAOkM,CACT,CAkBWqC,CAAcH,GAEdA,CAEX,EAGF,E,i5CCjDA,IAAMI,EAAa,IAGnB,SAASC,EAAWC,GAClB,MAAO,CAAC1H,KAAK2H,MAAMD,EAAS,KAAO1H,KAAK4H,MAAOF,EAAS,IAAQ,KAClE,CAAC,IAEKG,EAAS,WAQZ,O,EAPD,SAAAA,EAAYxF,EAASmB,GAAS,IAAAsE,G,4FAAAC,CAAA,KAAAF,GAC5BG,KAAKC,MAAQ,GACbD,KAAK3F,QAAUgD,EAAQhD,GACvB,IAAI6F,EAAqBF,KAAK3F,QAAQ6F,oBAAsBV,EAC5DQ,KAAKG,aAAenI,KAAKoI,IAAI,EAAGpI,KAAKqI,IAAIH,EAAoBV,IAC7DQ,KAAKxE,QAAUA,EACfwE,KAAKM,cAA4B,QAAfR,EAAGE,KAAKxE,eAAO,IAAAsE,OAAA,EAAZA,EAAcS,UAAU,oBAAqB,CAAC,EACrE,E,EAAC,EAAAhR,IAAA,YAAAa,MAED,SAAUiK,GACR,IAAImG,EAAaR,KAAK3F,QACtB2F,KAAK3F,QAAUgD,EAAQmD,EAAYnG,GACnC,IAAI6F,EAAqBF,KAAK3F,QAAQ6F,oBAAsBV,EACxDiB,EAAezI,KAAKoI,IAAI,EAAGpI,KAAKqI,IAAIH,EAAoBV,IACxDkB,EAAc,EACdV,KAAKC,MAAMrN,OAAS6N,IACtBC,EAAcV,KAAKC,MAAMrN,OAAS6N,GAEpCT,KAAKG,aAAeM,EACpBT,KAAKC,MAAMU,OAAO,EAAGD,EACvB,GAAC,CAAAnR,IAAA,aAAAa,MAED,WACE,IAAIwQ,EAAS/E,MAAM9L,UAAUuG,MAAMrG,KAAK+P,KAAKC,MAAO,GACpD,GAAI5C,EAAa2C,KAAK3F,QAAQwG,iBAC5B,IAEE,IADA,IAAInO,EAAIkO,EAAOhO,OACRF,KACDsN,KAAK3F,QAAQwG,gBAAgBD,EAAOlO,KACtCkO,EAAOD,OAAOjO,EAAG,EAGvB,CAAE,MAAOgH,GACPsG,KAAK3F,QAAQwG,gBAAkB,IACjC,CAWF,OAJAD,GAHAA,EAASA,EAAOE,OAAO,SAACtP,GAAC,MAAgB,iBAAXA,EAAEuP,IAAuB,IAGvCC,IACd,SAAAC,GAAkCA,EAA/BC,eAAH,IAAuCC,E,6WAAKC,CAAAH,EAAAI,GAAA,OAAOF,CAAK,GAGnDP,CACT,GAAC,CAAArR,IAAA,sBAAAa,MAED,WAAqC,IAAjBgJ,EAAUkC,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5B0E,KAAKM,gBACPN,KAAKM,cAAcgB,IAAIlI,GACvB4G,KAAKM,cAAgBN,KAAKxE,QAAQ+E,UAAU,oBAAqB,CAAC,GAEtE,GAAC,CAAAhR,IAAA,UAAAa,MAED,SACE2Q,EACAQ,EACAnJ,EACAoJ,GAGA,IAFA9J,EAAS4D,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,KACZ4F,EAAc5F,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,KAEb9J,EAAI,CACN4G,MAAOqJ,EAASV,EAAM3I,GACtB2I,KAAMA,EACNW,aAAchK,GAAa2F,IAC3BsE,KAAMJ,EACNnO,OAAQ,UAENoO,IACFhQ,EAAEqG,KAAO2J,GAEPN,IACF1P,EAAE0P,eAAiBA,GAGrB,IACE,GACE7D,EAAa2C,KAAK3F,QAAQwG,kBAC1Bb,KAAK3F,QAAQwG,gBAAgBrP,GAE7B,OAAO,CAEX,CAAE,MAAOoQ,GACP5B,KAAK3F,QAAQwG,gBAAkB,IACjC,CAGA,OADAb,KAAKzJ,KAAK/E,GACHA,CACT,GAAC,CAAAjC,IAAA,eAAAa,MAED,SAAa2Q,EAAMQ,EAAUnJ,EAAOoJ,GAClC,OAAOxB,KAAK6B,QAAQd,EAAMQ,EAAUnJ,EAAOoJ,EAC7C,GAAC,CAAAjS,IAAA,eAAAa,MAED,SAAa2F,EAAKqC,EAAOoJ,EAAa9J,GAAW,IAAAoK,EACzCtN,EAAUuB,EAAIvB,SAAWmB,OAAOI,GAClCwL,EAAW,CAAE/M,QAAAA,GACbuB,EAAIH,QACN2L,EAAS3L,MAAQG,EAAIH,OAEvB,IAAMsL,EAAiB,CACrB1M,QAAAA,EACA4D,MAAAA,EACA2I,KAAM,QACNlJ,KAAM2J,GASR,OANkB,QAAlBM,EAAA9B,KAAKM,qBAAa,IAAAwB,GAAlBA,EAAoBC,SAClB,2BACAb,EACAzB,EAAW/H,IAGNsI,KAAK6B,QACV,QACAN,EACAnJ,EACAoJ,EACA9J,EACAwJ,EAEJ,GAAC,CAAA3R,IAAA,aAAAa,MAED,SAAWoE,EAAS4D,EAAOoJ,EAAa9J,GAAW,IAAAsK,EAC3Cb,EAAQK,EACV,2BACA,oBACEN,EAAce,EAAA,CAClBzN,QAAAA,EACA4D,MAAAA,GACIoJ,EAAc,CAAET,KAAM,UAAWlJ,KAAM2J,GAAgB,CAAC,GAK9D,OAFkB,QAAlBQ,EAAAhC,KAAKM,qBAAa,IAAA0B,GAAlBA,EAAoBD,SAASZ,EAAOD,EAAgBzB,EAAW/H,IAExDsI,KAAK6B,QACV,MACA,CAAErN,QAAAA,GACF4D,EACAoJ,EACA9J,EACAwJ,EAEJ,GAAC,CAAA3R,IAAA,iBAAAa,MAED,SAAemR,EAAUW,EAASV,EAAaW,GAAa,IAAAC,EAAAC,EAAAC,EAC1DJ,EAAUA,GAAW,MACrBX,EAASW,QAAUX,EAASW,SAAWA,EACnCC,IACFZ,EAASxK,QAAUoL,GAErB,IAAM/J,EAAQ4H,KAAKuC,gBAAgBhB,EAASiB,aACtCC,EAA4C,KAA7BlB,EAASmB,aAAe,GACvCxB,EAAiB,CACrBH,KAAMQ,EAASW,QACfS,OAAQpB,EAASoB,OACjB1Q,IAAKsP,EAAStP,IACd2Q,WAAYrB,EAASiB,YACrB,kBAAmBvO,KAAKF,UAAUwN,EAASsB,iBAAmB,CAAC,GAC/D,mBAAoB5O,KAAKF,WAA2B,QAAjBqO,EAAAb,EAASuB,gBAAQ,IAAAV,OAAA,EAAjBA,EAAmB5F,UAAW,CAAC,GAClE,wBAAyBiG,EAAY7R,YAEjCmS,EAAcxB,EAASxK,QACvBiM,EAAgC,QAApBX,EAAGd,EAASuB,gBAAQ,IAAAT,OAAA,EAAjBA,EAAmBV,KAcxC,OAbIoB,IACF7B,EAAe,gBAAkBjN,KAAKF,UAAUgP,IAE9CC,IACF9B,EAAe,iBAAmBjN,KAAKF,UAAUiP,IAGjC,QAAlBV,EAAAtC,KAAKM,qBAAa,IAAAgC,GAAlBA,EAAoBP,SAClB,wBACAb,EACAzB,EAAW8B,EAAS0B,gBAGfjD,KAAK6B,QACV,UACAN,EACAnJ,EACAoJ,EACAD,EAAS0B,cACT/B,EAEJ,GAAC,CAAA3R,IAAA,kBAAAa,MAED,SAAgBwS,GACd,OAAIA,GAAc,KAAOA,EAAa,IAC7B,OAEU,IAAfA,GAAoBA,GAAc,IAC7B,QAEF,MACT,GAAC,CAAArT,IAAA,aAAAa,MAED,SAAW8R,EAASgB,EAAS9S,EAAO+S,EAAS3B,GAC3C,IAAID,EAAW,CACbW,QAASA,EACTgB,QAASA,GAQX,YANc3L,IAAVnH,IACFmR,EAASnR,MAAQA,QAEHmH,IAAZ4L,IACF5B,EAAS4B,QAAUA,GAEdnD,KAAK6B,QAAQ,MAAON,EAAU,OAAQC,EAC/C,GAAC,CAAAjS,IAAA,eAAAa,MAED,SAAYgT,GAAmD,IAAAC,EAAhDtC,EAAIqC,EAAJrC,KAAMuC,EAAWF,EAAXE,YAAaJ,EAAOE,EAAPF,QAAS9S,EAAKgT,EAALhT,MAAOsH,EAAS0L,EAAT1L,UAC1CjH,EAAO,sBACP8Q,EAAW,CACfR,KAAMtQ,EACNyR,QAASnB,EACTmC,QAAAA,EACA9S,MAAAA,GAEI8Q,EAAiB,CACrBH,KAAAA,EACAuC,YAAAA,EACAJ,QAAAA,EACA9S,MAAAA,EACAmT,gBAAiB9D,EAAW/H,IAExByJ,EAAQnB,KAAKwD,kBAAkB/S,EAAMyQ,GAC3C,OAAIC,EACKnB,KAAKyD,qBAAqBtC,EAAOD,EAAgBxJ,IAGxC,QAAlB2L,EAAArD,KAAKM,qBAAa,IAAA+C,GAAlBA,EAAoBtB,SAAStR,EAAMyQ,EAAgBzB,EAAW/H,IAEvDsI,KAAK6B,QACV,MACAN,EACA,OACA,KACA7J,EACAwJ,GAEJ,GAAC,CAAA3R,IAAA,eAAAa,MAED,SAAYsT,GAA4C,IAAAC,EAAzC5C,EAAI2C,EAAJ3C,KAAMuC,EAAWI,EAAXJ,YAAaJ,EAAOQ,EAAPR,QAASxL,EAASgM,EAAThM,UACnCjH,EAAO,sBACP8Q,EAAW,CACfR,KAAMtQ,EACNyR,QAASnB,EACTmC,QAAAA,GAEIhC,EAAiB,CACrBH,KAAAA,EACAuC,YAAAA,EACAJ,QAAAA,EACAK,gBAAiB9D,EAAW/H,IAExByJ,EAAQnB,KAAKwD,kBAAkB/S,EAAMyQ,GAC3C,OAAIC,EACKnB,KAAKyD,qBAAqBtC,EAAOD,EAAgBxJ,IAGxC,QAAlBiM,EAAA3D,KAAKM,qBAAa,IAAAqD,GAAlBA,EAAoB5B,SAAStR,EAAMyQ,EAAgBzB,EAAW/H,IAEvDsI,KAAK6B,QACV,MACAN,EACA,OACA,KACA7J,EACAwJ,GAEJ,GAAC,CAAA3R,IAAA,oBAAAa,MAED,SAAkBK,EAAM2I,GACtB,IAAMwK,EAAY5D,KAAK6D,WAAW7D,KAAKC,OAEvC,GACE2D,GACAA,EAAUjC,KAAKZ,OAAStQ,GACxBmT,EAAU1C,eAAe4C,SAAW1K,EAAW0K,OAE/C,OAAOF,CAEX,GAAC,CAAArU,IAAA,uBAAAa,MAED,SAAqB+Q,EAAO/H,EAAY1B,GACtC,IAAMqM,EAAW/L,KAAKoI,IAAI1I,EAAYyJ,EAAMO,aAAc,GAC1DP,EAAMQ,KAAKvR,MAAQgJ,EAAWhJ,MAC9B+Q,EAAMD,eAAe9Q,MAAQgJ,EAAWhJ,MACxC+Q,EAAMD,eAAe8C,OAAS5K,EAAW4K,OACzC7C,EAAMD,eAAe+C,MAAQ7K,EAAW6K,MACxC9C,EAAMD,eAAegD,cAAgB9K,EAAW8K,cAChD/C,EAAMD,eAAgC,gBAAIzB,EAAW/H,GACrDyJ,EAAMD,eAAiC,iBAAIzB,EAAWsE,GACtD5C,EAAMD,eAAeiD,OAAShD,EAAMD,eAAeiD,OAAS,GAAK,EACjEhD,EAAMD,eAAekD,KAAOjD,EAAMD,eAAeiD,OAASJ,EAAW,IACvE,GAAC,CAAAxU,IAAA,aAAAa,MAED,SAAWiU,GACT,OAAOA,EAAKzR,OAAS,EAAIyR,EAAKA,EAAKzR,OAAS,GAAK,IACnD,GAAC,CAAArD,IAAA,eAAAa,MAED,SAAYkU,GAA4C,IAAAC,EAAzCxD,EAAIuD,EAAJvD,KAAMuC,EAAWgB,EAAXhB,YAAaJ,EAAOoB,EAAPpB,QAASxL,EAAS4M,EAAT5M,UACnCjH,EAAO,sBACP8Q,EAAW,CACfR,KAAMtQ,EACNyR,QAASnB,EACTmC,QAAAA,GAEIhC,EAAiB,CACrBH,KAAAA,EACAuC,YAAAA,EACAJ,QAAAA,GAKF,OAFkB,QAAlBqB,EAAAvE,KAAKM,qBAAa,IAAAiE,GAAlBA,EAAoBxC,SAAStR,EAAMyQ,EAAgBzB,EAAW/H,IAEvDsI,KAAK6B,QACV,MACAN,EACA,OACA,KACA7J,EACAwJ,EAEJ,GAAC,CAAA3R,IAAA,gBAAAa,MAED,SAAaoU,GAOV,IAAAC,EAND1D,EAAIyD,EAAJzD,KACAuC,EAAWkB,EAAXlB,YACAW,EAAKO,EAALP,MACAD,EAAMQ,EAANR,OACAE,EAAaM,EAAbN,cACAxM,EAAS8M,EAAT9M,UAEMjH,EAAO,uBACP8Q,EAAW,CACfR,KAAMtQ,EACNyR,QAASnB,EACTkD,MAAAA,EACAD,OAAAA,EACAE,cAAAA,GAEIhD,EAAiB,CACrBH,KAAAA,EACAuC,YAAAA,EACAW,MAAAA,EACAD,OAAAA,EACAE,cAAAA,GAGI/C,EAAQnB,KAAKwD,kBAAkB/S,EAAMyQ,GAC3C,OAAIC,EACKnB,KAAKyD,qBAAqBtC,EAAOD,EAAgBxJ,IAGxC,QAAlB+M,EAAAzE,KAAKM,qBAAa,IAAAmE,GAAlBA,EAAoB1C,SAAStR,EAAMyQ,EAAgBzB,EAAW/H,IAEvDsI,KAAK6B,QACV,MACAN,EACA,OACA,KACA7J,EACAwJ,GAEJ,GAAC,CAAA3R,IAAA,kBAAAa,MAED,SAAesU,GASZ,IAAAC,EARD5D,EAAI2D,EAAJ3D,KACAuC,EAAWoB,EAAXpB,YACAJ,EAAOwB,EAAPxB,QACA0B,EAAUF,EAAVE,WACAC,EAAaH,EAAbG,cACAC,EAAKJ,EAALI,MACAC,EAAUL,EAAVK,WACArN,EAASgN,EAAThN,UAEMjH,EAAO,yBACT8Q,EAAW,CACbR,KAAMtQ,EACNyR,QAASnB,EACTuC,YAAAA,GAGEpC,EAAiB,CACnBH,KAAAA,EACAuC,YAAAA,GAkCF,MA/Ba,cAATvC,IACFQ,EAAQU,EAAAA,EAAA,GAAQV,GAAQ,IAAE2B,QAAAA,EAAS0B,WAAAA,EAAYC,cAAAA,IAC/C3D,EAAce,EAAAA,EAAA,GACTf,GAAc,IACjBgC,QAAAA,EACA0B,WAAAA,EACAC,cAAAA,KAIS,SAAT9D,IACFQ,EAAQU,EAAAA,EAAA,GACHV,GAAQ,IACX2B,QAAAA,EACA0B,WAAAA,EACAC,cAAAA,EACAC,MAAAA,EACAC,WAAAA,IAEF7D,EAAce,EAAAA,EAAA,GACTf,GAAc,IACjBgC,QAAAA,EACA0B,WAAAA,EACAC,cAAAA,EACAC,MAAAA,EACAC,WAAAA,KAIc,QAAlBJ,EAAA3E,KAAKM,qBAAa,IAAAqE,GAAlBA,EAAoB5C,SAAStR,EAAMyQ,EAAgBzB,EAAW/H,IAEvDsI,KAAK6B,QACV,MACAN,EACA,OACA,KACA7J,EACAwJ,EAEJ,GAAC,CAAA3R,IAAA,oBAAAa,MAED,SAAkB4U,EAAMC,EAAIzD,EAAa9J,GAAW,IAAAwN,EAOlD,OANkB,QAAlBA,EAAAlF,KAAKM,qBAAa,IAAA4E,GAAlBA,EAAoBnD,SAClB,2BACA,CAAE,oBAAqBiD,EAAM,WAAYC,GACzCxF,EAAW/H,IAGNsI,KAAK6B,QACV,aACA,CAAEmD,KAAAA,EAAMC,GAAAA,GACR,OACAzD,EACA9J,EAEJ,GAAC,CAAAnI,IAAA,0BAAAa,MAED,SAAwB+U,GACtB,OAAOnF,KAAK6B,QACV,aACA,CAAEK,QAAS,oBACX,YACA3K,EACA4N,GAAMA,EAAGC,UAMb,GAAC,CAAA7V,IAAA,cAAAa,MAED,SAAY+U,GACV,OAAOnF,KAAK6B,QACV,aACA,CAAEK,QAAS,QACX,YACA3K,EACA4N,GAAMA,EAAGC,UAMb,GAAC,CAAA7V,IAAA,4BAAAa,MAED,SAAyBiV,GAAmC,IAAAC,EAAhCvE,EAAIsE,EAAJtE,KAAMuC,EAAW+B,EAAX/B,YAAa5L,EAAS2N,EAAT3N,UACvCjH,EAAO,6BACP8Q,EAAW,CACfR,KAAMtQ,EACNyR,QAASnB,GAELG,EAAiB,CACrBH,KAAAA,EACAuC,YAAAA,GAKF,OAFkB,QAAlBgC,EAAAtF,KAAKM,qBAAa,IAAAgF,GAAlBA,EAAoBvD,SAAStR,EAAMyQ,EAAgBzB,EAAW/H,IAEvDsI,KAAK6B,QACV,eACAN,EACA,OACA,KACA7J,EACAwJ,EAEJ,GAEA,CAAA3R,IAAA,sBAAAa,MACA,SAAoBqH,GAClB,GAAKuI,KAAK3F,QAAQkL,wBAGlB,OAAI9N,EAAK1B,IACAiK,KAAKwF,aAAa/N,EAAK1B,IAAK0B,EAAKW,MAAOX,EAAKI,KAAMJ,EAAKC,WAE7DD,EAAKjD,QACAwL,KAAKyF,WACVhO,EAAKjD,QACLiD,EAAKW,MACLX,EAAKI,KACLJ,EAAKC,WAGLD,EAAKZ,OACAmJ,KAAK6B,QACV,MACApK,EAAKZ,OACLY,EAAKW,MACLX,EAAKI,KACLJ,EAAKC,gBANT,CASF,GAAC,CAAAnI,IAAA,OAAAa,MAED,SAAKoB,GACHwO,KAAKC,MAAM1J,KAAK/E,GACZwO,KAAKC,MAAMrN,OAASoN,KAAKG,cAC3BH,KAAKC,MAAMyF,OAEf,I,4FAAC,CArhBY,GAwhBf,SAASjE,EAASV,EAAM3I,GACtB,GAAIA,EACF,OAAOA,EAMT,MAJmB,CACjBtG,MAAO,QACP6T,OAAQ,QAEU5E,IAAS,MAC/B,CAEA,Q,ysBC5iBO,IAAM6E,GAAO,WAClB,SAAAA,EAAYC,I,4FAAe9F,CAAA,KAAA6F,GACzB5F,KAAK8F,gBAAkBD,EAAgB,IAAIE,IAAIF,GAAiB,IAAIE,GACtE,CAAC,O,EAAAH,G,EAAA,EAAArW,IAAA,WAAAa,MAED,SAASb,GACP,OAAOyQ,KAAK8F,gBAAgBlW,IAAIL,EAClC,GAAC,CAAAA,IAAA,WAAAa,MAED,SAASb,EAAKa,GACZ,IAAM+E,EAAU,IAAIyQ,EAAQ5F,KAAK8F,iBAEjC,OADA3Q,EAAQ2Q,gBAAgBnM,IAAIpK,EAAKa,GAC1B+E,CACT,GAAC,CAAA5F,IAAA,cAAAa,MAED,SAAYb,GACV,IAAM4F,EAAU,IAAIyQ,EAAQI,KAAKF,iBAEjC,OADA3Q,EAAQ2Q,gBAAgBG,OAAO1W,GACxB4F,CACT,M,2FAAC,CAnBiB,GAsBP+Q,GAAe,IAAIN,G,+sBCpBzB,IAAMO,GAAc,WAGxB,O,EAFD,SAAAA,K,4FAAcpG,CAAA,KAAAoG,GACZnG,KAAKoG,eAAiBF,EACxB,E,EAAC,EAAA3W,IAAA,SAAAa,MAED,WACE,OAAO4P,KAAKoG,cACd,GAAC,CAAA7W,IAAA,eAAAa,MAED,SAAa+E,GACX,IAAMkR,EAAkBrG,KAAKoG,eAE7B,OADApG,KAAKoG,eAAiBjR,GAAW+Q,GAC1BG,CACT,GAAC,CAAA9W,IAAA,cAAAa,MAED,SAAY+E,GAEV,OADA6K,KAAKoG,eAAiBjR,EACf6K,KAAKoG,cACd,GAAC,CAAA7W,IAAA,OAAAa,MAED,SAAK+E,EAASmR,EAAIC,GAChB,IAAMF,EAAkBrG,KAAKwG,aAAarR,GAC1C,IAAI,QAAAsR,EAAAnL,UAAA1I,OAFwB6D,EAAI,IAAAoF,MAAA4K,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJjQ,EAAIiQ,EAAA,GAAApL,UAAAoL,GAG9B,OAAOJ,EAAGrW,KAAI0W,MAAPL,EAAE,CAAMC,GAAOzL,OAAKrE,GAC7B,CAAE,QACAuJ,KAAK4G,YAAYP,EACnB,CACF,I,8FAAC,CA3BwB,GCW3B,SAAS5G,GAAWC,GAClB,MAAO,CAAC1H,KAAK2H,MAAMD,EAAS,KAAO1H,KAAK4H,MAAOF,EAAS,IAAQ,KAClE,CA8BA,SAASmH,GAAItN,EAAGuN,GACd,MAAO,CAACvN,EAAE,GAAKuN,EAAE,GAAK9O,KAAK2H,OAAOpG,EAAE,GAAKuN,EAAE,IAAM,MAAOvN,EAAE,GAAKuN,EAAE,IAAM,IACzE,CAwDA,QAAiBrH,WAAAA,GAAYsH,SAhF7B,SAAkBC,GAChB,OAAmB,IAAZA,EAAO,GAAWhP,KAAK4H,MAAMoH,EAAO,GAAK,IAClD,EA8EuCC,QAtEvC,SAAiBD,GACf,OAAmB,IAAZA,EAAO,GAAWA,EAAO,EAClC,EAoEgDH,IAAAA,GAAKlP,IA/CrD,WACE,OADyB2D,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,IAAAA,UAAA,GAEhBuL,GACLpH,GAAWyH,YAAYC,YACvB1H,GAAWyH,YAAYvP,QAGpB8H,GAAW1F,KAAKpC,MACzB,EAuC0DyP,SAtB1D,SAAkBhX,GAChB,OACEyL,MAAMC,QAAQ1L,IACG,IAAjBA,EAAMwC,QACc,iBAAbxC,EAAM,IACO,iBAAbA,EAAM,EAEjB,G,skEClFO,IAAMiX,GAAY,WAMvB,O,EALA,SAAAA,EAAYC,GAAmB,IAAdjN,EAAOiB,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAACyE,CAAA,KAAAsH,GAC3BrH,KAAKsH,IAAMA,EACXtH,KAAK3F,QAAUA,CACjB,E,EAEA,EAAA9K,IAAA,SAAAa,MAMA,SAAOmX,EAAOC,GACZC,GAAgBlR,KAAIoQ,MAApBc,GAAeC,GAASH,GAC1B,GAEA,CAAAhY,IAAA,YAAAa,MAOA,WAAY,IAAAuX,EAAA,KACJJ,EAAQE,GAAgBnR,QAG9B,GAFAmR,GAAgB7U,OAAS,GAEpB2U,IAAUA,EAAM3U,OACnB,MAAO,CAAEgV,cAAe,IAG1B,IAIwB1J,EAJlB2J,EAAYN,EAAM,IAAMA,EAAM,GAAGM,UAAa,CAAC,EAE/CC,EAAW,IAAI/B,IAAM5H,E,ioBAAAnF,CAERuO,GAAK,IAAxB,IAAApJ,EAAA9J,MAAA6J,EAAAC,EAAA/M,KAAA6H,MAA0B,KAAf8O,EAAI7J,EAAA9N,MACP4X,EAAWD,EAAKE,qBAAoB,GAAAnN,OACnCiN,EAAKE,qBAAqBxX,KAAI,KAAAqK,OAAIiN,EAAKE,qBAAqBC,SAC/D,gBAECJ,EAASK,IAAIH,IAChBF,EAASnO,IAAIqO,EAAU,CACrBI,MAAOL,EAAKE,sBAAwB,CAClCxX,KAAM,UACNyX,QAAS,QACT9O,WAAY,IAEdmO,MAAO,KAIXO,EAASlY,IAAIoY,GAAUT,MAAMhR,KAAKyJ,KAAKqI,eAAeN,GACxD,CAAC,OAAAhS,GAAAoI,EAAA3M,EAAAuE,EAAA,SAAAoI,EAAAnN,GAAA,CAED,MAAO,CACL4W,cAAe,CACb,CACEC,SAAU7H,KAAKsI,mBAAmBT,GAClCU,WAAY1M,MAAMmJ,KAAK8C,EAASU,UAAUxH,IAAI,SAACyH,GAAS,MAAM,CAC5DL,MAAOT,EAAKe,+BAA+BD,EAAUL,OACrDb,MAAOkB,EAAUlB,MAClB,KAIT,GAEA,CAAAhY,IAAA,OAAAa,MAOA,SAAK+J,GAAuB,IAAdqC,EAAOlB,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvB,OAAO0E,KAAKsH,IAAIqB,UAAUxO,EAASqC,EACrC,GAEA,CAAAjN,IAAA,iBAAAa,MAOA,SAAe2X,GAAM,IAQMnH,EARNgI,EAAA,KACbC,EAAsB,SAACzP,GAC3B,OAAO3J,OAAOoO,QAAQzE,GAAc,CAAC,GAAG4H,IAAI,SAAAC,GAAA,IAAAmC,EAAArF,GAAAkD,EAAA,GAAE1R,EAAG6T,EAAA,GAAEhT,EAAKgT,EAAA,SAAO,CAC7D7T,IAAAA,EACAa,MAAOwY,EAAKE,mBAAmB1Y,GAChC,EACH,EAUA,MAAO,CACL2Y,QAAShB,EAAKiB,YAAYD,QAC1BE,OAAQlB,EAAKiB,YAAYC,OACzBC,aAAcnB,EAAKmB,cAAgB,GACnCzY,KAAMsX,EAAKtX,KACX0Y,KAAMpB,EAAKoB,MAAQ,EACnBC,kBAAmBpC,GAAOC,QAAQc,EAAKsB,WACvC9F,gBAAiByD,GAAOC,QAAQc,EAAKuB,SACrClQ,WAAYyP,EAAoBd,EAAK3O,YACrCwH,QAjBuBA,EAiBCmH,EAAKnH,QAhBrBA,GAAU,IAAII,IAAI,SAACG,GAAK,MAAM,CACpCoI,aAAcvC,GAAOC,QAAQ9F,EAAMqI,MACnC/Y,KAAM0Q,EAAM1Q,KACZ2I,WAAYyP,EAAoB1H,EAAM/H,YACvC,IAcL,GAEA,CAAA7J,IAAA,qBAAAa,MAOA,SAAmByX,GAAU,IAAA4B,EAAA,KACrBrQ,EAAayO,EAASzO,YAAc,CAAC,EAM3C,MAAO,CACLA,WANgB3J,OAAOoO,QAAQzE,GAAY4H,IAAI,SAAA0C,GAAA,IAAAY,EAAAvG,GAAA2F,EAAA,GAAEnU,EAAG+U,EAAA,GAAElU,EAAKkU,EAAA,SAAO,CAClE/U,IAAAA,EACAa,MAAOqZ,EAAKX,mBAAmB1Y,GAChC,GAKH,GAEA,CAAAb,IAAA,iCAAAa,MAOA,SAA+BgY,GAAO,IAAAsB,EAAA,KACpC,MAAO,CACLjZ,KAAM2X,EAAM3X,MAAQ,GACpByX,QAASE,EAAMF,SAAW,GAC1B9O,YAAagP,EAAMhP,YAAc,IAAI4H,IAAI,SAAC2I,GAAI,MAAM,CAClDpa,IAAKoa,EAAKpa,IACVa,MAAOsZ,EAAKZ,mBAAmBa,EAAKvZ,OACrC,GAEL,GAEA,CAAAb,IAAA,qBAAAa,MAOA,SAAmBA,GAAO,IAAAwZ,EAAA,KACxB,GAAIxZ,QACF,MAAO,CAAEyZ,YAAa,IAGxB,IAAM9I,EAAIrQ,GAAUN,GAEpB,MAAa,WAAT2Q,EACK,CAAE8I,YAAazZ,GACJ,WAAT2Q,EACL1P,OAAOyY,UAAU1Z,GACZ,CAAE2Z,SAAU3Z,EAAMQ,YAElB,CAAEoZ,YAAa5Z,GAEN,YAAT2Q,EACF,CAAEkJ,UAAW7Z,GACXyL,MAAMC,QAAQ1L,GAChB,CACL8Z,WAAY,CACV1B,OAAQpY,EAAM4Q,IAAI,SAAC9D,GAAC,OAAK0M,EAAKd,mBAAmB5L,EAAE,KAGrC,WAAT6D,EACF,CACLoJ,YAAa,CACX3B,OAAQ/Y,OAAOoO,QAAQzN,GAAO4Q,IAAI,SAAAwD,GAAA,IAAAE,EAAA3G,GAAAyG,EAAA,GAAEvH,EAACyH,EAAA,GAAExH,EAACwH,EAAA,SAAO,CAC7CnV,IAAK0N,EACL7M,MAAOwZ,EAAKd,mBAAmB5L,GAChC,KAKA,CAAE2M,YAAalU,OAAOvF,GAC/B,I,8FAAC,CAjMsB,GAoMZqX,GAAkB,GCnL/B,QAAiB2C,IAjBjB,WAAyB,IACnBC,EAAc,IAAIC,WADNhP,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,IAMnB,OAJAiP,OAAOC,gBAAgBH,GACTxO,MAAMmJ,KAAKqF,EAAa,SAACI,GAAI,OACzCA,EAAK7Z,SAAS,IAAI8Z,SAAS,EAAG,IAAI,GAClCC,KAAK,GAET,G,44CCXA,IAAMC,GAAc,iBAEPC,GAAO,WASjB,O,EAND,SAAAA,EAAYrP,EAASnB,I,4FAAS0F,CAAA,KAAA8K,GAAAC,GAAA,2BAC5B9K,KAAK3F,QAAUA,EACf2F,KAAKxE,QAAUA,EACfwE,KAAKxK,OAASgG,EAAQhG,OACtBwK,KAAK+K,QAAU,KACf/K,KAAKgL,YAAc,CAAC,CACtB,E,EAAC,EAAAzb,IAAA,OAAAa,MAED,WAAiB,IAAZ6a,EAAK3P,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,EACZ,OAAI0E,KAAK+K,UAGT/K,KAAKkL,cAAgBlL,KAAKmL,gBAE1BnL,KAAKoL,sBAAsBH,IAJlBjL,IAOX,GAAC,CAAAzQ,IAAA,aAAAa,MAED,WACE,IACE,IAAMib,EAAoBrL,KAAKxK,OAAO8V,eAAeC,QAAQX,IAE7D,IAAKS,EACH,OAAO,KAGTrL,KAAK+K,QAAU9W,KAAKK,MAAM+W,EAC5B,CAAE,MAAAG,GACA,OAAO,IACT,CACA,OAAOxL,IACT,GAAC,CAAAzQ,IAAA,gBAAAa,MAED,WAME,OALA4P,KAAK+K,QAAU,CACbU,GAAIA,GAAGrB,MACPsB,UAAW3R,KAAKpC,OAGXqI,KAAK2L,WAAW3L,KAAK+K,QAC9B,GAAC,CAAAxb,IAAA,aAAAa,MAED,SAAW2a,GACT,IAAMa,EAAgB3X,KAAKF,UAAUgX,GAErC,IACE/K,KAAKxK,OAAO8V,eAAeO,QAAQjB,GAAagB,EAClD,CAAE,MAAAE,GACA,OAAO,IACT,CACA,OAAO9L,IACT,GAAC,CAAAzQ,IAAA,aAAAK,IAED,WACE,OAAOoQ,KAAKgL,WACd,GAAC,CAAAzb,IAAA,gBAAAa,MAED,SAAcgJ,GAEZ,OADA4G,KAAKgL,YAAW/I,GAAAA,GAAA,GAAQjC,KAAKgL,aAAgB5R,GACtC4G,IACT,GAAC,CAAAzQ,IAAA,UAAAa,MAED,SAAQ2b,GAMN,OALA/L,KAAKgM,cAAc,CACjB,UAAWD,aAAI,EAAJA,EAAMN,GACjB,aAAcM,aAAI,EAAJA,EAAME,MACpB,aAAaF,aAAI,EAAJA,EAAMtb,QAAQsb,aAAI,EAAJA,EAAMG,YAE5BlM,IACT,GAAC,CAAAzQ,IAAA,wBAAAa,MAED,SAAsB6a,GAAO,IAAAkB,EAAAC,EAAAC,EAY3B,OAXArM,KAAKgM,cAAa/J,GAAC,CACjB,aAAcjC,KAAK+K,QAAQU,GAC3B,iBAAyC,QAAzBU,EAAE1W,UAAU6W,qBAAa,IAAAH,OAAA,EAAvBA,EAAyBI,OAC3C,mBAAoB9W,UAAU+W,SAC9B,iBAAyC,QAAzBJ,EAAE3W,UAAU6W,qBAAa,IAAAF,OAAA,EAAvBA,EAAyBK,OAC3C,mBAA2C,QAAzBJ,EAAE5W,UAAU6W,qBAAa,IAAAD,OAAA,EAAvBA,EAAyBK,SAC7C,iBAAkB,aAClB,6BAA8B,aAC9B,sBAAuBjX,UAAUC,WAC9BuV,IAEEjL,IACT,I,8FAAC,CAxFiB,GCJhBxF,GAAM,WAAO,EAEXmS,GAAS,CACbhb,MAAO,EACPC,KAAM,EACNgb,KAAM,EACN9a,MAAO,EACP+a,QAAS,GAGL/W,GAAS,CACbhE,MAAO,WAAF,QAAA2U,EAAAnL,UAAA1I,OAAM6D,EAAI,IAAAoF,MAAA4K,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJjQ,EAAIiQ,GAAApL,UAAAoL,GAAA,OAAKlM,GAAI,QAAS/D,EAAK,EACtCmW,KAAM,WAAF,QAAAE,EAAAxR,UAAA1I,OAAM6D,EAAI,IAAAoF,MAAAiR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJtW,EAAIsW,GAAAzR,UAAAyR,GAAA,OAAKvS,GAAI,OAAQ/D,EAAK,EACpC7E,KAAM,WAAF,QAAAob,EAAA1R,UAAA1I,OAAM6D,EAAI,IAAAoF,MAAAmR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJxW,EAAIwW,GAAA3R,UAAA2R,GAAA,OAAKzS,GAAI,OAAQ/D,EAAK,EACpC9E,MAAO,WAAF,QAAAub,EAAA5R,UAAA1I,OAAM6D,EAAI,IAAAoF,MAAAqR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ1W,EAAI0W,GAAA7R,UAAA6R,GAAA,OAAK3S,GAAI,QAAS/D,EAAK,EACtC+D,IAAK,WAAF,QAAA4S,EAAA9R,UAAA1I,OAAM6D,EAAI,IAAAoF,MAAAuR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ5W,EAAI4W,GAAA/R,UAAA+R,GAAA,OAAK7S,GAAI,OAAQ/D,EAAK,EACnC6F,KAAM,SAAF2E,GAAoB,IAAfqM,EAAQrM,EAARqM,SACP9S,GAAM,SAAUpC,EAAO3B,GACjBkW,GAAOvU,GAASuU,GAAOW,KAE3B7W,EAAK8W,QAAQ,YAGbC,QAAQpV,GAAOuO,MAAM6G,QAAS/W,GAChC,CACF,GAGF,M,wsDC1BO,IAAMgX,GAAa,WAMvB,O,EALD,SAAAA,EAAYC,GAAwB,IAAdrT,EAAOiB,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAACyE,CAAA,KAAA0N,GAChCzN,KAAK0N,SAAWA,EAChB1N,KAAK3F,QAAUA,EACf2F,KAAK2N,aAAe,IAAI5H,IACxB/F,KAAK4N,WAAa,CAAC5N,KAAK6N,cAAcC,KAAK9N,MAC7C,E,EAAC,EAAAzQ,IAAA,eAAAa,MAED,SAAa2d,GACX/N,KAAK4N,WAAWL,QAAQQ,EAC1B,GAAC,CAAAxe,IAAA,gBAAAa,MAED,SAAc2X,GACR/H,KAAK3F,QAAQ2T,eACfhO,KAAK3F,QAAQ2T,cAAc,CAAEjG,KAAMA,GAEvC,GAAC,CAAAxY,IAAA,kBAAAa,MAED,SAAgB2X,GAAM,IACmB7J,EADnBC,EAAAnF,GACIgH,KAAK4N,YAAU,IAAvC,IAAAzP,EAAA9J,MAAA6J,EAAAC,EAAA/M,KAAA6H,MAAyC,KAA9BgV,EAAS/P,EAAA9N,MAClB,IACE6d,EAAUlG,EACZ,CAAE,MAAOvW,GACPsE,GAAOhE,MAAM,wCAAyCN,EACxD,CACF,CAAC,OAAAuE,GAAAoI,EAAA3M,EAAAuE,EAAA,SAAAoI,EAAAnN,GAAA,CACH,GAAC,CAAAzB,IAAA,UAAAa,MAED,SAAQ2X,EAAMmG,GACZlO,KAAK2N,aAAahU,IAAIoO,EAAKA,KAAKiB,YAAYC,OAAQlB,EACtD,GAAC,CAAAxY,IAAA,QAAAa,MAED,SAAM2X,GACJ/H,KAAKmO,gBAAgBpG,EAAKA,MAC1B/H,KAAK0N,SAASU,OAAO,CAACrG,EAAKqG,WAC3BpO,KAAK2N,aAAa1H,OAAO8B,EAAKA,KAAKiB,YAAYC,OACjD,I,8FAAC,CApCuB,G,mtDCAnB,IAAMoF,GAAI,WAYd,O,EAXD,SAAAA,EAAYhU,GAUV,O,4FAVmB0F,CAAA,KAAAsO,GACnBrO,KAAKsO,eAAiBjU,EAAQiU,eAC9BtO,KAAKuO,iBAAiBlU,GAEtB2F,KAAKwO,cAAgBnU,EAAQmU,cAC7BxO,KAAKwO,cAAcC,QAAQzO,KAAM3F,EAAQlF,SAErCkF,EAAQjB,YACV4G,KAAKgM,cAAc3R,EAAQjB,YAEtB4G,IACT,E,EAAC,EAAAzQ,IAAA,mBAAAa,MAED,SAAiBiK,GAAS,IAAAqU,EACxB1O,KAAK+H,KAAO,CACVtX,KAAM4J,EAAQ5J,KACd0Y,KAAM9O,EAAQ8O,KACdH,YAAa3O,EAAQ2O,YACrBE,aAAc7O,EAAQ6O,aACtBG,UAAWhP,EAAQgP,WAAarC,GAAOrP,IAAI0C,EAAQiU,gBACnDhF,QAAS,CAAC,EAAG,GACbqF,OAAQ,CAAEC,KAAM,EAAGpa,QAAS,IAC5B4E,WAAY,CAAE,aAA6B,QAAjBsV,EAAErU,EAAQ0Q,eAAO,IAAA2D,OAAA,EAAfA,EAAiBjD,IAC7CoD,MAAO,GACPjO,OAAQ,GACRmD,SAAU,EACV+K,OAAO,EACPjH,SAAUxN,EAAQwN,SAClBI,qBAAsB5N,EAAQ+N,MAC9B2G,uBAAwB,EACxBC,mBAAoB,EACpBC,kBAAmB,EAEvB,GAAC,CAAA1f,IAAA,cAAAa,MAED,WACE,OAAO4P,KAAK+H,KAAKiB,WACnB,GAAC,CAAAzZ,IAAA,SAAAK,IAED,WACE,OAAOoQ,KAAK+H,KAAKiB,YAAYC,MAC/B,GAAC,CAAA1Z,IAAA,UAAAK,IAED,WACE,OAAOoQ,KAAK+H,KAAKiB,YAAYD,OAC/B,GAAC,CAAAxZ,IAAA,eAAAa,MAED,SAAab,EAAKa,GAChB,OAAa,MAATA,GAAiB4P,KAAK+H,KAAK+G,OACZ,IAAfvf,EAAIqD,SAERoN,KAAK+H,KAAK3O,WAAW7J,GAAOa,GAHiB4P,IAK/C,GAAC,CAAAzQ,IAAA,gBAAAa,MAED,SAAcgJ,GACZ,IAAK,IAALwD,EAAA,EAAAsS,EAAqBzf,OAAOoO,QAAQzE,GAAWwD,EAAAsS,EAAAtc,OAAAgK,IAAE,CAA5C,IAAAuS,EAAApR,GAAAmR,EAAAtS,GAAA,GAAOK,EAACkS,EAAA,GAAEjS,EAACiS,EAAA,GACdnP,KAAKoP,aAAanS,EAAGC,EACvB,CACA,OAAO8C,IACT,GAAC,CAAAzQ,IAAA,WAAAa,MAED,SAASK,GAA6B,IAAvB2I,EAAUkC,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGkO,EAAIlO,UAAA1I,OAAA,EAAA0I,UAAA,QAAA/D,EAClC,OAAIyI,KAAK+H,KAAK+G,OAEd9O,KAAK+H,KAAKnH,OAAOrK,KAAK,CACpB9F,KAAAA,EACA2I,WAAAA,EACAoQ,KAAMA,GAAQxC,GAAOrP,MACrBoX,uBAAwB,IANE/O,IAU9B,GAAC,CAAAzQ,IAAA,cAAAa,MAED,WACE,OAA2B,IAApB4P,KAAK+H,KAAK+G,KACnB,GAAC,CAAAvf,IAAA,MAAAa,MAED,SAAIgJ,EAAYoQ,GACVpQ,GAAY4G,KAAKgM,cAAc5S,GACnC4G,KAAK+H,KAAKuB,QAAUE,GAAQxC,GAAOrP,IAAIqI,KAAKsO,gBAC5CtO,KAAK+H,KAAK+G,OAAQ,EAClB9O,KAAKwO,cAAca,MAAMrP,KAC3B,GAAC,CAAAzQ,IAAA,SAAAa,MAED,WACE,OAAO4P,KAAK+H,IACd,I,8FAAC,CAzFc,G,44CCCV,IAAMuH,GAAM,WAIhB,O,EAHD,SAAAA,EAAY9T,EAASgT,I,4FAAezO,CAAA,KAAAuP,GAClCtP,KAAKwO,cAAgBA,EACrBxO,KAAKxE,QAAUA,CACjB,E,EAAC,EAAAjM,IAAA,YAAAa,MAED,SACEK,GAGA,IAAA8e,EAAAC,EAAAC,EAII1G,EAGAG,EATJ7O,EAAOiB,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,EACXnG,EAAOmG,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG0E,KAAKxE,QAAQkU,eAAeC,SAEhCC,EAAa5P,KAAKxE,QAAQqU,QAAQ1a,GAClC2a,EAAoBF,aAAU,EAAVA,EAAY5G,cAChCC,EAASwC,GAAGrB,IAAI,GAGlB2F,EAAa,KAEbD,GACF/G,EAAU+G,EAAkB/G,QAC5BgH,EAAaD,EAAkBC,WAC/B7G,EAAe4G,EAAkB7G,QAEjCF,EAAU0C,GAAGrB,IAAI,IAGnB,IACMpB,EAAc,CAAED,QAAAA,EAASE,OAAAA,EAAQ+G,WAZtB,EAYkCD,WAAAA,GAC7ClI,EAAW,CACfzO,WAAU6I,GAAAA,GAAA,IACiB,QAArBsN,EAAAvP,KAAKxE,QAAQqM,gBAAQ,IAAA0H,OAAA,EAArBA,EAAuBnW,aAAc,CAAC,IACtB,QAAhBoW,EAAAnV,EAAQwN,gBAAQ,IAAA2H,OAAA,EAAhBA,EAAkBpW,aAAc,CAAC,IAiBzC,OAba,IAAIiV,GAAK,CACpBxG,SAAUA,EACVO,MAAOpI,KAAKxE,QAAQ4M,MACpB2C,QAA6B,QAAtB0E,EAAEzP,KAAKxE,QAAQuP,eAAO,IAAA0E,OAAA,EAApBA,EAAsB1E,QAC/B5V,QAAAA,EACA6T,YAAAA,EACAvY,KAAAA,EACA0Y,KAhBW,EAiBXD,aAAAA,EACAsF,cAAexO,KAAKwO,cACpBnF,UAAWhP,EAAQgP,UACnBiF,eAAgBjU,EAAQiU,gBAG5B,I,8FAAC,CAjDgB,G,44CCInB,ITyBiC/e,GSzB3B0gB,ITyB2B1gB,GSzBC,2BT2BzBW,OAAOggB,IAAI3gB,KSzBC4gB,GAAO,WAUzB,O,EATD,SAAAA,EAAYC,EAAS9I,EAAKjN,I,4FAAS0F,CAAA,KAAAoQ,GACjCnQ,KAAKsH,IAAMA,EACXtH,KAAK3F,QAAUA,EACf2F,KAAKxK,OAAS4a,EAEVpQ,KAAKxK,OAAO8V,iBACdtL,KAAK+K,QAAU,IAAIF,GAAQ7K,KAAM3F,IAEnC2F,KAAKqQ,cACP,E,EAAC,EAAA9gB,IAAA,YAAAa,MAED,SAAUiK,GAER2F,KAAK3F,QAAUA,CACjB,GAAC,CAAA9K,IAAA,cAAAa,MAED,WACM4P,KAAK+K,SACP/K,KAAK+K,QAAQzO,MAEjB,GAAC,CAAA/M,IAAA,YAAAK,IAED,WACE,OAAIoQ,KAAK+K,QACA/K,KAAK+K,QAAQA,QAAQU,GAEvB,IACT,GAAC,CAAAlc,IAAA,WAAAK,IAED,WAAe,IAAA0gB,EAAAC,EACb,MAAO,CACLnX,WAAU6I,GAAAA,GAAA,GACJjC,KAAK3F,QAAQwN,UAAY,CAAC,GAAC,IAC/B,sBACmC,QADdyI,EACC,QADDC,EACnBvQ,KAAK3F,QAAQF,eAAO,IAAAoW,OAAA,EAApBA,EAAsBC,mBAAW,IAAAF,EAAAA,EAAItQ,KAAK3F,QAAQmW,cAG1D,GAAC,CAAAjhB,IAAA,QAAAK,IAED,WACE,MAAO,CACLa,KAAM,qBACNyX,QAASlI,KAAK3F,QAAQ6N,QAE1B,GAAC,CAAA3Y,IAAA,QAAAa,MAED,WAAkB,IAAZqgB,EAAKnV,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,GACZ,OAAOmQ,GAAGrB,IAAIqG,EAChB,GAAC,CAAAlhB,IAAA,eAAAa,MAED,WACE4P,KAAK0P,eAAiB,IAAIvJ,GAC1BnG,KAAK0N,SAAW,IAAIrG,GAAarH,KAAKsH,IAAKtH,KAAK3F,SAChD2F,KAAKwO,cAAgB,IAAIf,GAAczN,KAAK0N,SAAU1N,KAAK3F,QAAQmB,SACnEwE,KAAK0Q,OAAS,IAAIpB,GAAOtP,KAAMA,KAAKwO,cACtC,GAAC,CAAAjf,IAAA,YAAAa,MAED,WACE,OAAO4P,KAAK0Q,MACd,GAAC,CAAAnhB,IAAA,mBAAAa,MAED,SAAiB2d,GACf/N,KAAKwO,cAAcmC,aAAa5C,EAClC,GAAC,CAAAxe,IAAA,UAAAa,MAED,WACE,OADakL,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG0E,KAAK0P,eAAeC,UACrBiB,SAASX,GAC1B,GAAC,CAAA1gB,IAAA,UAAAa,MAED,WAAsD,IAA9C+E,EAAOmG,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG0E,KAAK0P,eAAeC,SAAU5H,EAAIzM,UAAA1I,OAAA,EAAA0I,UAAA,QAAA/D,EAClD,OAAOpC,EAAQ0b,SAASZ,GAAUlI,EACpC,GAAC,CAAAxY,IAAA,YAAAa,MAED,SAAUK,GAA4D,IAAtD4J,EAAOiB,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGnG,EAAOmG,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG0E,KAAK0P,eAAeC,SAC1D,OAAO3P,KAAK0Q,OAAOnQ,UAAU9P,EAAM4J,EAASlF,EAC9C,GAAC,CAAA5F,IAAA,OAAAa,MAED,SAAK+E,EAASmR,EAAIC,GAAkB,QAAAuK,EAAArK,EAAAnL,UAAA1I,OAAN6D,EAAI,IAAAoF,MAAA4K,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJjQ,EAAIiQ,EAAA,GAAApL,UAAAoL,GAChC,OAAOoK,EAAA9Q,KAAK0P,gBAAeqB,KAAIpK,MAAAmK,EAAA,CAAC3b,EAASmR,EAAIC,GAAOzL,OAAKrE,GAC3D,GAAC,CAAAlH,IAAA,WAAAa,MAED,SAASK,EAAM4J,EAASiM,EAAIC,GAC1B,IAAMwB,EAAO/H,KAAKO,UAAU9P,EAAM4J,GAClC,OAAO2F,KAAK+Q,KACV/Q,KAAKgR,QAAQhR,KAAK0P,eAAeC,SAAU5H,GAC3CzB,EACAC,EACAwB,EAEJ,I,8FAAC,CA1FyB,G,6oDCN5B,SAASkJ,GAAI9W,EAAS+W,GACpB,MAAO,CAAC/W,EAASkD,EAAYlD,EAAS+W,GACxC,CAEA,SAASC,GAAaC,EAAQC,GAC5B,IAAI/Z,EAAM8Z,EAAOxe,OACjB,OAAI0E,EAAc,EAAR+Z,EACDD,EAAO9a,MAAM,EAAG+a,GAAOvW,OAAOsW,EAAO9a,MAAMgB,EAAM+Z,IAEnDD,CACT,CAEA,SAASE,GAAenX,EAAS+W,EAAYG,GAC3CA,OAAyB,IAAVA,EAAwB,GAAKA,EAC5C,IACID,EADAzP,EAAOxH,EAAQhC,KAAKwJ,KAExB,GAAIA,EAAK4P,YAAa,CACpB,IACyBrT,EADIC,EAAAnF,GAAjB2I,EAAK4P,aACQ,IAAzB,IAAApT,EAAA9J,MAAA6J,EAAAC,EAAA/M,KAAA6H,MAA2B,KAAhBuY,EAAKtT,EAAA9N,MAEdghB,EAASD,GADTC,EAASI,EAAMJ,OACeC,GAC9BG,EAAMJ,OAASA,CACjB,CAAC,OAAArb,GAAAoI,EAAA3M,EAAAuE,EAAA,SAAAoI,EAAAnN,GAAA,CACH,MAAW2Q,EAAK6P,QAEdJ,EAASD,GADTC,EAASzP,EAAK6P,MAAMJ,OACUC,GAC9B1P,EAAK6P,MAAMJ,OAASA,GAEtB,MAAO,CAACjX,EAASkD,EAAYlD,EAAS+W,GACxC,CAEA,SAASO,GAAmBna,EAAKuB,GAC/B,OAAKA,GAGDA,EAAIjG,OAAS0E,EACRuB,EAAIvC,MAAM,EAAGgB,EAAM,GAAGwD,OAAO,OAH7BjC,CAMX,CAEA,SAAS6Y,GAAgBpa,EAAK6C,EAAS+W,GAarC,OADA/W,EAAU+E,EAAS/E,EAXnB,SAASwX,EAAU1U,EAAGC,EAAG/G,GACvB,OAAQkH,EAAWH,IACjB,IAAK,SACH,OAAOuU,GAAmBna,EAAK4F,GACjC,IAAK,SACL,IAAK,QACH,OAAOgC,EAAShC,EAAGyU,EAAWxb,GAChC,QACE,OAAO+G,EAEb,GAEO,CAAC/C,EAASkD,EAAYlD,EAAS+W,GACxC,CAEA,SAASU,GAAkBC,GASzB,OARIA,EAAUC,mBACLD,EAAUC,UAAUC,YAC3BF,EAAUC,UAAUtd,QAAUid,GAC5B,IACAI,EAAUC,UAAUtd,UAGxBqd,EAAUT,OAASD,GAAaU,EAAUT,OAAQ,GAC3CS,CACT,CAEA,SAASG,GAAQ7X,EAAS+W,GACxB,IAAIvP,EAAOxH,EAAQhC,KAAKwJ,KACxB,GAAIA,EAAK4P,YAAa,CACpB,IAC4CzY,EADxCmZ,EAAQtQ,EAAK4P,YAAYxY,EAAAC,GACAiZ,EAAMpU,WAAS,IAA5C,IAAA9E,EAAA1E,MAAAyE,EAAAC,EAAA3H,KAAA6H,MAA8C,KAAAiZ,EAAAnU,GAAAjF,EAAA1I,MAAA,GAAlC4N,EAAKkU,EAAA,GAAEV,EAAKU,EAAA,GACtBD,EAAMjU,GAAS4T,GAAkBJ,EACnC,CAAC,OAAAzb,GAAAgD,EAAAvH,EAAAuE,EAAA,SAAAgD,EAAA/H,GAAA,CACH,MAAW2Q,EAAK6P,QACd7P,EAAK6P,MAAQI,GAAkBjQ,EAAK6P,QAEtC,MAAO,CAACrX,EAASkD,EAAYlD,EAAS+W,GACxC,CAEA,SAASiB,GAAgBhY,EAASiY,GAChC,OfuPF,SAAqBC,GAanB,IAHA,IAAIlO,EAAQ,EACRvR,EAASyf,EAAOzf,OAEXF,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAC/B,IAAIkc,EAAOyD,EAAOC,WAAW5f,GACzBkc,EAAO,IAETzK,GAAgB,EACPyK,EAAO,KAEhBzK,GAAgB,EACPyK,EAAO,QAEhBzK,GAAgB,EAEpB,CAEA,OAAOA,CACT,CenRS9G,CAAclD,GAAWiY,CAClC,CAyBA,QACEG,SAxBF,SAAkBpY,EAAS+W,EAAYkB,GACrCA,OAA6B,IAAZA,EAA0B,OAAaA,EAWxD,IAVA,IAQII,EAAUC,EAAS5e,EARnB6e,EAAa,CACfzB,GACAK,GACAI,GAAgB5D,KAAK,KAAM,MAC3B4D,GAAgB5D,KAAK,KAAM,KAC3B4D,GAAgB5D,KAAK,KAAM,KAC3BkE,IAIMQ,EAAWE,EAAWhN,SAI5B,GAFAvL,GADAsY,EAAUD,EAASrY,EAAS+W,IACV,IAClBrd,EAAS4e,EAAQ,IACN3gB,QAAUqgB,GAAgBte,EAAOzD,MAAOgiB,GACjD,OAAOve,EAGX,OAAOA,CACT,EAMEod,IAAAA,GACAK,eAAAA,GACAI,gBAAAA,GACAD,mBAAAA,ICrHF,SAASkB,GAAaxa,GACpB,IAAKkF,EAASlF,EAAKhD,QAAS,UAAW,CACrC,IAAIyd,EAAgBvV,EAAYlF,EAAKhD,SACjCyd,EAAc9gB,MAChBqG,EAAKhD,QAAU,uCAEfgD,EAAKhD,QAAUyd,EAAcxiB,OAAS,GAEpC+H,EAAKhD,QAAQvC,OAAS,MACxBuF,EAAKhD,QAAUgD,EAAKhD,QAAQ0d,OAAO,EAAG,KAE1C,CACA,MAAO,CACL1a,KAAMA,EAEV,CAEA,SAAS2a,GAAwBzY,EAAS0Y,EAAU9gB,GAClD,IAAI2B,EAAWmf,EAASnf,SACpBF,EAAWqf,EAASrf,SACpBC,EAAOof,EAASpf,KAChBG,EAAOif,EAASjf,KAChBkf,EAASD,EAASC,OAClBC,EAAU5Y,EAAQ4Y,QAClBC,EAuBN,SAAyB7Y,GACvB,IAAI+V,EACiB,oBAAX5a,QAA0BA,QACjB,oBAATwQ,MAAwBA,KAC9BkN,EAAY7Y,EAAQ8Y,kBAAoB,WACf,IAAlB/C,EAAQgD,QAAuBF,EAAY,YAChB,IAA3B9C,EAAQiD,iBAAgCH,EAAY,SAC/D,OAAOA,CACT,CA/BkBI,CAAgBjZ,GAE5BkZ,EAAQlZ,EAAQkZ,MACpB,GAAIlZ,EAAQmZ,SAAU,CACpB,IAAIC,EAAOxhB,EAAIqC,MAAM+F,EAAQmZ,UAC7B5f,EAAW6f,EAAK7f,SAChBF,EAAW+f,EAAK/f,SAChBC,EAAO8f,EAAK9f,KACZG,EAAO2f,EAAKC,SACZV,EAASS,EAAKT,MAChB,CACA,MAAO,CACLC,QAASA,EACTrf,SAAUA,EACVF,SAAUA,EACVC,KAAMA,EACNG,KAAMA,EACNkf,OAAQA,EACRO,MAAOA,EACPL,UAAWA,EAEf,CAYA,SAASS,GAAiBT,EAAWvQ,GACnC,IAAIjP,EAAWwf,EAAUxf,UAAY,SACjCC,EACFuf,EAAUvf,OACI,UAAbD,EAAuB,GAAkB,WAAbA,EAAwB,SAAM6D,GACzD3D,EAAWsf,EAAUtf,SACrBE,EAAOof,EAAUpf,KACjBmf,EAAUC,EAAUD,QACpBW,EAAeV,EAAUA,UAU7B,OATIA,EAAUF,SACZlf,GAAcof,EAAUF,QAEtBE,EAAUK,QACZzf,EAAOJ,EAAW,KAAOE,EAAWE,EACpCF,EAAWsf,EAAUK,MAAMM,MAAQX,EAAUK,MAAM3f,SACnDD,EAAOuf,EAAUK,MAAM5f,KACvBD,EAAWwf,EAAUK,MAAM7f,UAAYA,GAElC,CACLuf,QAASA,EACTvf,SAAUA,EACVE,SAAUA,EACVE,KAAMA,EACNH,KAAMA,EACNgP,OAAQA,EACRuQ,UAAWU,EAEf,C,o7BCrFA,IAAApiB,EAAAjB,EAAAwH,EAAA,mBAAA7H,OAAAA,OAAA,GAAAkB,EAAA2G,EAAA+b,UAAA,aAAAtkB,EAAAuI,EAAA5H,aAAA,yBAAAuC,EAAAqF,EAAA3G,EAAA5B,EAAAkD,GAAA,IAAAoF,EAAA1G,GAAAA,EAAArB,qBAAAgkB,EAAA3iB,EAAA2iB,EAAAtgB,EAAAhE,OAAA4L,OAAAvD,EAAA/H,WAAA,OAAAikB,GAAAvgB,EAAA,mBAAAsE,EAAA3G,EAAA5B,GAAA,IAAAkD,EAAAoF,EAAArE,EAAAzC,EAAA,EAAAijB,EAAAzkB,GAAA,GAAA0kB,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA7iB,EAAA,EAAA8L,EAAA1L,EAAA+H,EAAA/B,EAAAxG,EAAAwG,EAAAsW,KAAAtc,EAAA,GAAAgG,EAAA,SAAAjH,EAAAwH,GAAA,OAAArF,EAAAnC,EAAAuH,EAAA,EAAArE,EAAAjC,EAAA2iB,EAAA/iB,EAAA2G,EAAAwB,CAAA,YAAA/B,EAAAO,EAAA3G,GAAA,IAAA0G,EAAAC,EAAAtE,EAAArC,EAAAb,EAAA,GAAA2jB,GAAAljB,IAAAxB,GAAAe,EAAA0jB,EAAArhB,OAAArC,IAAA,KAAAf,EAAAkD,EAAAuhB,EAAA1jB,GAAAiH,EAAA2c,EAAAF,EAAAthB,EAAAD,EAAA,GAAAqF,EAAA,GAAAvI,EAAAmD,IAAAvB,KAAAqC,EAAAf,GAAAoF,EAAApF,EAAA,OAAAoF,EAAA,MAAApF,EAAA,GAAAA,EAAA,GAAAlB,GAAAkB,EAAA,IAAA8E,KAAAhI,EAAAuI,EAAA,GAAAP,EAAA9E,EAAA,KAAAoF,EAAA,EAAAqc,EAAAjX,EAAA9L,EAAA+iB,EAAA/iB,EAAAsB,EAAA,IAAA8E,EAAA7E,IAAAnD,EAAAuI,EAAA,GAAArF,EAAA,GAAAtB,GAAAA,EAAAuB,KAAAD,EAAA,GAAAqF,EAAArF,EAAA,GAAAtB,EAAA+iB,EAAA/iB,EAAAuB,EAAAmF,EAAA,OAAAtI,GAAAuI,EAAA,SAAAwB,EAAA,MAAA2a,GAAA,EAAA9iB,CAAA,iBAAA5B,EAAAykB,EAAAthB,GAAA,GAAA3B,EAAA,QAAAojB,UAAA,oCAAAF,GAAA,IAAAD,GAAAzc,EAAAyc,EAAAthB,GAAAmF,EAAAmc,EAAAxgB,EAAAd,GAAApC,EAAAuH,EAAA,EAAAtG,EAAAiC,KAAAygB,GAAA,CAAAxhB,IAAAoF,EAAAA,EAAA,GAAAA,EAAA,IAAAqc,EAAA/iB,GAAA,GAAAoG,EAAAM,EAAArE,IAAA0gB,EAAA/iB,EAAAqC,EAAA0gB,EAAAjX,EAAAzJ,GAAA,OAAAzC,EAAA,EAAA0B,EAAA,IAAAoF,IAAAtI,EAAA,QAAAe,EAAAmC,EAAAlD,GAAA,MAAAe,EAAAA,EAAAN,KAAAyC,EAAAe,IAAA,MAAA2gB,UAAA,wCAAA7jB,EAAA0I,KAAA,OAAA1I,EAAAkD,EAAAlD,EAAAH,MAAA0H,EAAA,IAAAA,EAAA,YAAAA,IAAAvH,EAAAmC,EAAA2hB,SAAA9jB,EAAAN,KAAAyC,GAAAoF,EAAA,IAAArE,EAAA2gB,UAAA,oCAAA5kB,EAAA,YAAAsI,EAAA,GAAApF,EAAAlB,CAAA,UAAAjB,GAAA2jB,EAAAC,EAAA/iB,EAAA,GAAAqC,EAAAsE,EAAA9H,KAAAmB,EAAA+iB,MAAA5a,EAAA,YAAAhJ,GAAAmC,EAAAlB,EAAAsG,EAAA,EAAArE,EAAAlD,CAAA,SAAAS,EAAA,UAAAZ,MAAAG,EAAA0I,KAAAib,EAAA,GAAAnc,EAAAvI,EAAAkD,IAAA,GAAAe,CAAA,KAAA8F,EAAA,YAAAwa,IAAA,UAAAO,IAAA,UAAAC,IAAA,CAAAhkB,EAAAd,OAAA+kB,eAAA,IAAA1c,EAAA,GAAA1G,GAAAb,EAAAA,EAAA,GAAAa,QAAA4iB,GAAAzjB,EAAA,GAAAa,EAAA,yBAAAb,GAAAkD,EAAA8gB,EAAAxkB,UAAAgkB,EAAAhkB,UAAAN,OAAA4L,OAAAvD,GAAA,SAAA9G,EAAAQ,GAAA,OAAA/B,OAAAmK,eAAAnK,OAAAmK,eAAApI,EAAA+iB,IAAA/iB,EAAAijB,UAAAF,EAAAP,GAAAxiB,EAAAhC,EAAA,sBAAAgC,EAAAzB,UAAAN,OAAA4L,OAAA5H,GAAAjC,CAAA,QAAA8iB,EAAAvkB,UAAAwkB,EAAAP,GAAAvgB,EAAA,cAAA8gB,GAAAP,GAAAO,EAAA,cAAAD,GAAAA,EAAAI,YAAA,oBAAAV,GAAAO,EAAA/kB,EAAA,qBAAAwkB,GAAAvgB,GAAAugB,GAAAvgB,EAAAjE,EAAA,aAAAwkB,GAAAvgB,EAAArC,EAAA,yBAAA4iB,GAAAvgB,EAAA,oDAAAkhB,GAAA,kBAAAC,EAAAliB,EAAAL,EAAArB,EAAA,cAAAgjB,GAAAxiB,EAAAuG,EAAA3G,EAAAb,GAAA,IAAAmC,EAAAjD,OAAAC,eAAA,IAAAgD,EAAA,gBAAAlB,GAAAkB,EAAA,EAAAshB,GAAA,SAAAxiB,EAAAuG,EAAA3G,EAAAb,GAAA,SAAAf,EAAAuI,EAAA3G,GAAA4iB,GAAAxiB,EAAAuG,EAAA,SAAAvG,GAAA,YAAAqjB,QAAA9c,EAAA3G,EAAAI,EAAA,GAAAuG,EAAArF,EAAAA,EAAAlB,EAAAuG,EAAA,CAAA3H,MAAAgB,EAAAzB,YAAAY,EAAAukB,cAAAvkB,EAAAwkB,UAAAxkB,IAAAiB,EAAAuG,GAAA3G,GAAA5B,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAwkB,GAAAxiB,EAAAuG,EAAA3G,EAAAb,EAAA,UAAAykB,GAAA5jB,EAAAb,EAAAiB,EAAAuG,EAAAvI,EAAA+J,EAAAzB,GAAA,QAAApF,EAAAtB,EAAAmI,GAAAzB,GAAArE,EAAAf,EAAAtC,KAAA,OAAAgB,GAAA,YAAAI,EAAAJ,EAAA,CAAAsB,EAAAuG,KAAA1I,EAAAkD,GAAAwhB,QAAAC,QAAAzhB,GAAA0hB,KAAApd,EAAAvI,EAAA,UAAA4lB,GAAA5jB,EAAAuG,GAAA,QAAAxH,EAAA,EAAAA,EAAAwH,EAAAnF,OAAArC,IAAA,KAAAf,EAAAuI,EAAAxH,GAAAf,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAslB,cAAA,YAAAtlB,IAAAA,EAAAulB,UAAA,GAAAtlB,OAAAC,eAAA8B,EAAA6jB,GAAA7lB,EAAAD,KAAAC,EAAA,WAAA6lB,GAAA9kB,GAAA,IAAAmC,EAAA,SAAAnC,EAAAwH,GAAA,aAAArH,GAAAH,KAAAA,EAAA,OAAAA,EAAA,IAAAiB,EAAAjB,EAAAL,OAAAolB,aAAA,YAAA9jB,EAAA,KAAAkB,EAAAlB,EAAAvB,KAAAM,EAAAwH,GAAA,wBAAArH,GAAAgC,GAAA,OAAAA,EAAA,UAAA0hB,UAAA,kEAAArc,EAAApC,OAAAtE,QAAAd,EAAA,CAAAglB,CAAAhlB,EAAA,0BAAAG,GAAAgC,GAAAA,EAAAA,EAAA,GAEA,IAAM8iB,GAAiB,CACrB5hB,SAAU,kBACVE,KAAM,eACNkf,OAAQ,KACR9K,QAAS,IACTxU,SAAU,SACVC,KAAM,KAGF8hB,GAAqB,CACzB7hB,SAAU,kBACVE,KAAM,kBACNkf,OAAQ,KACR9K,QAAS,IACTxU,SAAU,SACVC,KAAM,KAUF+hB,GAAG,WAsBP,OAjDFlkB,EAuCE,SAAAkkB,EAAYrb,EAAS6Y,EAAWyC,EAAQC,IAvC1C,SAAArc,EAAAnI,GAAA,KAAAmI,aAAAnI,GAAA,UAAAgjB,UAAA,qCAuCsDrU,CAAA,KAAA2V,GAClD1V,KAAK3F,QAAUA,EACf2F,KAAKkT,UAAYA,EACjBlT,KAAK/N,IAAM0jB,EACX3V,KAAK4V,WAAaA,EAClB5V,KAAK6V,YAAcxb,EAAQwb,YAC3B7V,KAAK2T,iBAAmBmC,GAAczb,EAASsb,GAC/C3V,KAAK+V,qBAAuBC,GAAkB3b,EAASsb,EACzD,EA/CF5d,EAiDE,EAAAxI,IAAA,eAAAa,MAUA,SAAY6Q,GAA6C,IAAA0G,EAAA,KAA1CkO,EAAW5U,EAAX4U,YAAaxb,EAAO4G,EAAP5G,QAASF,EAAO8G,EAAP9G,QAASqC,EAAOyE,EAAPzE,QAC5C,OAAO,IAAIyY,QAAQ,SAACC,EAASe,GAC3BtO,EAAKuL,UAAUgD,KAAK,CAClBL,YAAAA,EACAxb,QAAAA,EACAF,QAAAA,EACAqC,QAAAA,EACA1F,SAAU,SAACf,EAAKC,GAAI,OAAMD,EAAMkgB,EAAOlgB,GAAOmf,EAAQlf,EAAK,GAE/D,EACF,GAEA,CAAAzG,IAAA,WAAAa,MAKA,SAAS+H,EAAMrB,GAAU,IAAA8R,EAAA,KACjBvO,EAAU8b,GAAyBnW,KAAK2T,iBAAkB,QAC1DxZ,EAAUgc,GAAqBhe,GAGrCie,WAAW,WACTxN,EAAKsK,UAAUgD,KAAK,CAClBL,YAAajN,EAAKiN,YAClBxb,QAAAA,EACAF,QAAAA,EACArD,SAAAA,GAEJ,EAAG,EACL,GAEA,CAAAvH,IAAA,YAAAa,OA3FFgB,EA2FEujB,KAAAtiB,EAMA,SAAAgkB,EAAgBlc,GAAO,IAAAqC,EAAAnC,EAAAic,EAAAhb,UAAA,OAAAqZ,KAAAC,EAAA,SAAA2B,GAAA,cAAAA,EAAAnlB,EACsD,OADpDoL,EAAO8Z,EAAA1jB,OAAA,QAAA2E,IAAA+e,EAAA,GAAAA,EAAA,GAAG,CAAC,EAC5Bjc,EAAU8b,GAAyBnW,KAAK+V,qBAAsB,QAAOQ,EAAAhd,EAAA,EAEpEyG,KAAKwW,aAAa,CACvBX,YAAa7V,KAAK6V,YAClBxb,QAAAA,EACAF,QAAAA,EACAqC,QAAAA,IACA,EAAA6Z,EAAA,QAdJI,EA3FF,eAAAlmB,EAAA,KAAAiB,EAAA8J,UAAA,WAAA2Z,QAAA,SAAAld,EAAAvI,GAAA,IAAA+J,EAAAnI,EAAAuV,MAAApW,EAAAiB,GAAA,SAAAklB,EAAAtlB,GAAA4jB,GAAAzb,EAAAxB,EAAAvI,EAAAknB,EAAAC,EAAA,OAAAvlB,EAAA,UAAAulB,EAAAvlB,GAAA4jB,GAAAzb,EAAAxB,EAAAvI,EAAAknB,EAAAC,EAAA,QAAAvlB,EAAA,CAAAslB,OAAA,MA0GG,SATcE,GAAA,OAAAH,EAAA9P,MAAC,KAADrL,UAAA,IAWf,CAAA/L,IAAA,mBAAAa,MAKA,SAAiB+H,EAAMrB,GACrB,IAEI+f,EAFE1c,EAAUgc,GAAqBhe,GASrC,OALE0e,EADE7W,KAAK4V,WACW5V,KAAK4V,WAAWrD,SAASpY,GAEzBpG,EAAUoG,IAGVrI,OACdgF,GACFA,EAAS+f,EAAgB/kB,OAEpB,MAGF+kB,EAAgBzmB,KACzB,GAEA,CAAAb,IAAA,kBAAAa,MAKA,SAAgB0mB,EAAahgB,GAC3B,IAAM6c,EAAmBwC,GACvBnW,KAAK2T,iBACL,QAEF3T,KAAKkT,UAAU6D,gBACb/W,KAAK6V,YACLlC,EACAmD,EACAhgB,EAEJ,GAAC,CAAAvH,IAAA,YAAAa,MAED,SAAUiK,GACR,IAAMmG,EAAaR,KAAK3F,QAOxB,OANA2F,KAAK3F,QAAUD,EAAMoG,EAAYnG,GACjC2F,KAAK2T,iBAAmBmC,GAAc9V,KAAK3F,QAAS2F,KAAK/N,KACzD+N,KAAK+V,qBAAuBC,GAAkBhW,KAAK3F,QAAS2F,KAAK/N,UAChCsF,IAA7ByI,KAAK3F,QAAQwb,cACf7V,KAAK6V,YAAc7V,KAAK3F,QAAQwb,aAE3B7V,IACT,IAhKFjI,GAAAqd,GAAA5jB,EAAAzB,UAAAgI,GAAAxH,GAAA6kB,GAAA5jB,EAAAjB,GAAAd,OAAAC,eAAA8B,EAAA,aAAAujB,UAAA,IAAAvjB,EAAA,IAAAA,EAAAuG,EAAAxH,EAAAa,EA2FEqlB,CAqEC,CArIM,GAwIT,SAASX,GAAczb,EAASpI,GAC9B,OAAOkkB,GAAgC9b,EAASmb,GAAgBvjB,EAClE,CAEA,SAAS+jB,GAAkB3b,EAASpI,GAAK,IAAAwJ,EAEvC,OAAO0a,GADP9b,EAAO4H,GAAAA,GAAA,GAAQ5H,GAAO,IAAEmZ,SAAyB,QAAjB/X,EAAEpB,EAAQmB,eAAO,IAAAC,OAAA,EAAfA,EAAiB+X,WACHiC,GAAoBxjB,EACtE,CAEA,UClHA,GAxDuB,QAwDvB,GAvDwB,8BAuDxB,GAtDwB,QAsDxB,GArD2B,QAqD3B,GApDkC,QCP5B+kB,GAA8B,eAC9BC,GAAyB,iCACzBC,GAA4B,+BAClC,SAAS5iB,GAAMxC,EAAOuI,GACpB,QAAgC,IAArBvI,EAAMqlB,iBAAkE,IAA7BrlB,EAAM,mBAC1D,OA4FJ,SAAoBN,EAAG6I,GACrB,OAAK7I,EAAE2lB,YAAc3lB,EAAEgD,QAAQ6B,SAAS,OAAS7E,EAAEgD,QAAQiF,MAAM,MAAM7G,OAASpB,EAAE2lB,WAAW1d,MAAM,MAAM7G,OAO3G,SAAqBpB,EAAG6I,GAItB,IAHA,IAAM+c,EAAS,oCACTC,EAAQ7lB,EAAEgD,QAAQiF,MAAM,MACxB5F,EAAS,GACNnB,EAAI,EAAG4E,EAAM+f,EAAMzkB,OAAQF,EAAI4E,EAAK5E,GAAK,EAAG,CACnD,IAAM7B,EAAQumB,EAAO5kB,KAAK6kB,EAAM3kB,IAC5B7B,GACFgD,EAAO0C,KAAK,CACV+gB,KAAMzmB,EAAM,GACZkE,MAAOlE,EAAM,GACbogB,IAAKoG,EAAM3kB,IAGjB,CACA,OAAO6kB,GAAW1jB,EAAQwG,EAC5B,CArBWmd,CAAYhmB,GACXA,EAAEoE,MAsCd,SAAsB9D,EAAOuI,GAC3B,IAAMod,EAAWF,GAEfzlB,EAAM8D,MAAM6D,MAAM,MAAMqH,OAAO,SAAC/L,GAC9B,QAASA,EAAKlE,MAAMmmB,MAAiCjiB,EAAKlE,MAAM,oBAClE,GACAwJ,GAEF,OAAOod,EAASzW,IAAI,SAACjM,GACnB,IAII2iB,EAJEC,EAAS5iB,EAAK0E,MAAM,KACpBme,EAAgBC,GAAgBF,EAAOG,OACvCC,EAAeJ,EAAOjS,SAAW,GACjCsS,EAAeD,EAAajlB,QAAQ,iCAAkC,MAAMA,QAAQ,aAAc,UAAOyE,EAK/G,OAHIwgB,EAAalnB,MAAM,iBACrB6mB,EAAUK,EAAajlB,QAAQ,qBAAsB,OAEhD,CACLmlB,SAAUD,EACVvhB,UAHuBc,IAAZmgB,GAAqC,8BAAZA,OAA0CngB,EAAYmgB,EAAQje,MAAM,KAIxG6d,KAAMM,EAAc,GACpB7iB,KAAM6iB,EAAc,IAAMA,EAAc,QAAKrgB,EAC7C2gB,IAAKN,EAAc,IAAMA,EAAc,QAAKrgB,EAC5C0Z,IAAKlc,EAET,EACF,CA7DWojB,CAAa3mB,EAAG6I,GAkB3B,SAAsB7I,EAAG6I,GAIvB,IAHA,IAAM+c,EAAS,6DACTC,EAAQ7lB,EAAE2lB,WAAW1d,MAAM,MAC3B5F,EAAS,GACNnB,EAAI,EAAG4E,EAAM+f,EAAMzkB,OAAQF,EAAI4E,EAAK5E,GAAK,EAAG,CACnD,IAAM7B,EAAQumB,EAAO5kB,KAAK6kB,EAAM3kB,IAC5B7B,GACFgD,EAAO0C,KAAK,CACV0hB,SAAUpnB,EAAM,SAAM0G,EACtB+f,KAAMzmB,EAAM,GACZkE,KAAMlE,EAAM,IAAMA,EAAM,QAAK0G,EAC7B0Z,IAAKoG,EAAM3kB,IAGjB,CACA,OAAO6kB,GAAW1jB,EAAQwG,EAC5B,CApCW+d,CAAa5mB,EAGxB,CAnGW6mB,CAAWvmB,EAAOuI,GACtB,GAAIvI,EAAM8D,OAAS9D,EAAM8D,MAAM/E,MAAMomB,IACxC,OA6BJ,SAAqBnlB,EAAOuI,GAC1B,OAAOie,GAAkBxmB,EAAM8D,MAAOyE,EACxC,CA/BWke,CAAYzmB,EAAOuI,GACvB,GAAIvI,EAAM8D,MACb,OAwDJ,SAAyB9D,EAAOuI,GAC9B,OAAOme,GAAsB1mB,EAAM8D,MAAOyE,EAC5C,CA1DWoe,CAAgB3mB,EAAOuI,GAC3B,GAAIA,SAAAA,EAASqe,WAChB,MAAO,GAEP,MAAM,IAAI/nB,MAAM,kCACpB,CAOA,SAASknB,GAAgBc,GACvB,IAAKA,EAAQtiB,SAAS,KACpB,MAAO,CAACsiB,OAASphB,OAAWA,GAC9B,IACMqhB,EADS,+BACMpmB,KAAKmmB,EAAQ7lB,QAAQ,QAAS,KACnD,MAAO,CAAC8lB,EAAM,GAAIA,EAAM,SAAMrhB,EAAWqhB,EAAM,SAAMrhB,EACvD,CACA,SAASggB,GAAWF,EAAOhd,GACzB,OAAIA,GAA4B,MAAjBA,EAAQ/D,MACjBuF,MAAMC,QAAQzB,EAAQ/D,OACjB+gB,EAAM/gB,MAAM+D,EAAQ/D,MAAM,GAAI+D,EAAQ/D,MAAM,IAC9C+gB,EAAM/gB,MAAM,EAAG+D,EAAQ/D,OAEzB+gB,CACT,CAIA,SAASiB,GAAkB1iB,EAAOyE,GAOhC,OANiBkd,GACf3hB,EAAM6D,MAAM,MAAMqH,OAAO,SAAC/L,GACxB,QAASA,EAAKlE,MAAMomB,GACtB,GACA5c,GAEc2G,IAAI,SAACjM,GACfA,EAAKsB,SAAS,YAChBtB,EAAOA,EAAKjC,QAAQ,aAAc,QAAQA,QAAQ,6BAA8B,KAElF,IAAI+lB,EAAgB9jB,EAAKjC,QAAQ,OAAQ,IAAIA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,IACvFgC,EAAW+jB,EAAchoB,MAAM,cACrCgoB,EAAgB/jB,EAAW+jB,EAAc/lB,QAAQgC,EAAS,GAAI,IAAM+jB,EACpE,IAAMjB,EAAgBC,GAAgB/iB,EAAWA,EAAS,GAAK+jB,GAG/D,MAAO,CACLZ,SAHmBnjB,GAAY+jB,QAAiBthB,EAIhD+f,KAHe,CAAC,OAAQ,eAAejhB,SAASuhB,EAAc,SAAMrgB,EAAYqgB,EAAc,GAI9F7iB,KAAM6iB,EAAc,IAAMA,EAAc,QAAKrgB,EAC7C2gB,IAAKN,EAAc,IAAMA,EAAc,QAAKrgB,EAC5C0Z,IAAKlc,EAET,EACF,CAIA,SAASyjB,GAAsB5iB,EAAOyE,GAOpC,OANiBkd,GACf3hB,EAAM6D,MAAM,MAAMqH,OAAO,SAAC/L,GACxB,OAAQA,EAAKlE,MAAMqmB,GACrB,GACA7c,GAEc2G,IAAI,SAACjM,GAGnB,GAFIA,EAAKsB,SAAS,aAChBtB,EAAOA,EAAKjC,QAAQ,mDAAoD,QACrEiC,EAAKsB,SAAS,MAAStB,EAAKsB,SAAS,KAInC,CACL,IAAMyiB,EAAoB,6JACpBC,EAAUhkB,EAAKlE,MAAMioB,GACrBd,EAAee,GAAWA,EAAQ,GAAKA,EAAQ,QAAKxhB,EACpDqgB,EAAgBC,GAAgB9iB,EAAKjC,QAAQgmB,EAAmB,KACtE,MAAO,CACLb,SAAUD,EACVV,KAAMM,EAAc,GACpB7iB,KAAM6iB,EAAc,IAAMA,EAAc,QAAKrgB,EAC7C2gB,IAAKN,EAAc,IAAMA,EAAc,QAAKrgB,EAC5C0Z,IAAKlc,EAET,CAfE,MAAO,CACLkjB,SAAUljB,EAehB,EACF,CC7FA,SAASikB,GAA6BC,GACpC,OAAOA,EAAgBjY,IAAI,SAACkY,GAC1B,MAAO,CACLlB,aAAckB,EAAejB,SAC7BxhB,KAAMyiB,EAAeziB,KACrB0iB,SAAUD,EAAe5B,KACzB8B,WAAYF,EAAenkB,KAC3BskB,aAAcH,EAAehB,IAC7B9kB,OAAQ8lB,EAAejI,IAE3B,EACF,CCZA,IACIqI,GAAmB,IAAI7a,OACzB,6DAOF,SAASrJ,KACP,OAAO,IACT,CAEA,SAASmkB,GAAMC,GACb,IAAIrhB,EAAO,CAAC,EAYZ,OAVAA,EAAKshB,YAAcD,EAEnBrhB,EAAKlG,IAAMunB,EAAWL,SACtBhhB,EAAKpD,KAAOykB,EAAWJ,WACvBjhB,EAAKlD,KAAOukB,EAAWxB,aACvB7f,EAAKnD,OAASwkB,EAAWH,aACzBlhB,EAAK1B,KAAO+iB,EAAW/iB,KAEvB0B,EAAKhD,QAdE,KAgBAgD,CACT,CAEA,SAASuhB,GAAM5H,EAAW6H,GAqBxB,MAAO,CACL/jB,MArBF,WACE,IAAIgkB,EAAc,GAElBD,EAAOA,GAAQ,EAEf,IACEC,EDvBN,SAAe9nB,EAAOuI,GACpB,OAAO2e,GAA6Ba,GAAQ/nB,EAAOuI,GACrD,CCqBoByf,CAAgBhI,EAChC,CAAE,MAAOpY,GACPkgB,EAAc,EAChB,CAIA,IAFA,IAAIhkB,EAAQ,GAEHlD,EAAIinB,EAAMjnB,EAAIknB,EAAYhnB,OAAQF,IACzCkD,EAAMW,KAAK,IAAIgjB,GAAMK,EAAYlnB,KAGnC,OAAOkD,CACT,CAGSmkB,GACPvlB,QAASsd,EAAUtd,QACnB/D,KAAMupB,GAAuBlI,GAC7BmI,SAAUnI,EAAUlc,MACpBskB,aAAcpI,EAElB,CA2CA,SAASkI,GAAuBloB,GAC9B,IAAIrB,EAAOqB,EAAMrB,MAAQqB,EAAMrB,KAAKmC,QAAUd,EAAMrB,KAChD0pB,EACFroB,EAAMoJ,YAAYzK,MAClBqB,EAAMoJ,YAAYzK,KAAKmC,QACvBd,EAAMoJ,YAAYzK,KAEpB,OAAKA,GAAS0pB,EAID,UAAT1pB,EACK0pB,EAEF1pB,EANEA,GAAQ0pB,CAOnB,CAEA,QACEjlB,kBAjHF,WACE,MANqB,GAOvB,EAgHEklB,gBAxCF,SAAyBC,GACvB,IAAKA,IAAWA,EAAOxpB,MACrB,MAAO,CAAC,wDAAyD,IAEnE,IAAIypB,EAAgBD,EAAOxpB,MAAMyoB,IAC7BiB,EAAW,YAUf,OARID,IACFC,EAAWD,EAAcA,EAAc1nB,OAAS,GAKhDynB,GAJAA,EAASA,EAAOvnB,SACbwnB,EAAcA,EAAc1nB,OAAS,IAAM,IAAM2nB,EAAW,IAC7D,KAEcznB,QAAQ,mBAAoB,KAEvC,CAACynB,EAAUF,EACpB,EAyBEjlB,cAAAA,GACAd,MA9DF,SAAe9C,EAAGmoB,GAChB,IAAI5jB,EAAMvE,EAEV,GAAIuE,EAAIykB,QAAUzkB,EAAI0kB,MAAO,CAE3B,IADA,IAAIC,EAAa,GACV3kB,GACL2kB,EAAWnkB,KAAK,IAAImjB,GAAM3jB,EAAK4jB,IAC/B5jB,EAAMA,EAAIykB,QAAUzkB,EAAI0kB,MAExBd,EAAO,EAKT,OADAe,EAAW,GAAGA,WAAaA,EACpBA,EAAW,EACpB,CACE,OAAO,IAAIhB,GAAM3jB,EAAK4jB,EAE1B,EA6CED,MAAAA,GACAH,MAAAA,I,y/BC3HF,SAASoB,GAAWljB,EAAMmjB,GACxB,IAAIxiB,EAAQX,EAAKW,MACbyiB,EAAWxd,EAASjF,IAAU,EAC9B0iB,EAAcF,EAASE,YAG3B,QAAID,GAFiBxd,EAASyd,IAAgB,GAMhD,CA2CA,SAASC,GAAYvJ,EAAOnN,EAAM2W,GAChC,IAAKxJ,EACH,OAAQwJ,EAGV,IAMWC,EAAUhpB,EANjBmf,EAASI,EAAMJ,OAEnB,IAAKA,GAA4B,IAAlBA,EAAOxe,OACpB,OAAQooB,EAMV,IAFA,IAAIE,EAAa7W,EAAKzR,OAClBuoB,EAAc/J,EAAOxe,OAChBF,EAAI,EAAGA,EAAIyoB,EAAazoB,IAAK,CAIpC,IAAK2K,EAFL4d,EADQ7J,EAAO1e,GACEuoB,SAEO,UACtB,OAAQD,EAGV,IAAK,IAAI3jB,EAAI,EAAGA,EAAI6jB,EAAY7jB,IAI9B,GAHApF,EAAMoS,EAAKhN,GACA,IAAIoH,OAAOxM,GAETiK,KAAK+e,GAChB,OAAO,CAGb,CACA,OAAO,CACT,CAEA,SAASG,GAAa3jB,EAAMmjB,EAAUS,EAAavlB,GAEjD,IAKIuO,EAAMiX,EALNN,GAAQ,EACQ,cAAhBK,IACFL,GAAQ,GAIV,IAME,GALA3W,EAAO2W,EAAQJ,EAASlgB,cAAgBkgB,EAASrgB,aACjD+gB,EAASje,EAAM5F,EAAM,qBAAuB,CAAC4F,EAAM5F,EAAM,gBAIpD4M,GAAwB,IAAhBA,EAAKzR,OAChB,OAAQooB,EAEV,GAAsB,IAAlBM,EAAO1oB,SAAiB0oB,EAAO,GACjC,OAAQN,EAIV,IADA,IAAIO,EAAeD,EAAO1oB,OACjBF,EAAI,EAAGA,EAAI6oB,EAAc7oB,IAChC,GAAIqoB,GAAYO,EAAO5oB,GAAI2R,EAAM2W,GAC/B,OAAO,CAGb,CAAE,MACAxpB,GAGIwpB,EACFJ,EAASlgB,cAAgB,KAEzBkgB,EAASrgB,aAAe,KAE1B,IAAIihB,EAAWR,EAAQ,gBAAkB,eASzC,OARAllB,EAAOhE,MACL,4CACE0pB,EACA,4BACAA,EACA,IACFhqB,IAEMwpB,CACV,CACA,OAAO,CACT,CAEA,SAASS,GAAiB3lB,GACxB,OAAO,SAAU2B,EAAMmjB,GACrB,IAAIloB,EAAG2E,EAAGqkB,EAAiBpkB,EAAuBqkB,EAAiBC,EAEnE,IAIE,KAFAF,EAAkBd,EAASc,kBAEwB,IAA3BA,EAAgB9oB,OACtC,OAAO,EAKT,GAFAgpB,EAgCN,SAA0BnkB,GACxB,IAAIkK,EAAOlK,EAAKkK,KACZia,EAAW,GAKf,GAAIja,EAAK4P,YAAa,CACpB,IAC8BrT,EADIC,EAAAnF,GAAjB2I,EAAK4P,aACQ,IAA9B,IAAApT,EAAA9J,MAAA6J,EAAAC,EAAA/M,KAAA6H,MAAgC,KAArBuY,EAAKtT,EAAA9N,MACdwrB,EAASrlB,KAAK8G,EAAMmU,EAAO,qBAC7B,CAAC,OAAAzb,GAAAoI,EAAA3M,EAAAuE,EAAA,SAAAoI,EAAAnN,GAAA,CACH,CACI2Q,EAAK6P,OACPoK,EAASrlB,KAAK8G,EAAMsE,EAAM,4BAExBA,EAAKnN,SACPonB,EAASrlB,KAAK8G,EAAMsE,EAAM,iBAE5B,OAAOia,CACT,CApDiBC,CAAiBpkB,GAEJ,IAApBmkB,EAAShpB,OACX,OAAO,EAIT,IADA0E,EAAMokB,EAAgB9oB,OACjBF,EAAI,EAAGA,EAAI4E,EAAK5E,IAGnB,IAFAipB,EAAkB,IAAIld,OAAOid,EAAgBhpB,GAAI,MAE5C2E,EAAI,EAAGA,EAAIukB,EAAShpB,OAAQyE,IAG/B,GAFmBskB,EAAgBzf,KAAK0f,EAASvkB,IAG/C,OAAO,CAIf,CAAE,MACAqC,GAGAkhB,EAASc,gBAAkB,KAC3B5lB,EAAOhE,MACL,oGAEJ,CAEA,OAAO,CACT,CACF,C,+sBCnLA,IAKqBgqB,GAAQ,WAe3B,O,EAPA,SAAAA,EAAY7b,EAAO5F,I,4FAAS0F,CAAA,KAAA+b,GAC1B9b,KAAKC,MAAQA,EACbD,KAAK3F,QAAUA,EACf2F,KAAK4N,WAAa,GAClB5N,KAAKpI,WAAa,CAAC,CACrB,E,EAEA,EAAArI,IAAA,YAAAa,MAOA,SAAUiK,GAAS,IAAA0hB,EACP,QAAVA,EAAA/b,KAAKC,aAAK,IAAA8b,GAAVA,EAAYC,UAAU3hB,GACtB,IAAMmG,EAAaR,KAAK3F,QAExB,OADA2F,KAAK3F,QAAUD,EAAMoG,EAAYnG,GAC1B2F,IACT,GAEA,CAAAzQ,IAAA,eAAAa,MAYA,SAAa6d,GAIX,OAHIld,EAAWkd,IACbjO,KAAK4N,WAAWrX,KAAK0X,GAEhBjO,IACT,GAEA,CAAAzQ,IAAA,MAAAa,MAcA,SAAIqH,EAAMX,GAAU,IAAA6Q,EAAA,KAGlB,GAFA7Q,EAAW/F,EAAW+F,GAAYA,EAAW,WAAO,GAE/CkJ,KAAK3F,QAAQ4hB,QAChB,OAAOnlB,EAAS,IAAInG,MAAM,0BAA2B,MAGvDqP,KAAKC,MAAMic,eAAezkB,GAC1B,IAAM0kB,EAAgB1kB,EAAK1B,IAC3BiK,KAAKoc,iBAAiB3kB,EAAM,SAAC1B,EAAKrD,GAChC,GAAIqD,EAEF,OADA4R,EAAK1H,MAAMoc,kBAAkB5kB,GACtBX,EAASf,EAAK,MAEvB4R,EAAK1H,MAAMqc,QAAQ5pB,EAAGoE,EAAUqlB,EAAe1kB,EACjD,EACF,GAIA,CAAAlI,IAAA,mBAAAa,MAUA,SAAiBqH,EAAMX,GACrB,IAAIylB,GAAkB,EAChBC,EAAmBxc,KAAK4N,WAAWhb,OACnCgb,EAAa5N,KAAK4N,WAClBvT,EAAU2F,KAAK3F,QAEfoiB,EAAO,SAAC1mB,EAAKrD,GACbqD,EACFe,EAASf,EAAK,QAIhBwmB,IAEuBC,EAKvB5O,EAAW2O,GAAgB7pB,EAAG2H,EAASoiB,GAJrC3lB,EAAS,KAAMpE,EAKnB,EAEA+pB,EAAK,KAAMhlB,EACb,I,8FAAC,CAnH0B,G,+sBCL7B,I,SAMMilB,GAAK,WAUT,SAAAA,EAAYC,EAAarV,EAAKxR,EAAQuE,EAASuiB,I,4FAAQ7c,CAAA,KAAA2c,GACrD1c,KAAK2c,YAAcA,EACnB3c,KAAKsH,IAAMA,EACXtH,KAAKlK,OAASA,EACdkK,KAAK3F,QAAUA,EACf2F,KAAK4c,OAASA,EACd5c,KAAK6c,WAAa,GAClB7c,KAAK8c,aAAe,GACpB9c,KAAK+c,gBAAkB,GACvB/c,KAAKgd,WAAa,GAClBhd,KAAKid,YAAc,KACnBjd,KAAKkd,aAAe,KACpBld,KAAKmd,eAAiB,IACxB,CAEA,O,EAAAT,E,EAAA,EAAAntB,IAAA,YAAAa,MAKA,SAAUiK,GAAS,IAAA+iB,EACT,QAARA,EAAApd,KAAKsH,WAAG,IAAA8V,GAARA,EAAUpB,UAAU3hB,GACpB,IAAMmG,EAAaR,KAAK3F,QAExB,OADA2F,KAAK3F,QAAUgD,EAAQmD,EAAYnG,GAC5B2F,IACT,GAEA,CAAAzQ,IAAA,eAAAa,MASA,SAAaitB,GAIX,OAHIhgB,EAAaggB,IACfrd,KAAK6c,WAAWtmB,KAAK8mB,GAEhBrd,IACT,GAAC,CAAAzQ,IAAA,iBAAAa,MAED,SAAeqH,GACbuI,KAAK8c,aAAavmB,KAAKkB,EACzB,GAAC,CAAAlI,IAAA,oBAAAa,MAED,SAAkBqH,GAChB,IAAM6lB,EAAMtd,KAAK8c,aAAavf,QAAQ9F,IACzB,IAAT6lB,GACFtd,KAAK8c,aAAanc,OAAO2c,EAAK,EAElC,GAEA,CAAA/tB,IAAA,UAAAa,MAWA,SAAQqH,EAAMX,EAAUqlB,EAAeoB,GAAc,IAAA5V,EAAA,KAC9C7Q,GAAauG,EAAavG,KAC7BA,EAAW,WAEX,GAEF,IAAMqB,EAAOV,EAAKU,KACZqlB,EAAkBxd,KAAKyd,iBAAiBtlB,GAC9C,GAAIqlB,EAAgBE,KAGlB,OAFA1d,KAAKqc,kBAAkBkB,QACvBzmB,EAAS0mB,EAAgBznB,KAK3B,GAFAiK,KAAK2d,UAAUxlB,EAAMgkB,GACrBnc,KAAKqc,kBAAkBkB,GAClBvd,KAAK3F,QAAQujB,SAAlB,CAKI5d,KAAK4c,QAAUzkB,EAAKwJ,OACtBlK,EAAKomB,SAAW7d,KAAK4c,OAAO/a,QAAQ,KAAM1J,EAAKN,KAAM,CACnDkJ,KAAM,aACN3I,MAAOX,EAAKW,QAGVX,EAAKomB,UACPxgB,EAAoB5F,EAAKU,KAAM,CAC7B,CAAE5I,IAAK,YAAaa,MAAOqH,EAAKomB,aAKtC7d,KAAK+c,gBAAgBxmB,KAAK4B,GAC1B,IACE6H,KAAK8d,gBAAgB3lB,EAAM,SAACpC,EAAKC,EAAMwG,GACrCmL,EAAKoW,uBAAuB5lB,GAExBV,EAAKomB,UACPlW,EAAKiV,OAAOoB,oBAAoBvmB,EAAKomB,SAAU9nB,EAAKC,EAAMwG,GAG5D1F,EAASf,EAAKC,EAChB,EACF,CAAE,MAAOD,GAGY,IAAAkoB,EAFnBje,KAAK+d,uBAAuB5lB,GAExBV,EAAKomB,WACI,QAAXI,EAAAje,KAAK4c,cAAM,IAAAqB,GAAXA,EAAaC,QAAQzmB,EAAKomB,WAG5B/mB,EAASf,EACX,CAlCA,MAFEe,EAAS,IAAInG,MAAM,qBAqCvB,GAEA,CAAApB,IAAA,OAAAa,MAMA,SAAK0G,GAAU,IAAA8R,EAAA,KACRvL,EAAavG,KAGlBkJ,KAAKkd,aAAepmB,EAChBkJ,KAAKme,mBAGLne,KAAKmd,iBACPnd,KAAKmd,eAAiBiB,cAAcpe,KAAKmd,iBAE3Cnd,KAAKmd,eAAiBkB,YAAY,WAChCzV,EAAKuV,gBACP,EAAG,MACL,GAEA,CAAA5uB,IAAA,mBAAAa,MAQA,SAAiBqH,GAEf,IADA,IAAIwc,EAAI,KACCvhB,EAAI,EAAG4E,EAAM0I,KAAK6c,WAAWjqB,OAAQF,EAAI4E,EAAK5E,IAErD,KADAuhB,EAAIjU,KAAK6c,WAAWnqB,GAAG+E,EAAMuI,KAAK3F,gBACd9C,IAAV0c,EAAEle,IACV,MAAO,CAAE2nB,MAAM,EAAM3nB,IAAKke,EAAEle,KAGhC,MAAO,CAAE2nB,MAAM,EAAO3nB,IAAK,KAC7B,GAEA,CAAAxG,IAAA,kBAAAa,MAOA,SAAgBqH,EAAMX,GAAU,IAAA2S,EAAA,KACxB6U,EAAoBte,KAAK2c,YAAY4B,WAAW9mB,GAClD6mB,EAAkBC,WACpBve,KAAKsH,IAAIkX,SAAS/mB,EAAM,SAAC1B,EAAKC,EAAMwG,GAC9BzG,EACF0T,EAAKgV,YAAY1oB,EAAK0B,EAAMX,GAE5BA,EAASf,EAAKC,EAAMwG,EAExB,GACS8hB,EAAkBxsB,MAC3BgF,EAASwnB,EAAkBxsB,OAE3BkO,KAAKsH,IAAIkX,SAASF,EAAkBnkB,QAASrD,EAEjD,GAEA,CAAAvH,IAAA,cAAAa,MAoBA,SAAY2F,EAAK0B,EAAMX,GACrB,IAAI4nB,GAAc,EAClB,GAAI1e,KAAK3F,QAAQskB,cAAe,CAC9B,IAAK,IAAIjsB,EAAI,EAAG4E,EAAMolB,EAAMkC,iBAAiBhsB,OAAQF,EAAI4E,EAAK5E,IAC5D,GAAIqD,EAAI6Y,OAAS8N,EAAMkC,iBAAiBlsB,GAAI,CAC1CgsB,GAAc,EACd,KACF,CAEEA,GAAerhB,EAAiB2C,KAAK3F,QAAQwkB,cAC/CpnB,EAAKqnB,QAAUrnB,EAAKqnB,QAAUrnB,EAAKqnB,QAAU,EAAI,EAC7CrnB,EAAKqnB,QAAU9e,KAAK3F,QAAQwkB,aAC9BH,GAAc,GAGpB,CACIA,EACF1e,KAAK+e,iBAAiBtnB,EAAMX,GAE5BA,EAASf,EAEb,GAEA,CAAAxG,IAAA,mBAAAa,MAOA,SAAiBqH,EAAMX,GAAU,IAAA4S,EAAA,KAC/B1J,KAAKgd,WAAWzmB,KAAK,CAAEkB,KAAAA,EAAMX,SAAAA,IAExBkJ,KAAKid,cACRjd,KAAKid,YAAcoB,YAAY,WAC7B,KAAO3U,EAAKsT,WAAWpqB,QAAQ,CAC7B,IAAMosB,EAActV,EAAKsT,WAAWtX,QACpCgE,EAAKoU,gBAAgBkB,EAAYvnB,KAAMunB,EAAYloB,SACrD,CACF,EAAGkJ,KAAK3F,QAAQskB,eAEpB,GAEA,CAAApvB,IAAA,yBAAAa,MAQA,SAAuBqH,GACrB,IAAM6lB,EAAMtd,KAAK+c,gBAAgBxf,QAAQ9F,IAC5B,IAAT6lB,IACFtd,KAAK+c,gBAAgBpc,OAAO2c,EAAK,GACjCtd,KAAKme,iBAET,GAAC,CAAA5uB,IAAA,YAAAa,MAED,SAAU+H,EAAMgkB,GACd,GAAInc,KAAKlK,QAAUkK,KAAK3F,QAAQ4kB,QAAS,CACvC,IAAIzqB,EACF2nB,GACA9e,EAAMlF,EAAM,iCACZkF,EAAMlF,EAAM,wCACd,GAAI3D,EAEF,YADAwL,KAAKlK,OAAOhE,MAAM0C,IAGpBA,EAAU6I,EAAMlF,EAAM,uBAEpB6H,KAAKlK,OAAO0E,IAAIhG,EAEpB,CACF,GAAC,CAAAjF,IAAA,iBAAAa,MAED,WACE,SACEiN,EAAa2C,KAAKkd,eACW,IAA7Bld,KAAK8c,aAAalqB,QACc,IAAhCoN,KAAK+c,gBAAgBnqB,SAEjBoN,KAAKmd,iBACPnd,KAAKmd,eAAiBiB,cAAcpe,KAAKmd,iBAE3Cnd,KAAKkd,eACE,GAGX,I,8FAAC,CAhTQ,G,GAALR,G,GAoMsB,CACxB,aACA,YACA,kBACA,YACA,eACA,eACA,QACA,c,SA5MO,uB,+FAmTX,U,+sBC3TA,IAKMwC,GAAW,WAOf,SAAAA,IAA0B,IAAd7kB,EAAOiB,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAACyE,CAAA,KAAAmf,GACtBlf,KAAKqJ,UAAYtP,KAAKpC,MACtBqI,KAAKmf,QAAU,EACfnf,KAAKof,cAAgB,EACrBpf,KAAK0M,SAAW,KAChB1M,KAAKqf,gBAAkB,CAAC,EACxBrf,KAAKsf,gBAAgBjlB,EACvB,CAEA,O,4GAAAklB,CAAAL,EAAA,EAAA3vB,IAAA,kBAAAa,MAQA,WAA8B,IAAdiK,EAAOiB,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjB+N,EAAwChP,EAAxCgP,UAAWmW,EAA6BnlB,EAA7BmlB,SAAUC,EAAmBplB,EAAnBolB,oBAEXloB,IAAd8R,IACF6V,EAAYQ,eAAerW,UAAYA,QAExB9R,IAAbioB,IACFN,EAAYQ,eAAeF,SAAWA,QAEjBjoB,IAAnBkoB,IACFP,EAAYQ,eAAeD,eAAiBA,EAEhD,GAEA,CAAAlwB,IAAA,aAAAa,MAeA,SAAWqH,GAAwB,IAAlBE,EAAG2D,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAGvB,KAAKpC,MACpBgoB,EAAchoB,EAAMqI,KAAKqJ,WAC3BsW,EAAc,GAAKA,GAAe,OACpC3f,KAAKqJ,UAAY1R,EACjBqI,KAAKof,cAAgB,GAGvB,IAAMQ,EAAkBV,EAAYQ,eAAeF,SAC7CK,EAAwBX,EAAYQ,eAAeD,eAEzD,GAAIK,GAAUroB,EAAMmoB,EAAiB5f,KAAKmf,SACxC,OAAOY,GACL/f,KAAK0M,SACL1M,KAAKqf,gBAAe,GAAAvkB,OACjB8kB,EAAe,uBAClB,GAIJ,GAAIE,GAAUroB,EAAMooB,EAAuB7f,KAAKof,eAC9C,OAAOW,GACL/f,KAAK0M,SACL1M,KAAKqf,gBAAe,GAAAvkB,OACjB+kB,EAAqB,8BACxB,GAIJ7f,KAAKmf,SAAW,EAChBnf,KAAKof,eAAiB,EAEtB,IAAMY,GAAoBF,GAAUroB,EAAMmoB,EAAiB5f,KAAKmf,SAC1Dc,EAAYD,EACZzB,EACJyB,IACCF,GAAUroB,EAAMooB,EAAuB7f,KAAKof,eAE/C,OAAOW,GACL/f,KAAK0M,SACL1M,KAAKqf,gBACL,KACAd,EACAqB,EACAC,EACAI,EAEJ,GAAC,CAAA1wB,IAAA,qBAAAa,MAED,SAAmBsc,EAAUrS,GAC3B2F,KAAK0M,SAAWA,EAChB1M,KAAKqf,gBAAkBhlB,CACzB,IAAC,CAxGc,GA6GjB,SAASylB,GAAUroB,EAAMyoB,EAAOf,GAC9B,OAAQ1nB,EAAK0oB,iBAAmBD,GAAS,GAAKf,EAAUe,CAC1D,CAEA,SAASH,GACPrT,EACArS,EACAvI,EACAysB,EACAqB,EACAQ,EACAH,GAEA,IAAI9lB,EAAU,KACRkmB,EAAcvuB,EAAQ,IAAInB,MAAMmB,GAAS,KAY/C,OAVKuuB,GAAgB9B,IACnBpkB,EAYJ,SACEuS,EACArS,EACAulB,EACAQ,EACAH,GAEA,IAAMzP,EACJnW,EAAQmW,aAAgBnW,EAAQF,SAAWE,EAAQF,QAAQqW,YACvD8P,EAAML,EACR,+DACA,sDACExoB,EAAO,CACXkK,KAAM,CACJnN,QAAS,CACPmN,KAAM2e,EACNC,MAAO,CACLf,SAAUI,EACVH,eAAgBW,KAItB5T,SAAU,aACVgE,YAAaA,EACb9Z,SAAU,CACRwR,QACG7N,EAAQ3D,UAAY2D,EAAQ3D,SAASwR,SAAY7N,EAAQ6N,UAG/C,YAAbwE,GACFjV,EAAKiV,SAAW,UAChBjV,EAAK+oB,UAAY,aACjB/oB,EAAKf,SAASjG,KAAO,sBACC,WAAbic,GACTjV,EAAK+oB,UAAYnmB,EAAQmmB,WAAa,UACtC/oB,EAAKf,SAASjG,KAAO4J,EAAQ3D,SAASjG,MAChB,iBAAbic,IACTjV,EAAK+oB,UAAYnmB,EAAQmmB,WAAa,eACtC/oB,EAAKf,SAASjG,KAAO4J,EAAQ3D,SAASjG,MAExC,OAAOgH,CACT,CArDcgpB,CACR/T,EACArS,EACAulB,EACAQ,EACAH,IAIG,CAAEnuB,MAAOuuB,EAAa9B,WAAAA,EAAYpkB,QAAAA,EAC3C,E,oHA7BA2Q,CA3GMoU,GAAW,iBACS,CACtB7V,UAAWtP,KAAKpC,MAChB6nB,cAAUjoB,EACVkoB,oBAAgBloB,IAiLpB,UC9KA,SAASmpB,GAAQrmB,EAASiN,EAAKxR,EAAQ6qB,EAAWnlB,EAASohB,EAAQlQ,GACjE1M,KAAK3F,QAAUgD,EAAQhD,GACvB2F,KAAKlK,OAASA,EACd4qB,GAAQ/D,YAAY2C,gBAAgBtf,KAAK3F,SACzCqmB,GAAQ/D,YAAYiE,mBAAmBlU,EAAU1M,KAAK3F,SACtD2F,KAAKsH,IAAMA,EACXtH,KAAKC,MAAQ,IAAIyc,GACfgE,GAAQ/D,YACRrV,EACAxR,EACAkK,KAAK3F,QACLuiB,GAGF5c,KAAKxE,QAAUA,EAIf,IAAIkV,EAAS1Q,KAAK3F,QAAQqW,QAAU,KAChCmQ,GAAenQ,IACjB1Q,KAAK0Q,OAASA,EAEd1Q,KAAK3F,QAAQqW,OAAS,6BACtB1Q,KAAK3F,QAAQymB,mBAAmBpQ,OAAS,8BAEzC1Q,KAAK0Q,OAAS,KAGhB1Q,KAAKtJ,SAAW,IAAIolB,GAAS9b,KAAKC,MAAOD,KAAK3F,SAC9C2F,KAAK2gB,UAAYA,EACjBI,GAAmB1mB,GACnB2F,KAAKghB,UAAY,KACjBhhB,KAAKihB,cAAgB,MACvB,CA8NA,SAASF,GAAmB1mB,GACtBA,EAAQ6mB,kBACVvwB,MAAMuwB,gBAAkB7mB,EAAQ6mB,gBAEpC,CAOA,SAASL,GAAenQ,GACtB,IAAKA,EACH,OAAO,EAGT,IAAKA,EAAOtI,OAAiC,mBAAjBsI,EAAOtI,MACjC,OAAO,EAGT,IAAIA,EAAQsI,EAAOtI,QAEnB,SAAKA,IAAUA,EAAMuH,QAAkC,mBAAjBvH,EAAMuH,OAK9C,CAlPA+Q,GAAQ/D,YAAc,IAAIuC,GALL,CACnBM,SAAU,EACVC,eAAgB,KAKlBiB,GAAQ3wB,UAAUoxB,OAAS,SAAU9mB,GAEnC,OADAqmB,GAAQ/D,YAAY2C,gBAAgBjlB,GAC7B2F,IACT,EAEA0gB,GAAQ3wB,UAAUisB,UAAY,SAAU3hB,EAAS+mB,GAC/C,IAAI5gB,EAAaR,KAAK3F,QAClBF,EAAU,CAAC,EACXinB,IACFjnB,EAAU,CAAEA,QAASinB,IAGvBphB,KAAK3F,QAAUgD,EAAQmD,EAAYnG,EAASF,GAI5C,IAAIuW,EAAS1Q,KAAK3F,QAAQqW,QAAU,KAmBpC,OAlBImQ,GAAenQ,IACjB1Q,KAAK0Q,OAASA,EAEd1Q,KAAK3F,QAAQqW,OAAS,6BACtB1Q,KAAK3F,QAAQymB,mBAAmBpQ,OAAS,8BAEzC1Q,KAAK0Q,OAAS,KAGhB1Q,KAAKtJ,UAAYsJ,KAAKtJ,SAASslB,UAAUhc,KAAK3F,SAC9C2F,KAAK2gB,WAAa3gB,KAAK2gB,UAAU3E,UAAUhc,KAAK3F,SAChD0mB,GAAmB1mB,GACnB2F,KAAKmhB,OAAOnhB,KAAK3F,SAEbwmB,GAAexmB,EAAQqW,UACzB1Q,KAAK0Q,OAASrW,EAAQqW,QAGjB1Q,IACT,EAEA0gB,GAAQ3wB,UAAUyK,IAAM,SAAU/C,GAChC,IAAIW,EAAQ4H,KAAKqhB,mBACjB,OAAOrhB,KAAKshB,KAAKlpB,EAAOX,EAC1B,EAEAipB,GAAQ3wB,UAAU4B,MAAQ,SAAU8F,GAClCuI,KAAKshB,KAAK,QAAS7pB,EACrB,EAEAipB,GAAQ3wB,UAAU6B,KAAO,SAAU6F,GACjCuI,KAAKshB,KAAK,OAAQ7pB,EACpB,EAEAipB,GAAQ3wB,UAAU6c,KAAO,SAAUnV,GACjCuI,KAAKshB,KAAK,UAAW7pB,EACvB,EAEAipB,GAAQ3wB,UAAU8B,QAAU,SAAU4F,GACpCuI,KAAKshB,KAAK,UAAW7pB,EACvB,EAEAipB,GAAQ3wB,UAAU+B,MAAQ,SAAU2F,GAClCuI,KAAKshB,KAAK,QAAS7pB,EACrB,EAEAipB,GAAQ3wB,UAAUgC,SAAW,SAAU0F,GACrCuI,KAAKshB,KAAK,WAAY7pB,EACxB,EAEAipB,GAAQ3wB,UAAUwxB,KAAO,SAAUzqB,GACjCkJ,KAAKC,MAAMshB,KAAKzqB,EAClB,EAEA4pB,GAAQ3wB,UAAUyxB,aAAe,SAAUzgB,EAAMQ,EAAUnJ,GACzD,OAAO4H,KAAK2gB,WAAa3gB,KAAK2gB,UAAUa,aAAazgB,EAAMQ,EAAUnJ,EACvE,EAEAsoB,GAAQ3wB,UAAU0xB,wBAA0B,SAAUtc,GACpD,OAAOnF,KAAK2gB,WAAa3gB,KAAK2gB,UAAUc,wBAAwBtc,EAClE,EAEAub,GAAQ3wB,UAAU2xB,YAAc,SAAUvc,GACxC,OAAOnF,KAAK2gB,WAAa3gB,KAAK2gB,UAAUe,YAAYvc,EACtD,EAEAub,GAAQ3wB,UAAU4xB,iBAAmB,SAAUlqB,GAC7C,OAAOuI,KAAKsH,IAAIqa,iBAAiBlqB,EACnC,EAEAipB,GAAQ3wB,UAAU6xB,gBAAkB,SAAU9K,GAC5C9W,KAAKsH,IAAIyP,gBAAgBD,EAC3B,EAIA4J,GAAQ3wB,UAAUuxB,KAAO,SAAUO,EAAcpqB,GAC/C,IAAIX,EAKJ,GAJIW,EAAKX,WACPA,EAAWW,EAAKX,gBACTW,EAAKX,UAEVkJ,KAAK3F,QAAQynB,uBAAyB9hB,KAAK+hB,iBAAiBtqB,IAC9D,GAAIX,EAAU,CACZ,IAAIhF,EAAQ,IAAInB,MAAM,0BACtBmB,EAAM2F,KAAOA,EACbX,EAAShF,EACX,OAGF,IACE2F,EAAKW,MAAQX,EAAKW,OAASypB,EAE3B7hB,KAAKgiB,mBAAmBvqB,GAGxBuI,KAAKiiB,gBAAgBxqB,GAErB,IAAMkpB,EAAY3gB,KAAK2gB,UACnBA,IACFA,EAAUuB,oBAAoBzqB,GAC9BA,EAAK0qB,gBAAkBxB,EAAUyB,cAAgB,IAGnDpiB,KAAKtJ,SAAS8D,IAAI/C,EAAMX,EAC1B,CAAE,MAAOtF,GACHsF,GACFA,EAAStF,GAEXwO,KAAKlK,OAAOhE,MAAMN,EACpB,CACF,EAEAkvB,GAAQ3wB,UAAUiyB,mBAAqB,SAAUvqB,GAAM,IAAAqI,EAAAuiB,EAC/Cta,EAAmB,QAAfjI,EAAGE,KAAKxE,eAAO,IAAAsE,OAAA,EAAZA,EAAc+P,UAIrBzW,EAAa,CACjB,CAAE7J,IAAK,aAAca,M1BiuBzB,SAA2CkyB,GACzC,IAAMC,EAAUD,EAAOE,kBACvB,IAAKD,GAAuC,mBAArBA,EAAQE,SAC7B,OAAO,KAET,IAAMC,EAAQH,EAAQE,WACtB,OAAOC,aAAK,EAALA,EAAOhnB,YAAa,IAC7B,C0B5uB8B2B,CAAoC2C,QACX,QAAhBqiB,EAAIriB,KAAKxE,eAAO,IAAA6mB,OAAA,EAAZA,EAAc3mB,YAIrD,CAAEnM,IAAK,UAAWa,MAAO2X,aAAI,EAAJA,EAAMkB,QAC/B,CAAE1Z,IAAK,WAAYa,MAAO2X,aAAI,EAAJA,EAAMgB,UAE9BtR,EAAKkrB,aACPvpB,EAAW7C,KAAK,CAAEhH,IAAK,cAAea,MAAO,SAE/CiN,EAAoB5F,EAAKU,KAAMiB,GAE/B2O,SAAAA,EAAMhG,SAAS,qBAAsB,CACnC,CAAExS,IAAK,0BAA2Ba,MAAOqH,EAAKI,OAElD,EAEA6oB,GAAQ3wB,UAAUsxB,iBAAmB,WACnC,OAAOrhB,KAAK3F,QAAQiT,UAAY,OAClC,EAEAoT,GAAQ3wB,UAAUgyB,iBAAmB,SAAUtqB,GAC7C,IAAKA,EAAKkrB,YACR,OAAO,EAET,IAAIC,EA8CN,SAA0BnrB,GACxB,IAAIjD,EAAUiD,EAAKjD,SAAW,GAC1BoB,GAAS6B,EAAK1B,KAAO,CAAC,GAAGH,OAASD,OAAO8B,EAAK1B,KAClD,OAAOvB,EAAU,KAAOoB,CAC1B,CAlDiBitB,CAAiBprB,GAChC,OAAIuI,KAAKihB,gBAAkB2B,IAG3B5iB,KAAKghB,UAAYvpB,EAAK1B,IACtBiK,KAAKihB,cAAgB2B,GACd,EACT,EAEAlC,GAAQ3wB,UAAUkyB,gBAAkB,SAAUxqB,GAG5C,GAAIuI,KAAK0Q,OAAQ,CAEf,IAAI3I,EAAO/H,KAAK0Q,OAAOtI,QAAQuH,SAE/B,GAwEJ,SAAsB5H,GACpB,IAAKA,IAASA,EAAK5S,SAAmC,mBAAjB4S,EAAK5S,QACxC,OAAO,EAGT,IAAI6T,EAAcjB,EAAK5S,UAEvB,IACG6T,IACAA,EAAY8Z,WACZ9Z,EAAY+Z,WACmB,mBAAzB/Z,EAAY8Z,UACc,mBAA1B9Z,EAAY+Z,UAEnB,OAAO,EAGT,OAAO,CACT,CA1FQC,CAAajb,GAAO,CACtBA,EAAKkb,OAAO,qBAAsBxrB,EAAKI,MACvCkQ,EAAKkb,OAAO,qBAAqB,GACjClb,EAAKkb,OAAO,SAAS,GACrBlb,EAAKkb,OACH,mBAAkB,uCAAAnoB,OACqBrD,EAAKI,OAE9CkQ,EAAKkb,OACH,yBAAwB,6CAAAnoB,OACqBrD,EAAKI,OAIpD,IAAIqrB,EAAoBnb,EAAK5S,UAAU2tB,WACnCK,EAAqBpb,EAAK5S,UAAU4tB,YAEpCtrB,EAAKZ,QACPY,EAAKZ,OAAOusB,oBAAsBF,EAClCzrB,EAAKZ,OAAOwsB,qBAAuBF,GAEnC1rB,EAAKZ,OAAS,CACZusB,oBAAqBF,EACrBG,qBAAsBF,EAG5B,CACF,CACF,EAgEA,UC9TA,SAASG,GAAc7rB,EAAM4C,EAASvD,GAChCW,EAAKkrB,cACPlrB,EAAKU,KAAKwqB,aAAc,GAEtBlrB,EAAKc,gBACPd,EAAKU,KAAKI,cAAgBd,EAAKc,eAEjCzB,EAAS,KAAMW,EACjB,CAEA,SAAS8rB,GAAkB9rB,EAAM4C,EAASvD,GACxC,IAAI0sB,EAAiBnpB,EAAQF,SAAW,CAAC,EACrCqpB,EAAe7hB,aACV6hB,EAAe7hB,KAGxBlK,EAAKU,KAAOkF,EAAQ5F,EAAKU,KAAMqrB,GAC/B1sB,EAAS,KAAMW,EACjB,CAEA,SAASgsB,GAAiBhsB,EAAM4C,EAASvD,GACnCW,EAAK0qB,iBACP9kB,EAAM5F,EAAM,sBAAuBA,EAAK0qB,iBAE1CrrB,EAAS,KAAMW,EACjB,CAEA,SAASisB,GAAoBjsB,EAAM4C,EAASvD,GAC1C,GAAKW,EAAKjD,QAAV,CAIA,IAAImvB,EAAY,0BACZnS,EAAQnU,EAAM5F,EAAMksB,GAKxB,GAJKnS,IAEHA,EAAQnU,EAAM5F,EADdksB,EAAY,oBAGVnS,EAAO,CACT,IAAMA,EAAMM,YAAaN,EAAMM,UAAUC,YAGvC,OAFA1U,EAAM5F,EAAMksB,EAAY,yBAA0BlsB,EAAKjD,cACvDsC,EAAS,KAAMW,GAKjB4F,EAAM5F,EAAMksB,EAAY,SADTtmB,EADHA,EAAM5F,EAAMksB,EAAY,WAAa,CAAC,EACpB,CAAEnvB,QAASiD,EAAKjD,UAEhD,CACAsC,EAAS,KAAMW,EAjBf,MAFEX,EAAS,KAAMW,EAoBnB,CAEA,SAASoW,GAAc/X,GACrB,OAAO,SAAU2B,EAAM4C,EAASvD,GAC9B,I3BgFemd,E2BhFX2P,EAAUvmB,EAAQ5F,GAClBqL,EAAW,KACf,IACMzF,EAAahD,EAAQ4T,aACvBnL,EAAWzI,EAAQ4T,UAAU2V,EAAQzrB,KAAMV,GAE/C,CAAE,MAAOjG,GAOP,OANA6I,EAAQ4T,UAAY,KACpBnY,EAAOhE,MACL,gFACAN,QAEFsF,EAAS,KAAMW,EAEjB,C3BmEKxG,EADUgjB,E2BjECnR,I3BkEIzS,EAAO4jB,EAAEkB,KAAM,Y2BjEjCrS,EAASqS,KACP,SAAU0O,GACJA,IACFD,EAAQzrB,KAAO0rB,GAEjB/sB,EAAS,KAAM8sB,EACjB,EACA,SAAU9xB,GACRgF,EAAShF,EAAO2F,EAClB,GAGFX,EAAS,KAAM8sB,EAEnB,CACF,CAEA,SAASE,GAAmBrsB,EAAM4C,EAASvD,GACzC,IAAKuD,EAAQ0pB,WACX,OAAOjtB,EAAS,KAAMW,GAExB,IACIZ,EAASwG,EAAM5F,EAAM,gBAAkB,CAAC,EAC5CZ,EAAgB,eAAIwD,EACpB5C,EAAKU,KAAKtB,OAASA,EACnBC,EAAS,KAAMW,EACjB,CAEA,SAASusB,GAAkB3pB,EAAS5J,GAC9B4M,EAAahD,EAAQ5J,MACvB4J,EAAQ5J,GAAQ4J,EAAQ5J,GAAMG,WAElC,CAEA,SAASqzB,GAAqBxsB,EAAM4C,EAASvD,GAC3C,IAAIotB,EAAoB7pB,EAAQymB,mBAGhCkD,GAAkBE,EAAmB,aACrCF,GAAkBE,EAAmB,eACrCF,GAAkBE,EAAmB,yBAE9BA,EAAkBrO,YACzBpe,EAAKU,KAAKzB,SAASytB,mBAAqBD,EACxCptB,EAAS,KAAMW,EACjB,CAEA,SAAS2sB,GAAkB3sB,EAAM4C,EAASvD,GACxC,IAAIc,EAAayF,EACf5F,EAAKf,SAAS4rB,OAAO5rB,SAASkB,WAC9BH,EAAKG,YAWP,GARIyF,EAAM5F,EAAM,sBACdG,EAAWysB,cAAe,GAGxB5sB,EAAKkrB,cACP/qB,EAAW0sB,YAAc7sB,EAAKkrB,aAG5BlrB,EAAK1B,IACP,IACE6B,EAAW2sB,UAAY,CACrB/vB,QAASiD,EAAK1B,IAAIvB,QAClB/D,KAAMgH,EAAK1B,IAAItF,KACf+zB,iBAAkB/sB,EAAK1B,IAAImF,aAAezD,EAAK1B,IAAImF,YAAYzK,KAC/DwqB,SAAUxjB,EAAK1B,IAAIojB,SACnBpkB,KAAM0C,EAAK1B,IAAIqjB,WACfpkB,OAAQyC,EAAK1B,IAAIsjB,aACjBzjB,MAAO6B,EAAK1B,IAAIH,MAEpB,CAAE,MAAOpE,GACPoG,EAAW2sB,UAAY,CAAEE,OAAQ9uB,OAAOnE,GAC1C,CAGFiG,EAAKU,KAAKzB,SAASkB,WAAayF,EAC9B5F,EAAKU,KAAKzB,SAASkB,WACnBA,GAEFd,EAAS,KAAMW,EACjB,C,uGCpJO,IAAMoD,GAAc,GAAHC,O,ynBAAA4M,CVMS,CAC/B,KACA,OACA,SACA,WACA,SACA,mBACA,kBACA,wBACA,uBACA,eACA,cACA,yBACA,aACA,YACA,gBUpBoB,CACpB,YACA,cACA,aACA,UACA,QACA,WACA,SACA,mBACA,qBACA,sBACA,kBACA,eACA,iBACA,QACA,SACA,SACA,MACA,OACA,OACA,OACA,gBACA,oBACA,sBACA,eACA,aACA,aACA,cACA,0BACA,SACA,YACA,WACA,UACA,SACA,eACA,kBACA,iBACA,UACA,SACA,UACA,WAIF,IAAiB7M,YAAAA,IChDjB,SAAS6pB,GAAYjtB,EAAMmjB,GACzB,OAAIvd,EAAMud,EAAU,qCACVvd,EAAM5F,EAAM,4BAGxB,CCHA,SAASktB,GAAmBltB,EAAM4C,EAASvD,GACzC,GAAIW,EAAK1B,KAA4C,iBAArClB,GAAY6kB,MAAMjiB,EAAK1B,KAAKtF,KAAyB,CACnE,IAAI0rB,EAAgB,IAAIxrB,MACxBwrB,EAAc1rB,KAAOgH,EAAK1B,IAAItF,KAC9B0rB,EAAc3nB,QAAUiD,EAAK1B,IAAIvB,QACjC2nB,EAAcvmB,MAAQ6B,EAAK1B,IAAIH,MAC/BumB,EAAc3B,OAAS/iB,EAAK1B,IAC5B0B,EAAK1B,IAAMomB,CACb,CACArlB,EAAS,KAAMW,EACjB,CAEA,SAASmtB,GAAoBntB,EAAM4C,EAASvD,GAE1C,GADAW,EAAKU,KAAOV,EAAKU,MAAQ,CAAC,EACtBV,EAAK1B,IACP,IACE0B,EAAKotB,UACHptB,EAAK1B,IAAI+uB,kBACTjwB,GAAYP,MAAMmD,EAAK1B,IAAK0B,EAAKY,YAE/BgC,EAAQ0qB,iBAoBlB,SAAyBttB,GACvB,IAAIwa,EAAQ,GACRlc,EAAM0B,EAAK1B,IAEfkc,EAAM1b,KAAKR,GAEX,KAAOA,EAAIykB,QAAUzkB,EAAI0kB,OACvB1kB,EAAMA,EAAIykB,QAAUzkB,EAAI0kB,MACxBxI,EAAM1b,KAAKR,I9BihBf,SAAyB0B,EAAMutB,GAC7B,IAAInuB,EAASY,EAAKU,KAAKtB,QAAU,CAAC,EAC9BouB,GAAe,EAEnB,IAAI,IACwB/mB,EADxBC,EAAAnF,EACkBgsB,GAAM,IAA1B,IAAA7mB,EAAA9J,MAAA6J,EAAAC,EAAA/M,KAAA6H,MAA4B,KAAjBnH,EAAKoM,EAAA9N,MACVc,EAAOY,EAAO,oBAChB+E,EAASuD,EAAMvD,EAAQZ,EAAiBnE,EAAMozB,iBAC9CD,GAAe,EAEnB,CAEA,OAAAlvB,GAAAoI,EAAA3M,EAAAuE,EAAA,SAAAoI,EAAAnN,GAAA,CACIi0B,IACFxtB,EAAKU,KAAKtB,OAASA,EAEvB,CAAE,MAAOrF,GACPiG,EAAKG,WAAWutB,cAAgB,WAAa3zB,EAAEgD,OACjD,CACF,C8BjiBE6I,CAAkB5F,EAAMwa,EAC1B,CA/BQ8S,CAAgBttB,EAEpB,CAAE,MAAOjG,GACPsE,GAAOhE,MAAM,wCAAyCN,GACtD,IACEiG,EAAKjD,QACHiD,EAAK1B,IAAIvB,SACTiD,EAAK1B,IAAIgc,aACTta,EAAKjD,SACLmB,OAAO8B,EAAK1B,IAChB,CAAE,MAAOqvB,GACP3tB,EAAKjD,QAAUmB,OAAO8B,EAAK1B,MAAQJ,OAAOyvB,EAC5C,QACO3tB,EAAK1B,GACd,CAEFe,EAAS,KAAMW,EACjB,CAgBA,SAAS4tB,GAA4B5tB,EAAM4C,EAASvD,GAC7CW,EAAKjD,SAAYiD,EAAKotB,WAAcptB,EAAKZ,QAC5CC,EAAS,IAAInG,MAAM,0CAA2C,MAEhEmG,EAAS,KAAMW,EACjB,CAEA,SAAS6tB,GAAY7tB,EAAM4C,EAASvD,GAClC,IAAI0Z,EACDnW,EAAQF,SAAWE,EAAQF,QAAQqW,aAAgBnW,EAAQmW,YAC9D/Y,EAAKU,KAAOkF,EAAQ5F,EAAKU,KAAM,CAC7BqY,YAAaA,EACbpY,MAAOX,EAAKW,MACZob,SAAUnZ,EAAQmZ,SAClB9G,SAAU,UACV8T,UAAW,aACXhU,SAAU,aACV+Y,OAAQ,CAAC,EACT1tB,KAAMJ,EAAKI,KACXnB,SAAU,CACRjG,KAAM,qBACNyX,QAAS7N,EAAQ6N,SAEnBrR,OAAQY,EAAKZ,SAEfC,EAAS,KAAMW,EACjB,CAoEA,SAAS+tB,GAAQ/tB,EAAM4C,EAASvD,GAC1BW,EAAKotB,UACHptB,EAAKotB,UAAUnK,WA2CvB,SAA2BjjB,EAAM4C,EAASvD,GAKxC,IAJA,IAAI4jB,EAAajjB,EAAKotB,UAAUnK,WAC5BY,EAAS,GAETmK,EAAmB/K,EAAW9nB,OACzBF,EAAI,EAAGA,EAAI+yB,EAAkB/yB,IAAK,CACzC,IAAI8e,EAAQkU,GAAWjuB,EAAMijB,EAAWhoB,GAAI2H,GAC5CihB,EAAO/kB,KAAKib,EACd,CAEAnU,EAAM5F,EAAM,YAAa,CAAE8Z,YAAa+J,IACxCxkB,EAAS,KAAMW,EACjB,CAtDMkuB,CAAkBluB,EAAM4C,EAASvD,GAwDvC,SAAsBW,EAAM4C,EAASvD,GACnC,IAAIlB,EAAQgwB,GAAcnuB,GAE1B,GAAI7B,EAAO,CAETyH,EAAM5F,EAAM,YAAa,CAAE+Z,MADfkU,GAAWjuB,EAAMA,EAAKotB,UAAWxqB,KAE7CvD,EAAS,KAAMW,EACjB,KAAO,CACL,IAAIotB,EAAYptB,EAAKotB,UACjBgB,EAAQhxB,GAAYulB,gBAAgByK,EAAUrwB,SAC9CsxB,EAAYC,GAAWlB,EAAWgB,EAAM,GAAIxrB,GAC5C7F,EAAUqxB,EAAM,GAEpBpuB,EAAKjD,QAAUsxB,EAAY,KAAOtxB,EAClCwxB,GAAevuB,EAAM4C,EAASvD,EAChC,CACF,CAtEMmvB,CAAaxuB,EAAM4C,EAASvD,GAG9BkvB,GAAevuB,EAAM4C,EAASvD,EAElC,CAEA,SAASkvB,GAAevuB,EAAM4C,EAASvD,GACrC,IAAItC,EAAUiD,EAAKjD,QACfqC,EAASY,EAAKZ,OAEbrC,IACHA,EAAU,6CAEZ,IAAIX,EAAS,CACX8N,KAAMnN,GAGJqC,IACFhD,EAAO0sB,MAAQljB,EAAQxG,IAGzBwG,EAAM5F,EAAM,YAAa,CAAEjD,QAASX,IACpCiD,EAAS,KAAMW,EACjB,CAEA,SAASmuB,GAAcnuB,GAAwB,IAEzC7B,IAFgC0F,UAAA1I,OAAA,QAAA2E,IAAA+D,UAAA,GAAAA,UAAA,GAAG,OAEb7D,EAAKotB,WAAWjvB,MAS1C,OAPEA,GACiB,IAAjBA,EAAMhD,QACN6E,EAAKyuB,qBACLzuB,EAAKyuB,oBAAoBtwB,QAEzBA,EAAQ6B,EAAKyuB,oBAAoBtwB,OAE5BA,CACT,CAkCA,SAAS8vB,GAAWjuB,EAAMotB,EAAWxqB,GACnC,IAAI0X,EAActa,GAAQA,EAAKU,KAAK4Z,YAChClb,EAASY,GAAQA,EAAKZ,OACtBjB,EAAQgwB,GAAcnuB,EAAMotB,GAE5BgB,EAAQhxB,GAAYulB,gBAAgByK,EAAUrwB,SAG9Cgd,EAAQ,CACVM,UAAW,CACTqU,MAJYJ,GAAWlB,EAAWgB,EAAM,GAAIxrB,GAK5C7F,QAJUqxB,EAAM,KAYpB,GAJI9T,IACFP,EAAMM,UAAUC,YAAcA,GAG5Bnc,EAAO,CAKT,IAAI4jB,EACA4M,EACAxX,EACAyX,EACAnQ,EACAoQ,EACA5zB,EAAG6zB,EAGP,IAbqB,IAAjB3wB,EAAMhD,SACR4e,EAAMM,UAAUlc,MAAQivB,EAAU5K,SAClCzI,EAAMM,UAAUb,IAAMtb,OAAOkvB,EAAU3K,eAUzC1I,EAAMJ,OAAS,GACV1e,EAAI,EAAGA,EAAIkD,EAAMhD,SAAUF,EAE9B0zB,EAAQ,CACNnL,UAFFzB,EAAa5jB,EAAMlD,IAEIT,IAAMoL,EAAcmc,EAAWvnB,KAAO,YAC3DwC,OAAQ+kB,EAAWzkB,MAAQ,KAC3B4N,OACG6W,EAAWvkB,MAA4B,MAApBukB,EAAWvkB,KAE3BukB,EAAWvkB,KADX,cAENP,MAAO8kB,EAAWxkB,QAEhBqF,EAAQmsB,eACVJ,EAAMn0B,IAAMunB,EAAWvnB,KAGvBm0B,EAAMzjB,QACNyjB,EAAMzjB,OAAO8jB,UACbL,EAAMzjB,OAAO8jB,SAAS,sBAKxB7X,EAAOyX,EAAMnQ,EAAO,MACpBoQ,EAAgB9M,EAAWrkB,QAAUqkB,EAAWrkB,QAAQvC,OAAS,KAE/D2zB,EAAMvuB,KAAKE,MAAMouB,EAAgB,GACjCD,EAAM7M,EAAWrkB,QAAQmB,MAAM,EAAGiwB,GAClC3X,EAAO4K,EAAWrkB,QAAQoxB,GAC1BrQ,EAAOsD,EAAWrkB,QAAQmB,MAAMiwB,IAG9B3X,IACFwX,EAAMxX,KAAOA,IAGXyX,GAAOnQ,KACTkQ,EAAMjxB,QAAU,CAAC,EACbkxB,GAAOA,EAAIzzB,SACbwzB,EAAMjxB,QAAQkxB,IAAMA,GAElBnQ,GAAQA,EAAKtjB,SACfwzB,EAAMjxB,QAAQ+gB,KAAOA,IAIrBsD,EAAW/iB,OACb2vB,EAAM3vB,KAAO+iB,EAAW/iB,MAG1B+a,EAAMJ,OAAO7a,KAAK6vB,IAIpB5U,EAAMJ,OAAOsV,UAET7vB,IACF2a,EAAM+O,MAAQljB,EAAQxG,GAE1B,CAEA,OAAO2a,CACT,CAEA,SAASuU,GAAWlB,EAAWgB,EAAOxrB,GACpC,OAAIwqB,EAAUp0B,KACLo0B,EAAUp0B,KACR4J,EAAQ+f,gBACVyL,EAEA,WAEX,C,23BCjRA,OAzDA,SAAyB5kB,GAQtB,IACG0lB,EACAC,EATJ/Q,EAAW5U,EAAX4U,YACA5jB,EAAGgP,EAAHhP,IACA0Q,EAAM1B,EAAN0B,OACAxI,EAAO8G,EAAP9G,QACAqC,EAAOyE,EAAPzE,QACA1F,EAAQmK,EAARnK,SACAmc,EAAOhS,EAAPgS,QAKI5V,EAAiB4V,KACnB0T,EAAa,IAAIE,gBACjBD,EAAYxQ,WAAW,WACrBuQ,EAAWG,OACb,EAAG7T,IAGLzW,E,8VAAOyF,CAAA,CACL,eAAgB,mBAChB,yBAA0B4T,EAC1BkR,OAAQJ,GAAcA,EAAWI,QAC9BvqB,GAGL4W,MAAMnhB,EAAK,CACT0Q,OAAAA,EACAnG,QAAAA,EACAmF,KAAMxH,IAELgb,KAAK,SAAUrS,GACV8jB,GAAWI,aAAaJ,GAC5B,IAAMK,EAAcnkB,EAAStG,QAGvBA,EADcvK,EAAIw0B,SAAS,gBAE7B,CACE,yBAA0BQ,EAAYr3B,IAAI,0BAC1C,qCAAsCq3B,EAAYr3B,IAChD,sCAEF,iCAAkCq3B,EAAYr3B,IAC5C,mCAGJ,CAAC,EAECs3B,EAAOpkB,EAASokB,OACtBpwB,EAAS,KAAMowB,EAAM1qB,EACvB,GACC2qB,MAAM,SAAUr1B,GACfgE,GAAOhE,MAAMA,EAAM0C,SACnBsC,EAAShF,EACX,EACJ,E,ogCCgIA,SAASs1B,GAAmB5yB,EAASoa,GACnC,IAAI7Y,EAAM,IAAIpF,MAAM6D,GAEpB,OADAuB,EAAI6Y,KAAOA,GAAQ,YACZ7Y,CACT,CAEA,OA3LA,SAAuBkL,GASpB,IACGlK,EATJ8e,EAAW5U,EAAX4U,YACA5jB,EAAGgP,EAAHhP,IACA0Q,EAAM1B,EAAN0B,OACAxI,EAAO8G,EAAP9G,QACAqC,EAAOyE,EAAPzE,QACA1F,EAAQmK,EAARnK,SACAuwB,EAAcpmB,EAAdomB,eACApU,EAAOhS,EAAPgS,QAQA,KAJElc,EADEswB,EACQA,IAkId,WAGE,IAcIC,EACA50B,EAfA60B,EAAY,CACd,WACE,OAAO,IAAIlU,cACb,EACA,WACE,OAAO,IAAImU,cAAc,iBAC3B,EACA,WACE,OAAO,IAAIA,cAAc,iBAC3B,EACA,WACE,OAAO,IAAIA,cAAc,oBAC3B,GAIEC,EAAeF,EAAU30B,OAC7B,IAAKF,EAAI,EAAGA,EAAI+0B,EAAc/0B,IAC5B,IACE40B,EAAUC,EAAU70B,KACpB,KACF,CAAE,MAAOgH,GACP,CAGJ,OAAO4tB,CACT,CA7JcI,IAIV,OAAO5wB,EAAS,IAAInG,MAAM,6BAE5B,IACE,IACE,IAAIg3B,EAAqB,WACvB,IACE,GAAIA,GAA6C,IAAvB5wB,EAAQ6wB,WAAkB,CAClDD,OAAqBpwB,EAErB,IAAIswB,EAAgBxqB,EAAYtG,EAAQ+wB,cACxC,GAiJZ,SAAoB/vB,GAClB,OAAOA,GAAKA,EAAE4W,QAAuB,MAAb5W,EAAE4W,MAC5B,CAnJgBoZ,CAAWhxB,GAAU,CACvB,IAEMyF,EAFcvK,EAAIw0B,SAAS,gBAG7B,CACE,yBAA0B1vB,EAAQixB,kBAChC,0BAEF,qCACEjxB,EAAQixB,kBACN,sCAEJ,iCAAkCjxB,EAAQixB,kBACxC,mCAGJ,CAAC,EAEL,YADAlxB,EAAS+wB,EAAc/1B,MAAO+1B,EAAcz3B,MAAOoM,EAErD,CAAO,GAkInB,SAA0BzE,GACxB,OAAOA,GAAKsF,EAAStF,EAAE4W,OAAQ,WAAa5W,EAAE4W,QAAU,KAAO5W,EAAE4W,OAAS,GAC5E,CApIuBsZ,CAAiBlxB,GAAU,CACpC,GAAuB,MAAnBA,EAAQ4X,OAAgB,CAE1B,IAAIna,EACFqzB,EAAcz3B,OAASy3B,EAAcz3B,MAAMoE,QAC7CsB,GAAOhE,MAAM0C,EACf,CAEAsC,EAAS,IAAInG,MAAMgF,OAAOoB,EAAQ4X,SACpC,KAAO,CAML7X,EAASswB,GADP,+DAEJ,CACF,CACF,CAAE,MAAOc,GAIP,IAAIC,EAEFA,EADED,GAAMA,EAAGtyB,MACLsyB,EAEA,IAAIv3B,MAAMu3B,GAElBpxB,EAASqxB,EACX,CACF,EAGA,GADApxB,EAAQqxB,KAAKzlB,EAAQ1Q,GAAK,GACtB8E,EAAQsxB,iBAAkB,CAC5BtxB,EAAQsxB,iBAAiB,eAAgB,oBACzCtxB,EAAQsxB,iBAAiB,yBAA0BxS,GACnD,IAAK,IAALjZ,EAAA,EAAAsS,EAAqBzf,OAAOoO,QAAQrB,QAAAA,EAAW,CAAC,GAAEI,EAAAsS,EAAAtc,OAAAgK,IAAE,CAA/C,IAAAuS,EAAApR,GAAAmR,EAAAtS,GAAA,GAAO0rB,EAACnZ,EAAA,GAAEjS,EAACiS,EAAA,GACdpY,EAAQsxB,iBAAiBC,EAAGprB,EAC9B,CACF,CAEIG,EAAiB4V,KACnBlc,EAAQkc,QAAUA,GAGpBlc,EAAQ4wB,mBAAqBA,EAC7B5wB,EAAQwxB,KAAKpuB,EACf,CAAE,MAAOquB,GAEP,GAA8B,oBAAnBC,eAAgC,CAKzC,IAAKjzB,SAAWA,OAAOV,SACrB,OAAOgC,EACL,IAAInG,MACF,4DAOqC,UAAzC6E,OAAOV,SAASO,KAAKqzB,UAAU,EAAG,IACV,UAAxBz2B,EAAIy2B,UAAU,EAAG,KAEjBz2B,EAAM,OAASA,EAAIy2B,UAAU,IAG/B,IAAIC,EAAiB,IAAIF,eACzBE,EAAeC,WAAa,WAAO,EACnCD,EAAeE,UAAY,WAGzB/xB,EAASswB,GAFC,oBACC,aAEb,EACAuB,EAAeG,QAAU,WACvBhyB,EAAS,IAAInG,MAAM,wBACrB,EACAg4B,EAAeI,OAAS,WACtB,IAAIlB,EAAgBxqB,EAAYsrB,EAAeb,cAC/ChxB,EAAS+wB,EAAc/1B,MAAO+1B,EAAcz3B,MAC9C,EACAu4B,EAAeP,KAAKzlB,EAAQ1Q,GAAK,GACjC02B,EAAeJ,KAAKpuB,EACtB,MACErD,EAAS,IAAInG,MAAM,+CAEvB,CACF,CAAE,MAAOy0B,GACPtuB,EAASsuB,EACX,CACF,EC1HA,SAAS4D,GAAUpT,GACjB5V,KAAK4V,WAAaA,CACpB,CAEAoT,GAAUj5B,UAAUH,IAAM,SACxBimB,EACAxb,EACA4uB,EACAnyB,EACAuwB,GAEKvwB,GAAauG,EAAavG,KAC7BA,EAAW,WAAO,GjCkOtB,SAAuC+e,EAAaxb,EAAS4uB,IAC3DA,EAASA,GAAU,CAAC,GACbC,aAAerT,EACtB,IACI5Y,EADAksB,EAAc,GAElB,IAAKlsB,KAAKgsB,EACJx5B,OAAOM,UAAUC,eAAeC,KAAKg5B,EAAQhsB,IAC/CksB,EAAY5yB,KAAK,CAAC0G,EAAGgsB,EAAOhsB,IAAI0N,KAAK,MAGzC,IAAItX,EAAQ,IAAM81B,EAAYC,OAAOze,KAAK,MAE1CtQ,EAAUA,GAAW,CAAC,GACdvG,KAAOuG,EAAQvG,MAAQ,GAC/B,IAEImgB,EAFAoV,EAAKhvB,EAAQvG,KAAKyJ,QAAQ,KAC1B+qB,EAAIjuB,EAAQvG,KAAKyJ,QAAQ,MAEjB,IAAR8rB,KAAqB,IAAPf,GAAYA,EAAIe,IAChCpV,EAAI5Z,EAAQvG,KACZuG,EAAQvG,KAAOmgB,EAAEyU,UAAU,EAAGW,GAAMh2B,EAAQ,IAAM4gB,EAAEyU,UAAUW,EAAK,KAExD,IAAPf,GACFrU,EAAI5Z,EAAQvG,KACZuG,EAAQvG,KAAOmgB,EAAEyU,UAAU,EAAGJ,GAAKj1B,EAAQ4gB,EAAEyU,UAAUJ,IAEvDjuB,EAAQvG,KAAOuG,EAAQvG,KAAOT,CAGpC,CiC5PEgK,CAAgCwY,EAAaxb,EAAS4uB,GAEtD,IACIh3B,EAAMoL,EAAYhD,GACtB2F,KAAKspB,iBAAiB,CACpBzT,YAAAA,EACA5jB,IAAAA,EACA0Q,OALW,MAMX7L,SAAAA,EACAuwB,eAAAA,EACApU,QAAS5Y,EAAQ4Y,QACjBC,UAAW7Y,EAAQ6Y,WAEvB,EAEA8V,GAAUj5B,UAAUmmB,KAAO,SAAAjV,GAOxB,IASG4V,EAfJhB,EAAW5U,EAAX4U,YACAxb,EAAO4G,EAAP5G,QACAF,EAAO8G,EAAP9G,QACAqC,EAAOyE,EAAPzE,QACA1F,EAAQmK,EAARnK,SACAuwB,EAAcpmB,EAAdomB,eAMA,GAJKvwB,GAAauG,EAAavG,KAC7BA,EAAW,WAAO,IAGfqD,EACH,OAAOrD,EAAS,IAAInG,MAAM,8BAU5B,IAJEkmB,EADE7W,KAAK4V,YAAczb,EAAQwH,KACX3B,KAAK4V,WAAWrD,SAASpY,GAEzBkD,EAAYlD,IAEZrI,MAClB,OAAOgF,EAAS+f,EAAgB/kB,OAGlC,IACIG,EAAMoL,EAAYhD,GACtB2F,KAAKspB,iBAAiB,CACpBzT,YAAAA,EACA5jB,IAAAA,EACA0Q,OALW,OAMXxI,QAAS0c,EAAgBzmB,MACzBoM,QAAAA,EACA1F,SAAAA,EACAuwB,eAAAA,EACApU,QAAS5Y,EAAQ4Y,QACjBC,UAAW7Y,EAAQ6Y,WAEvB,EAEA8V,GAAUj5B,UAAUgnB,gBAAkB,SACpClB,EACAxb,EACAF,EACArD,EACAuwB,GAEKvwB,GAAauG,EAAavG,KAC7BA,EAAW,WAAO,GAGpB,IACI7E,EAAMoL,EAAYhD,GACtB2F,KAAKspB,iBAAiB,CACpBzT,YAAAA,EACA5jB,IAAAA,EACA0Q,OALW,OAMXxI,QAAAA,EACArD,SAAAA,EACAuwB,eAAAA,EACApU,QAAS5Y,EAAQ4Y,QACjBC,UAAW7Y,EAAQ6Y,WAEvB,EAKA8V,GAAUj5B,UAAUu5B,iBAAmB,WAAY,IAAA3hB,EAAA,KAC7CyI,EACiB,oBAAX5a,QAA0BA,QACjB,oBAATwQ,MAAwBA,KAK9BujB,EAAWnZ,GAAWA,EAAQoZ,MAAQpZ,EAAQoZ,KAAKC,KACnDhzB,EAAOoF,MAAM9L,UAAUuG,MAAMrG,KAAKqL,WAElCiuB,EACFA,EAASG,IAAI,WACX/hB,EAAKgiB,aAAahjB,WAAMpP,EAAWd,EACrC,GAEAuJ,KAAK2pB,aAAahjB,WAAMpP,EAAWd,EAEvC,EAEAuyB,GAAUj5B,UAAU45B,aAAe,SAAUV,GAC3C,IAAQ9uB,EAAiC8uB,EAAjC9uB,QAASrD,EAAwBmyB,EAAxBnyB,SAAUoc,EAAc+V,EAAd/V,UAC3B,GAA4B,oBAAjB0W,aACT,OAWJ,SAAuB1C,EAAMpwB,IACR,IAAI8yB,cACVhI,gBACXsF,EACA,SAAU2C,GACR,EAEF,SAAU9zB,GACRe,EAAS,IAAInG,MAAMoF,GACrB,EAEJ,CAtBW+zB,CAAc3vB,EAASrD,GAGd,UAAdoc,EACF6W,GAAiBd,GAEjBe,GAAef,EAEnB,EAgBA,I,GAAA,MCxKA,SAAS30B,GAAMrC,GACb,IAcIS,EAAGgL,EAdH7J,EAAS,CACXH,SAAU,KACVu2B,KAAM,KACNpW,KAAM,KACN/f,KAAM,KACNo2B,KAAM,KACN70B,KAAMpD,EACN2B,SAAU,KACVD,KAAM,KACN+f,SAAU,KACVV,OAAQ,KACR3f,MAAO,MAmBT,IAdW,KADXX,EAAIT,EAAIsL,QAAQ,QAEd1J,EAAOH,SAAWzB,EAAIy2B,UAAU,EAAGh2B,GACnCgL,EAAOhL,EAAI,GAEXgL,EAAO,GAIE,KADXhL,EAAIT,EAAIsL,QAAQ,IAAKG,MAEnB7J,EAAOo2B,KAAOh4B,EAAIy2B,UAAUhrB,EAAMhL,GAClCgL,EAAOhL,EAAI,IAIF,KADXA,EAAIT,EAAIsL,QAAQ,IAAKG,IACP,CAEZ,IAAW,KADXhL,EAAIT,EAAIsL,QAAQ,IAAKG,IAcnB,OAXW,KADXhL,EAAIT,EAAIsL,QAAQ,IAAKG,IAEnB7J,EAAOggB,KAAO5hB,EAAIy2B,UAAUhrB,IAE5B7J,EAAOggB,KAAO5hB,EAAIy2B,UAAUhrB,EAAMhL,GAClCmB,EAAOq2B,KAAOj4B,EAAIy2B,UAAUh2B,IAE9BmB,EAAOD,SAAWC,EAAOggB,KAAKpa,MAAM,KAAK,GACzC5F,EAAOF,KAAOE,EAAOggB,KAAKpa,MAAM,KAAK,GACjC5F,EAAOF,OACTE,EAAOF,KAAOw2B,SAASt2B,EAAOF,KAAM,KAE/BE,EAEPA,EAAOggB,KAAO5hB,EAAIy2B,UAAUhrB,EAAMhL,GAClCmB,EAAOD,SAAWC,EAAOggB,KAAKpa,MAAM,KAAK,GACzC5F,EAAOF,KAAOE,EAAOggB,KAAKpa,MAAM,KAAK,GACjC5F,EAAOF,OACTE,EAAOF,KAAOw2B,SAASt2B,EAAOF,KAAM,KAEtC+J,EAAOhL,CAEX,MACEmB,EAAOggB,KAAO5hB,EAAIy2B,UAAUhrB,EAAMhL,GAClCmB,EAAOD,SAAWC,EAAOggB,KAAKpa,MAAM,KAAK,GACzC5F,EAAOF,KAAOE,EAAOggB,KAAKpa,MAAM,KAAK,GACjC5F,EAAOF,OACTE,EAAOF,KAAOw2B,SAASt2B,EAAOF,KAAM,KAEtC+J,EAAOhL,EAWT,IAPW,KADXA,EAAIT,EAAIsL,QAAQ,IAAKG,IAEnB7J,EAAOC,KAAO7B,EAAIy2B,UAAUhrB,IAE5B7J,EAAOC,KAAO7B,EAAIy2B,UAAUhrB,EAAMhL,GAClCmB,EAAOq2B,KAAOj4B,EAAIy2B,UAAUh2B,IAG1BmB,EAAOC,KAAM,CACf,IAAIs2B,EAAYv2B,EAAOC,KAAK2F,MAAM,KAClC5F,EAAO6f,SAAW0W,EAAU,GAC5Bv2B,EAAOR,MAAQ+2B,EAAU,GACzBv2B,EAAOmf,OAASnf,EAAOR,MAAQ,IAAMQ,EAAOR,MAAQ,IACtD,CACA,OAAOQ,CACT,C,44CC/DA,IAAIw2B,GAAY,KAEV3J,GAAO,WACX,SAAAA,EAAYrmB,EAASioB,I,4FAAQviB,CAAA,KAAA2gB,GAC3B5qB,GAAOwG,KAAK,CAAEgR,SAAUjT,EAAQiT,UAAY,UAC5CtN,KAAK3F,QAAUgD,EAAgBmY,GAAgBnb,EAAS,KAAMvE,IAC9DkK,KAAK3F,QAAQymB,mBAAqBzmB,EAClC2F,KAAKsqB,WAAatqB,KAAKsqB,YAAc,CAAC,EACtC,IAAMzqB,EAAYG,KAAKsqB,WAAW3J,UAC5B4J,EAAevqB,KAAKsqB,WAAWE,aACrCxqB,KAAKyqB,YAAczqB,KAAKsqB,WAAWG,YACnCzqB,KAAK0qB,MAAQ1qB,KAAKsqB,WAAWI,MAC7B,IAAM9U,EAAa5V,KAAKsqB,WAAW1U,WAC7BzF,EAAUnQ,KAAKsqB,WAAW9uB,QAC1BmvB,EAAS3qB,KAAKsqB,WAAW1N,OAEzB1J,EAAY,IAAI8V,GAAUpT,GAC1BtO,EAAM,IAAIsjB,GAAI5qB,KAAK3F,QAAS6Y,EAAWyC,EAAQC,GASrD,GARIzF,IACFnQ,KAAKxE,QAAU,IAAI2U,EAAQ0a,KAAYvjB,EAAKtH,KAAK3F,SACjD2F,KAAKxE,QAAQsvB,eAEXjrB,IACFG,KAAK2gB,UAAY,IAAI9gB,EAAUG,KAAK3F,QAAS2F,KAAKxE,UAGhDmvB,GnCoGmB,oBAAXn1B,OmCpGiB,CAC3B,IAAMu1B,EAAgB/qB,KAAK3F,QAAQuiB,OACnC5c,KAAK4c,OAAS,IAAI+N,EAAO,CACvBnvB,QAASwE,KAAKxE,QACdmlB,UAAW3gB,KAAK2gB,UAChBtmB,QAAS0wB,IAGPA,EAAc9O,SAAW8O,EAAcC,WACzChrB,KAAK4c,OAAOqO,SAASC,OAEzB,CAEAlrB,KAAKsiB,OACHA,GACA,IAAI6I,GACFnrB,KAAK3F,QACLiN,EACAxR,GACAkK,KAAK2gB,UACL3gB,KAAKxE,QACLwE,KAAK4c,OACL,WAEJ,IAAIxM,EAAUya,KACVO,EAAgC,oBAAb91B,UAA4BA,SACnD0K,KAAKqrB,SAAWjb,EAAQkb,QAAUlb,EAAQkb,OAAOC,QACjDvrB,KAAKwrB,uBAAyB,EAodlC,SAAiC90B,EAAU+0B,EAASrb,GAClD1Z,EACGia,aAAa/C,IACb+C,aAAa/C,IACb+C,aAAa/C,IACb+C,aAAa/C,IACb+C,aL5cL,SAAwBnb,GACtB,OAAO,SAAUiC,EAAM4C,EAASvD,GAC9B,IAAI40B,EAAc,CAAC,EAEfl2B,GAAUA,EAAOV,WACnB42B,EAAYz5B,IAAMuD,EAAOV,SAASO,KAClCq2B,EAAYC,aAAen2B,EAAOV,SAASke,QAG7C,IAAI4Y,EAAe,aACdvxB,EAAQwxB,WAEoB,IAAtBxxB,EAAQwxB,YACjBD,GAAgB,cAFhBA,EAAe,KAIbA,IAAcF,EAAYI,QAAUF,GAEpCn8B,OAAO+J,KAAKkyB,GAAa94B,OAAS,GACpCyK,EAAM5F,EAAM,eAAgBi0B,GAG9B50B,EAAS,KAAMW,EACjB,CACF,CKqbkBmW,CAA0BwC,IACvCO,aLpbL,SAAuBnb,GACrB,OAAO,SAAUiC,EAAM4C,EAASvD,GAC9B,IAAKtB,EACH,OAAOsB,EAAS,KAAMW,GAExB,IAAIs0B,EAAMv2B,EAAOC,WAAa,CAAC,EAC3Bu2B,EAAMx2B,EAAOy2B,QAAU,CAAC,EAC5B5uB,EAAM5F,EAAM,cAAe,CACzBy0B,WAAYz0B,EAAKC,UAAYlC,EAAO22B,kBACpCz0B,UAAWM,KAAK4H,MAAMnI,EAAKC,UAAY,KACvC00B,WAAY,CACVC,QAASN,EAAIr2B,UACb8W,SAAUuf,EAAIvf,SACd8f,eAAgBP,EAAIQ,cACpBN,OAAQ,CACNhoB,MAAO+nB,EAAI/nB,MACXD,OAAQgoB,EAAIhoB,WAIlBlN,EAAS,KAAMW,EACjB,CACF,CK8ZkBmW,CAAyBwC,IACtCO,aL7ZL,SAAuBnb,GACrB,OAAO,SAAUiC,EAAM4C,EAASvD,GAC9B,IAAKtB,IAAWA,EAAOC,UACrB,OAAOqB,EAAS,KAAMW,GAKxB,IAHA,IAEI+0B,EAFAC,EAAU,GACVC,EAAal3B,EAAOC,UAAUg3B,SAAW,GAEpC/5B,EAAI,EAAGC,EAAI+5B,EAAW95B,OAAQF,EAAIC,IAAKD,EAC9C85B,EAAME,EAAWh6B,GACjB+5B,EAAQl2B,KAAK,CAAE9F,KAAM+7B,EAAI/7B,KAAMshB,YAAaya,EAAIza,cAElD1U,EAAM5F,EAAM,iCAAkCg1B,GAC9C31B,EAAS,KAAMW,EACjB,CACF,CK8YkBmW,CAAyBwC,IACtCO,aAAa/C,IACb+C,aAAagc,IACbhc,aAAagc,IACbhc,aAAagc,IACbhc,cL1NgBic,EK0NoBnB,EAAQf,MLzNxC,SAAUjzB,EAAM4C,EAASvD,GAC9B,GAAI81B,EAAS,CACX,IAAI/xB,EAAcR,EAAQQ,aAAe,GACrCoD,EAAa5D,EAAQ4D,YAAc,GACvCxG,EAAKU,KAAOy0B,EAAQn1B,EAAKU,KAAM0C,EAAaoD,EAC9C,CACAnH,EAAS,KAAMW,EACjB,IKmNGkZ,aAAagc,IACbhc,aAAagc,GAA+B72B,KAC5C6a,aAAagc,IACbhc,aAAagc,IACbhc,aAAagc,IL/NlB,IAAqBC,CKgOrB,CAteIC,CAAwB7sB,KAAKsiB,OAAO5rB,SAAUsJ,KAAMoQ,GAwexD,SAA8BnQ,GAC5BA,EACG6sB,aAAaC,IACbD,aAAajQ,IACbiQ,abviBL,SAAyBh3B,GACvB,OAAO,SAAU2B,EAAMmjB,GACrB,IAAIoS,EAAaC,QAAQx1B,EAAKkrB,oBACvBlrB,EAAKkrB,YACZ,IAAIlsB,EAAOgB,EAAKc,qBACTd,EAAKc,cACZ,IACM8E,EAAaud,EAASsS,iBACxBtS,EAASsS,eAAeF,EAAYv2B,EAAMgB,EAE9C,CAAE,MAAOjG,GACPopB,EAASsS,eAAiB,KAC1Bp3B,EAAOhE,MAAM,+CAAgDN,EAC/D,CACA,IACE,GACE6L,EAAaud,EAAS8J,cACtB9J,EAAS8J,YAAYsI,EAAYv2B,EAAMgB,GAEvC,OAAO,CAEX,CAAE,MAAOjG,GACPopB,EAAS8J,YAAc,KACvB5uB,EAAOhE,MAAM,qDAAsDN,EACrE,CACA,OAAO,CACT,CACF,Ca4gBkBu7B,CAAiCj3B,KAC9Cg3B,ab3gBL,SAA6Bh3B,GAC3B,OAAO,SAAU2B,EAAMmjB,GACrB,OAAQQ,GAAa3jB,EAAMmjB,EAAU,YAAa9kB,EACpD,CACF,CaugBkBi3B,CAAqCj3B,KAClDg3B,abtgBL,SAAyBh3B,GACvB,OAAO,SAAU2B,EAAMmjB,GACrB,OAAOQ,GAAa3jB,EAAMmjB,EAAU,WAAY9kB,EAClD,CACF,CakgBkBi3B,CAAiCj3B,KAC9Cg3B,aAAaC,GAAkCj3B,IACpD,CA/eIq3B,CAAqBntB,KAAKsiB,OAAOriB,OACjCD,KAAKotB,wBACD7C,IACFvqB,KAAKwqB,aAAe,IAAID,EACtBvqB,KAAK3F,QACL2F,KAAKsiB,OAAO3B,UACZ3gB,KACAoQ,EACAgb,GAEFprB,KAAKwqB,aAAa6C,cAGpBrtB,KAAKstB,gCAAgCjzB,GAGrC2F,KAAKyrB,QAAUzrB,IACjB,CAAC,O,4GAAAuf,CAAAmB,EAAA,EAAAnxB,IAAA,SAAAa,MAcD,SAAOiK,GAEL,OADA2F,KAAKsiB,OAAOnB,OAAO9mB,GACZ2F,IACT,GAAC,CAAAzQ,IAAA,YAAAa,MAED,SAAUiK,EAAS+mB,GAAa,IAAAthB,EAAAme,EAAAsP,EAC1BlzB,EAAQiT,UACVxX,GAAOwG,KAAK,CAAEgR,SAAUjT,EAAQiT,WAElCtN,KAAKstB,gCAAgCjzB,GACrC,IAAImG,EAAaR,KAAK3F,QAClBF,EAAU,CAAC,EAiBf,OAhBIinB,IACFjnB,EAAU,CAAEA,QAASinB,IAGvBphB,KAAK3F,QAAUgD,EAAgBmD,EAAYnG,EAASF,EAASrE,IAC7DkK,KAAK3F,QAAQymB,mBAAqBzjB,EAChCmD,EAAWsgB,mBACXzmB,EACAF,GAGU,QAAZ2F,EAAAE,KAAKxE,eAAO,IAAAsE,GAAZA,EAAckc,UAAUhc,KAAK3F,SAClB,QAAX4jB,EAAAje,KAAK4c,cAAM,IAAAqB,GAAXA,EAAajC,UAAUhc,KAAK3F,QAAQuiB,QACpC5c,KAAKsiB,OAAOtG,UAAUhc,KAAK3F,QAAS+mB,GACnB,QAAjBmM,EAAAvtB,KAAKwqB,oBAAY,IAAA+C,GAAjBA,EAAmBvR,UAAUhc,KAAK3F,SAClC2F,KAAKotB,wBACEptB,IACT,GAAC,CAAAzQ,IAAA,YAAAa,MAED,WACE,OAAO4P,KAAKsiB,OAAOtB,SACrB,GAAC,CAAAzxB,IAAA,MAAAa,MAED,WACE,IAAIqH,EAAOuI,KAAKwtB,YAAYlyB,WACxBzD,EAAOJ,EAAKI,KAEhB,OADAmI,KAAKsiB,OAAO9nB,IAAI/C,GACT,CAAEI,KAAMA,EACjB,GAAC,CAAAtI,IAAA,QAAAa,MAED,WACE,IAAIqH,EAAOuI,KAAKwtB,YAAYlyB,WACxBzD,EAAOJ,EAAKI,KAEhB,OADAmI,KAAKsiB,OAAO3wB,MAAM8F,GACX,CAAEI,KAAMA,EACjB,GAAC,CAAAtI,IAAA,OAAAa,MAED,WACE,IAAIqH,EAAOuI,KAAKwtB,YAAYlyB,WACxBzD,EAAOJ,EAAKI,KAEhB,OADAmI,KAAKsiB,OAAO1wB,KAAK6F,GACV,CAAEI,KAAMA,EACjB,GAAC,CAAAtI,IAAA,OAAAa,MAED,WACE,IAAIqH,EAAOuI,KAAKwtB,YAAYlyB,WACxBzD,EAAOJ,EAAKI,KAEhB,OADAmI,KAAKsiB,OAAO1V,KAAKnV,GACV,CAAEI,KAAMA,EACjB,GAAC,CAAAtI,IAAA,UAAAa,MAED,WACE,IAAIqH,EAAOuI,KAAKwtB,YAAYlyB,WACxBzD,EAAOJ,EAAKI,KAEhB,OADAmI,KAAKsiB,OAAOzwB,QAAQ4F,GACb,CAAEI,KAAMA,EACjB,GAAC,CAAAtI,IAAA,QAAAa,MAED,WACE,IAAIqH,EAAOuI,KAAKwtB,YAAYlyB,WACxBzD,EAAOJ,EAAKI,KAEhB,OADAmI,KAAKsiB,OAAOxwB,MAAM2F,GACX,CAAEI,KAAMA,EACjB,GAAC,CAAAtI,IAAA,WAAAa,MAED,WACE,IAAIqH,EAAOuI,KAAKwtB,YAAYlyB,WACxBzD,EAAOJ,EAAKI,KAEhB,OADAmI,KAAKsiB,OAAOvwB,SAAS0F,GACd,CAAEI,KAAMA,EACjB,GAAC,CAAAtI,IAAA,mBAAAa,MAED,SAAiBqH,GACf,OAAOuI,KAAKsiB,OAAOX,iBAAiBlqB,EACtC,GAAC,CAAAlI,IAAA,kBAAAa,MAED,SAAgB0mB,GACd,OAAO9W,KAAKsiB,OAAOV,gBAAgB9K,EACrC,GAAC,CAAAvnB,IAAA,sBAAAa,MAED,SAAoB+E,GAClB,OAAO6K,KAAKytB,cAAaxrB,GAAC,CAAElB,KAAM,UAAa5L,GACjD,GAAC,CAAA5F,IAAA,gBAAAa,MAED,SAAc+E,GACZ,OAAK6K,KAAK4c,OAEH5c,KAAK4c,OAAO6Q,cAAct4B,GAFR,IAG3B,GAAC,CAAA5F,IAAA,wBAAAa,MAED,WACE,IAAIggB,EAAUya,KAET7qB,KAAK0tB,iCAEN1tB,KAAK3F,QAAQszB,iBACb3tB,KAAK3F,QAAQuzB,6BCrNrB,SAAmCp4B,EAAQq4B,EAASC,GAClD,GAAKt4B,EAAL,CAGA,IAAIu4B,EAEJ,GAA0C,mBAA/BF,EAAQG,mBACjBD,EAAaF,EAAQG,wBAChB,GAAIx4B,EAAOszB,QAAS,CAEzB,IADAiF,EAAav4B,EAAOszB,QACbiF,EAAWC,oBAChBD,EAAaA,EAAWC,mBAE1BH,EAAQG,mBAAqBD,CAC/B,CAEAF,EAAQI,wBAER,IAAI3nB,EAAK,WACP,IAAI7P,EAAOoF,MAAM9L,UAAUuG,MAAMrG,KAAKqL,UAAW,IASrD,SAA+B9F,EAAQuC,EAAGm2B,EAAKz3B,GACzCjB,EAAO24B,uBACJ13B,EAAK,KACRA,EAAK,GAAKjB,EAAO24B,sBAEd13B,EAAK,KACRA,EAAK,GAAKjB,EAAO24B,qBAAqBC,iBAExC54B,EAAO24B,qBAAuB,MAGhC,IAAI7vB,EAAMvG,EAAEs2B,wBAAwB1nB,MAAM5O,EAAGtB,GAEzCy3B,GACFA,EAAIvnB,MAAMnR,EAAQiB,GAMR,cAAR6H,IACFvG,EAAEyzB,wBAA0B,EAEhC,CA/BI8C,CAAsB94B,EAAQq4B,EAASE,EAAYt3B,EACrD,EACIq3B,IACFxnB,EAAG0nB,mBAAqBD,GAE1Bv4B,EAAOszB,QAAUxiB,CAtBjB,CAuBF,CD6LQioB,CAAkCne,EAASpQ,MACvCA,KAAKyqB,aAAezqB,KAAK3F,QAAQm0B,yBACnCxuB,KAAKyqB,YAAYra,EAASpQ,MAE5BA,KAAK0tB,gCAAiC,GAGrC1tB,KAAKyuB,iCAENzuB,KAAK3F,QAAQq0B,4BACb1uB,KAAK3F,QAAQs0B,8BC5KrB,SAAoCn5B,EAAQq4B,EAASC,GACnD,GAAKt4B,EAAL,CAKgC,mBAAvBA,EAAOo5B,aACdp5B,EAAOo5B,YAAYC,eAEnBr5B,EAAOs5B,oBAAoB,qBAAsBt5B,EAAOo5B,aAG1D,IAAIG,EAAmB,SAAUC,GAC/B,IAAIC,EAAQC,EAASC,EACrB,IACEF,EAASD,EAAIC,MACf,CAAE,MAAOv1B,GACPu1B,OAAS13B,CACX,CACA,IACE23B,EAAUF,EAAIE,OAChB,CAAE,MAAOx1B,GACPw1B,EAAU,yDACZ,CACA,IACEC,EAASH,EAAIG,QACRF,GAAUE,IACbF,EAASE,EAAOF,OAChBC,EAAUC,EAAOD,QAErB,CAAE,MAAOx1B,GACP,CAEGu1B,IACHA,EAAS,0DAGPpB,GAAWA,EAAQuB,0BACrBvB,EAAQuB,yBAAyBH,EAAQC,EAE7C,EACAH,EAAiBF,cAAgBf,EACjCt4B,EAAOo5B,YAAcG,EACrBv5B,EAAO65B,iBAAiB,qBAAsBN,EAxC9C,CAyCF,CDkIQR,CAAmCne,EAASpQ,MAC5CA,KAAKyuB,gCAAiC,EAG5C,GAAC,CAAAl/B,IAAA,0BAAAa,MAED,SAAwBoE,EAASvC,EAAKwC,EAAQC,EAAO5C,EAAOqD,GAC1D,GACG6K,KAAK3F,QAAQszB,iBACb3tB,KAAK3F,QAAQuzB,yBAFhB,CAWA,GACE5tB,KAAK3F,QAAQi1B,wBACbtvB,KAAKqrB,UACK,OAAVv5B,GACQ,KAARG,EAEA,MAAO,YAGT,IAAIwF,EACAotB,EAAYxnB,EACd7I,EACAvC,EACAwC,EACAC,EACA5C,EACA,UACA,qBACA+C,IAEEwI,EAAUvL,IACZ2F,EAAOuI,KAAKwtB,YAAY,CAACh5B,EAAS1C,EAAOqD,KACpC+wB,oBAAsBrB,EAClBxnB,EAAUpL,IACnBwF,EAAOuI,KAAKwtB,YAAY,CAACh5B,EAASvC,EAAKkD,KAClC+wB,oBAAsBrB,GAE3BptB,EAAOuI,KAAKwtB,YAAY,CAACh5B,EAASW,KAC7B0vB,UAAYA,EAEnBptB,EAAKW,MAAQ4H,KAAK3F,QAAQk1B,mBAC1B93B,EAAKkrB,aAAc,EACnB3iB,KAAKsiB,OAAO9nB,IAAI/C,EAtChB,CAuCF,GAEA,CAAAlI,IAAA,wBAAAa,MAYA,WAAwB,IAAAuX,EAAA,KACtB,GAAK3H,KAAK3F,QAAQi1B,wBAA2BtvB,KAAKqrB,SAAlD,CAoCA,IACE16B,MAAM6+B,kBAjCkB,SAAC19B,EAAO29B,GAChC,GAAI9nB,EAAKtN,QAAQi1B,wBACX3nB,EAAK6jB,uBAAwB,CAQ/B,GAFA7jB,EAAK6jB,wBAA0B,GAE1B15B,EAIH,OAIFA,EAAM49B,cAAe,EAKrB/nB,EAAK0mB,wBAAwBv8B,EAAM0C,QAAS,KAAM,KAAM,KAAM1C,EAChE,CAIF,OAAOA,EAAM8D,KACf,CAKA,CAAE,MAAOpE,GACPwO,KAAK3F,QAAQi1B,wBAAyB,EACtCtvB,KAAKlO,MAAM,iCAAkCN,EAC/C,CAvCA,CAwCF,GAAC,CAAAjC,IAAA,2BAAAa,MAED,SAAyB6+B,EAAQC,GAC/B,GACGlvB,KAAK3F,QAAQq0B,4BACb1uB,KAAK3F,QAAQs0B,0BAFhB,CAOA,IAAIn6B,EAAU,6CACd,GAAIy6B,EACF,GAAIA,EAAOz6B,QACTA,EAAUy6B,EAAOz6B,YACZ,CACL,IAAIm7B,EAAetyB,EAAY4xB,GAC3BU,EAAav/B,QACfoE,EAAUm7B,EAAav/B,MAE3B,CAEF,IAIIqH,EAJAtC,EACD85B,GAAUA,EAAOb,iBACjBc,GAAWA,EAAQd,gBAGlB/wB,EAAU4xB,GACZx3B,EAAOuI,KAAKwtB,YAAY,CAACh5B,EAASy6B,EAAQ95B,KAE1CsC,EAAOuI,KAAKwtB,YAAY,CAACh5B,EAASy6B,EAAQ95B,KACrC0vB,UAAYxnB,EACf7I,EACA,GACA,EACA,EACA,KACA,qBACA,GACAK,IAGJ4C,EAAKW,MAAQ4H,KAAK3F,QAAQk1B,mBAC1B93B,EAAKkrB,aAAc,EACnBlrB,EAAKc,cAAgBd,EAAKc,eAAiB,GAC3Cd,EAAKc,cAAchC,KAAK24B,GACxBlvB,KAAKsiB,OAAO9nB,IAAI/C,EArChB,CAsCF,GAAC,CAAAlI,IAAA,OAAAa,MAED,SAAKY,EAAGmE,EAASy6B,GACf,IACE,IAAIC,EASJ,GAPEA,EADExyB,EAAalI,GACPA,EAEA,WACN,OAAOA,GAAW,CAAC,CACrB,GAGGkI,EAAarM,GAChB,OAAOA,EAGT,GAAIA,EAAE8+B,QACJ,OAAO9+B,EAGT,IAAKA,EAAE++B,iBAwBL,IAAK,IAAIjgC,KAvBTkB,EAAE++B,iBAAmB,WACfH,GAAWvyB,EAAauyB,IAC1BA,EAAQjpB,MAAM3G,KAAM1E,WAEtB,IACE,OAAOtK,EAAE2V,MAAM3G,KAAM1E,UACvB,CAAE,MAAO6sB,GACP,IAAI32B,EAAI22B,EAUR,MATI32B,GAAKgE,OAAO24B,uBAAyB38B,IACnC6L,EAAS7L,EAAG,YACdA,EAAI,IAAImE,OAAOnE,IAEjBA,EAAE48B,gBAAkByB,KAAW,CAAC,EAChCr+B,EAAE48B,gBAAgB4B,eAAiBh/B,EAAEJ,WAErC4E,OAAO24B,qBAAuB38B,GAE1BA,CACR,CACF,EAEAR,EAAE++B,iBAAiBD,SAAU,EAEZ9+B,EACXqM,EAASrM,EAAGlB,IAAkB,qBAATA,IACvBkB,EAAE++B,iBAAiBjgC,GAAQkB,EAAElB,IAKnC,OAAOkB,EAAE++B,gBACX,CAAE,MAAOr2B,GAEP,OAAO1I,CACT,CACF,GAAC,CAAAzB,IAAA,eAAAa,MAED,WACE,IAAI+Q,EnCqLR,SAA8B1K,GAI5B,IAHA,IAAIsK,EAAMQ,EAAUnJ,EAChBpB,EAEKtE,EAAI,EAAGC,EAAI8D,EAAK7D,OAAQF,EAAIC,IAAKD,EAIxC,OADUlC,EAFVwG,EAAMP,EAAK/D,KAIT,IAAK,UACEqO,GAAQpI,EAAcF,EAAiBzB,GAC1C+J,EAAO/J,GACGoB,GAASO,EAAcD,EAAkB1B,KACnDoB,EAAQpB,GAEV,MACF,IAAK,SACHuK,EAAWvK,EAYjB,MANY,CACV+J,KAAMA,GAAQ,SACdQ,SAAUA,GAAY,CAAC,EACvBnJ,MAAOA,EAIX,CmCnNgBiF,CAAuB/B,WACnC,OAAO0E,KAAKsiB,OAAOd,aAAargB,EAAMJ,KAAMI,EAAMI,SAAUJ,EAAM/I,MACpE,GAAC,CAAA7I,IAAA,iBAAAa,MAED,SAAe2b,GAAM,IAAAsW,EACF,QAAbA,EAACriB,KAAKxE,eAAO,IAAA6mB,GAAZA,EAActX,SAEnB/K,KAAKxE,QAAQuP,QAAQklB,QAAQlkB,EAC/B,GAAC,CAAAxc,IAAA,uBAAAa,MAED,SAAqB6a,GAAO,IAAAilB,EACT,QAAbA,EAAClwB,KAAKxE,eAAO,IAAA00B,GAAZA,EAAcnlB,UAEnBE,EAAKhJ,GAAA,GAAQgJ,GAEbjL,KAAKxE,QAAQuP,QAAQiB,cAAcf,GACrC,GAAC,CAAA1b,IAAA,kCAAAa,MAED,SAAgCiK,GAAS,IAAA81B,EAAAC,EAAAC,EAAAC,EAAAC,EACjCC,EAASn2B,EAAQm2B,SAAyB,QAAnBL,EAAI91B,EAAQF,eAAO,IAAAg2B,OAAA,EAAfA,EAAiBK,QAC9CA,GACFxwB,KAAKywB,eAAeD,GAEtB,IAAME,GACU,QAAdN,EAAA/1B,EAAQioB,cAAM,IAAA8N,GAAY,QAAZA,EAAdA,EAAgBhE,kBAAU,IAAAgE,OAAA,EAA1BA,EAA4BM,eAC5Br2B,EAAQs2B,aACRt2B,EAAQq2B,eACO,QADKL,EACpBh2B,EAAQF,eAAO,IAAAk2B,GAAQ,QAARA,EAAfA,EAAiB/N,cAAM,IAAA+N,GAAY,QAAZA,EAAvBA,EAAyBjE,kBAAU,IAAAiE,OAAA,EAAnCA,EAAqCK,gBACtB,QADkCJ,EACjDj2B,EAAQF,eAAO,IAAAm2B,OAAA,EAAfA,EAAiBI,gBACF,QADcH,EAC7Bl2B,EAAQF,eAAO,IAAAo2B,OAAA,EAAfA,EAAiBI,aACnB3wB,KAAK4wB,qBAAqB,CACxB,sBAAuBF,EACvB,wBAAyB,qBACzB,2BAA4Br2B,EAAQ6N,SAExC,GAEA,CAAA3Y,IAAA,0BAAAa,MACA,SAAwBoB,EAAG2T,GAIzB,OAHKA,IACHA,EAAK,IAAIpL,MAEJiG,KAAKsiB,OAAOb,wBAAwBtc,EAC7C,GAAC,CAAA5V,IAAA,cAAAa,MAED,SAAYoB,EAAG2T,GAIb,OAHKA,IACHA,EAAK,IAAIpL,MAEJiG,KAAKsiB,OAAOZ,YAAYvc,EACjC,GAAC,CAAA5V,IAAA,WAAAa,MAED,WACE0F,GAAOlE,KACL,sHAEJ,GAAC,CAAArC,IAAA,cAAAa,MAED,SAAYqG,GACV,OAAO4G,EAAa5G,EAAMX,GAAQkK,KACpC,IAKA,EAAAzQ,IAAA,OAAAa,MA7ZA,SAAYiK,EAASioB,GACnB,OAAI+H,GACKA,GAAUlJ,OAAO9mB,GAAS2hB,UAAU3hB,GAE7CgwB,GAAY,IAAI3J,EAAQrmB,EAASioB,EAEnC,GAAC,CAAA/yB,IAAA,gBAAAa,MAED,SAAqBk6B,GACnB5J,EAAQ3wB,UAAUu6B,WAAaA,CACjC,GAAC,CAAA/6B,IAAA,eAAAa,MAoZD,SAAoBuS,EAAQlM,GAC1B,GAAK4zB,GASL,OAAOA,GAAU1nB,GAAQgE,MAAM0jB,GAAW5zB,GARxC,IAAMjC,EAAU,6BAChBsB,GAAOhE,MAAM0C,GACb,IAAMq8B,EA4DZ,SAA2Bp6B,GACzB,IAAK,IAAI/D,EAAI,EAAG4E,EAAMb,EAAK7D,OAAQF,EAAI4E,IAAO5E,EAC5C,GAAI2K,EAAa5G,EAAK/D,IACpB,OAAO+D,EAAK/D,GAGhB,MACF,CAnE4Bo+B,CAAkBr6B,GACpCo6B,GACFA,EAAc,IAAIlgC,MAAM6D,GAK9B,IAAC,CAjfU,GA+iBb,SAASq2B,KACP,MACqB,oBAAXr1B,QAA0BA,QACjB,oBAATwQ,MAAwBA,IAEpC,CA/CA+qB,GArgBMrQ,GAAO5V,GAAP4V,GAAO,SAmfK,mBAAAja,EAAAnL,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAA4K,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJjQ,EAAIiQ,GAAApL,UAAAoL,GAAA,OAAKga,GAAQsQ,aAAa,SAAUv6B,EAAK,GAAAqU,GAnf7D4V,GAAO,YAofQ,mBAAA5T,EAAAxR,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAiR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJtW,EAAIsW,GAAAzR,UAAAyR,GAAA,OAAK2T,GAAQsQ,aAAa,YAAav6B,EAAK,GAAAqU,GApfnE4V,GAAO,YAqfQ,mBAAA1T,EAAA1R,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAmR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJxW,EAAIwW,GAAA3R,UAAA2R,GAAA,OAAKyT,GAAQsQ,aAAa,YAAav6B,EAAK,GAAAqU,GArfnE4V,GAAO,MAsfE,mBAAAxT,EAAA5R,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAqR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ1W,EAAI0W,GAAA7R,UAAA6R,GAAA,OAAKuT,GAAQsQ,aAAa,MAAOv6B,EAAK,GAAAqU,GAtfvD4V,GAAO,QAufI,mBAAAtT,EAAA9R,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAuR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ5W,EAAI4W,GAAA/R,UAAA+R,GAAA,OAAKqT,GAAQsQ,aAAa,QAASv6B,EAAK,GAAAqU,GAvf3D4V,GAAO,OAwfG,mBAAAuQ,EAAA31B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAo1B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJz6B,EAAIy6B,GAAA51B,UAAA41B,GAAA,OAAKxQ,GAAQsQ,aAAa,OAAQv6B,EAAK,GAAAqU,GAxfzD4V,GAAO,OAyfG,mBAAAyQ,EAAA71B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAs1B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ36B,EAAI26B,GAAA91B,UAAA81B,GAAA,OAAK1Q,GAAQsQ,aAAa,OAAQv6B,EAAK,GAAAqU,GAzfzD4V,GAAO,UA0fM,mBAAA2Q,EAAA/1B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAw1B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ76B,EAAI66B,GAAAh2B,UAAAg2B,GAAA,OAAK5Q,GAAQsQ,aAAa,UAAWv6B,EAAK,GAAAqU,GA1f/D4V,GAAO,QA2fI,mBAAA6Q,EAAAj2B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAA01B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ/6B,EAAI+6B,GAAAl2B,UAAAk2B,GAAA,OAAK9Q,GAAQsQ,aAAa,QAASv6B,EAAK,GAAAqU,GA3f3D4V,GAAO,WA4fO,mBAAA+Q,EAAAn2B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAA41B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJj7B,EAAIi7B,GAAAp2B,UAAAo2B,GAAA,OAAKhR,GAAQsQ,aAAa,WAAYv6B,EAAK,GAAAqU,GA5fjE4V,GAAO,mBA6fe,mBAAAiR,EAAAr2B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAA81B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJn7B,EAAIm7B,GAAAt2B,UAAAs2B,GAAA,OAChClR,GAAQsQ,aAAa,mBAAoBv6B,EAAK,GAAAqU,GA9f5C4V,GAAO,kBA+fc,mBAAAmR,EAAAv2B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAg2B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJr7B,EAAIq7B,GAAAx2B,UAAAw2B,GAAA,OAC/BpR,GAAQsQ,aAAa,kBAAmBv6B,EAAK,GAAAqU,GAhgB3C4V,GAAO,OAigBG,mBAAAqR,EAAAz2B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAk2B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJv7B,EAAIu7B,GAAA12B,UAAA02B,GAAA,OAAKtR,GAAQsQ,aAAa,OAAQv6B,EAAK,GAAAqU,GAjgBzD4V,GAAO,eAkgBW,mBAAAuR,EAAA32B,UAAA1I,OAAI6D,EAAI,IAAAoF,MAAAo2B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJz7B,EAAIy7B,GAAA52B,UAAA42B,GAAA,OAAKxR,GAAQsQ,aAAa,eAAgBv6B,EAAK,GAoD/E,IAAM+e,GAAiB,CACrBhF,YAAa,UACbtI,QAAS6K,GACTlY,YAAas3B,GAAAA,YACb7kB,SAAUyF,GACV+H,YAAa/H,GACbwc,mBAAoBxc,GACpBS,SAAUT,GACVkM,SAAS,EACThD,SAAS,EACT2B,UAAU,EACVmG,YAAY,EACZxe,yBAAyB,EACzBsmB,WAAW,EACXyD,wBAAwB,EACxBxN,uBAAuB,EACvB0M,yBAAyB,EACzB5R,OExlBF,CACEX,SAAS,EACT+O,WAAW,EAGXoH,gBAAiB,CACfC,cAAe,EACfC,YAAa,IACbC,aAAc,GAEhBC,SAAU,CACR,CACEzxB,KAAM,aACN3I,MAAO,CAAC,QAAS,cAIrBzG,MAAO,CACL8gC,WAAW,EACXC,UAAU,GAIZC,kBAAkB,EAClBC,cAAc,EACdC,cAAc,EAKdC,iBAAkB,CAChBC,UAAU,EACV9mB,OAAO,EACP+mB,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,MAAM,EACN,kBAAkB,EAClBC,OAAO,EACPC,QAAQ,EACRhiB,OAAO,EACP2B,QAAQ,EACRxJ,MAAM,EACNvX,KAAK,EACLqhC,MAAM,GAIRC,eAAe,EAGfC,WAAY,WACZC,cAAe,UACfC,YAAa,YAIbC,eAAgB,CACdC,QAAQ,EACRC,SAAS,EACTC,aAAa,EACbC,gBAAgB,EAChBC,sBAAsB,EACtBC,gBAAgB,EAChBC,gBAAgB,EAChBC,mBAAmB,EACnBC,oBAAoB,EACpBC,sBAAsB,IFshBxB74B,QG1lBF,CACEygB,SAAS,EACTzI,SAAU,mCH2lBZ,MI5kBA,SAAS8gB,GAAc7jC,GAIrB,MAHoB,iBAATA,IACTA,EAAOkF,OAAOlF,IAETA,EAAKK,aACd,CAoBA,SAASyjC,GAAa/3B,GACpBwD,KAAKgB,IAAM,CAAC,EAERxE,aAAmB+3B,GACrB/3B,EAAQg4B,QAAQ,SAAUpkC,EAAOK,GAC/BuP,KAAKlD,OAAOrM,EAAML,EACpB,EAAG4P,MACMnE,MAAMC,QAAQU,GACvBA,EAAQg4B,QAAQ,SAAUC,GACxBz0B,KAAKlD,OAAO23B,EAAO,GAAIA,EAAO,GAChC,EAAGz0B,MACMxD,GACT/M,OAAOilC,oBAAoBl4B,GAASg4B,QAAQ,SAAU/jC,GACpDuP,KAAKlD,OAAOrM,EAAM+L,EAAQ/L,GAC5B,EAAGuP,KAEP,CAEAu0B,GAAaxkC,UAAU+M,OAAS,SAAUrM,EAAML,GAC9CK,EAAO6jC,GAAc7jC,GACrBL,EAtCF,SAAwBA,GAItB,MAHqB,iBAAVA,IACTA,EAAQuF,OAAOvF,IAEVA,CACT,CAiCUukC,CAAevkC,GACvB,IAAIwkC,EAAW50B,KAAKgB,IAAIvQ,GACxBuP,KAAKgB,IAAIvQ,GAAQmkC,EAAWA,EAAW,KAAOxkC,EAAQA,CACxD,EAEAmkC,GAAaxkC,UAAUH,IAAM,SAAUa,GAErC,OADAA,EAAO6jC,GAAc7jC,GACduP,KAAKmI,IAAI1X,GAAQuP,KAAKgB,IAAIvQ,GAAQ,IAC3C,EAEA8jC,GAAaxkC,UAAUoY,IAAM,SAAU1X,GACrC,OAAOS,EAAO8O,KAAKgB,IAAKszB,GAAc7jC,GACxC,EAEA8jC,GAAaxkC,UAAUykC,QAAU,SAAU19B,EAAUyP,GACnD,IAAK,IAAI9V,KAAQuP,KAAKgB,IAChB9P,EAAO8O,KAAKgB,IAAKvQ,IACnBqG,EAAS7G,KAAKsW,EAASvG,KAAKgB,IAAIvQ,GAAOA,EAAMuP,KAGnD,EAEAu0B,GAAaxkC,UAAU8N,QAAU,WAC/B,IAAIg3B,EAAQ,GAIZ,OAHA70B,KAAKw0B,QAAQ,SAAUpkC,EAAOK,GAC5BokC,EAAMt+B,KAAK,CAAC9F,EAAML,GACpB,GAzDF,SAAqBykC,GAQnB,MAPe,CACbpY,KAAM,WACJ,IAAIrsB,EAAQykC,EAAMnvB,QAClB,MAAO,CAAEzM,UAAgB1B,IAAVnH,EAAqBA,MAAOA,EAC7C,EAIJ,CAiDS0kC,CAAYD,EACrB,EAEA,OAnFA,SAAiBr4B,GACf,MAAuB,oBAAZG,QACF,IAAI43B,GAAa/3B,GAGnB,IAAIG,QAAQH,EACrB,ECVA,OARA,SAAiB3M,EAAKY,EAAMqJ,EAAai7B,EAAch0B,GACrD,IAAIi0B,EAAOnlC,EAAIY,GACfZ,EAAIY,GAAQqJ,EAAYk7B,GACpBD,GACFA,EAAah0B,GAAMxK,KAAK,CAAC1G,EAAKY,EAAMukC,GAExC,E,y/BC6DA,SAASC,GAAcC,GACrB,OAvBF,SAA8B37B,GAS5B,IARA,IAKE47B,EACAC,EAHEC,EAAM,GACR/9B,EAAM,EAIC5E,EAAI6G,EAAE3G,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAGtC,GAFAyiC,EAAUG,GAAoB/7B,EAAE7G,IAChC0iC,EAAc99B,EARIi+B,EAQEF,EAAIziC,OAA2BuiC,EAAQviC,OACvDF,EAAI6G,EAAE3G,OAAS,GAAKwiC,GAAeI,GAAgB,CACrDH,EAAI9nB,QAAQ,OACZ,KACF,CACA8nB,EAAI9nB,QAAQ4nB,GACZ79B,GAAO69B,EAAQviC,MACjB,CACA,OAAOyiC,EAAI1qB,KAjBK,MAkBlB,CAGS8qB,CAtCT,SAAqBP,GAInB,IAHA,IAEIQ,EADAL,EAAM,GAEDrxB,EAAS,EAAGkxB,GAAQlxB,EAHZ,IAIf0xB,EAAkBC,GAAgBT,KACkB,SAA5BQ,EAAgBE,QAFQ5xB,IAKhDqxB,EAAI9nB,QAAQmoB,GACZR,EAAOA,EAAKW,WAEd,OAAOR,CACT,CAyB8BS,CAAYZ,GAC1C,CAEA,SAASI,GAAoBS,GAC3B,IAAKA,IAASA,EAAKH,QACjB,MAAO,GAET,IAAIP,EAAM,CAACU,EAAKH,SACZG,EAAKtqB,IACP4pB,EAAI9+B,KAAK,IAAMw/B,EAAKtqB,IAElBsqB,EAAKC,SACPX,EAAI9+B,KAAK,IAAMw/B,EAAKC,QAAQrrB,KAAK,MAClC,IACsC7R,EADtCC,EAAAC,GACuB+8B,EAAK38B,YAAU,IAAvC,IAAAL,EAAA1E,MAAAyE,EAAAC,EAAA3H,KAAA6H,MAAyC,KAA9Bg9B,EAASn9B,EAAA1I,MAClBilC,EAAI9+B,KAAK,IAAM0/B,EAAU1mC,IAAM,KAAO0mC,EAAU7lC,MAAQ,KAC1D,CAAC,OAAA2F,GAAAgD,EAAAvH,EAAAuE,EAAA,SAAAgD,EAAA/H,GAAA,CAED,OAAOqkC,EAAI1qB,KAAK,GAClB,CAiBA,SAASgrB,GAAgBT,GACvB,IAAKA,IAASA,EAAKU,QACjB,OAAO,KAET,IACE9P,EADEuP,EAAM,CAAC,EAEXA,EAAIO,QAAUV,EAAKU,QAAQ9kC,cACvBokC,EAAKzpB,KACP4pB,EAAI5pB,GAAKypB,EAAKzpB,KAEhBqa,EAAYoP,EAAKpP,YACqB,iBAAdA,IACtBuP,EAAIW,QAAUlQ,EAAUrsB,MAAM,QAGhC47B,EAAIj8B,WAAa,GACjB,IAAK,IAALwD,EAAA,EAAAoO,EAFiB,CAAC,OAAQ,OAAQ,QAAS,OAETpO,EAAAoO,EAAApY,OAAAgK,IAAE,CAA/B,IAAMq5B,EAASjrB,EAAApO,GACZ+M,EAAOurB,EAAKgB,aAAaD,GAC3BtsB,GACF0rB,EAAIj8B,WAAW7C,KAAK,CAAEhH,IAAK0mC,EAAW7lC,MAAOuZ,GAEjD,CACA,OAAO0rB,CACT,C,2jECnHA,IAAMtiB,GAAW,CACfojB,SAAS,EACTC,wBAAwB,EACxBC,qBAAqB,EACrBC,uBAAuB,EACvBC,oBAAoB,EACpBC,uBAAuB,EACvBC,uBAAuB,EACvBC,qBAAqB,EACrBl8B,KAAK,EACLm8B,KAAK,EACLC,YAAY,EACZC,cAAc,EACdC,uBAAuB,EACvBC,8BAA8B,GAGhC,SAASC,GAAQjC,EAAch0B,GAE7B,IADA,IAAI+F,EACGiuB,EAAah0B,GAAMnO,SACxBkU,EAAIiuB,EAAah0B,GAAM2E,SACrB,GAAGoB,EAAE,IAAMA,EAAE,EAEnB,CAeA,SAASmwB,GAAqBp8B,GAC5B,IAC+B/B,EADzBo+B,EAAW,GAAGn+B,EAAAC,GACA6B,GAAW,IAA/B,IAAA9B,EAAA1E,MAAAyE,EAAAC,EAAA3H,KAAA6H,MAAiC,KAAtBk+B,EAAKr+B,EAAA1I,MACd8mC,EAAS3gC,KAAK,IAAIkI,OAAO04B,EAAO,KAClC,CAAC,OAAAphC,GAAAgD,EAAAvH,EAAAuE,EAAA,SAAAgD,EAAA/H,GAAA,CACD,OAAO,SAAU+gB,GACf,IAAMthB,EAnBV,SAA6BshB,GAC3B,IAAKA,IAAgBA,EAAY3Y,WAC/B,OAAO,KAET,IACqB8E,EADgBC,EAAAnF,GAAvB+Y,EAAY3Y,YACL,IAArB,IAAA+E,EAAA9J,MAAA6J,EAAAC,EAAA/M,KAAA6H,MAAuB,KAAZM,EAAC2E,EAAA9N,MACV,GAAc,SAAVmJ,EAAEhK,IACJ,OAAOgK,EAAEnJ,KAEb,CAAC,OAAA2F,GAAAoI,EAAA3M,EAAAuE,EAAA,SAAAoI,EAAAnN,GAAA,CACD,OAAO,IACT,CAQiBomC,CAAoBrlB,GACjC,IAAKthB,EACH,OAAO,EAET,IAAK,IAALmM,EAAA,EAAAy6B,EAAgBH,EAAQt6B,EAAAy6B,EAAAzkC,OAAAgK,IAAE,CACxB,GADUy6B,EAAAz6B,GACJV,KAAKzL,GACT,OAAO,CAEX,CACA,OAAO,CACT,CACF,CAAC,IAEK85B,GAAY,WAgCf,O,4GAAAhL,CA/BD,SAAAgL,EAAYlwB,EAASsmB,EAAW8K,EAAS6L,EAASC,I,4FAAWx3B,CAAA,KAAAwqB,G,oHAAAzf,CAAA,gCA25BlC,WACzB9K,KAAKw3B,gBAAgB,eACvB,GA55BEx3B,KAAK3F,QAAUA,EACf,IAAIo9B,EAAiBp9B,EAAQo9B,gBACL,IAApBp9B,EAAQ4hB,UAAwC,IAAnBwb,EAC/Bz3B,KAAKy3B,eAAiB,CAAC,GAElBp6B,EAASo6B,EAAgB,YAC5BA,EAAiB1kB,IAEnB/S,KAAKy3B,eAAiBp6B,EAAQ0V,GAAU0kB,IAE1Cz3B,KAAK03B,qBACL13B,KAAK2gB,UAAYA,EACjB3gB,KAAKyrB,QAAUA,EACfzrB,KAAKpI,WAAa6zB,EAAQnJ,OAAO5rB,SAASkB,WAC1CoI,KAAKs3B,QAAUA,GAAW,CAAC,EAC3Bt3B,KAAKu3B,UAAYA,GAAa,CAAC,EAC/Bv3B,KAAK+0B,aAAe,CAClBoB,QAAS,GACT37B,IAAK,GACLo8B,WAAY,GACZC,aAAc,IAEhB72B,KAAK23B,cAAgB,CACnBhB,IAAK,GACLE,aAAc,GACde,sBAAuB,IAGzB53B,KAAK63B,UAAY73B,KAAKs3B,QAAQxiC,SAC9BkL,KAAK83B,UAAY93B,KAAK63B,WAAa73B,KAAK63B,UAAUxiC,IACpD,EAAC,EAAA9F,IAAA,qBAAAa,MAED,WAAqB,IAAA2nC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACbn+B,EAAU2F,KAAK3F,QACrB2F,KAAKy4B,qBAAuBxL,QACE,QADK8K,EACjC19B,EAAQo+B,4BAAoB,IAAAV,EAAAA,EAAkB,QAAlBC,EAAI39B,EAAQuiB,cAAM,IAAAob,OAAA,EAAdA,EAAgBzE,eAElDvzB,KAAK04B,kBAAoBr+B,EAAQq+B,kBACjC14B,KAAKi3B,qBAAuBA,GAAqB58B,EAAQQ,aACzDmF,KAAK24B,YAA4B,QAAjBV,EAAG59B,EAAQuiB,cAAM,IAAAqb,OAAA,EAAdA,EAAgBU,YACnC34B,KAAK8yB,kBAAiC,QAAdoF,EAAA79B,EAAQuiB,cAAM,IAAAsb,OAAA,EAAdA,EAAgBpF,mBAAoB,CAAC,EAC7D9yB,KAAK44B,aAAe,CACJ,QADIT,EAClB99B,EAAQuiB,cAAM,IAAAub,OAAA,EAAdA,EAAgB3E,WACF,QADY4E,EAC1B/9B,EAAQuiB,cAAM,IAAAwb,OAAA,EAAdA,EAAgB1E,YACF,QADa2E,EAC3Bh+B,EAAQuiB,cAAM,IAAAyb,OAAA,EAAdA,EAAgB5E,eAChB3yB,OAAOmsB,SACTjtB,KAAK64B,eAAiB,CACN,QADMP,EACpBj+B,EAAQuiB,cAAM,IAAA0b,OAAA,EAAdA,EAAgBQ,cACF,QADeP,EAC7Bl+B,EAAQuiB,cAAM,IAAA2b,OAAA,EAAdA,EAAgBQ,eACF,QADgBP,EAC9Bn+B,EAAQuiB,cAAM,IAAA4b,OAAA,EAAdA,EAAgBQ,kBAChBl4B,OAAOmsB,QACX,GAAC,CAAA19B,IAAA,YAAAa,MAED,SAAUiK,GACR2F,KAAK3F,QAAUgD,EAAQ2C,KAAK3F,QAASA,GACrC,IAAIo9B,EAAiBp9B,EAAQo9B,eACvBwB,EAAc57B,EAAQ2C,KAAKy3B,iBACT,IAApBp9B,EAAQ4hB,UAAwC,IAAnBwb,EAC/Bz3B,KAAKy3B,eAAiB,CAAC,GAElBp6B,EAASo6B,EAAgB,YAC5BA,EAAiB1kB,IAEnB/S,KAAKy3B,eAAiBp6B,EAAQ0V,GAAU0kB,IAE1Cz3B,KAAK03B,qBACL13B,KAAKqtB,WAAW4L,EAClB,GAEA,CAAA1pC,IAAA,aAAAa,MACA,SAAW6oC,IACLj5B,KAAKy3B,eAAetB,SAAa8C,GAAeA,EAAY9C,SAG7Dn2B,KAAKy3B,eAAetB,SACrB8C,GACAA,EAAY9C,SAEZn2B,KAAKk5B,sBANLl5B,KAAKm5B,qBASHn5B,KAAKy3B,eAAej9B,KAASy+B,GAAeA,EAAYz+B,KAEhDwF,KAAKy3B,eAAej9B,KAAOy+B,GAAeA,EAAYz+B,KAChEwF,KAAKo5B,sBAFLp5B,KAAKq5B,qBAKHr5B,KAAKy3B,eAAed,KAASsC,GAAeA,EAAYtC,KAEhD32B,KAAKy3B,eAAed,KAAOsC,GAAeA,EAAYtC,KAChE32B,KAAKs5B,kBAFLt5B,KAAKu5B,iBAMLv5B,KAAKy3B,eAAeb,YAClBqC,GAAeA,EAAYrC,YAI5B52B,KAAKy3B,eAAeb,YACrBqC,GACAA,EAAYrC,YAEZ52B,KAAKw5B,yBANLx5B,KAAKy5B,wBAULz5B,KAAKy3B,eAAeZ,cAClBoC,GAAeA,EAAYpC,cAI5B72B,KAAKy3B,eAAeZ,cACrBoC,GACAA,EAAYpC,cAEZ72B,KAAK05B,2BANL15B,KAAK25B,0BAUL35B,KAAKy3B,eAAeX,uBAClBmC,GAAeA,EAAYnC,uBAI5B92B,KAAKy3B,eAAeX,uBACrBmC,GACAA,EAAYnC,uBAEZ92B,KAAK45B,oCANL55B,KAAK65B,iCAQT,GAAC,CAAAtqC,IAAA,sBAAAa,MAED,WACE4mC,GAAQh3B,KAAK+0B,aAAc,UAC7B,GAAC,CAAAxlC,IAAA,oBAAAa,MAED,WACE,IAAM4V,EAAOhG,KAEb,SAAS85B,EAAShqC,EAAMiqC,GAClBjqC,KAAQiqC,GAAO18B,EAAa08B,EAAIjqC,KAClCgD,GAAQinC,EAAKjqC,EAAM,SAAUklC,GAC3B,OAAOhvB,EAAKylB,QAAQuO,KAAKhF,EAC3B,EAEJ,CAEA,GAAI,mBAAoBh1B,KAAKs3B,QAAS,CACpC,IAAM2C,EAAOj6B,KAAKs3B,QAAQjkB,eAAetjB,UACzC+C,GACEmnC,EACA,OACA,SAAUjF,GACR,OAAO,SAAUryB,EAAQ1Q,GACvB,IAAMioC,EAAcC,GAAaloC,GAmBjC,OAlBIoL,EAASpL,EAAK,WAAaioC,KAC7BjoC,EAAMioC,EAAcjoC,EAAIrB,WAAaqB,EACjC+N,KAAKo6B,eACPp6B,KAAKo6B,cAAcz3B,OAASA,EAC5B3C,KAAKo6B,cAAcnoC,IAAMA,EACzB+N,KAAKo6B,cAAc53B,YAAc,KACjCxC,KAAKo6B,cAAcn3B,cAAgB5F,IACnC2C,KAAKo6B,cAAc13B,YAAc,MAEjC1C,KAAKo6B,cAAgB,CACnBz3B,OAAQA,EACR1Q,IAAKA,EACLuQ,YAAa,KACbS,cAAe5F,IACfqF,YAAa,OAIZsyB,EAAKruB,MAAM3G,KAAM1E,UAC1B,CACF,EACA0E,KAAK+0B,aACL,WAGFjiC,GACEmnC,EACA,mBACA,SAAUjF,GACR,OAAO,SAAUP,EAAQrkC,GAiBvB,OAfK4P,KAAKo6B,gBACRp6B,KAAKo6B,cAAgB,CAAC,GAEpB/8B,EAASo3B,EAAQ,WAAap3B,EAASjN,EAAO,YAC5C4V,EAAKyxB,eAAenB,wBACjBt2B,KAAKo6B,cAAcv3B,kBACtB7C,KAAKo6B,cAAcv3B,gBAAkB,CAAC,GAExC7C,KAAKo6B,cAAcv3B,gBAAgB4xB,GAAUrkC,GAGlB,iBAAzBqkC,EAAO3jC,gBACTkP,KAAKo6B,cAAcC,qBAAuBjqC,IAGvC4kC,EAAKruB,MAAM3G,KAAM1E,UAC1B,CACF,EACA0E,KAAK+0B,aACL,WAGFjiC,GACEmnC,EACA,OACA,SAAUjF,GACR,OAAO,SAAU78B,GAAM,IAAAmiC,EAAAC,EACfR,EAAM/5B,KACNxE,EAAsB,QAAf8+B,EAAGt0B,EAAKylB,eAAO,IAAA6O,OAAA,EAAZA,EAAc9+B,QAC9B,GACE6B,EACE2I,EAAK3L,QACLmB,EACiB,QADV++B,EACPR,EAAIK,qBAAa,IAAAG,OAAA,EAAjBA,EAAmBtoC,KAGrB,IACE8nC,EAAI1R,iBACF,UAAS,sBAAAvtB,OACaU,EAAQE,WAElC,CAAE,MAAOhC,GACP,CAIJ,SAAS8gC,IACP,GAAIT,EAAIK,gBACgC,OAAlCL,EAAIK,cAAc53B,cACpBu3B,EAAIK,cAAc53B,YAAc,EAC5BwD,EAAKyxB,eAAelB,qBACtBwD,EAAIK,cAAcrjC,QAAUoB,GAE9B4hC,EAAIU,gBAAkBz0B,EAAK00B,eACzBX,EAAIK,cACJ,WACA7iC,IAGAwiC,EAAInS,WAAa,IACnBmS,EAAIK,cAAcn3B,cAAgB5F,KAEhC08B,EAAInS,WAAa,GAAG,CACtB,IAAMllB,EAAcrF,IACpB08B,EAAIK,cAAc13B,YAAcA,EAEhC,IAAIlG,EAAU,KAGd,GAFAu9B,EAAIK,cAAcO,sBAChBZ,EAAI/R,kBAAkB,gBACpBhiB,EAAKyxB,eAAerB,uBAAwB,CAC9C,IAAMwE,EACJ50B,EAAKyxB,eAAerB,uBACtB55B,EAAU,CAAC,EACX,IACE,IAAIi4B,EACJ,IAAsB,IAAlBmG,EAAwB,CAC1B,IAAMC,EAAad,EAAIe,wBACvB,GAAID,EAAY,CACd,IACIjiB,EAAOxoB,EACQiJ,EADFC,EAAAN,GADL6hC,EAAWE,OAAOthC,MAAM,YAEjB,IAAnB,IAAAH,EAAAjF,MAAAgF,EAAAC,EAAAlI,KAAA6H,MAAqB,CAEnBw7B,GADA7b,EADUvf,EAAAjJ,MACAqJ,MAAM,OACDiM,QACftV,EAAQwoB,EAAMjO,KAAK,MACnBnO,EAAQi4B,GAAUrkC,CACpB,CAAC,OAAA2F,GAAAuD,EAAA9H,EAAAuE,EAAA,SAAAuD,EAAAtI,GAAA,CACH,CACF,KAAO,KACwB2M,EADxBC,EAAA5E,GACW4hC,GAAa,IAA7B,IAAAh9B,EAAAvJ,MAAAsJ,EAAAC,EAAAxM,KAAA6H,MAA+B,KAApBqvB,EAAC3qB,EAAAvN,MACVoM,EAAQ8rB,GAAKyR,EAAI/R,kBAAkBM,EACrC,CAAC,OAAAvyB,GAAA6H,EAAApM,EAAAuE,EAAA,SAAA6H,EAAA5M,GAAA,CACH,CACF,CAAE,MAAO0I,GACP,CAGJ,CACA,IAAIiI,EAAO,KACX,GAAIqE,EAAKyxB,eAAepB,oBACtB,IACE10B,EAAOo4B,EAAIjS,YACb,CAAE,MAAOpuB,GACP,CAGJ,IAAIoJ,EAAW,MACXnB,GAAQnF,KACVsG,EAAW,CAAC,EACRnB,IAEAqE,EAAKg1B,kBACHjB,EAAIK,cAAcO,uBAGpB73B,EAASnB,KAAOqE,EAAKi1B,UAAUt5B,GAE/BmB,EAASnB,KAAOA,GAGhBnF,IACFsG,EAAStG,QAAUA,IAGnBsG,IACFi3B,EAAIK,cAAct3B,SAAWA,GAE/B,IACE,IAAI8L,EAAOmrB,EAAIprB,OACfC,EAAgB,OAATA,EAAgB,IAAMA,EAC7BmrB,EAAIK,cAAc53B,YAAcoM,EAChC5I,EAAKk1B,uBACHnB,EAAIU,gBACJ/3B,EACAkM,GAEFmrB,EAAIU,gBAAgBriC,MAClB4N,EAAK2a,UAAUpe,gBAAgBqM,GACjC5I,EAAKm1B,kBAAkBpB,EAAIK,cAC7B,CAAE,MAAO1gC,GACP,CAEJ,CAEJ,CAuBA,OArBAogC,EAAS,SAAUC,GACnBD,EAAS,UAAWC,GACpBD,EAAS,aAAcC,GAGrB,uBAAwBA,GACxB18B,EAAa08B,EAAIpS,oBAEjB70B,GAAQinC,EAAK,qBAAsB,SAAU/E,GAC3C,OAAOhvB,EAAKylB,QAAQuO,KAClBhF,OACAz9B,EACAijC,EAEJ,GAEAT,EAAIpS,mBAAqB6S,EAEvBT,EAAIK,eAAiBp0B,EAAKo1B,oBAC5BrB,EAAIK,cAAcxkC,OAAQ,IAAIjF,OAAQiF,OAEjCo/B,EAAKruB,MAAM3G,KAAM1E,UAC1B,CACF,EACA0E,KAAK+0B,aACL,UAEJ,CAEI,UAAW/0B,KAAKs3B,SAClBxkC,GACEkN,KAAKs3B,QACL,QACA,SAAUtC,GACR,OAAO,SAAUqG,EAAKC,GAAI,IAAAC,EAIpBtpC,EAHEwE,EAAIoF,MAAA9L,UAAAuG,MAAArG,KAAOqL,WACXpB,EAAQzD,EAAK,GACfkM,EAAS,MAEPu3B,EAAcC,GAAajgC,GAC7BmD,EAASnD,EAAO,WAAaggC,EAC/BjoC,EAAMioC,EAAchgC,EAAMtJ,WAAasJ,EAC9BA,IACTjI,EAAMiI,EAAMjI,IACRiI,EAAMyI,SACRA,EAASzI,EAAMyI,SAGflM,EAAK,IAAMA,EAAK,GAAGkM,SACrBA,EAASlM,EAAK,GAAGkM,QAEnB,IAAMnH,EAAsB,QAAf+/B,EAAGv1B,EAAKylB,eAAO,IAAA8P,OAAA,EAAZA,EAAc//B,QAC1B6B,EAAyB2I,EAAK3L,QAASmB,EAASvJ,IAKlDoL,EAAoB5G,EAJJ,CACd+kC,QAAS,sBAAF1gC,OAAwBU,EAAQE,aAK3C,IAAM6F,EAAW,CACfoB,OAAQA,EACR1Q,IAAKA,EACLuQ,YAAa,KACbS,cAAe5F,IACfqF,YAAa,MAEf,GAAIjM,EAAK,IAAMA,EAAK,GAAG+F,QAAS,CAG9B,IAAMC,EAAaD,GAAQ/F,EAAK,GAAG+F,SAEnC+E,EAAS84B,qBAAuB59B,EAAW7M,IAAI,gBAE3CoW,EAAKyxB,eAAenB,wBACtB/0B,EAASsB,gBAAkBmD,EAAKy1B,aAC9Bh/B,EACAuJ,EAAKyxB,eAAenB,uBAG1B,CAEItwB,EAAKyxB,eAAelB,qBAClB9/B,EAAK,IAAMA,EAAK,GAAGkL,KACrBJ,EAASxK,QAAUN,EAAK,GAAGkL,KAE3BlL,EAAK,KACJ4G,EAAS5G,EAAK,GAAI,WACnBA,EAAK,GAAGkL,OAERJ,EAASxK,QAAUN,EAAK,GAAGkL,OAG/B,IAAM+5B,EAAiB11B,EAAK00B,eAC1Bn5B,EACA,aACAhK,GAQF,OANIyO,EAAKo1B,oBACP75B,EAAS3L,OAAQ,IAAIjF,OAAQiF,OAKxBo/B,EAAKruB,MAAM3G,KAAMvJ,GAAM0e,KAAK,SAAUnf,GAC3C,IAAM0M,EAAcrF,IACpBkE,EAASmB,YAAcA,EACvBnB,EAASiB,YAAcxM,EAAK2Y,OAC5B3I,EAAKk1B,uBACHQ,EACAh5B,EACA1M,EAAK2Y,QAGPpN,EAASo5B,sBAAwB3kC,EAAKwG,QAAQ5M,IAAI,gBAClD,IAAI4M,EAAU,KACVwJ,EAAKyxB,eAAerB,yBACtB55B,EAAUwJ,EAAKy1B,aACbzlC,EAAKwG,QACLwJ,EAAKyxB,eAAerB,yBAGxB,IAAIz0B,EAAO,KAiCX,OAhCIqE,EAAKyxB,eAAepB,qBACG,mBAAdrgC,EAAKi9B,OAIdtxB,EAAO3L,EAAKE,QAAQ+8B,SAGpBz2B,GAAWmF,KACbJ,EAASuB,SAAW,CAAC,EACjBnB,IAEuB,mBAAdA,EAAKwT,KACdxT,EAAKwT,KAAK,SAAU8d,GAEhBA,GACAjtB,EAAKg1B,kBAAkBz5B,EAASo5B,uBAEhCp5B,EAASuB,SAASnB,KAAOqE,EAAKi1B,UAAUhI,GAExC1xB,EAASuB,SAASnB,KAAOsxB,CAE7B,GAEA1xB,EAASuB,SAASnB,KAAOA,GAGzBnF,IACF+E,EAASuB,SAAStG,QAAUA,IAGhCwJ,EAAKm1B,kBAAkB55B,GAChBvL,CACT,EACF,CACF,EACAgK,KAAK+0B,aACL,UAGN,GAAC,CAAAxlC,IAAA,iBAAAa,MAED,SAAemR,EAAUW,EAASV,GAOhC,OALED,EAASxK,SACTiJ,KAAKg7B,kBAAkBz5B,EAAS84B,wBAEhC94B,EAASxK,QAAUiJ,KAAKi7B,UAAU15B,EAASxK,UAEtCiJ,KAAK2gB,UAAU+Z,eAAen5B,EAAUW,EAASV,EAC1D,GAAC,CAAAjS,IAAA,oBAAAa,MAED,SAAkBurC,GAChB,SAAOA,GACLt+B,EAASs+B,EAAa,WACtBA,EAAY7qC,cAAcuF,SAAS,QAGvC,GAAC,CAAA9G,IAAA,yBAAAa,MAED,SAAuB+Q,EAAOy6B,EAAWh5B,GACnCzB,EAAMD,iBACRC,EAAMD,eAAe,0BACP,IAAZ06B,GACAhrC,WACFuQ,EAAMD,eAAe0B,WAAaA,EAEtC,GAAC,CAAArT,IAAA,YAAAa,MAED,SAAU82B,GACR,OAAOjzB,KAAKF,UAAU22B,EAAMz2B,KAAKK,MAAM4yB,GAAOlnB,KAAK3F,QAAQQ,aAC7D,GAAC,CAAAtL,IAAA,eAAAa,MAED,SAAayrC,EAAWjB,GACtB,IAAMkB,EAAa,CAAC,EACpB,IACE,IAAsB,IAAlBlB,GACF,GAAiC,mBAAtBiB,EAAUh+B,QAInB,IAFA,IAAMg9B,EAAagB,EAAUh+B,UACzBk+B,EAAgBlB,EAAWpe,QACvBsf,EAAc9iC,MACpB6iC,EAAWC,EAAc3rC,MAAM,IAAM2rC,EAAc3rC,MAAM,GACzD2rC,EAAgBlB,EAAWpe,WAG1B,KACwBpe,EADxBE,EAAAvF,GACW4hC,GAAa,IAA7B,IAAAr8B,EAAAlK,MAAAgK,EAAAE,EAAAnN,KAAA6H,MAA+B,KAApBqvB,EAACjqB,EAAAjO,MACV0rC,EAAWxT,GAAKuT,EAAUjsC,IAAI04B,EAChC,CAAC,OAAAvyB,GAAAwI,EAAA/M,EAAAuE,EAAA,SAAAwI,EAAAvN,GAAA,CACH,CACF,CAAE,MAAO0I,GACP,CAEF,OAAOoiC,CACT,GAAC,CAAAvsC,IAAA,kBAAAa,MAED,WACE,OACE4P,KAAKy3B,eAAejB,uBACpBx2B,KAAKy3B,eAAehB,uBACpBz2B,KAAKy3B,eAAef,mBAExB,GAAC,CAAAnnC,IAAA,oBAAAa,MAED,SAAkBmR,GAChB,IAAMoN,EAASpN,EAASiB,YAExB,GACGmM,GAAU,KAAO3O,KAAKy3B,eAAejB,uBACrC7nB,GAAU,KAAO3O,KAAKy3B,eAAehB,uBAC1B,IAAX9nB,GAAgB3O,KAAKy3B,eAAef,oBACrC,CACA,IAAM5kC,EAAQ,IAAInB,MAAM,mCAAqCge,GAC7D7c,EAAM8D,MAAQ2L,EAAS3L,MACvBoK,KAAKyrB,QAAQ35B,MAAMA,EAAO,CAAEuG,WAAY,GAC1C,CACF,GAAC,CAAA9I,IAAA,sBAAAa,MAED,WAEE,IADA,IAAI0W,EACG9G,KAAK+0B,aAAkB,IAAEniC,QAC9BkU,EAAI9G,KAAK+0B,aAAkB,IAAErvB,QAC7B1F,KAAKs3B,QAAQ9pB,QAAQ1G,EAAE,IAAMA,EAAE,EAEnC,GAAC,CAAAvX,IAAA,oBAAAa,MAED,WAAoB,IAAA4rC,EAClB,GAAiB,QAAbA,EAACh8B,KAAKs3B,eAAO,IAAA0E,GAAS,QAATA,EAAZA,EAAcxuB,eAAO,IAAAwuB,GAArBA,EAAuBxhC,IAA5B,CAIA,IAAMwL,EAAOhG,KACPlI,EAAIkI,KAAKs3B,QAAQ9pB,QAoBvB,IACE,IAAK,IAALzQ,EAAA,EAAAk/B,EAFc,CAAC,QAAS,OAAQ,OAAQ,QAAS,OAE1Bl/B,EAAAk/B,EAAArpC,OAAAmK,IAAE,CACvBm/B,EADUD,EAAAl/B,GAEZ,CACF,CAAE,MAAOvL,GACPwO,KAAKpI,WAAWyhC,kBAAoB,CAAEvnC,MAAON,EAAEgD,QACjD,CA7BA,CAKA,SAAS0nC,EAAYv5B,GAInB,IAAMqyB,EAAOl9B,EAAE6K,GACTw5B,EAAcrkC,EACdM,EAAmB,SAAXuK,EAAoB,UAAYA,EAC9C7K,EAAE6K,GAAU,WACV,IAAMlM,EAAOoF,MAAM9L,UAAUuG,MAAMrG,KAAKqL,WAClC9G,E1CkDd,SAA4BiC,GAC1B,IAAI/D,EAAG4E,EAAKN,EACRnD,EAAS,GACb,IAAKnB,EAAI,EAAG4E,EAAMb,EAAK7D,OAAQF,EAAI4E,IAAO5E,EAAG,CAE3C,OAAQlC,EADRwG,EAAMP,EAAK/D,KAET,IAAK,UAEHsE,GADAA,EAAMjD,EAAUiD,IACNlF,OAASkF,EAAI5G,OACfwC,OAAS,MACfoE,EAAMA,EAAI6b,OAAO,EAAG,KAAO,OAE7B,MACF,IAAK,OACH7b,EAAM,OACN,MACF,IAAK,YACHA,EAAM,YACN,MACF,IAAK,SACHA,EAAMA,EAAIpG,WAGdiD,EAAO0C,KAAKS,EACd,CACA,OAAOnD,EAAO8W,KAAK,IACrB,C0C5EwBtN,CAAqB5G,GACrCuP,EAAK2a,UAAUlb,WAAWjR,EAAS4D,EAAO,KAAMiF,KAC5C23B,GACFoH,SAASrsC,UAAU4W,MAAM1W,KAAK+kC,EAAMmH,EAAa1lC,EAErD,EACAuP,EAAK+uB,aAAkB,IAAEx+B,KAAK,CAACoM,EAAQqyB,GACzC,CASF,GAAC,CAAAzlC,IAAA,kBAAAa,MAED,WACE4P,KAAKw3B,gBAAgB,MACvB,GAAC,CAAAjoC,IAAA,gBAAAa,MAED,WAAgB,IAAAuX,EAAA,KACd3H,KAAKq8B,YACH,MACAr8B,KAAKs3B,QACL,CAAC,QAAS,WAAY,eACtB,SAAC9lC,GAAC,OAAKmW,EAAK20B,YAAY,QAAS9qC,EAAE,GAErCwO,KAAKq8B,YACH,MACAr8B,KAAKs3B,QACL,CAAC,YAAa,UAAW,YAAa,YAAa,QACnD,SAAC9lC,GAAC,OAAKmW,EAAK20B,YAAY,WAAY9qC,EAAE,GAExCwO,KAAKq8B,YAAY,MAAOr8B,KAAKs3B,QAAS,CAAC,OAAQ,SAAU,SAAC9lC,GAAC,OACzDmW,EAAK20B,YAAY,QAAS9qC,EAAE,GAE9BwO,KAAKq8B,YAAY,MAAOr8B,KAAKs3B,QAAS,CAAC,SAAU,WAAY,SAAC9lC,GAAC,OAC7DmW,EAAK20B,YAAY,OAAQ9qC,EAAE,GAE7BwO,KAAKq8B,YAAY,MAAOr8B,KAAKs3B,QAAS,CAAC,QAAS,UAAW,SAAC9lC,GAAC,OAC3DmW,EAAK20B,YAAY,QAAS9qC,EAAE,GAE9BwO,KAAKq8B,YAAY,MAAOr8B,KAAKs3B,QAAS,CAAC,UAAW,SAAC9lC,GAAC,OAClDmW,EAAK20B,YAAY,SAAU9qC,EAAE,GAE/BwO,KAAKq8B,YAAY,MAAOr8B,KAAKu3B,UAAW,CAAC,oBAAqB,SAAC/lC,GAAC,OAC9DmW,EAAK20B,YAAY,gBAAiB9qC,EAAE,EAExC,GAAC,CAAAjC,IAAA,cAAAa,MAED,SAAYK,EAAMu+B,GAChB,IACE,MAAO,CACLuN,MAAOv8B,KAAKw8B,YACZC,SAAUz8B,KAAK08B,WACfC,MAAO38B,KAAK48B,YACZC,KAAM78B,KAAK88B,WACX5iC,MAAO8F,KAAK+8B,YACZC,OAAQh9B,KAAKi9B,aACbC,cAAel9B,KAAKm9B,qBACpB1sC,GAAMR,KAAK+P,KAAMgvB,EACrB,CAAE,MAAO7G,GACPryB,GAAO0E,IAAI,GAADM,OAAIrK,EAAI,kBAAkBu+B,EAAK7G,EAAKA,EAAIvyB,MACpD,CACF,GAAC,CAAArG,IAAA,sBAAAa,MAED,SAAoBgtC,GAClBp9B,KAAKyrB,QAAQgC,cAAc,CACzB1sB,KAAM,aACNjN,KAAM,IAAIupC,IAAIr9B,KAAK63B,UAAUxiC,MAAMqe,UAEvC,GAAC,CAAAnkB,IAAA,cAAAa,MAED,SAAY4+B,GAAK,IAAAsO,EACT1H,EAAoB,QAAb0H,EAAGtO,EAAIlrB,cAAM,IAAAw5B,OAAA,EAAVA,EAAY1H,QAAQ9kC,cAChC,CAAC,QAAS,SAAU,YAAYuF,SAASu/B,IAE7C51B,KAAK2gB,UAAU4c,aAAa,CAC1Bx8B,KAAMiuB,EAAIjuB,KACVuC,aAAc0rB,EAAIwO,UAClBt6B,QAASu6B,GAAsBzO,EAAIlrB,QACnCpM,UAAW2F,KAEf,GAAC,CAAA9N,IAAA,cAAAa,MAED,SAAY4+B,GAAK,IAAA0O,EACT38B,EAAOiuB,EAAIjuB,KACXmC,EAAoB,QAAVw6B,EAAA1O,EAAIlrB,cAAM,IAAA45B,GAAVA,EAAYloC,OACxB,SACAioC,GAAsBzO,EAAIlrB,QAE9B9D,KAAK2gB,UAAUgd,aAAa,CAC1B58B,KAAMA,EACNuC,aAAc0rB,EAAIwO,UAClBt6B,QAAAA,EACAxL,UAAW2F,KAEf,GAAC,CAAA9N,IAAA,aAAAa,MAED,SAAWgtC,GAKT,GACD,CAAA7tC,IAAA,eAAAa,MAED,SAAa4+B,GACX,IAAM9qB,EAAgB1O,OAAOy2B,OAAOhoB,MAAQzO,OAAOooC,WAEnD59B,KAAK2gB,UAAUkd,cAAc,CAC3B98B,KAAMiuB,EAAIjuB,KACVuC,aAAc0rB,EAAIwO,UAClBv5B,MAAOzO,OAAOooC,WACd55B,OAAQxO,OAAOsoC,YACf55B,cAAeA,EACfxM,UAAW2F,KAEf,GAAC,CAAA9N,IAAA,aAAAa,MAED,SAAW4+B,GACT,IACIlqB,EAAOC,EAAYH,EAAYC,EAaOk5B,EAAAC,EAdpCj9B,EAAOiuB,EAAIjuB,KAGjB,GAAa,SAATA,EAAiB,CACnB+D,EAAQ,GACRC,EAAa,GACb,IACoBnG,EADgDC,EAAA7F,GAAvD,GAAH8B,OAAA4M,GAAOsnB,EAAIiP,aAAaC,OAAKx2B,GAAKsnB,EAAIiP,aAAapJ,SACzC,IAApB,IAAAh2B,EAAAxK,MAAAuK,EAAAC,EAAAzN,KAAA6H,MAAsB,KAAXzJ,EAACoP,EAAAxO,MACNZ,EAAE2Z,MAAQ3Z,EAAEuR,OACd+D,EAAMvO,KAAK/G,EAAE2Z,MACbpE,EAAWxO,KAAK/G,EAAEuR,MAEtB,CAAC,OAAAhL,GAAA8I,EAAArN,EAAAuE,EAAA,SAAA8I,EAAA7N,GAAA,CACH,CACI,CAAC,OAAQ,aAAaqF,SAAS0K,KACjC6D,EAA6B,QAAnBm5B,EAAG/O,EAAIiP,oBAAY,IAAAF,OAAA,EAAhBA,EAAkBn5B,WAC/BC,EAAgC,QAAnBm5B,EAAGhP,EAAIiP,oBAAY,IAAAD,OAAA,EAAhBA,EAAkBn5B,eAGpC7E,KAAK2gB,UAAUwd,gBAAgB,CAC7Bp9B,KAAAA,EACAuC,aAAc0rB,EAAIwO,UAClBt6B,QAASu6B,GAAsBzO,EAAIlrB,QACnCc,WAAYA,EACZC,cAAeA,EACfC,MAAO7Q,KAAKF,UAAU+Q,GACtBC,WAAY9Q,KAAKF,UAAUgR,GAC3BrN,UAAW2F,KAEf,GAEA,CAAA9N,IAAA,kBAAAa,MAIA,SAAgBA,EAAO8S,EAAS0yB,EAASwI,GACvC,IAAMC,EAAO,SAEb,GAAkB,aAAdD,EACF,OAAOC,EAGT,GAAIr+B,KAAKy4B,qBACP,OAAO4F,EAEP,IAAMtsB,EAAc0rB,GAAwBv6B,GAC5C,GAAIlD,KAAK04B,mBACP,GAAI14B,KAAK04B,kBAAkB3mB,GACzB,OAAOssB,OAEJ,GAAIr+B,KAAKi3B,qBAAqBllB,GACnC,OAAOssB,EAKX,ODvsBJ,SAA2Bn7B,EAAS8yB,EAASsI,GAC3C,IAAI,IACuBjlC,EADvBC,EAAAN,GACgBg9B,GAAO,IAAzB,IAAA18B,EAAAjF,MAAAgF,EAAAC,EAAAlI,KAAA6H,MAA2B,KAAhBslC,EAAGllC,EAAAjJ,MACZ,GAAmB,iBAARmuC,GACT,GAAIr7B,EAAQs7B,UAAUC,SAASF,GAC7B,OAAO,MAEJ,KAC4BlgC,EAD5BE,EAAAvF,GACWkK,EAAQs7B,WAAS,IAAjC,IAAAjgC,EAAAlK,MAAAgK,EAAAE,EAAAnN,KAAA6H,MAAmC,KAAxBnB,EAACuG,EAAAjO,MACV,GAAImuC,EAAIriC,KAAKpE,GACX,OAAO,CAEX,CAAC,OAAA/B,GAAAwI,EAAA/M,EAAAuE,EAAA,SAAAwI,EAAAvN,GAAA,CACH,CACF,CAAC,OAAA+E,GAAAuD,EAAA9H,EAAAuE,EAAA,SAAAuD,EAAAtI,GAAA,KAC0B2M,EAD1BC,EAAA5E,GACiBslC,GAAS,IAA3B,IAAA1gC,EAAAvJ,MAAAsJ,EAAAC,EAAAxM,KAAA6H,MAA6B,KAAlBylC,EAAG/gC,EAAAvN,MACZ,GAAI8S,EAAQ6V,QAAQ2lB,GAClB,OAAO,CAEX,CAAC,OAAA3oC,GAAA6H,EAAApM,EAAAuE,EAAA,SAAA6H,EAAA5M,GAAA,CACH,CAAE,MAAO0I,GACP,CAEF,OAAO,CACT,CCgrBM+jC,CAA0Bv6B,EAASlD,KAAK44B,aAAc54B,KAAK64B,gBAEpDwF,EAOPr+B,KAAK8yB,iBAAiB8C,EAAQ9kC,gBAC9BkP,KAAK8yB,iBAAiBsL,GAElBp+B,KAAK24B,YACA34B,KAAK24B,YAAYvoC,EAAO8S,GAExBm7B,EAIJjuC,CACT,GAEA,CAAAb,IAAA,cAAAa,MAIA,SAAY4+B,GAAK,IAAA2P,EAAAC,EAAAC,EAAAC,EACT/9B,EAAOiuB,EAAIjuB,KACX60B,EAAoB,QAAb+I,EAAG3P,EAAIlrB,cAAM,IAAA66B,OAAA,EAAVA,EAAY/I,QAAQ9kC,cAChCV,EAAkB,QAAbwuC,EAAG5P,EAAIlrB,cAAM,IAAA86B,OAAA,EAAVA,EAAYxuC,MACpBguC,GAAsB,QAAVS,EAAA7P,EAAIlrB,cAAM,IAAA+6B,GAAY,QAAZA,EAAVA,EAAYzlC,kBAAU,IAAAylC,GAAM,QAANA,EAAtBA,EAAwB99B,YAAI,IAAA89B,OAAA,EAA5BA,EAA8BzuC,SAAmB,QAAd0uC,EAAI9P,EAAIlrB,cAAM,IAAAg7B,OAAA,EAAVA,EAAY/9B,MAMnE,YAJcxJ,IAAVnH,IACFA,EAAQ4P,KAAK++B,gBAAgB3uC,EAAO4+B,EAAIlrB,OAAQ8xB,EAASwI,IAGnDr9B,GACN,IAAK,QACH,GAAI,CAAC,QAAS,YAAY1K,SAAS+nC,GAAY,OAC3C,CAAC,SAAU,YAAY/nC,SAASu/B,KAClCwI,EAAYxI,GAEd,MAEF,IAAK,SACH,IAAK,CAAC,QAAS,YAAYv/B,SAAS+nC,GAAY,OAClB,IAAAY,EAA9B,GAAkB,aAAdZ,EACFhuC,EAAkB,QAAb4uC,EAAGhQ,EAAIlrB,cAAM,IAAAk7B,OAAA,EAAVA,EAAY77B,QAK1BnD,KAAK2gB,UAAUse,aAAa,CAC1Bl+B,KAAMq9B,EACN96B,aAAc0rB,EAAIwO,UAClBt6B,QAASu6B,GAAsBzO,EAAIlrB,QACnC1T,MAAAA,EACAsH,UAAW2F,KAEf,GAAC,CAAA9N,IAAA,yBAAAa,MAED,WACE,IAAMk7B,EAAStrB,KAAKs3B,QAAQhM,SACFA,GAAUA,EAAO4T,KAAO5T,EAAO4T,IAAI3T,UAI3DvrB,KAAKs3B,QAAQ6H,SACbn/B,KAAKs3B,QAAQ6H,QAAQC,WAIvBpI,GAAQh3B,KAAK+0B,aAAc,aAC7B,GAAC,CAAAxlC,IAAA,uBAAAa,MAED,WACE,IAAMk7B,EAAStrB,KAAKs3B,QAAQhM,OAO5B,KAN0BA,GAAUA,EAAO4T,KAAO5T,EAAO4T,IAAI3T,UAI3DvrB,KAAKs3B,QAAQ6H,SACbn/B,KAAKs3B,QAAQ6H,QAAQC,UACvB,CAGA,IAAMp5B,EAAOhG,KACblN,GACEkN,KAAKs3B,QACL,aACA,SAAUtC,GACR,OAAO,WACL,IAAM/6B,EAAU+L,EAAK6xB,UAAUxiC,KAC/B2Q,EAAKq5B,gBAAgBr5B,EAAK8xB,UAAW79B,GACjC+6B,GACFA,EAAKruB,MAAM3G,KAAM1E,UAErB,CACF,EACA0E,KAAK+0B,aACL,cAGFjiC,GACEkN,KAAKs3B,QAAQ6H,QACb,YACA,SAAUnK,GACR,OAAO,WACL,IAAM/iC,EAAMqJ,UAAU1I,OAAS,EAAI0I,UAAU,QAAK/D,EAIlD,OAHItF,GACF+T,EAAKq5B,gBAAgBr5B,EAAK8xB,UAAWniC,OAAO1D,IAEvC+iC,EAAKruB,MAAM3G,KAAM1E,UAC1B,CACF,EACA0E,KAAK+0B,aACL,aA/BF,CAiCF,GAAC,CAAAxlC,IAAA,kBAAAa,MAED,SAAgB4U,EAAMC,GACpB,IAAMq6B,EAAaC,GAAgBv/B,KAAK63B,UAAUxiC,MAC5CmqC,EAAWD,GAAgBt6B,GAC3Bw6B,EAAaF,GAAgBv6B,GACnChF,KAAK83B,UAAY7yB,EAEfq6B,EAAW5rC,WAAa8rC,EAAS9rC,UACjC4rC,EAAWzrB,OAAS2rB,EAAS3rB,OAE7B5O,EAAKu6B,EAAS1rC,MAAQ0rC,EAAStV,MAAQ,KAGvCoV,EAAW5rC,WAAa+rC,EAAW/rC,UACnC4rC,EAAWzrB,OAAS4rB,EAAW5rB,OAE/B7O,EAAOy6B,EAAW3rC,MAAQ2rC,EAAWvV,MAAQ,KAE/ClqB,KAAK2gB,UAAU+e,kBAAkB16B,EAAMC,EAAI,KAAM5H,KACjD2C,KAAKyrB,QAAQgC,cAAc,CACzB1sB,KAAM,aACNjN,KAAMmR,GAEV,GAAC,CAAA1V,IAAA,yBAAAa,MAMD,WACE,IAAM4V,EAAOhG,KACbA,KAAKq8B,YACH,eACAr8B,KAAKs3B,QACL,CAAC,SAAU,WACX,SAACtI,GAAG,OAAKhpB,EAAK25B,mBAAmB3Q,EAAI,EAEzC,GAAC,CAAAz/B,IAAA,qBAAAa,MAED,SAAmB4+B,GACjB,IAAMjuB,EAAOiuB,EAAIjuB,KAEjBf,KAAK2gB,UAAUif,0BAA0B,CACvC7+B,KAAAA,EACAuC,aAAc0rB,EAAIwO,UAClB9lC,UAAW2F,KAEf,GAAC,CAAA9N,IAAA,iBAAAa,MAED,SAAeyvC,GACb,IAAIrrC,EACF,0CAEAqrC,EAASC,WAFT,wBAKAD,EAASE,kBALT,yBAQAF,EAASG,mBACT,KAEEH,EAASI,aACXzrC,GACE,aACAqrC,EAASI,WADT,WAIAJ,EAASzmB,WAJT,UAOAymB,EAASxmB,aACT,MAGJ7kB,GAAW,mBAAqBqrC,EAASK,eAEzClgC,KAAK2gB,UAAUlb,WAAWjR,EAAS,QAAS,KAAM6I,KAClD2C,KAAKmgC,eAAe3rC,EACtB,GAAC,CAAAjF,IAAA,iBAAAa,MAED,SAAeoE,GACTwL,KAAKy3B,eAAeV,8BACtB/2B,KAAKyrB,QAAQ35B,MAAM0C,EAEvB,GAAC,CAAAjF,IAAA,oCAAAa,MAED,WACE4P,KAAKw3B,gBAAgB,wBACvB,GAAC,CAAAjoC,IAAA,kCAAAa,MAED,WACE,GAAM,qBAAsB4P,KAAKu3B,UAAjC,CAIA,IAAM6I,EAAapgC,KAAKqgC,eAAevyB,KAAK9N,MAC5CA,KAAKq8B,YACH,wBACAr8B,KAAKu3B,UACL,CAAC,2BACD6I,EAPF,CASF,GAAC,CAAA7wC,IAAA,cAAAa,MAED,SAAYkwC,EAASzwC,EAAK0wC,EAAO1S,GAAS,IAAAjlB,EAAA,KACxC,GAAI/Y,EAAIw/B,iBAAkB,KACHmR,EADGC,EAAAznC,GACRunC,GAAK,QAAAG,EAAA,WAAE,IAAZnwC,EAACiwC,EAAApwC,MACJiK,EAAU,CAAEwH,SAAS,EAAM8+B,SAAS,GAC1C9wC,EAAIw/B,iBAAiB9+B,EAAGs9B,EAASxzB,GAAS,GAC1CuO,EAAK+uB,cAAc2I,GAAS/pC,KAAK,WAC/B1G,EAAIi/B,oBAAoBv+B,EAAGs9B,EAASxzB,EACtC,EACF,EANA,IAAAomC,EAAApsC,MAAAmsC,EAAAC,EAAArvC,KAAA6H,MAAAynC,GAMC,OAAA3qC,GAAA0qC,EAAAjvC,EAAAuE,EAAA,SAAA0qC,EAAAzvC,GAAA,CACH,CACF,GAAC,CAAAzB,IAAA,kBAAAa,MAED,SAAgBkwC,GAEd,KAAOtgC,KAAK23B,cAAc2I,GAAS1tC,QAC7BoN,KAAK23B,cAAc2I,GAAS56B,OAChC3N,EAEJ,IAAC,CA9/Be,GAigClB,SAASoiC,GAAajgC,GACpB,MAAsB,oBAARmjC,KAAuBnjC,aAAiBmjC,GACxD,CAEA,UCrjCA,SAASuD,GAAyB/S,EAAS99B,EAAW+9B,GACpD,GAAI58B,EAAOnB,EAAW,oBAAqB,CAEzC,IADA,IAAI8wC,EAAsB9wC,EAAUs/B,iBAElCwR,EAAoBC,gBACpBD,EAAoBhS,eAEpBgS,EAAsBA,EAAoBC,eAE5C,IAAIC,EAAQ,SAAU5/B,EAAOrK,EAAUkqC,GACrCH,EAAoB5wC,KAAK+P,KAAMmB,EAAO0sB,EAAQmM,KAAKljC,GAAWkqC,EAChE,EACAD,EAAMD,eAAiBD,EACvBE,EAAMlS,cAAgBf,EACtB/9B,EAAUs/B,iBAAmB0R,EAG7B,IADA,IAAIE,EAAyBlxC,EAAU++B,oBAErCmS,EAAuBC,mBACvBD,EAAuBpS,eAEvBoS,EAAyBA,EAAuBC,kBAElD,IAAIC,EAAW,SAAUhgC,EAAOrK,EAAUkqC,GACxCC,EAAuBhxC,KACrB+P,KACAmB,EACCrK,GAAYA,EAASi5B,kBAAqBj5B,EAC3CkqC,EAEJ,EACAG,EAASD,kBAAoBD,EAC7BE,EAAStS,cAAgBf,EACzB/9B,EAAU++B,oBAAsBqS,CAClC,CACF,CAEA,OAxDA,SAAqB3rC,EAAQq4B,EAASC,GACpC,GAAKt4B,EAAL,CAIA,IAII9C,EAAGyuB,EAJHoN,EACF,4YAA4Y90B,MAC1Y,KAGJ,IAAK/G,EAAI,EAAGA,EAAI67B,EAAQ37B,SAAUF,EAG5B8C,EAFJ2rB,EAASoN,EAAQ77B,KAEK8C,EAAO2rB,GAAQpxB,WACnC6wC,GAAyB/S,EAASr4B,EAAO2rB,GAAQpxB,UAAW+9B,EAXhE,CAcF,ECVApN,GAAQ0gB,cAAc,CACpBzgB,UAAW9gB,EACX2qB,aAAcD,GACdE,YAAaA,GACbC,MAAOA,EACP9U,WAAYA,GACZpa,QAAS2U,KAGX,UChBI9V,GAA6B,oBAAX7E,QAA2BA,OAAO6rC,eACpDC,GAAQjnC,IAAWA,GAAQknC,aAAe,UAC1CC,GAAiC,oBAAXhsC,QAA2BA,OAAO8rC,KAA0C,mBAAzB9rC,OAAO8rC,IAAOG,aAAoDlqC,IAA3B/B,OAAO8rC,IAAOG,SAMlI,GAJuB,oBAAXjsC,QAA4BA,OAAO22B,oBAC7C32B,OAAO22B,mBAAqB,IAAIpyB,MAAQqL,YAGrCo8B,IAAennC,GAAS,CAC3B,IAAIqmB,GAAU,IAAI+K,GAAQpxB,IAC1B7E,OAAO8rC,IAAS5gB,EAClB,KAA6B,oBAAXlrB,QAChBA,OAAOi2B,QAAUA,GACjBj2B,OAAOksC,iBAAkB,GACA,oBAAT17B,OAChBA,KAAKylB,QAAUA,GACfzlB,KAAK07B,iBAAkB,E","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} 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\", \"\"].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(//, \"$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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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":""} \ No newline at end of file diff --git a/dist/rollbar.named-amd.js b/dist/rollbar.named-amd.js index 6927723e..6c824227 100644 --- a/dist/rollbar.named-amd.js +++ b/dist/rollbar.named-amd.js @@ -191,6 +191,9 @@ function isPromise(p) { function isBrowser() { return typeof window !== 'undefined'; } +function isRequestObject(input) { + return typeof Request !== 'undefined' && input instanceof Request; +} function redact() { return '********'; } @@ -835,6 +838,70 @@ function merge() { } return result; } +function shouldAddBaggageHeader(options, tracing, url) { + var _options$tracing; + if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) { + return false; + } + var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation; + var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders; + if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) { + return false; + } + var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls; + if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) { + return false; + } + return enabledCorsUrls.some(function (pattern) { + if (isType(pattern, 'string')) { + return url === pattern; + } + if (isType(pattern, 'regexp')) { + return pattern.test(url); + } + return false; + }); +} +function addHeadersToFetch(args, newHeaders) { + var _init; + // Headers may be in the request object or the init object. + // If present in both places, the init object must be used. + // + var init = args[1]; + var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers; + var reqHeaders = isRequestObject(args[0]) && args[0].headers; + var headers = initHeaders || reqHeaders; + + // If headers are not present in either place, they are added to the init object. + // If there is no init object, one must be created and added to args. + if (!headers) { + if (!init) { + args[1] = init = {}; + } + headers = init.headers = {}; + } + + // `headers` may be a Headers object or a plain object. + if (headers instanceof Headers) { + for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) { + var key = _Object$keys[_i]; + headers.append(key, newHeaders[key]); + } + } else if (isObject(headers)) { + for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) { + var _key = _Object$keys2[_i2]; + headers[_key] = newHeaders[_key]; + } + } +} +function getSessionIdFromAsyncLocalStorage(client) { + var storage = client.asyncLocalStorage; + if (!storage || typeof storage.getStore !== 'function') { + return null; + } + var store = storage.getStore(); + return (store === null || store === void 0 ? void 0 : store.sessionId) || null; +} ;// ./src/utility/traverse.js @@ -2984,7 +3051,7 @@ function _getOTLPTransport(options, url) { /** * Default options shared across platforms */ -var version = '3.0.0'; +var version = '3.1.0'; var endpoint = 'api.rollbar.com/api/1/item/'; var logLevel = 'debug'; var reportLevel = 'debug'; @@ -4247,9 +4314,11 @@ Rollbar.prototype._log = function (defaultLevel, item) { Rollbar.prototype._addItemAttributes = function (item) { var _this$tracing, _this$tracing2; var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan(); + var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this); + var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId); var attributes = [{ key: 'session_id', - value: (_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId + value: sessionId }, { key: 'span_id', value: span === null || span === void 0 ? void 0 : span.spanId @@ -6637,7 +6706,16 @@ var Instrumenter = /*#__PURE__*/function () { }, this.replacements, 'network'); utility_replace(xhrp, 'send', function (orig) { return function (data) { + var _self$rollbar, _xhr$__rollbar_xhr; var xhr = this; + var tracing = (_self$rollbar = self.rollbar) === null || _self$rollbar === void 0 ? void 0 : _self$rollbar.tracing; + if (shouldAddBaggageHeader(self.options, tracing, (_xhr$__rollbar_xhr = xhr.__rollbar_xhr) === null || _xhr$__rollbar_xhr === void 0 ? void 0 : _xhr$__rollbar_xhr.url)) { + try { + xhr.setRequestHeader('baggage', "rollbar.session.id=".concat(tracing.sessionId)); + } catch (_e) { + /* ignore errors from adding baggage header */ + } + } function onreadystatechangeHandler() { if (xhr.__rollbar_xhr) { if (xhr.__rollbar_xhr.status_code === null) { @@ -6758,6 +6836,7 @@ var Instrumenter = /*#__PURE__*/function () { if ('fetch' in this._window) { utility_replace(this._window, 'fetch', function (orig) { return function (_fn, _t) { + var _self$rollbar2; var args = Array.prototype.slice.call(arguments); var input = args[0]; var method = 'GET'; @@ -6774,6 +6853,13 @@ var Instrumenter = /*#__PURE__*/function () { if (args[1] && args[1].method) { method = args[1].method; } + var tracing = (_self$rollbar2 = self.rollbar) === null || _self$rollbar2 === void 0 ? void 0 : _self$rollbar2.tracing; + if (shouldAddBaggageHeader(self.options, tracing, url)) { + var _headers2 = { + baggage: "rollbar.session.id=".concat(tracing.sessionId) + }; + addHeadersToFetch(args, _headers2); + } var metadata = { method: method, url: url, diff --git a/dist/rollbar.named-amd.js.map b/dist/rollbar.named-amd.js.map index 210b1022..7f3fc4b6 100644 --- a/dist/rollbar.named-amd.js.map +++ b/dist/rollbar.named-amd.js.map @@ -1 +1 @@ -{"version":3,"file":"rollbar.named-amd.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/tracing/defaults.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/replay/defaults.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/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} 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\", \"\"].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(//, \"$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","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\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","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","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","/**\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","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","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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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":["isType","x","t","typeName","name","_typeof","Error","toString","call","match","toLowerCase","isFunction","f","isNativeFunction","reRegExpChar","funcMatchString","Function","prototype","Object","hasOwnProperty","replace","reIsNative","RegExp","isObject","test","value","hasOwn","obj","prop","isString","String","isFiniteNumber","n","Number","isFinite","isIterable","i","type","isError","e","isPromise","p","then","isBrowser","window","redact","uuid4","d","now","uuid","c","r","Math","random","floor","LEVELS","debug","info","warning","error","critical","sanitizeHref","url","urlObject","URL","password","search","_","sanitizeUrl","baseUrlParts","parseUri","anchor","source","query","parseUriOptions","strictMode","key","q","parser","strict","loose","str","undefined","o","m","exec","uri","l","length","$0","$1","$2","addParamsAndAccessTokenToPath","accessToken","options","params","access_token","paramsArray","k","push","join","sort","path","qs","indexOf","h","substring","formatUrl","u","protocol","port","hostname","result","stringify","backup","JSON","jsonError","backupError","maxByteSize","string","count","code","charCodeAt","jsonParse","s","parse","makeUnhandledStackInfo","message","lineno","colno","mode","backupMessage","errorParser","location","line","column","func","guessFunctionName","context","gatherContext","href","document","useragent","navigator","userAgent","stack","wrapCallback","logger","err","resp","nonCircularClone","seen","clone","newSeen","includes","slice","createItem","args","notifier","requestKeys","lambdaContext","custom","callback","request","arg","extraArgs","diagnostic","argTypes","typ","DOMException","j","len","item","timestamp","data","setCustomItemKeys","_originalArgs","original_arg_types","level","skipFrames","addErrorContext","errors","contextAdded","_iterator","_createForOfIteratorHelper","_step","done","merge","rollbarContext","error_context","TELEMETRY_TYPES","TELEMETRY_LEVELS","arrayIncludes","arr","val","_iterator2","_step2","entry","createTelemetryEvent","metadata","event","addItemAttributes","itemData","attributes","_iterator3","_step3","a","get","keys","split","_e","set","setPrototypeOf","temp","replacement","formatArgsAsString","substr","Date","filterIp","requestData","captureIp","newIp","parts","pop","beginning","slashIdx","terminal","concat","handleOptions","current","input","payload","updateDeprecatedOptions","overwriteScrubFields","scrubFields","hostWhiteList","hostSafeList","log","hostBlackList","hostBlockList","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","src","copy","create","arguments","traverse","v","isObj","isArray","seenIndex","mapped","same","scrub","scrubPaths","scrubPath","paramRes","_getScrubFieldRegexs","queryRes","_getScrubQueryParamRegexs","redactQueryParam","dummy0","paramPart","paramScrubber","regex","valScrubber","scrubber","tmpV","last","_iterator4","entries","_step4","_step4$value","_slicedToArray","index","ret","_iterator5","_step5","field","pat","_iterator6","_step6","MAX_EVENTS","fromMillis","millis","trunc","round","Telemeter","tracing","_this$tracing","_classCallCheck","queue","maxTelemetryEvents","maxQueueSize","max","min","telemetrySpan","startSpan","_createClass","configure","oldOptions","newMaxEvents","deleteCount","splice","copyEvents","events","Array","filterTelemetry","filter","map","_ref","_otelAttributes","otelAttributes","_objectWithoutProperties","_excluded","exportTelemetrySpan","end","capture","rollbarUUID","getLevel","timestamp_ms","body","_exc","captureEvent","captureError","_this$telemetrySpan","addEvent","captureLog","_this$telemetrySpan2","_objectSpread","captureNetwork","subtype","_metadata$response","_metadata$response2","_this$telemetrySpan3","levelFromStatus","status_code","endTimeNano","end_time_ms","method","statusCode","request_headers","response","headers","requestBody","responseBody","start_time_ms","captureDom","element","checked","captureInput","_ref2","_this$telemetrySpan4","isSynthetic","endTimeUnixNano","_getRepeatedEvent","_updateRepeatedEvent","captureClick","_ref3","_this$telemetrySpan5","lastEvent","_lastEvent","target","duration","height","width","textZoomRatio","rate","list","captureFocus","_ref4","_this$telemetrySpan6","captureResize","_ref5","_this$telemetrySpan7","captureDragDrop","_ref6","_this$telemetrySpan8","dropEffect","effectAllowed","kinds","mediaTypes","captureNavigation","from","to","_this$telemetrySpan9","captureDomContentLoaded","ts","getTime","captureLoad","captureConnectivityChange","_ref7","_this$telemetrySpan0","_captureRollbarItem","includeItemsInTelemetry","shift","defaultLevel","manual","Context","parentContext","_currentContext","Map","getValue","setValue","deleteValue","self","delete","ROOT_CONTEXT","ContextManager","currentContext","active","enterContext","previousContext","exitContext","with","fn","thisArg","_len","_key","apply","createContextKey","Symbol","for","toMillis","hrtime","toNanos","add","b","usePerformance","performance","timeOrigin","isHrTime","SpanExporter","api","export","spans","_resultCallback","spanExportQueue","_toConsumableArray","toPayload","_this","resourceSpans","resource","scopeMap","span","scopeKey","instrumentationScope","version","has","scope","_transformSpan","_transformResource","scopeSpans","values","scopeData","_transformInstrumentationScope","post","postSpans","_this2","transformAttributes","_transformAnyValue","transformEvents","timeUnixNano","time","traceId","spanContext","spanId","parentSpanId","kind","startTimeUnixNano","startTime","endTime","_this3","keyValues","_this4","attr","_this5","stringValue","isInteger","intValue","doubleValue","boolValue","arrayValue","kvlistValue","gen","bytes","randomBytes","Uint8Array","crypto","getRandomValues","randHex","byte","padStart","id","SESSION_KEY","Session","_defineProperty","session","_attributes","init","attrs","getSession","createSession","initSessionAttributes","serializedSession","sessionStorage","getItem","_unused","createdAt","setSession","sessionString","setItem","_unused2","setAttributes","setUser","user","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","addTransform","transformFn","transformSpan","applyTransforms","transform","onStart","_parentContext","onEnd","Span","initReadableSpan","spanProcessor","_options$session","status","links","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount","setAttribute","_i","_Object$entries","_Object$entries$_i","isRecording","Tracer","_this$tracing$resourc","_options$resource","_this$tracing$session","contextManager","parentSpan","getSpan","parentSpanContext","traceFlags","traceState","SPAN_KEY","Tracing","gWindow","createTracer","initSession","_this$options$payload","_this$options$payload2","environment","idGen","tracer","getTracer","addSpanTransform","setSpan","_this$contextManager","withSpan","default","raw","jsonBackup","selectFrames","frames","range","truncateFrames","trace_chain","chain","trace","maybeTruncateValue","truncateStrings","truncator","truncateTraceData","traceData","exception","description","minBody","_step2$value","needsTruncation","maxSize","truncate","strategies","strategy","results","buildPayload","contextResult","getTransportFromOptions","defaults","timeout","transport","detectTransport","proxy","endpoint","opts","pathname","defaultTransport","fetch","XMLHttpRequest","transportOptions","transportAPI","host","appendPathToPath","base","baseTrailingSlash","pathBeginningSlash","iterator","toStringTag","Generator","_regeneratorDefine2","y","G","TypeError","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","__proto__","displayName","_regenerator","w","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","helpers","defaultOptions","OTLPDefaultOptions","Api","urllib","truncation","_getTransport","OTLPTransportOptions","_getOTLPTransport","_postPromise","reject","postItem","setTimeout","_postSpans","_callee","_args","_context","_x","buildJsonPayload","stringifyResult","postJsonPayload","jsonPayload","_options$tracing","reportLevel","uncaughtErrorLevel","maxItems","itemsPerMin","commonScrubFields","apiScrubFields","requestScrubFields","commonScrubHeaders","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","allowEmpty","parseStack","stackString","parseV8OrIeString","parseFFOrSafariString","extractLocation","urlLike","regExp","applySlice","lines","filtered","sanitizedLine","locationParts","functionName","fileName","function","file","col","functionNameRegex","matches","parseOpera9","parseOpera10","parseOpera11","lineRE","tokens","functionCall","argsRaw","parse$1","parseV8OrIE$1","parseFFOrSafari$1","parseOpera$1","parseOpera9$1","parseOpera10$1","parseOpera11$1","stackframesLiteToStackframes","liteStackframes","liteStackframe","lineNumber","columnNumber","parseErrorStack","UNKNOWN_FUNCTION","ERR_CLASS_REGEXP","Frame","stackFrame","_stackFrame","Stack","skip","getStack","parserStack","_mostSpecificErrorName","rawStack","rawException","nested","cause","traceChain","guessErrorClass","errMsg","errClassMatch","errClass","constructorName","checkLevel","settings","levelVal","reportLevelVal","userCheckIgnore","isUncaught","Boolean","_isUncaught","onSendCallback","checkIgnore","urlIsNotBlockListed","urlIsOnAList","urlIsSafeListed","matchFrames","block","frame","filename","urlRegex","listLength","frameLength","safeOrBlock","traces","tracesLength","listName","messageIsIgnored","ignoredMessages","rIgnoredMessage","messages","messagesFromItem","Notifier","_this$queue","enabled","addPendingItem","originalError","_applyTransforms","removePendingItem","addItem","transformIndex","transformsLength","next","Queue","rateLimiter","replay","predicates","pendingItems","pendingRequests","retryQueue","retryHandle","waitCallback","waitIntervalID","_this$api","addPredicate","predicate","idx","originalItem","predicateResult","_applyPredicates","stop","_maybeLog","transmit","replayId","_makeApiRequest","_dequeuePendingRequest","sendOrDiscardReplay","_this$replay","discard","wait","_maybeCallWait","clearInterval","setInterval","rateLimitResponse","shouldSend","_maybeRetry","shouldRetry","retryInterval","RETRIABLE_ERRORS","maxRetries","retries","_retryApiRequest","retryObject","verbose","RateLimiter","counter","perMinCounter","platformOptions","configureGlobal","itemsPerMinute","globalSettings","elapsedTime","globalRateLimit","globalRateLimitPerMin","checkRate","shouldSendValue","underGlobalLimit","perMinute","setPlatformOptions","limit","ignoreRateLimit","limitPerMin","errorResult","rateLimitPayload","msg","extra","framework","Rollbar","telemeter","validateTracer","_configuredOptions","setStackTraceLimit","lastError","lastErrorHash","global","payloadData","_defaultLogLevel","_log","sendJsonPayload","ignoreDuplicateErrors","_sameAsLastError","_addItemAttributes","_addTracingInfo","telemetryEvents","_this$tracing2","sessionId","itemHash","generateItemHash","validateSpan","setTag","opentracingSpanId","toSpanId","opentracingTraceId","toTraceId","opentracing_span_id","opentracing_trace_id","stackTraceLimit","itemToPayload","addPayloadOptions","payloadOptions","addTelemetryData","addMessageWithError","tracePath","newExtra","newItem","promisedItem","addConfigToPayload","sendConfig","configKey","addFunctionOption","addConfiguredOptions","configuredOptions","configured_options","addDiagnosticKeys","client","is_anonymous","is_uncaught","raw_error","constructor_name","failed","captureUncaughtExceptions","handler","shim","oldOnError","_rollbarOldOnError","onerror","handleAnonymousErrors","_rollbarWindowOnError","old","_rollbarWrappedError","_rollbarContext","handleUncaughtException","anonymousErrorsPending","captureUnhandledRejections","_rollbarURH","belongsToShim","removeEventListener","rejectionHandler","evt","reason","promise","detail","handleUnhandledRejection","addEventListener","autoStart","triggerDefaults","samplingRatio","preDuration","postDuration","triggers","logErrors","logEmits","inlineStylesheet","inlineImages","collectFonts","maskInputOptions","tel","text","color","date","month","number","week","maskAllInputs","blockClass","maskTextClass","ignoreClass","slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","handleDomException","handleItemWithError","stackInfo","_savedStackTrace","e2","ensureItemHasSomethingToSay","addBaseInfo","server","addRequestInfo","requestInfo","query_string","remoteString","user_ip","addClientInfo","nav","scr","screen","runtime_ms","_rollbarStartTime","javascript","browser","cookie_enabled","cookieEnabled","addPluginInfo","plugins","navPlugins","cur","addBody","addBodyTraceChain","addBodyTrace","addBodyMessage","stackFromItem","_unhandledStackInfo","traceChainLength","buildTrace","guess","className","errorClass","class","pre","contextLength","mid","sendFrameUrl","endsWith","reverse","addScrubber","scrubFn","makeFetchRequest","controller","timeoutId","AbortController","abort","signal","clearTimeout","respHeaders","isItemRoute","json","catch","makeXhrRequest","requestFactory","_createXMLHTTPObject","onreadystatechange","readyState","parseResponse","responseText","_isSuccess","getResponseHeader","_isNormalFailure","_newRetriableError","ex","exc","open","setRequestHeader","send","_e1","XDomainRequest","xdomainrequest","onprogress","ontimeout","onload","factories","ActiveXObject","xmlhttp","numFactories","Transport","_makeZoneRequest","rootZone","Zone","root","run","_makeRequest","RollbarProxy","_proxyRequest","rollbarProxy","_msg","auth","hash","parseInt","pathParts","API","sharedPredicates","Client","tracingDefaults","sharedTransforms","browserDefaults","globals","replayDefaults","_instance","components","Instrumenter","instrumenter","wrapGlobals","Replay","_gWindow","replayOptions","recorder","start","gDocument","isChrome","chrome","runtime","addTransformsToNotifier","addPredicatesToQueue","setupUnhandledCapture","instrument","setSessionAttributesFromOptions","rollbar","_this$instrumenter","_createItem","triggerDirectReplay","triggerReplay","unhandledExceptionsInitialized","captureUncaught","handleUncaughtExceptions","wrapGlobalEventHandlers","unhandledRejectionsInitialized","handleUnhandledRejections","inspectAnonymousErrors","prepareStackTrace","_stack","_isAnonymous","reasonResult","wrap","_before","ctxFn","_isWrap","_rollbar_wrapped","_wrappedSource","setSessionUser","setSessionAttributes","_this$tracing3","_options$payload","_options$client","_options$payload2","_options$payload3","_options$payload4","person","code_version","codeVersion","loadFull","setComponents","callInstance","maybeCallback","_getFirstFunction","_Rollbar","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len0","_key0","_len1","_key1","_len10","_key10","_len11","_key11","_len12","_key12","Headers","FetchHeaders","normalizeName","normalizeValue","iteratorFor","items","forEach","append","header","getOwnPropertyNames","oldValue","replacements","orig","getElementType","getAttribute","isDescribedElement","subtypes","tagName","elementType","getElementFromEvent","doc","elementFromPoint","clientX","clientY","treeToArray","elem","MAX_HEIGHT","out","nextDescription","describeElement","parentNode","elementArrayToString","MAX_LENGTH","separator","separatorLength","nextStr","totalLength","descriptionToString","elementString","desc","classes","attribute","isMatchingElement","selectors","cls","classList","contains","sel","domUtil","urlparser","network","networkResponseHeaders","networkResponseBody","networkRequestHeaders","networkRequestBody","networkErrorOnHttp5xx","networkErrorOnHttp4xx","networkErrorOnHttp0","dom","navigation","connectivity","contentSecurityPolicy","errorOnContentSecurityPolicy","restore","nameFromDescription","defaultValueScrubber","patterns","_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","instrumentNetwork","deinstrumentNetwork","instrumentConsole","deinstrumentConsole","instrumentDom","deinstrumentDom","instrumentNavigation","deinstrumentNavigation","instrumentConnectivity","deinstrumentConnectivity","instrumentContentSecurityPolicy","deinstrumentContentSecurityPolicy","wrapProp","xhr","xhrp","isUrlObject","_isUrlObject","__rollbar_xhr","request_content_type","onreadystatechangeHandler","__rollbar_event","response_content_type","headersConfig","allHeaders","getAllResponseHeaders","trim","isJsonContentType","scrubJson","addOtelNetworkResponse","errorOnHttpStatus","trackHttpErrors","_fn","_t","reqHeaders","fetchHeaders","telemetryEvent","contentType","endTimeMs","inHeaders","outHeaders","currentHeader","_this$_window","wrapConsole","origConsole","methods","_i2","_methods","addListener","handleEvent","click","handleClick","dragdrop","handleDrag","focus","handleFocus","form","handleForm","handleInput","resize","handleResize","contentLoaded","handleContentLoaded","_evt","_evt$target","isTrusted","_evt$target2","innerWidth","innerHeight","objs","dataTransfer","files","_evt$dataTransfer","_evt$dataTransfer2","scrubInputValue","inputType","mask","_evt$target3","_evt$target4","_evt$target5","_evt$target6","_evt$target7","chromePackagedApp","app","hasPushState","history","pushState","handleUrlChange","parsedHref","parsedTo","parsedFrom","handleConnectivity","handleCspEvent","cspEvent","blockedURI","violatedDirective","effectiveDirective","sourceFile","originalPolicy","handleCspError","cspHandler","section","types","_iterator7","_step7","_loop","passive","_extendListenerPrototype","oldAddEventListener","_rollbarOldAdd","addFn","bubble","oldRemoveEventListener","_rollbarOldRemove","removeFn","_rollbarConfig","alias","globalAlias","shimRunning","shimId","_rollbarDidLoad"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"rollbar.named-amd.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/tracing/defaults.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/replay/defaults.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/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} 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\", \"\"].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(//, \"$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","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\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","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","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","/**\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","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","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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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":["isType","x","t","typeName","name","_typeof","Error","toString","call","match","toLowerCase","isFunction","f","isNativeFunction","reRegExpChar","funcMatchString","Function","prototype","Object","hasOwnProperty","replace","reIsNative","RegExp","isObject","test","value","hasOwn","obj","prop","isString","String","isFiniteNumber","n","Number","isFinite","isIterable","i","type","isError","e","isPromise","p","then","isBrowser","window","isRequestObject","input","Request","redact","uuid4","d","now","uuid","c","r","Math","random","floor","LEVELS","debug","info","warning","error","critical","sanitizeHref","url","urlObject","URL","password","search","_","sanitizeUrl","baseUrlParts","parseUri","anchor","source","query","parseUriOptions","strictMode","key","q","parser","strict","loose","str","undefined","o","m","exec","uri","l","length","$0","$1","$2","addParamsAndAccessTokenToPath","accessToken","options","params","access_token","paramsArray","k","push","join","sort","path","qs","indexOf","h","substring","formatUrl","u","protocol","port","hostname","result","stringify","backup","JSON","jsonError","backupError","maxByteSize","string","count","code","charCodeAt","jsonParse","s","parse","makeUnhandledStackInfo","message","lineno","colno","mode","backupMessage","errorParser","location","line","column","func","guessFunctionName","context","gatherContext","href","document","useragent","navigator","userAgent","stack","wrapCallback","logger","err","resp","nonCircularClone","seen","clone","newSeen","includes","slice","createItem","args","notifier","requestKeys","lambdaContext","custom","callback","request","arg","extraArgs","diagnostic","argTypes","typ","DOMException","j","len","item","timestamp","data","setCustomItemKeys","_originalArgs","original_arg_types","level","skipFrames","addErrorContext","errors","contextAdded","_iterator","_createForOfIteratorHelper","_step","done","merge","rollbarContext","error_context","TELEMETRY_TYPES","TELEMETRY_LEVELS","arrayIncludes","arr","val","_iterator2","_step2","entry","createTelemetryEvent","metadata","event","addItemAttributes","itemData","attributes","_iterator3","_step3","a","get","keys","split","_e","set","setPrototypeOf","temp","replacement","formatArgsAsString","substr","Date","filterIp","requestData","captureIp","newIp","parts","pop","beginning","slashIdx","terminal","concat","handleOptions","current","payload","updateDeprecatedOptions","overwriteScrubFields","scrubFields","hostWhiteList","hostSafeList","log","hostBlackList","hostBlockList","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","src","copy","create","arguments","shouldAddBaggageHeader","tracing","_options$tracing","sessionId","propagation","enabledHeaders","Array","isArray","enabledCorsUrls","some","pattern","addHeadersToFetch","newHeaders","_init","init","initHeaders","headers","reqHeaders","Headers","_i","_Object$keys","append","_i2","_Object$keys2","getSessionIdFromAsyncLocalStorage","client","storage","asyncLocalStorage","getStore","store","traverse","v","isObj","seenIndex","mapped","same","scrub","scrubPaths","scrubPath","paramRes","_getScrubFieldRegexs","queryRes","_getScrubQueryParamRegexs","redactQueryParam","dummy0","paramPart","paramScrubber","regex","valScrubber","scrubber","tmpV","last","_iterator4","entries","_step4","_step4$value","_slicedToArray","index","ret","_iterator5","_step5","field","pat","_iterator6","_step6","MAX_EVENTS","fromMillis","millis","trunc","round","Telemeter","_this$tracing","_classCallCheck","queue","maxTelemetryEvents","maxQueueSize","max","min","telemetrySpan","startSpan","_createClass","configure","oldOptions","newMaxEvents","deleteCount","splice","copyEvents","events","filterTelemetry","filter","map","_ref","_otelAttributes","otelAttributes","_objectWithoutProperties","_excluded","exportTelemetrySpan","end","capture","rollbarUUID","getLevel","timestamp_ms","body","_exc","captureEvent","captureError","_this$telemetrySpan","addEvent","captureLog","_this$telemetrySpan2","_objectSpread","captureNetwork","subtype","_metadata$response","_metadata$response2","_this$telemetrySpan3","levelFromStatus","status_code","endTimeNano","end_time_ms","method","statusCode","request_headers","response","requestBody","responseBody","start_time_ms","captureDom","element","checked","captureInput","_ref2","_this$telemetrySpan4","isSynthetic","endTimeUnixNano","_getRepeatedEvent","_updateRepeatedEvent","captureClick","_ref3","_this$telemetrySpan5","lastEvent","_lastEvent","target","duration","height","width","textZoomRatio","rate","list","captureFocus","_ref4","_this$telemetrySpan6","captureResize","_ref5","_this$telemetrySpan7","captureDragDrop","_ref6","_this$telemetrySpan8","dropEffect","effectAllowed","kinds","mediaTypes","captureNavigation","from","to","_this$telemetrySpan9","captureDomContentLoaded","ts","getTime","captureLoad","captureConnectivityChange","_ref7","_this$telemetrySpan0","_captureRollbarItem","includeItemsInTelemetry","shift","defaultLevel","manual","Context","parentContext","_currentContext","Map","getValue","setValue","deleteValue","self","delete","ROOT_CONTEXT","ContextManager","currentContext","active","enterContext","previousContext","exitContext","with","fn","thisArg","_len","_key","apply","createContextKey","Symbol","for","toMillis","hrtime","toNanos","add","b","usePerformance","performance","timeOrigin","isHrTime","SpanExporter","api","export","spans","_resultCallback","spanExportQueue","_toConsumableArray","toPayload","_this","resourceSpans","resource","scopeMap","span","scopeKey","instrumentationScope","version","has","scope","_transformSpan","_transformResource","scopeSpans","values","scopeData","_transformInstrumentationScope","post","postSpans","_this2","transformAttributes","_transformAnyValue","transformEvents","timeUnixNano","time","traceId","spanContext","spanId","parentSpanId","kind","startTimeUnixNano","startTime","endTime","_this3","keyValues","_this4","attr","_this5","stringValue","isInteger","intValue","doubleValue","boolValue","arrayValue","kvlistValue","gen","bytes","randomBytes","Uint8Array","crypto","getRandomValues","randHex","byte","padStart","id","SESSION_KEY","Session","_defineProperty","session","_attributes","attrs","getSession","createSession","initSessionAttributes","serializedSession","sessionStorage","getItem","_unused","createdAt","setSession","sessionString","setItem","_unused2","setAttributes","setUser","user","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","addTransform","transformFn","transformSpan","applyTransforms","transform","onStart","_parentContext","onEnd","Span","initReadableSpan","spanProcessor","_options$session","status","links","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount","setAttribute","_Object$entries","_Object$entries$_i","isRecording","Tracer","_this$tracing$resourc","_options$resource","_this$tracing$session","contextManager","parentSpan","getSpan","parentSpanContext","traceFlags","traceState","SPAN_KEY","Tracing","gWindow","createTracer","initSession","_this$options$payload","_this$options$payload2","environment","idGen","tracer","getTracer","addSpanTransform","setSpan","_this$contextManager","withSpan","default","raw","jsonBackup","selectFrames","frames","range","truncateFrames","trace_chain","chain","trace","maybeTruncateValue","truncateStrings","truncator","truncateTraceData","traceData","exception","description","minBody","_step2$value","needsTruncation","maxSize","truncate","strategies","strategy","results","buildPayload","contextResult","getTransportFromOptions","defaults","timeout","transport","detectTransport","proxy","endpoint","opts","pathname","defaultTransport","fetch","XMLHttpRequest","transportOptions","transportAPI","host","appendPathToPath","base","baseTrailingSlash","pathBeginningSlash","iterator","toStringTag","Generator","_regeneratorDefine2","y","G","TypeError","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","__proto__","displayName","_regenerator","w","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","helpers","defaultOptions","OTLPDefaultOptions","Api","urllib","truncation","_getTransport","OTLPTransportOptions","_getOTLPTransport","_postPromise","reject","postItem","setTimeout","_postSpans","_callee","_args","_context","_x","buildJsonPayload","stringifyResult","postJsonPayload","jsonPayload","reportLevel","uncaughtErrorLevel","maxItems","itemsPerMin","commonScrubFields","apiScrubFields","requestScrubFields","commonScrubHeaders","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","allowEmpty","parseStack","stackString","parseV8OrIeString","parseFFOrSafariString","extractLocation","urlLike","regExp","applySlice","lines","filtered","sanitizedLine","locationParts","functionName","fileName","function","file","col","functionNameRegex","matches","parseOpera9","parseOpera10","parseOpera11","lineRE","tokens","functionCall","argsRaw","parse$1","parseV8OrIE$1","parseFFOrSafari$1","parseOpera$1","parseOpera9$1","parseOpera10$1","parseOpera11$1","stackframesLiteToStackframes","liteStackframes","liteStackframe","lineNumber","columnNumber","parseErrorStack","UNKNOWN_FUNCTION","ERR_CLASS_REGEXP","Frame","stackFrame","_stackFrame","Stack","skip","getStack","parserStack","_mostSpecificErrorName","rawStack","rawException","nested","cause","traceChain","guessErrorClass","errMsg","errClassMatch","errClass","constructorName","checkLevel","settings","levelVal","reportLevelVal","userCheckIgnore","isUncaught","Boolean","_isUncaught","onSendCallback","checkIgnore","urlIsNotBlockListed","urlIsOnAList","urlIsSafeListed","matchFrames","block","frame","filename","urlRegex","listLength","frameLength","safeOrBlock","traces","tracesLength","listName","messageIsIgnored","ignoredMessages","rIgnoredMessage","messages","messagesFromItem","Notifier","_this$queue","enabled","addPendingItem","originalError","_applyTransforms","removePendingItem","addItem","transformIndex","transformsLength","next","Queue","rateLimiter","replay","predicates","pendingItems","pendingRequests","retryQueue","retryHandle","waitCallback","waitIntervalID","_this$api","addPredicate","predicate","idx","originalItem","predicateResult","_applyPredicates","stop","_maybeLog","transmit","replayId","_makeApiRequest","_dequeuePendingRequest","sendOrDiscardReplay","_this$replay","discard","wait","_maybeCallWait","clearInterval","setInterval","rateLimitResponse","shouldSend","_maybeRetry","shouldRetry","retryInterval","RETRIABLE_ERRORS","maxRetries","retries","_retryApiRequest","retryObject","verbose","RateLimiter","counter","perMinCounter","platformOptions","configureGlobal","itemsPerMinute","globalSettings","elapsedTime","globalRateLimit","globalRateLimitPerMin","checkRate","shouldSendValue","underGlobalLimit","perMinute","setPlatformOptions","limit","ignoreRateLimit","limitPerMin","errorResult","rateLimitPayload","msg","extra","framework","Rollbar","telemeter","validateTracer","_configuredOptions","setStackTraceLimit","lastError","lastErrorHash","global","payloadData","_defaultLogLevel","_log","sendJsonPayload","ignoreDuplicateErrors","_sameAsLastError","_addItemAttributes","_addTracingInfo","telemetryEvents","_this$tracing2","asyncLocalSessionId","itemHash","generateItemHash","validateSpan","setTag","opentracingSpanId","toSpanId","opentracingTraceId","toTraceId","opentracing_span_id","opentracing_trace_id","stackTraceLimit","itemToPayload","addPayloadOptions","payloadOptions","addTelemetryData","addMessageWithError","tracePath","newExtra","newItem","promisedItem","addConfigToPayload","sendConfig","configKey","addFunctionOption","addConfiguredOptions","configuredOptions","configured_options","addDiagnosticKeys","is_anonymous","is_uncaught","raw_error","constructor_name","failed","captureUncaughtExceptions","handler","shim","oldOnError","_rollbarOldOnError","onerror","handleAnonymousErrors","_rollbarWindowOnError","old","_rollbarWrappedError","_rollbarContext","handleUncaughtException","anonymousErrorsPending","captureUnhandledRejections","_rollbarURH","belongsToShim","removeEventListener","rejectionHandler","evt","reason","promise","detail","handleUnhandledRejection","addEventListener","autoStart","triggerDefaults","samplingRatio","preDuration","postDuration","triggers","logErrors","logEmits","inlineStylesheet","inlineImages","collectFonts","maskInputOptions","tel","text","color","date","month","number","week","maskAllInputs","blockClass","maskTextClass","ignoreClass","slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","handleDomException","handleItemWithError","stackInfo","_savedStackTrace","e2","ensureItemHasSomethingToSay","addBaseInfo","server","addRequestInfo","requestInfo","query_string","remoteString","user_ip","addClientInfo","nav","scr","screen","runtime_ms","_rollbarStartTime","javascript","browser","cookie_enabled","cookieEnabled","addPluginInfo","plugins","navPlugins","cur","addBody","addBodyTraceChain","addBodyTrace","addBodyMessage","stackFromItem","_unhandledStackInfo","traceChainLength","buildTrace","guess","className","errorClass","class","pre","contextLength","mid","sendFrameUrl","endsWith","reverse","addScrubber","scrubFn","makeFetchRequest","controller","timeoutId","AbortController","abort","signal","clearTimeout","respHeaders","isItemRoute","json","catch","makeXhrRequest","requestFactory","_createXMLHTTPObject","onreadystatechange","readyState","parseResponse","responseText","_isSuccess","getResponseHeader","_isNormalFailure","_newRetriableError","ex","exc","open","setRequestHeader","send","_e1","XDomainRequest","xdomainrequest","onprogress","ontimeout","onload","factories","ActiveXObject","xmlhttp","numFactories","Transport","_makeZoneRequest","rootZone","Zone","root","run","_makeRequest","RollbarProxy","_proxyRequest","rollbarProxy","_msg","auth","hash","parseInt","pathParts","API","sharedPredicates","Client","tracingDefaults","sharedTransforms","browserDefaults","globals","replayDefaults","_instance","components","Instrumenter","instrumenter","wrapGlobals","Replay","_gWindow","replayOptions","recorder","start","gDocument","isChrome","chrome","runtime","addTransformsToNotifier","addPredicatesToQueue","setupUnhandledCapture","instrument","setSessionAttributesFromOptions","rollbar","_this$instrumenter","_createItem","triggerDirectReplay","triggerReplay","unhandledExceptionsInitialized","captureUncaught","handleUncaughtExceptions","wrapGlobalEventHandlers","unhandledRejectionsInitialized","handleUnhandledRejections","inspectAnonymousErrors","prepareStackTrace","_stack","_isAnonymous","reasonResult","wrap","_before","ctxFn","_isWrap","_rollbar_wrapped","_wrappedSource","setSessionUser","setSessionAttributes","_this$tracing3","_options$payload","_options$client","_options$payload2","_options$payload3","_options$payload4","person","code_version","codeVersion","loadFull","setComponents","callInstance","maybeCallback","_getFirstFunction","_Rollbar","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len0","_key0","_len1","_key1","_len10","_key10","_len11","_key11","_len12","_key12","FetchHeaders","normalizeName","normalizeValue","iteratorFor","items","forEach","header","getOwnPropertyNames","oldValue","replacements","orig","getElementType","getAttribute","isDescribedElement","subtypes","tagName","elementType","getElementFromEvent","doc","elementFromPoint","clientX","clientY","treeToArray","elem","MAX_HEIGHT","out","nextDescription","describeElement","parentNode","elementArrayToString","MAX_LENGTH","separator","separatorLength","nextStr","totalLength","descriptionToString","elementString","desc","classes","attribute","isMatchingElement","selectors","cls","classList","contains","sel","domUtil","urlparser","network","networkResponseHeaders","networkResponseBody","networkRequestHeaders","networkRequestBody","networkErrorOnHttp5xx","networkErrorOnHttp4xx","networkErrorOnHttp0","dom","navigation","connectivity","contentSecurityPolicy","errorOnContentSecurityPolicy","restore","nameFromDescription","defaultValueScrubber","patterns","_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","instrumentNetwork","deinstrumentNetwork","instrumentConsole","deinstrumentConsole","instrumentDom","deinstrumentDom","instrumentNavigation","deinstrumentNavigation","instrumentConnectivity","deinstrumentConnectivity","instrumentContentSecurityPolicy","deinstrumentContentSecurityPolicy","wrapProp","xhr","xhrp","isUrlObject","_isUrlObject","__rollbar_xhr","request_content_type","_self$rollbar","_xhr$__rollbar_xhr","onreadystatechangeHandler","__rollbar_event","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","wrapConsole","origConsole","methods","_methods","addListener","handleEvent","click","handleClick","dragdrop","handleDrag","focus","handleFocus","form","handleForm","handleInput","resize","handleResize","contentLoaded","handleContentLoaded","_evt","_evt$target","isTrusted","_evt$target2","innerWidth","innerHeight","objs","dataTransfer","files","_evt$dataTransfer","_evt$dataTransfer2","scrubInputValue","inputType","mask","_evt$target3","_evt$target4","_evt$target5","_evt$target6","_evt$target7","chromePackagedApp","app","hasPushState","history","pushState","handleUrlChange","parsedHref","parsedTo","parsedFrom","handleConnectivity","handleCspEvent","cspEvent","blockedURI","violatedDirective","effectiveDirective","sourceFile","originalPolicy","handleCspError","cspHandler","section","types","_iterator7","_step7","_loop","passive","_extendListenerPrototype","oldAddEventListener","_rollbarOldAdd","addFn","bubble","oldRemoveEventListener","_rollbarOldRemove","removeFn","_rollbarConfig","alias","globalAlias","shimRunning","shimId","_rollbarDidLoad"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/rollbar.named-amd.min.js b/dist/rollbar.named-amd.min.js index 7601aeff..f574b81f 100644 --- a/dist/rollbar.named-amd.min.js +++ b/dist/rollbar.named-amd.min.js @@ -1,3 +1,3 @@ /*! For license information please see rollbar.named-amd.min.js.LICENSE.txt */ -define("rollbar",[],function(){return function(){"use strict";var t={d:function(e,r){for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{default:function(){return Yn}});var r={};function n(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return o(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(u||(u=S({})),u.extraArgs=S(p));var g,w={message:i,err:a,custom:u,timestamp:P(),callback:l,notifier:r,diagnostic:{},uuid:(g=P(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(g+16*Math.random())%16|0;return g=Math.floor(g/16),("x"===t?e:7&e|8).toString(16)}))};return w.data=w.data||{},function(t,e){e&&void 0!==e.level&&(t.level=e.level,delete e.level);e&&void 0!==e.skipFrames&&(t.skipFrames=e.skipFrames,delete e.skipFrames)}(w,u),n&&c&&(w.request=c),o&&(w.lambdaContext=o),w._originalArgs=t,w.diagnostic.original_arg_types=d,w}var O=["log","network","dom","navigation","error","manual"],x=["critical","error","warning","info","debug"];function E(t,e){var r,o=n(t);try{for(o.s();!(r=o.n()).done;){if(r.value===e)return!0}}catch(t){o.e(t)}finally{o.f()}return!1}function j(t,e){t.attributes=t.attributes||[];var r,o=n(e);try{for(o.s();!(r=o.n()).done;){var i=r.value;void 0!==i.value&&t.attributes.push(i)}}catch(t){o.e(t)}finally{o.f()}}function I(t,e){if(t){var r=e.split("."),n=t;try{for(var o=0,i=r.length;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function N(t,e){if(t){if("string"==typeof t)return D(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D(t,e):void 0}}function D(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rn&&(o=this.queue.length-n),this.maxQueueSize=n,this.queue.splice(0,o)}},{key:"copyEvents",value:function(){var t=Array.prototype.slice.call(this.queue,0);if(u(this.options.filterTelemetry))try{for(var e=t.length;e--;)this.options.filterTelemetry(t[e])&&t.splice(e,1)}catch(t){this.options.filterTelemetry=null}return t=(t=t.filter(function(t){return"connectivity"!==t.type})).map(function(t){t.otelAttributes;var e=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.telemetrySpan&&(this.telemetrySpan.end(t),this.telemetrySpan=this.tracing.startSpan("rollbar-telemetry",{}))}},{key:"capture",value:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a={level:Z(t,r),type:t,timestamp_ms:o||P(),body:e,source:"client"};n&&(a.uuid=n),i&&(a.otelAttributes=i);try{if(u(this.options.filterTelemetry)&&this.options.filterTelemetry(a))return!1}catch(t){this.options.filterTelemetry=null}return this.push(a),a}},{key:"captureEvent",value:function(t,e,r,n){return this.capture(t,e,r,n)}},{key:"captureError",value:function(t,e,r,n){var o,i=t.message||String(t),a={message:i};t.stack&&(a.stack=t.stack);var s={message:i,level:e,type:"error",uuid:r};return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-occurrence-event",s,z(n)),this.capture("error",a,e,r,n,s)}},{key:"captureLog",value:function(t,e,r,n){var o,i=r?"rollbar-occurrence-event":"rollbar-log-event",a=V({message:t,level:e},r?{type:"message",uuid:r}:{});return null===(o=this.telemetrySpan)||void 0===o||o.addEvent(i,a,z(n)),this.capture("log",{message:t},e,r,n,a)}},{key:"captureNetwork",value:function(t,e,r,n){var o,i,a;e=e||"xhr",t.subtype=t.subtype||e,n&&(t.request=n);var s=this.levelFromStatus(t.status_code),u=1e6*(t.end_time_ms||0),l={type:t.subtype,method:t.method,url:t.url,statusCode:t.status_code,"request.headers":JSON.stringify(t.request_headers||{}),"response.headers":JSON.stringify((null===(o=t.response)||void 0===o?void 0:o.headers)||{}),"response.timeUnixNano":u.toString()},c=t.request,f=null===(i=t.response)||void 0===i?void 0:i.body;return c&&(l["request.body"]=JSON.stringify(c)),f&&(l["response.body"]=JSON.stringify(f)),null===(a=this.telemetrySpan)||void 0===a||a.addEvent("rollbar-network-event",l,z(t.start_time_ms)),this.capture("network",t,s,r,t.start_time_ms,l)}},{key:"levelFromStatus",value:function(t){return t>=200&&t<400?"info":0===t||t>=400?"error":"info"}},{key:"captureDom",value:function(t,e,r,n,o){var i={subtype:t,element:e};return void 0!==r&&(i.value=r),void 0!==n&&(i.checked=n),this.capture("dom",i,"info",o)}},{key:"captureInput",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.value,a=t.timestamp,s="rollbar-input-event",u={type:s,subtype:r,element:o,value:i},l={type:r,isSynthetic:n,element:o,value:i,endTimeUnixNano:z(a)},c=this._getRepeatedEvent(s,l);return c?this._updateRepeatedEvent(c,l,a):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(s,l,z(a)),this.capture("dom",u,"info",null,a,l))}},{key:"captureClick",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-click-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o,endTimeUnixNano:z(i)},l=this._getRepeatedEvent(a,u);return l?this._updateRepeatedEvent(l,u,i):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,z(i)),this.capture("dom",s,"info",null,i,u))}},{key:"_getRepeatedEvent",value:function(t,e){var r=this._lastEvent(this.queue);if(r&&r.body.type===t&&r.otelAttributes.target===e.target)return r}},{key:"_updateRepeatedEvent",value:function(t,e,r){var n=Math.max(r-t.timestamp_ms,1);t.body.value=e.value,t.otelAttributes.value=e.value,t.otelAttributes.height=e.height,t.otelAttributes.width=e.width,t.otelAttributes.textZoomRatio=e.textZoomRatio,t.otelAttributes.endTimeUnixNano=z(r),t.otelAttributes.durationUnixNano=z(n),t.otelAttributes.count=(t.otelAttributes.count||1)+1,t.otelAttributes.rate=t.otelAttributes.count/(n/1e3)}},{key:"_lastEvent",value:function(t){return t.length>0?t[t.length-1]:null}},{key:"captureFocus",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-focus-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,z(i)),this.capture("dom",s,"info",null,i,u)}},{key:"captureResize",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.width,i=t.height,a=t.textZoomRatio,s=t.timestamp,u="rollbar-resize-event",l={type:u,subtype:r,width:o,height:i,textZoomRatio:a},c={type:r,isSynthetic:n,width:o,height:i,textZoomRatio:a},f=this._getRepeatedEvent(u,c);return f?this._updateRepeatedEvent(f,c,s):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(u,c,z(s)),this.capture("dom",l,"info",null,s,c))}},{key:"captureDragDrop",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.dropEffect,a=t.effectAllowed,s=t.kinds,u=t.mediaTypes,l=t.timestamp,c="rollbar-dragdrop-event",f={type:c,subtype:r,isSynthetic:n},p={type:r,isSynthetic:n};return"dragstart"===r&&(f=V(V({},f),{},{element:o,dropEffect:i,effectAllowed:a}),p=V(V({},p),{},{element:o,dropEffect:i,effectAllowed:a})),"drop"===r&&(f=V(V({},f),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u}),p=V(V({},p),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u})),null===(e=this.telemetrySpan)||void 0===e||e.addEvent(c,p,z(l)),this.capture("dom",f,"info",null,l,p)}},{key:"captureNavigation",value:function(t,e,r,n){var o;return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-navigation-event",{"previous.url.full":t,"url.full":e},z(n)),this.capture("navigation",{from:t,to:e},"info",r,n)}},{key:"captureDomContentLoaded",value:function(t){return this.capture("navigation",{subtype:"DOMContentLoaded"},"info",void 0,t&&t.getTime())}},{key:"captureLoad",value:function(t){return this.capture("navigation",{subtype:"load"},"info",void 0,t&&t.getTime())}},{key:"captureConnectivityChange",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.timestamp,i="rollbar-connectivity-event",a={type:i,subtype:r},s={type:r,isSynthetic:n};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(i,s,z(o)),this.capture("connectivity",a,"info",null,o,s)}},{key:"_captureRollbarItem",value:function(t){if(this.options.includeItemsInTelemetry)return t.err?this.captureError(t.err,t.level,t.uuid,t.timestamp):t.message?this.captureLog(t.message,t.level,t.uuid,t.timestamp):t.custom?this.capture("log",t.custom,t.level,t.uuid,t.timestamp):void 0}},{key:"push",value:function(t){this.queue.push(t),this.queue.length>this.maxQueueSize&&this.queue.shift()}}],e&&W(t.prototype,e),r&&W(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Z(t,e){if(e)return e;return{error:"error",manual:"info"}[t]||"info"}var Q=X;function K(t){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},K(t)}function Y(t,e){for(var r=0;r3?o-3:0),a=3;a0&&void 0!==arguments[0]&&arguments[0]?ut(st(performance.timeOrigin),st(performance.now())):st(Date.now())},isHrTime:function(t){return Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]}};function ct(t){return ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ct(t)}function ft(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||dt(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pt(t){return function(t){if(Array.isArray(t))return ht(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||dt(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dt(t,e){if(t){if("string"==typeof t)return ht(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ht(t,e):void 0}}function ht(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.api=e,this.options=r},e=[{key:"export",value:function(t,e){bt.push.apply(bt,pt(t))}},{key:"toPayload",value:function(){var t=this,e=bt.slice();if(bt.length=0,!e||!e.length)return{resourceSpans:[]};var r,n=e[0]&&e[0].resource||{},o=new Map,i=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=dt(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e);try{for(i.s();!(r=i.n()).done;){var a=r.value,s=a.instrumentationScope?"".concat(a.instrumentationScope.name,":").concat(a.instrumentationScope.version):"default:1.0.0";o.has(s)||o.set(s,{scope:a.instrumentationScope||{name:"default",version:"1.0.0",attributes:[]},spans:[]}),o.get(s).spans.push(this._transformSpan(a))}}catch(t){i.e(t)}finally{i.f()}return{resourceSpans:[{resource:this._transformResource(n),scopeSpans:Array.from(o.values()).map(function(e){return{scope:t._transformInstrumentationScope(e.scope),spans:e.spans}})}]}}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.api.postSpans(t,e)}},{key:"_transformSpan",value:function(t){var e,r=this,n=function(t){return Object.entries(t||{}).map(function(t){var e=ft(t,2),n=e[0],o=e[1];return{key:n,value:r._transformAnyValue(o)}})};return{traceId:t.spanContext.traceId,spanId:t.spanContext.spanId,parentSpanId:t.parentSpanId||"",name:t.name,kind:t.kind||1,startTimeUnixNano:lt.toNanos(t.startTime),endTimeUnixNano:lt.toNanos(t.endTime),attributes:n(t.attributes),events:(e=t.events,(e||[]).map(function(t){return{timeUnixNano:lt.toNanos(t.time),name:t.name,attributes:n(t.attributes)}}))}}},{key:"_transformResource",value:function(t){var e=this,r=t.attributes||{};return{attributes:Object.entries(r).map(function(t){var r=ft(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}},{key:"_transformInstrumentationScope",value:function(t){var e=this;return{name:t.name||"",version:t.version||"",attributes:(t.attributes||[]).map(function(t){return{key:t.key,value:e._transformAnyValue(t.value)}})}}},{key:"_transformAnyValue",value:function(t){var e=this;if(null==t)return{stringValue:""};var r=ct(t);return"string"===r?{stringValue:t}:"number"===r?Number.isInteger(t)?{intValue:t.toString()}:{doubleValue:t}:"boolean"===r?{boolValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(function(t){return e._transformAnyValue(t)})}}:"object"===r?{kvlistValue:{values:Object.entries(t).map(function(t){var r=ft(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}:{stringValue:String(t)}}}],e&&yt(t.prototype,e),r&&yt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),bt=[];var gt={gen:function(){var t=new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:16);return crypto.getRandomValues(t),Array.from(t,function(t){return t.toString(16).padStart(2,"0")}).join("")}};function wt(t){return wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wt(t)}function kt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function St(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.session||(this.getSession()||this.createSession(),this.initSessionAttributes(t)),this}},{key:"getSession",value:function(){try{var t=this.window.sessionStorage.getItem(Et);if(!t)return null;this.session=JSON.parse(t)}catch(t){return null}return this}},{key:"createSession",value:function(){return this.session={id:gt.gen(),createdAt:Date.now()},this.setSession(this.session)}},{key:"setSession",value:function(t){var e=JSON.stringify(t);try{this.window.sessionStorage.setItem(Et,e)}catch(t){return null}return this}},{key:"attributes",get:function(){return this._attributes}},{key:"setAttributes",value:function(t){return this._attributes=St(St({},this._attributes),t),this}},{key:"setUser",value:function(t){return this.setAttributes({"user.id":null==t?void 0:t.id,"user.email":null==t?void 0:t.email,"user.name":(null==t?void 0:t.name)||(null==t?void 0:t.username)}),this}},{key:"initSessionAttributes",value:function(t){var e,r,n;return this.setAttributes(St({"session.id":this.session.id,"browser.brands":null===(e=navigator.userAgentData)||void 0===e?void 0:e.brands,"browser.language":navigator.language,"browser.mobile":null===(r=navigator.userAgentData)||void 0===r?void 0:r.mobile,"browser.platform":null===(n=navigator.userAgentData)||void 0===n?void 0:n.platform,"client.address":"$remote_ip","rollbar.notifier.framework":"browser-js","user_agent.original":navigator.userAgent},t)),this}}],e&&_t(t.prototype,e),r&&_t(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),It=function(){},Tt={debug:0,info:1,warn:2,error:3,disable:4},Pt={error:function(){for(var t=arguments.length,e=new Array(t),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Lt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.exporter=e,this.options=r,this.pendingSpans=new Map,this.transforms=[this.userTransform.bind(this)]},e=[{key:"addTransform",value:function(t){this.transforms.unshift(t)}},{key:"userTransform",value:function(t){this.options.transformSpan&&this.options.transformSpan({span:t})}},{key:"applyTransforms",value:function(t){var e,r=Ct(this.transforms);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{n(t)}catch(t){At.error("Error running span transform callback",t)}}}catch(t){r.e(t)}finally{r.f()}}},{key:"onStart",value:function(t,e){this.pendingSpans.set(t.span.spanContext.spanId,t)}},{key:"onEnd",value:function(t){this.applyTransforms(t.span),this.exporter.export([t.export()]),this.pendingSpans.delete(t.span.spanContext.spanId)}}],e&&qt(t.prototype,e),r&&qt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Mt(t){return Mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mt(t)}function Ut(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Ht(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ht(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ht(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;return this.span.ended||this.span.events.push({name:t,attributes:e,time:r||lt.now(),droppedAttributesCount:0}),this}},{key:"isRecording",value:function(){return!1===this.span.ended}},{key:"end",value:function(t,e){t&&this.setAttributes(t),this.span.endTime=e||lt.now(this.usePerformance),this.span.ended=!0,this.spanProcessor.onEnd(this)}},{key:"export",value:function(){return this.span}}],e&&Ft(t.prototype,e),r&&Ft(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Bt(t){return Bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bt(t)}function Wt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function $t(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.tracing.contextManager.active(),u=this.tracing.getSpan(s),l=null==u?void 0:u.spanContext(),c=gt.gen(8),f=null;l?(o=l.traceId,f=l.traceState,i=l.spanId):o=gt.gen(16);var p={traceId:o,spanId:c,traceFlags:0,traceState:f},d={attributes:$t($t({},(null===(e=this.tracing.resource)||void 0===e?void 0:e.attributes)||{}),(null===(r=a.resource)||void 0===r?void 0:r.attributes)||{})};return new Vt({resource:d,scope:this.tracing.scope,session:null===(n=this.tracing.session)||void 0===n?void 0:n.session,context:s,spanContext:p,name:t,kind:0,parentSpanId:i,spanProcessor:this.spanProcessor,startTime:a.startTime,usePerformance:a.usePerformance})}}],e&&zt(t.prototype,e),r&&zt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Qt(t){return Qt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qt(t)}function Kt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Yt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:16;return gt.gen(t)}},{key:"createTracer",value:function(){this.contextManager=new at,this.exporter=new mt(this.api,this.options),this.spanProcessor=new Dt(this.exporter,this.options.tracing),this.tracer=new Zt(this,this.spanProcessor)}},{key:"getTracer",value:function(){return this.tracer}},{key:"addSpanTransform",value:function(t){this.spanProcessor.addTransform(t)}},{key:"getSpan",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active()).getValue(oe)}},{key:"setSpan",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active(),e=arguments.length>1?arguments[1]:void 0;return t.setValue(oe,e)}},{key:"startSpan",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.contextManager.active();return this.tracer.startSpan(t,e,r)}},{key:"with",value:function(t,e,r){for(var n,o=arguments.length,i=new Array(o>3?o-3:0),a=3;a=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ue(t,e){if(t){if("string"==typeof t)return le(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?le(t,e):void 0}}function le(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2*e?t.slice(0,e).concat(t.slice(r-e)):t}function pe(t,e,r){r=void 0===r?30:r;var n,o=t.data.body;if(o.trace_chain){var i,a=se(o.trace_chain);try{for(a.s();!(i=a.n()).done;){var s=i.value;n=fe(n=s.frames,r),s.frames=n}}catch(t){a.e(t)}finally{a.f()}}else o.trace&&(n=fe(n=o.trace.frames,r),o.trace.frames=n);return[t,b(t,e)]}function de(t,e){return e&&e.length>t?e.slice(0,t-3).concat("..."):e}function he(t,e,r){return e=C(e,function e(r,n,o){switch(s(n)){case"string":return de(t,n);case"object":case"array":return C(n,e,o);default:return n}}),[e,b(e,r)]}function ye(t){return t.exception&&(delete t.exception.description,t.exception.message=de(255,t.exception.message)),t.frames=fe(t.frames,1),t}function ve(t,e){var r=t.data.body;if(r.trace_chain){var n,o=r.trace_chain,i=se(o.entries());try{for(i.s();!(n=i.n()).done;){var a=ae(n.value,2),s=a[0],u=a[1];o[s]=ye(u)}}catch(t){i.e(t)}finally{i.f()}}else r.trace&&(r.trace=ye(r.trace));return[t,b(t,e)]}function me(t,e){return function(t){for(var e=0,r=t.length,n=0;ne}var be={truncate:function(t,e,r){r=void 0===r?524288:r;for(var n,o,i,a=[ce,pe,he.bind(null,1024),he.bind(null,512),he.bind(null,256),ve];n=a.shift();)if(t=(o=n(t,e))[0],(i=o[1]).error||!me(i.value,r))return i;return i},raw:ce,truncateFrames:pe,truncateStrings:he,maybeTruncateValue:de};function ge(t){if(!a(t.context,"string")){var e=b(t.context);e.error?t.context="Error: could not serialize 'context'":t.context=e.value||"",t.context.length>255&&(t.context=t.context.substr(0,255))}return{data:t}}function we(t,e,r){var n=e.hostname,o=e.protocol,i=e.port,a=e.path,s=e.search,u=t.timeout,l=function(t){var e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=t.defaultTransport||"xhr";void 0===e.fetch&&(r="xhr");void 0===e.XMLHttpRequest&&(r="fetch");return r}(t),c=t.proxy;if(t.endpoint){var f=r.parse(t.endpoint);n=f.hostname,o=f.protocol,i=f.port,a=f.pathname,s=f.search}return{timeout:u,hostname:n,protocol:o,port:i,path:a,search:s,proxy:c,transport:l}}function ke(t,e){var r=t.protocol||"https:",n=t.port||("http:"===r?80:"https:"===r?443:void 0),o=t.hostname,i=t.path,a=t.timeout,s=t.transport;return t.search&&(i+=t.search),t.proxy&&(i=r+"//"+o+i,o=t.proxy.host||t.proxy.hostname,n=t.proxy.port,r=t.proxy.protocol||r),{timeout:a,protocol:r,hostname:o,path:i,port:n,method:e,transport:s}}function Se(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function _e(t){for(var e=1;e3?(o=h===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&dn||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,h),s=c,u=h;(e=s<2?t:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=t}else if((e=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(e){i=t,s=1,u=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(je(e={},n,function(){return this}),e),f=l.prototype=s.prototype=Object.create(c);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,je(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,je(f,"constructor",l),je(l,"constructor",u),u.displayName="GeneratorFunction",je(l,o,"GeneratorFunction"),je(f),je(f,o,"Generator"),je(f,n,function(){return this}),je(f,"toString",function(){return"[object Generator]"}),(Ee=function(){return{w:i,m:p}})()}function je(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}je=function(t,e,r,n){function i(e,r){je(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},je(t,e,r,n)}function Ie(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function Te(t,e){for(var r=0;r1&&void 0!==o[1]?o[1]:{},n=ke(this.OTLPTransportOptions,"POST"),t.a(2,this._postPromise({accessToken:this.accessToken,options:n,payload:e,headers:r}))},t,this)}),o=function(){var t=this,e=arguments;return new Promise(function(r,o){var i=n.apply(t,e);function a(t){Ie(i,r,o,a,s,"next",t)}function s(t){Ie(i,r,o,a,s,"throw",t)}a(void 0)})},function(t){return o.apply(this,arguments)})},{key:"buildJsonPayload",value:function(t,e){var r,n=ge(t);return(r=this.truncation?this.truncation.truncate(n):b(n)).error?(e&&e(r.error),null):r.value}},{key:"postJsonPayload",value:function(t,e){var r=ke(this.transportOptions,"POST");this.transport.postJsonPayload(this.accessToken,r,t,e)}},{key:"configure",value:function(t){var e=this.options;return this.options=R(e,t),this.transportOptions=Le(this.options,this.url),this.OTLPTransportOptions=qe(this.options,this.url),void 0!==this.options.accessToken&&(this.accessToken=this.options.accessToken),this}}],e&&Te(t.prototype,e),r&&Te(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r,n,o}();function Le(t,e){return we(t,Ae,e)}function qe(t,e){var r;return we(t=_e(_e({},t),{},{endpoint:null===(r=t.tracing)||void 0===r?void 0:r.endpoint}),Re,e)}var Ne=Ce,De="3.0.0",Me="api.rollbar.com/api/1/item/",Ue="debug",He="debug",Fe="error",Je=/(^|@)\S+:\d+/,Ve=/^\s*at .*(\S+:\d+|\(native\))/m,Be=/^(eval@)?(\[native code\])?$/;function We(t,e){if(void 0!==t.stacktrace||void 0!==t["opera#sourceloc"])return function(t,e){return!t.stacktrace||t.message.includes("\n")&&t.message.split("\n").length>t.stacktrace.split("\n").length?function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)/i,n=t.message.split("\n"),o=[],i=2,a=n.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;return o.match(/\(([^)]*)\)/)&&(e=o.replace(/^[^(]+\(([^)]*)\)$/,"$1")),{function:i,args:void 0===e||"[arguments not available]"===e?void 0:e.split(","),file:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}(t,e):function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,n=t.stacktrace.split("\n"),o=[],i=0,a=n.length;i"].includes(n[0])?void 0:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}function Xe(t,e){return Ge(t.split("\n").filter(function(t){return!t.match(Be)}),e).map(function(t){if(t.includes(" > eval")&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),t.includes("@")||t.includes(":")){var e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,r=t.match(e),n=r&&r[1]?r[1]:void 0,o=$e(t.replace(e,""));return{function:n,file:o[0],line:o[1]?+o[1]:void 0,col:o[2]?+o[2]:void 0,raw:t}}return{function:t}})}function Ze(t){return t.map(function(t){return{functionName:t.function,args:t.args,fileName:t.file,lineNumber:t.line,columnNumber:t.col,source:t.raw}})}var Qe=new RegExp("^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ");function Ke(){return null}function Ye(t){var e={};return e._stackFrame=t,e.url=t.fileName,e.line=t.lineNumber,e.func=t.functionName,e.column=t.columnNumber,e.args=t.args,e.context=null,e}function tr(t,e){return{stack:function(){var r=[];e=e||0;try{r=function(t,e){return Ze(We(t,e))}(t)}catch(t){r=[]}for(var n=[],o=e;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function or(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rthis.options.maxRetries&&(o=!1))}o?this._retryApiRequest(r,n):n(e)}},{key:"_retryApiRequest",value:function(t,e){var r=this;this.retryQueue.push({item:t,callback:e}),this.retryHandle||(this.retryHandle=setInterval(function(){for(;r.retryQueue.length;){var t=r.retryQueue.shift();r._makeApiRequest(t.item,t.callback)}},this.options.retryInterval))}},{key:"_dequeuePendingRequest",value:function(t){var e=this.pendingRequests.indexOf(t);-1!==e&&(this.pendingRequests.splice(e,1),this._maybeCallWait())}},{key:"_maybeLog",value:function(t,e){if(this.logger&&this.options.verbose){var r=e||I(t,"body.trace.exception.message")||I(t,"body.trace_chain.0.exception.message");if(r)return void this.logger.error(r);(r=I(t,"body.message.body"))&&this.logger.log(r)}}},{key:"_maybeCallWait",value:function(){return!(!u(this.waitCallback)||0!==this.pendingItems.length||0!==this.pendingRequests.length||(this.waitIntervalID&&(this.waitIntervalID=clearInterval(this.waitIntervalID)),this.waitCallback(),0))}}],r&&hr(e.prototype,r),n&&hr(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();vr=gr,br=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE","EAI_AGAIN"],(mr=yr(mr="RETRIABLE_ERRORS"))in vr?Object.defineProperty(vr,mr,{value:br,enumerable:!0,configurable:!0,writable:!0}):vr[mr]=br;var wr=gr;function kr(t){return kr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},kr(t)}function Sr(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.startTime=Date.now(),this.counter=0,this.perMinCounter=0,this.platform=null,this.platformOptions={},this.configureGlobal(e)}return function(t,e,r){return e&&Sr(t.prototype,e),r&&Sr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(t,[{key:"configureGlobal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.startTime,n=e.maxItems,o=e.itemsPerMinute;void 0!==r&&(t.globalSettings.startTime=r),void 0!==n&&(t.globalSettings.maxItems=n),void 0!==o&&(t.globalSettings.itemsPerMinute=o)}},{key:"shouldSend",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=r-this.startTime;(n<0||n>=6e4)&&(this.startTime=r,this.perMinCounter=0);var o=t.globalSettings.maxItems,i=t.globalSettings.itemsPerMinute;if(xr(e,o,this.counter))return Er(this.platform,this.platformOptions,"".concat(o," max items reached"),!1);if(xr(e,i,this.perMinCounter))return Er(this.platform,this.platformOptions,"".concat(i," items per minute reached"),!1);this.counter+=1,this.perMinCounter+=1;var a=!xr(e,o,this.counter),s=a,u=a&&!xr(e,i,this.perMinCounter);return Er(this.platform,this.platformOptions,null,u,o,i,s)}},{key:"setPlatformOptions",value:function(t,e){this.platform=t,this.platformOptions=e}}])}();function xr(t,e,r){return!t.ignoreRateLimit&&e>=1&&r>e}function Er(t,e,r,n,o,i,a){var s=null,u=r?new Error(r):null;return u||n||(s=function(t,e,r,n,o){var i=e.environment||e.payload&&e.payload.environment,a=o?"item per minute limit reached, ignoring errors until timeout":"maxItems has been hit, ignoring errors until reset.",s={body:{message:{body:a,extra:{maxItems:r,itemsPerMinute:n}}},language:"javascript",environment:i,notifier:{version:e.notifier&&e.notifier.version||e.version}};"browser"===t?(s.platform="browser",s.framework="browser-js",s.notifier.name="rollbar-browser-js"):"server"===t?(s.framework=e.framework||"node-js",s.notifier.name=e.notifier.name):"react-native"===t&&(s.framework=e.framework||"react-native",s.notifier.name=e.notifier.name);return s}(t,e,o,i,a)),{error:u,shouldSend:n,payload:s}}!function(t,e,r){(e=_r(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}(Or,"globalSettings",{startTime:Date.now(),maxItems:void 0,itemsPerMinute:void 0});var jr=Or;function Ir(t,e,r,n,o,i,a){this.options=R(t),this.logger=r,Ir.rateLimiter.configureGlobal(this.options),Ir.rateLimiter.setPlatformOptions(a,this.options),this.api=e,this.queue=new wr(Ir.rateLimiter,e,r,this.options,i),this.tracing=o;var s=this.options.tracer||null;Pr(s)?(this.tracer=s,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier=new pr(this.queue,this.options),this.telemeter=n,Tr(t),this.lastError=null,this.lastErrorHash="none"}function Tr(t){t.stackTraceLimit&&(Error.stackTraceLimit=t.stackTraceLimit)}function Pr(t){if(!t)return!1;if(!t.scope||"function"!=typeof t.scope)return!1;var e=t.scope();return!(!e||!e.active||"function"!=typeof e.active)}Ir.rateLimiter=new jr({maxItems:0,itemsPerMinute:60}),Ir.prototype.global=function(t){return Ir.rateLimiter.configureGlobal(t),this},Ir.prototype.configure=function(t,e){var r=this.options,n={};e&&(n={payload:e}),this.options=R(r,t,n);var o=this.options.tracer||null;return Pr(o)?(this.tracer=o,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier&&this.notifier.configure(this.options),this.telemeter&&this.telemeter.configure(this.options),Tr(t),this.global(this.options),Pr(t.tracer)&&(this.tracer=t.tracer),this},Ir.prototype.log=function(t){var e=this._defaultLogLevel();return this._log(e,t)},Ir.prototype.debug=function(t){this._log("debug",t)},Ir.prototype.info=function(t){this._log("info",t)},Ir.prototype.warn=function(t){this._log("warning",t)},Ir.prototype.warning=function(t){this._log("warning",t)},Ir.prototype.error=function(t){this._log("error",t)},Ir.prototype.critical=function(t){this._log("critical",t)},Ir.prototype.wait=function(t){this.queue.wait(t)},Ir.prototype.captureEvent=function(t,e,r){return this.telemeter&&this.telemeter.captureEvent(t,e,r)},Ir.prototype.captureDomContentLoaded=function(t){return this.telemeter&&this.telemeter.captureDomContentLoaded(t)},Ir.prototype.captureLoad=function(t){return this.telemeter&&this.telemeter.captureLoad(t)},Ir.prototype.buildJsonPayload=function(t){return this.api.buildJsonPayload(t)},Ir.prototype.sendJsonPayload=function(t){this.api.postJsonPayload(t)},Ir.prototype._log=function(t,e){var r;if(e.callback&&(r=e.callback,delete e.callback),this.options.ignoreDuplicateErrors&&this._sameAsLastError(e)){if(r){var n=new Error("ignored identical item");n.item=e,r(n)}}else try{e.level=e.level||t,this._addItemAttributes(e),this._addTracingInfo(e);var o=this.telemeter;o&&(o._captureRollbarItem(e),e.telemetryEvents=o.copyEvents()||[]),this.notifier.log(e,r)}catch(t){r&&r(t),this.logger.error(t)}},Ir.prototype._addItemAttributes=function(t){var e,r,n=null===(e=this.tracing)||void 0===e?void 0:e.getSpan(),o=[{key:"session_id",value:null===(r=this.tracing)||void 0===r?void 0:r.sessionId},{key:"span_id",value:null==n?void 0:n.spanId},{key:"trace_id",value:null==n?void 0:n.traceId}];t._isUncaught&&o.push({key:"is_uncaught",value:"true"}),j(t.data,o),null==n||n.addEvent("rollbar.occurrence",[{key:"rollbar.occurrence.uuid",value:t.uuid}])},Ir.prototype._defaultLogLevel=function(){return this.options.logLevel||"debug"},Ir.prototype._sameAsLastError=function(t){if(!t._isUncaught)return!1;var e=function(t){var e=t.message||"",r=(t.err||{}).stack||String(t.err);return e+"::"+r}(t);return this.lastErrorHash===e||(this.lastError=t.err,this.lastErrorHash=e,!1)},Ir.prototype._addTracingInfo=function(t){if(this.tracer){var e=this.tracer.scope().active();if(function(t){if(!t||!t.context||"function"!=typeof t.context)return!1;var e=t.context();if(!e||!e.toSpanId||!e.toTraceId||"function"!=typeof e.toSpanId||"function"!=typeof e.toTraceId)return!1;return!0}(e)){e.setTag("rollbar.error_uuid",t.uuid),e.setTag("rollbar.has_error",!0),e.setTag("error",!0),e.setTag("rollbar.item_url","https://rollbar.com/item/uuid/?uuid=".concat(t.uuid)),e.setTag("rollbar.occurrence_url","https://rollbar.com/occurrence/uuid/?uuid=".concat(t.uuid));var r=e.context().toSpanId(),n=e.context().toTraceId();t.custom?(t.custom.opentracing_span_id=r,t.custom.opentracing_trace_id=n):t.custom={opentracing_span_id:r,opentracing_trace_id:n}}}};var Ar=Ir;function Rr(t,e,r){t._isUncaught&&(t.data._isUncaught=!0),t._originalArgs&&(t.data._originalArgs=t._originalArgs),r(null,t)}function Cr(t,e,r){var n=e.payload||{};n.body&&delete n.body,t.data=R(t.data,n),r(null,t)}function Lr(t,e,r){t.telemetryEvents&&T(t,"data.body.telemetry",t.telemetryEvents),r(null,t)}function qr(t,e,r){if(t.message){var n="data.body.trace_chain.0",o=I(t,n);if(o||(o=I(t,n="data.body.trace")),o){if(!o.exception||!o.exception.description)return T(t,n+".exception.description",t.message),void r(null,t);T(t,n+".extra",R(I(t,n+".extra")||{},{message:t.message}))}r(null,t)}else r(null,t)}function Nr(t){return function(e,r,n){var o,i=R(e),s=null;try{u(r.transform)&&(s=r.transform(i.data,e))}catch(o){return r.transform=null,t.error("Error while calling custom transform() function. Removing custom transform().",o),void n(null,e)}l(o=s)&&a(o.then,"function")?s.then(function(t){t&&(i.data=t),n(null,i)},function(t){n(t,e)}):n(null,i)}}function Dr(t,e,r){if(!e.sendConfig)return r(null,t);var n=I(t,"data.custom")||{};n._rollbarConfig=e,t.data.custom=n,r(null,t)}function Mr(t,e){u(t[e])&&(t[e]=t[e].toString())}function Ur(t,e,r){var n=e._configuredOptions;Mr(n,"transform"),Mr(n,"checkIgnore"),Mr(n,"onSendCallback"),delete n.accessToken,t.data.notifier.configured_options=n,r(null,t)}function Hr(t,e,r){var n=R(t.notifier.client.notifier.diagnostic,t.diagnostic);if(I(t,"err._isAnonymous")&&(n.is_anonymous=!0),t._isUncaught&&(n.is_uncaught=t._isUncaught),t.err)try{n.raw_error={message:t.err.message,name:t.err.name,constructor_name:t.err.constructor&&t.err.constructor.name,filename:t.err.fileName,line:t.err.lineNumber,column:t.err.columnNumber,stack:t.err.stack}}catch(t){n.raw_error={failed:String(t)}}t.data.notifier.diagnostic=R(t.data.notifier.diagnostic,n),r(null,t)}function Fr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:null)||t.stackInfo).stack;return e&&0===e.length&&t._unhandledStackInfo&&t._unhandledStackInfo.stack&&(e=t._unhandledStackInfo.stack),e}function Kr(t,e,r){var n=t&&t.data.description,o=t&&t.custom,i=Qr(t,e),a=rr.guessErrorClass(e.message),s={exception:{class:Yr(e,a[0],r),message:a[1]}};if(n&&(s.exception.description=n),i){var u,l,c,f,p,d,h,v;for(0===i.length&&(s.exception.stack=e.rawStack,s.exception.raw=String(e.rawException)),s.frames=[],h=0;ht.length)&&(e=t.length);for(var r=0,n=Array(e);r=400&&t.status<600}(e)){if(403===e.status){var o=t.value&&t.value.message;At.error(o)}u(new Error(String(e.status)))}else{u(sn("XHR response had no status code (likely connection failure)"))}}}catch(t){var i;i=t&&t.stack?t:new Error(t),u(i)}};if(e.open(o,n,!0),e.setRequestHeader){e.setRequestHeader("Content-Type","application/json"),e.setRequestHeader("X-Rollbar-Access-Token",r);for(var d=0,h=Object.entries(null!=s?s:{});ds)?(a=e.path,e.path=a.substring(0,s)+i+"&"+a.substring(s+1)):-1!==u?(a=e.path,e.path=a.substring(0,u)+i+a.substring(u)):e.path=e.path+i}(t,e,r);var i=m(e);this._makeZoneRequest({accessToken:t,url:i,method:"GET",callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},ln.prototype.post=function(t){var e,r=t.accessToken,n=t.options,o=t.payload,i=t.headers,a=t.callback,s=t.requestFactory;if(a&&u(a)||(a=function(){}),!o)return a(new Error("Cannot send empty request"));if((e=this.truncation&&o.body?this.truncation.truncate(o):b(o)).error)return a(e.error);var l=m(n);this._makeZoneRequest({accessToken:r,url:l,method:"POST",payload:e.value,headers:i,callback:a,requestFactory:s,timeout:n.timeout,transport:n.transport})},ln.prototype.postJsonPayload=function(t,e,r,n,o){n&&u(n)||(n=function(){});var i=m(e);this._makeZoneRequest({accessToken:t,url:i,method:"POST",payload:r,callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},ln.prototype._makeZoneRequest=function(){var t=this,e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=e&&e.Zone&&e.Zone.root,n=Array.prototype.slice.call(arguments);r?r.run(function(){t._makeRequest.apply(void 0,n)}):this._makeRequest.apply(void 0,n)},ln.prototype._makeRequest=function(t){var e=t.payload,r=t.callback,n=t.transport;if("undefined"!=typeof RollbarProxy)return function(t,e){(new RollbarProxy).sendJsonPayload(t,function(t){},function(t){e(new Error(t))})}(e,r);"fetch"===n?nn(t):un(t)};var cn,fn=ln;function pn(t){var e,r,n={protocol:null,auth:null,host:null,path:null,hash:null,href:t,hostname:null,port:null,pathname:null,search:null,query:null};if(-1!==(e=t.indexOf("//"))?(n.protocol=t.substring(0,e),r=e+2):r=0,-1!==(e=t.indexOf("@",r))&&(n.auth=t.substring(r,e),r=e+1),-1===(e=t.indexOf("/",r))){if(-1===(e=t.indexOf("?",r)))return-1===(e=t.indexOf("#",r))?n.host=t.substring(r):(n.host=t.substring(r,e),n.hash=t.substring(e)),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),n;n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e}else n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e;if(-1===(e=t.indexOf("#",r))?n.path=t.substring(r):(n.path=t.substring(r,e),n.hash=t.substring(e)),n.path){var o=n.path.split("?");n.pathname=o[0],n.query=o[1],n.search=n.query?"?"+n.query:null}return n}function dn(t){return dn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dn(t)}function hn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function yn(t){for(var e=1;e0&&T(e,"data.request",o),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t)return n(null,e);var o=t.navigator||{},i=t.screen||{};T(e,"data.client",{runtime_ms:e.timestamp-t._rollbarStartTime,timestamp:Math.round(e.timestamp/1e3),javascript:{browser:o.userAgent,language:o.language,cookie_enabled:o.cookieEnabled,screen:{width:i.width,height:i.height}}}),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t||!t.navigator)return n(null,e);for(var o,i=[],a=t.navigator.plugins||[],s=0,u=a.length;s=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Tn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;i--){if(e=An(t[i]),r=o+3*n.length+e.length,i=83){n.unshift("...");break}n.unshift(e),o+=e.length}return n.join(" > ")}(function(t){for(var e,r=[],n=0;t&&n<5&&(e=Rn(t))&&"html"!==e.tagName;n++)r.unshift(e),t=t.parentNode;return r}(t))}function An(t){if(!t||!t.tagName)return"";var e=[t.tagName];t.id&&e.push("#"+t.id),t.classes&&e.push("."+t.classes.join("."));var r,n=In(t.attributes);try{for(n.s();!(r=n.n()).done;){var o=r.value;e.push("["+o.key+'="'+o.value+'"]')}}catch(t){n.e(t)}finally{n.f()}return e.join("")}function Rn(t){if(!t||!t.tagName)return null;var e,r={};r.tagName=t.tagName.toLowerCase(),t.id&&(r.id=t.id),(e=t.className)&&"string"==typeof e&&(r.classes=e.split(/\s+/));r.attributes=[];for(var n=0,o=["type","name","title","alt"];n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Mn(t,e){if(t){if("string"==typeof t)return Un(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Un(t,e):void 0}}function Un(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r3)){var e=P();o.__rollbar_xhr.end_time_ms=e;var r=null;if(o.__rollbar_xhr.response_content_type=o.getResponseHeader("Content-Type"),t.autoInstrument.networkResponseHeaders){var i=t.autoInstrument.networkResponseHeaders;r={};try{var a;if(!0===i){var s=o.getAllResponseHeaders();if(s){var u,l,c,f=Dn(s.trim().split(/[\r\n]+/));try{for(f.s();!(c=f.n()).done;){a=(u=c.value.split(": ")).shift(),l=u.join(": "),r[a]=l}}catch(t){f.e(t)}finally{f.f()}}}else{var p,d=Dn(i);try{for(d.s();!(p=d.n()).done;){var h=p.value;r[h]=o.getResponseHeader(h)}}catch(t){d.e(t)}finally{d.f()}}}catch(t){}}var y=null;if(t.autoInstrument.networkResponseBody)try{y=o.responseText}catch(t){}var v=null;(y||r)&&(v={},y&&(t.isJsonContentType(o.__rollbar_xhr.response_content_type)?v.body=t.scrubJson(y):v.body=y),r&&(v.headers=r)),v&&(o.__rollbar_xhr.response=v);try{var m=o.status;m=1223===m?204:m,o.__rollbar_xhr.status_code=m,t.addOtelNetworkResponse(o.__rollbar_event,e,m),o.__rollbar_event.level=t.telemeter.levelFromStatus(m),t.errorOnHttpStatus(o.__rollbar_xhr)}catch(t){}}}return e("onload",o),e("onerror",o),e("onprogress",o),"onreadystatechange"in o&&u(o.onreadystatechange)?jn(o,"onreadystatechange",function(e){return t.rollbar.wrap(e,void 0,i)}):o.onreadystatechange=i,o.__rollbar_xhr&&t.trackHttpErrors()&&(o.__rollbar_xhr.stack=(new Error).stack),r.apply(this,arguments)}},this.replacements,"network")}"fetch"in this._window&&jn(this._window,"fetch",function(e){return function(r,n){var o,i=Array.prototype.slice.call(arguments),s=i[0],u="GET",l=Bn(s);a(s,"string")||l?o=l?s.toString():s:s&&(o=s.url,s.method&&(u=s.method)),i[1]&&i[1].method&&(u=i[1].method);var c={method:u,url:o,status_code:null,start_time_ms:P(),end_time_ms:null};if(i[1]&&i[1].headers){var f=En(i[1].headers);c.request_content_type=f.get("Content-Type"),t.autoInstrument.networkRequestHeaders&&(c.request_headers=t.fetchHeaders(f,t.autoInstrument.networkRequestHeaders))}t.autoInstrument.networkRequestBody&&(i[1]&&i[1].body?c.request=i[1].body:i[0]&&!a(i[0],"string")&&i[0].body&&(c.request=i[0].body));var p=t.captureNetwork(c,"fetch",void 0);return t.trackHttpErrors()&&(c.stack=(new Error).stack),e.apply(this,i).then(function(e){var r=P();c.end_time_ms=r,c.status_code=e.status,t.addOtelNetworkResponse(p,r,e.status),c.response_content_type=e.headers.get("Content-Type");var n=null;t.autoInstrument.networkResponseHeaders&&(n=t.fetchHeaders(e.headers,t.autoInstrument.networkResponseHeaders));var o=null;return t.autoInstrument.networkResponseBody&&"function"==typeof e.text&&(o=e.clone().text()),(n||o)&&(c.response={},o&&("function"==typeof o.then?o.then(function(e){e&&t.isJsonContentType(c.response_content_type)?c.response.body=t.scrubJson(e):c.response.body=e}):c.response.body=o),n&&(c.response.headers=n)),t.errorOnHttpStatus(c),e})}},this.replacements,"network")}},{key:"captureNetwork",value:function(t,e,r){return t.request&&this.isJsonContentType(t.request_content_type)&&(t.request=this.scrubJson(t.request)),this.telemeter.captureNetwork(t,e,r)}},{key:"isJsonContentType",value:function(t){return!!(t&&a(t,"string")&&t.toLowerCase().includes("json"))}},{key:"addOtelNetworkResponse",value:function(t,e,r){t.otelAttributes&&(t.otelAttributes["response.timeUnixNano"]=(1e6*e).toString(),t.otelAttributes.statusCode=r)}},{key:"scrubJson",value:function(t){return JSON.stringify(U(JSON.parse(t),this.options.scrubFields))}},{key:"fetchHeaders",value:function(t,e){var r={};try{if(!0===e){if("function"==typeof t.entries)for(var n=t.entries(),o=n.next();!o.done;)r[o.value[0]]=o.value[1],o=n.next()}else{var i,a=Dn(e);try{for(a.s();!(i=a.n()).done;){var s=i.value;r[s]=t.get(s)}}catch(t){a.e(t)}finally{a.f()}}}catch(t){}return r}},{key:"trackHttpErrors",value:function(){return this.autoInstrument.networkErrorOnHttp5xx||this.autoInstrument.networkErrorOnHttp4xx||this.autoInstrument.networkErrorOnHttp0}},{key:"errorOnHttpStatus",value:function(t){var e=t.status_code;if(e>=500&&this.autoInstrument.networkErrorOnHttp5xx||e>=400&&this.autoInstrument.networkErrorOnHttp4xx||0===e&&this.autoInstrument.networkErrorOnHttp0){var r=new Error("HTTP request failed with Status "+e);r.stack=t.stack,this.rollbar.error(r,{skipFrames:1})}}},{key:"deinstrumentConsole",value:function(){for(var t;this.replacements.log.length;)t=this.replacements.log.shift(),this._window.console[t[0]]=t[1]}},{key:"instrumentConsole",value:function(){var t;if(null!==(t=this._window)&&void 0!==t&&null!==(t=t.console)&&void 0!==t&&t.log){var e=this,r=this._window.console;try{for(var n=0,o=["debug","info","warn","error","log"];n500&&(n=n.substr(0,497)+"...");break;case"null":n="null";break;case"undefined":n="undefined";break;case"symbol":n=n.toString()}o.push(n)}return o.join(" ")}(t);e.telemeter.captureLog(r,i,null,P()),n&&Function.prototype.apply.call(n,o,t)},e.replacements.log.push([t,n])}}},{key:"deinstrumentDom",value:function(){this.removeListeners("dom")}},{key:"instrumentDom",value:function(){var t=this;this.addListener("dom",this._window,["click","dblclick","contextmenu"],function(e){return t.handleEvent("click",e)}),this.addListener("dom",this._window,["dragstart","dragend","dragenter","dragleave","drop"],function(e){return t.handleEvent("dragdrop",e)}),this.addListener("dom",this._window,["blur","focus"],function(e){return t.handleEvent("focus",e)}),this.addListener("dom",this._window,["submit","invalid"],function(e){return t.handleEvent("form",e)}),this.addListener("dom",this._window,["input","change"],function(e){return t.handleEvent("input",e)}),this.addListener("dom",this._window,["resize"],function(e){return t.handleEvent("resize",e)}),this.addListener("dom",this._document,["DOMContentLoaded"],function(e){return t.handleEvent("contentLoaded",e)})}},{key:"handleEvent",value:function(t,e){try{return{click:this.handleClick,dragdrop:this.handleDrag,focus:this.handleFocus,form:this.handleForm,input:this.handleInput,resize:this.handleResize,contentLoaded:this.handleContentLoaded}[t].call(this,e)}catch(r){At.log("".concat(t," handler error"),e,r,r.stack)}}},{key:"handleContentLoaded",value:function(t){this.rollbar.triggerReplay({type:"navigation",path:new URL(this._location.href).pathname})}},{key:"handleClick",value:function(t){var e,r=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase();["input","select","textarea"].includes(r)||this.telemeter.captureClick({type:t.type,isSynthetic:!t.isTrusted,element:Pn(t.target),timestamp:P()})}},{key:"handleFocus",value:function(t){var e,r=t.type,n=null!==(e=t.target)&&void 0!==e&&e.window?"window":Pn(t.target);this.telemeter.captureFocus({type:r,isSynthetic:!t.isTrusted,element:n,timestamp:P()})}},{key:"handleForm",value:function(t){}},{key:"handleResize",value:function(t){var e=window.screen.width/window.innerWidth;this.telemeter.captureResize({type:t.type,isSynthetic:!t.isTrusted,width:window.innerWidth,height:window.innerHeight,textZoomRatio:e,timestamp:P()})}},{key:"handleDrag",value:function(t){var e,r,n,o,i,a,s=t.type;if("drop"===s){e=[],r=[];var u,l=Dn([].concat(Ln(t.dataTransfer.files),Ln(t.dataTransfer.items)));try{for(l.s();!(u=l.n()).done;){var c=u.value;c.kind&&c.type&&(e.push(c.kind),r.push(c.type))}}catch(t){l.e(t)}finally{l.f()}}["drop","dragstart"].includes(s)&&(n=null===(i=t.dataTransfer)||void 0===i?void 0:i.dropEffect,o=null===(a=t.dataTransfer)||void 0===a?void 0:a.effectAllowed);this.telemeter.captureDragDrop({type:s,isSynthetic:!t.isTrusted,element:Pn(t.target),dropEffect:n,effectAllowed:o,kinds:JSON.stringify(e),mediaTypes:JSON.stringify(r),timestamp:P()})}},{key:"scrubInputValue",value:function(t,e,r,n){var o="******";if("password"===n)return o;if(this.scrubTelemetryInputs)return o;var i=Rn(e);if(this.telemetryScrubber){if(this.telemetryScrubber(i))return o}else if(this.defaultValueScrubber(i))return o;return function(t,e,r){try{var n,o=In(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;if("string"==typeof i){if(t.classList.contains(i))return!0}else{var a,s=In(t.classList);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(i.test(u))return!0}}catch(t){s.e(t)}finally{s.f()}}}}catch(t){o.e(t)}finally{o.f()}var l,c=In(r);try{for(c.s();!(l=c.n()).done;){var f=l.value;if(t.matches(f))return!0}}catch(t){c.e(t)}finally{c.f()}}catch(t){}return!1}(e,this.scrubClasses,this.scrubSelectors)?o:this.maskInputOptions[r.toLowerCase()]||this.maskInputOptions[n]?this.maskInputFn?this.maskInputFn(t,e):o:t}},{key:"handleInput",value:function(t){var e,r,n,o,i=t.type,a=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase(),s=null===(r=t.target)||void 0===r?void 0:r.value,u=(null===(n=t.target)||void 0===n||null===(n=n.attributes)||void 0===n||null===(n=n.type)||void 0===n?void 0:n.value)||(null===(o=t.target)||void 0===o?void 0:o.type);switch(void 0!==s&&(s=this.scrubInputValue(s,t.target,a,u)),i){case"input":if(["radio","checkbox"].includes(u))return;["select","textarea"].includes(a)&&(u=a);break;case"change":if(!["radio","checkbox"].includes(u))return;var l;if("checkbox"===u)s=null===(l=t.target)||void 0===l?void 0:l.checked}this.telemeter.captureInput({type:u,isSynthetic:!t.isTrusted,element:Pn(t.target),value:s,timestamp:P()})}},{key:"deinstrumentNavigation",value:function(){var t=this._window.chrome;!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState&&Fn(this.replacements,"navigation")}},{key:"instrumentNavigation",value:function(){var t=this._window.chrome;if(!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState){var e=this;jn(this._window,"onpopstate",function(t){return function(){var r=e._location.href;e.handleUrlChange(e._lastHref,r),t&&t.apply(this,arguments)}},this.replacements,"navigation"),jn(this._window.history,"pushState",function(t){return function(){var r=arguments.length>2?arguments[2]:void 0;return r&&e.handleUrlChange(e._lastHref,String(r)),t.apply(this,arguments)}},this.replacements,"navigation")}}},{key:"handleUrlChange",value:function(t,e){var r=pn(this._location.href),n=pn(e),o=pn(t);this._lastHref=e,r.protocol===n.protocol&&r.host===n.host&&(e=n.path+(n.hash||"")),r.protocol===o.protocol&&r.host===o.host&&(t=o.path+(o.hash||"")),this.telemeter.captureNavigation(t,e,null,P()),this.rollbar.triggerReplay({type:"navigation",path:e})}},{key:"instrumentConnectivity",value:function(){var t=this;this.addListener("connectivity",this._window,["online","offline"],function(e){return t.handleConnectivity(e)})}},{key:"handleConnectivity",value:function(t){var e=t.type;this.telemeter.captureConnectivityChange({type:e,isSynthetic:!t.isTrusted,timestamp:P()})}},{key:"handleCspEvent",value:function(t){var e="Security Policy Violation: blockedURI: "+t.blockedURI+", violatedDirective: "+t.violatedDirective+", effectiveDirective: "+t.effectiveDirective+", ";t.sourceFile&&(e+="location: "+t.sourceFile+", line: "+t.lineNumber+", col: "+t.columnNumber+", "),e+="originalPolicy: "+t.originalPolicy,this.telemeter.captureLog(e,"error",null,P()),this.handleCspError(e)}},{key:"handleCspError",value:function(t){this.autoInstrument.errorOnContentSecurityPolicy&&this.rollbar.error(t)}},{key:"deinstrumentContentSecurityPolicy",value:function(){this.removeListeners("contentsecuritypolicy")}},{key:"instrumentContentSecurityPolicy",value:function(){if("addEventListener"in this._document){var t=this.handleCspEvent.bind(this);this.addListener("contentsecuritypolicy",this._document,["securitypolicyviolation"],t)}}},{key:"addListener",value:function(t,e,r,n){var o=this;if(e.addEventListener){var i,a=Dn(r);try{var s=function(){var r=i.value,a={capture:!0,passive:!0};e.addEventListener(r,n,a,!0),o.eventRemovers[t].push(function(){e.removeEventListener(r,n,a)})};for(a.s();!(i=a.n()).done;)s()}catch(t){a.e(t)}finally{a.f()}}}},{key:"removeListeners",value:function(t){for(;this.eventRemovers[t].length;)this.eventRemovers[t].shift()()}}])}();function Bn(t){return"undefined"!=typeof URL&&t instanceof URL}var Wn=Vn;function $n(t,e,r){if(c(e,"addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var o=function(e,r,o){n.call(this,e,t.wrap(r),o)};o._rollbarOldAdd=n,o.belongsToShim=r,e.addEventListener=o;for(var i=e.removeEventListener;i._rollbarOldRemove&&i.belongsToShim;)i=i._rollbarOldRemove;var a=function(t,e,r){i.call(this,t,e&&e._rollbar_wrapped||e,r)};a._rollbarOldRemove=i,a.belongsToShim=r,e.removeEventListener=a}}var Gn=function(t,e,r){if(t){var n,o,i="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(",");for(n=0;n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(u||(u=S({})),u.extraArgs=S(p));var g,w={message:i,err:a,custom:u,timestamp:P(),callback:l,notifier:r,diagnostic:{},uuid:(g=P(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(g+16*Math.random())%16|0;return g=Math.floor(g/16),("x"===t?e:7&e|8).toString(16)}))};return w.data=w.data||{},function(t,e){e&&void 0!==e.level&&(t.level=e.level,delete e.level);e&&void 0!==e.skipFrames&&(t.skipFrames=e.skipFrames,delete e.skipFrames)}(w,u),n&&c&&(w.request=c),o&&(w.lambdaContext=o),w._originalArgs=t,w.diagnostic.original_arg_types=d,w}var O=["log","network","dom","navigation","error","manual"],x=["critical","error","warning","info","debug"];function E(t,e){var r,o=n(t);try{for(o.s();!(r=o.n()).done;){if(r.value===e)return!0}}catch(t){o.e(t)}finally{o.f()}return!1}function j(t,e){t.attributes=t.attributes||[];var r,o=n(e);try{for(o.s();!(r=o.n()).done;){var i=r.value;void 0!==i.value&&t.attributes.push(i)}}catch(t){o.e(t)}finally{o.f()}}function I(t,e){if(t){var r=e.split("."),n=t;try{for(var o=0,i=r.length;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function M(t,e){if(t){if("string"==typeof t)return U(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?U(t,e):void 0}}function U(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rn&&(o=this.queue.length-n),this.maxQueueSize=n,this.queue.splice(0,o)}},{key:"copyEvents",value:function(){var t=Array.prototype.slice.call(this.queue,0);if(u(this.options.filterTelemetry))try{for(var e=t.length;e--;)this.options.filterTelemetry(t[e])&&t.splice(e,1)}catch(t){this.options.filterTelemetry=null}return t=(t=t.filter(function(t){return"connectivity"!==t.type})).map(function(t){t.otelAttributes;var e=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.telemetrySpan&&(this.telemetrySpan.end(t),this.telemetrySpan=this.tracing.startSpan("rollbar-telemetry",{}))}},{key:"capture",value:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a={level:K(t,r),type:t,timestamp_ms:o||P(),body:e,source:"client"};n&&(a.uuid=n),i&&(a.otelAttributes=i);try{if(u(this.options.filterTelemetry)&&this.options.filterTelemetry(a))return!1}catch(t){this.options.filterTelemetry=null}return this.push(a),a}},{key:"captureEvent",value:function(t,e,r,n){return this.capture(t,e,r,n)}},{key:"captureError",value:function(t,e,r,n){var o,i=t.message||String(t),a={message:i};t.stack&&(a.stack=t.stack);var s={message:i,level:e,type:"error",uuid:r};return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-occurrence-event",s,Z(n)),this.capture("error",a,e,r,n,s)}},{key:"captureLog",value:function(t,e,r,n){var o,i=r?"rollbar-occurrence-event":"rollbar-log-event",a=W({message:t,level:e},r?{type:"message",uuid:r}:{});return null===(o=this.telemetrySpan)||void 0===o||o.addEvent(i,a,Z(n)),this.capture("log",{message:t},e,r,n,a)}},{key:"captureNetwork",value:function(t,e,r,n){var o,i,a;e=e||"xhr",t.subtype=t.subtype||e,n&&(t.request=n);var s=this.levelFromStatus(t.status_code),u=1e6*(t.end_time_ms||0),l={type:t.subtype,method:t.method,url:t.url,statusCode:t.status_code,"request.headers":JSON.stringify(t.request_headers||{}),"response.headers":JSON.stringify((null===(o=t.response)||void 0===o?void 0:o.headers)||{}),"response.timeUnixNano":u.toString()},c=t.request,f=null===(i=t.response)||void 0===i?void 0:i.body;return c&&(l["request.body"]=JSON.stringify(c)),f&&(l["response.body"]=JSON.stringify(f)),null===(a=this.telemetrySpan)||void 0===a||a.addEvent("rollbar-network-event",l,Z(t.start_time_ms)),this.capture("network",t,s,r,t.start_time_ms,l)}},{key:"levelFromStatus",value:function(t){return t>=200&&t<400?"info":0===t||t>=400?"error":"info"}},{key:"captureDom",value:function(t,e,r,n,o){var i={subtype:t,element:e};return void 0!==r&&(i.value=r),void 0!==n&&(i.checked=n),this.capture("dom",i,"info",o)}},{key:"captureInput",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.value,a=t.timestamp,s="rollbar-input-event",u={type:s,subtype:r,element:o,value:i},l={type:r,isSynthetic:n,element:o,value:i,endTimeUnixNano:Z(a)},c=this._getRepeatedEvent(s,l);return c?this._updateRepeatedEvent(c,l,a):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(s,l,Z(a)),this.capture("dom",u,"info",null,a,l))}},{key:"captureClick",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-click-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o,endTimeUnixNano:Z(i)},l=this._getRepeatedEvent(a,u);return l?this._updateRepeatedEvent(l,u,i):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,Z(i)),this.capture("dom",s,"info",null,i,u))}},{key:"_getRepeatedEvent",value:function(t,e){var r=this._lastEvent(this.queue);if(r&&r.body.type===t&&r.otelAttributes.target===e.target)return r}},{key:"_updateRepeatedEvent",value:function(t,e,r){var n=Math.max(r-t.timestamp_ms,1);t.body.value=e.value,t.otelAttributes.value=e.value,t.otelAttributes.height=e.height,t.otelAttributes.width=e.width,t.otelAttributes.textZoomRatio=e.textZoomRatio,t.otelAttributes.endTimeUnixNano=Z(r),t.otelAttributes.durationUnixNano=Z(n),t.otelAttributes.count=(t.otelAttributes.count||1)+1,t.otelAttributes.rate=t.otelAttributes.count/(n/1e3)}},{key:"_lastEvent",value:function(t){return t.length>0?t[t.length-1]:null}},{key:"captureFocus",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-focus-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,Z(i)),this.capture("dom",s,"info",null,i,u)}},{key:"captureResize",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.width,i=t.height,a=t.textZoomRatio,s=t.timestamp,u="rollbar-resize-event",l={type:u,subtype:r,width:o,height:i,textZoomRatio:a},c={type:r,isSynthetic:n,width:o,height:i,textZoomRatio:a},f=this._getRepeatedEvent(u,c);return f?this._updateRepeatedEvent(f,c,s):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(u,c,Z(s)),this.capture("dom",l,"info",null,s,c))}},{key:"captureDragDrop",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.dropEffect,a=t.effectAllowed,s=t.kinds,u=t.mediaTypes,l=t.timestamp,c="rollbar-dragdrop-event",f={type:c,subtype:r,isSynthetic:n},p={type:r,isSynthetic:n};return"dragstart"===r&&(f=W(W({},f),{},{element:o,dropEffect:i,effectAllowed:a}),p=W(W({},p),{},{element:o,dropEffect:i,effectAllowed:a})),"drop"===r&&(f=W(W({},f),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u}),p=W(W({},p),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u})),null===(e=this.telemetrySpan)||void 0===e||e.addEvent(c,p,Z(l)),this.capture("dom",f,"info",null,l,p)}},{key:"captureNavigation",value:function(t,e,r,n){var o;return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-navigation-event",{"previous.url.full":t,"url.full":e},Z(n)),this.capture("navigation",{from:t,to:e},"info",r,n)}},{key:"captureDomContentLoaded",value:function(t){return this.capture("navigation",{subtype:"DOMContentLoaded"},"info",void 0,t&&t.getTime())}},{key:"captureLoad",value:function(t){return this.capture("navigation",{subtype:"load"},"info",void 0,t&&t.getTime())}},{key:"captureConnectivityChange",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.timestamp,i="rollbar-connectivity-event",a={type:i,subtype:r},s={type:r,isSynthetic:n};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(i,s,Z(o)),this.capture("connectivity",a,"info",null,o,s)}},{key:"_captureRollbarItem",value:function(t){if(this.options.includeItemsInTelemetry)return t.err?this.captureError(t.err,t.level,t.uuid,t.timestamp):t.message?this.captureLog(t.message,t.level,t.uuid,t.timestamp):t.custom?this.capture("log",t.custom,t.level,t.uuid,t.timestamp):void 0}},{key:"push",value:function(t){this.queue.push(t),this.queue.length>this.maxQueueSize&&this.queue.shift()}}],e&&G(t.prototype,e),r&&G(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function K(t,e){if(e)return e;return{error:"error",manual:"info"}[t]||"info"}var Y=Q;function tt(t){return tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tt(t)}function et(t,e){for(var r=0;r3?o-3:0),a=3;a0&&void 0!==arguments[0]&&arguments[0]?ct(lt(performance.timeOrigin),lt(performance.now())):lt(Date.now())},isHrTime:function(t){return Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]}};function pt(t){return pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pt(t)}function dt(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||yt(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ht(t){return function(t){if(Array.isArray(t))return vt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||yt(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function yt(t,e){if(t){if("string"==typeof t)return vt(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?vt(t,e):void 0}}function vt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.api=e,this.options=r},e=[{key:"export",value:function(t,e){wt.push.apply(wt,ht(t))}},{key:"toPayload",value:function(){var t=this,e=wt.slice();if(wt.length=0,!e||!e.length)return{resourceSpans:[]};var r,n=e[0]&&e[0].resource||{},o=new Map,i=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=yt(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e);try{for(i.s();!(r=i.n()).done;){var a=r.value,s=a.instrumentationScope?"".concat(a.instrumentationScope.name,":").concat(a.instrumentationScope.version):"default:1.0.0";o.has(s)||o.set(s,{scope:a.instrumentationScope||{name:"default",version:"1.0.0",attributes:[]},spans:[]}),o.get(s).spans.push(this._transformSpan(a))}}catch(t){i.e(t)}finally{i.f()}return{resourceSpans:[{resource:this._transformResource(n),scopeSpans:Array.from(o.values()).map(function(e){return{scope:t._transformInstrumentationScope(e.scope),spans:e.spans}})}]}}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.api.postSpans(t,e)}},{key:"_transformSpan",value:function(t){var e,r=this,n=function(t){return Object.entries(t||{}).map(function(t){var e=dt(t,2),n=e[0],o=e[1];return{key:n,value:r._transformAnyValue(o)}})};return{traceId:t.spanContext.traceId,spanId:t.spanContext.spanId,parentSpanId:t.parentSpanId||"",name:t.name,kind:t.kind||1,startTimeUnixNano:ft.toNanos(t.startTime),endTimeUnixNano:ft.toNanos(t.endTime),attributes:n(t.attributes),events:(e=t.events,(e||[]).map(function(t){return{timeUnixNano:ft.toNanos(t.time),name:t.name,attributes:n(t.attributes)}}))}}},{key:"_transformResource",value:function(t){var e=this,r=t.attributes||{};return{attributes:Object.entries(r).map(function(t){var r=dt(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}},{key:"_transformInstrumentationScope",value:function(t){var e=this;return{name:t.name||"",version:t.version||"",attributes:(t.attributes||[]).map(function(t){return{key:t.key,value:e._transformAnyValue(t.value)}})}}},{key:"_transformAnyValue",value:function(t){var e=this;if(null==t)return{stringValue:""};var r=pt(t);return"string"===r?{stringValue:t}:"number"===r?Number.isInteger(t)?{intValue:t.toString()}:{doubleValue:t}:"boolean"===r?{boolValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(function(t){return e._transformAnyValue(t)})}}:"object"===r?{kvlistValue:{values:Object.entries(t).map(function(t){var r=dt(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}:{stringValue:String(t)}}}],e&&mt(t.prototype,e),r&&mt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),wt=[];var kt={gen:function(){var t=new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:16);return crypto.getRandomValues(t),Array.from(t,function(t){return t.toString(16).padStart(2,"0")}).join("")}};function St(t){return St="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},St(t)}function _t(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Ot(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.session||(this.getSession()||this.createSession(),this.initSessionAttributes(t)),this}},{key:"getSession",value:function(){try{var t=this.window.sessionStorage.getItem(It);if(!t)return null;this.session=JSON.parse(t)}catch(t){return null}return this}},{key:"createSession",value:function(){return this.session={id:kt.gen(),createdAt:Date.now()},this.setSession(this.session)}},{key:"setSession",value:function(t){var e=JSON.stringify(t);try{this.window.sessionStorage.setItem(It,e)}catch(t){return null}return this}},{key:"attributes",get:function(){return this._attributes}},{key:"setAttributes",value:function(t){return this._attributes=Ot(Ot({},this._attributes),t),this}},{key:"setUser",value:function(t){return this.setAttributes({"user.id":null==t?void 0:t.id,"user.email":null==t?void 0:t.email,"user.name":(null==t?void 0:t.name)||(null==t?void 0:t.username)}),this}},{key:"initSessionAttributes",value:function(t){var e,r,n;return this.setAttributes(Ot({"session.id":this.session.id,"browser.brands":null===(e=navigator.userAgentData)||void 0===e?void 0:e.brands,"browser.language":navigator.language,"browser.mobile":null===(r=navigator.userAgentData)||void 0===r?void 0:r.mobile,"browser.platform":null===(n=navigator.userAgentData)||void 0===n?void 0:n.platform,"client.address":"$remote_ip","rollbar.notifier.framework":"browser-js","user_agent.original":navigator.userAgent},t)),this}}],e&&xt(t.prototype,e),r&&xt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),Pt=function(){},At={debug:0,info:1,warn:2,error:3,disable:4},Rt={error:function(){for(var t=arguments.length,e=new Array(t),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Nt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.exporter=e,this.options=r,this.pendingSpans=new Map,this.transforms=[this.userTransform.bind(this)]},e=[{key:"addTransform",value:function(t){this.transforms.unshift(t)}},{key:"userTransform",value:function(t){this.options.transformSpan&&this.options.transformSpan({span:t})}},{key:"applyTransforms",value:function(t){var e,r=qt(this.transforms);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{n(t)}catch(t){Ct.error("Error running span transform callback",t)}}}catch(t){r.e(t)}finally{r.f()}}},{key:"onStart",value:function(t,e){this.pendingSpans.set(t.span.spanContext.spanId,t)}},{key:"onEnd",value:function(t){this.applyTransforms(t.span),this.exporter.export([t.export()]),this.pendingSpans.delete(t.span.spanContext.spanId)}}],e&&Dt(t.prototype,e),r&&Dt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Ht(t){return Ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ht(t)}function Ft(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Jt(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Jt(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Jt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;return this.span.ended||this.span.events.push({name:t,attributes:e,time:r||ft.now(),droppedAttributesCount:0}),this}},{key:"isRecording",value:function(){return!1===this.span.ended}},{key:"end",value:function(t,e){t&&this.setAttributes(t),this.span.endTime=e||ft.now(this.usePerformance),this.span.ended=!0,this.spanProcessor.onEnd(this)}},{key:"export",value:function(){return this.span}}],e&&Vt(t.prototype,e),r&&Vt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function $t(t){return $t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$t(t)}function Gt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function zt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.tracing.contextManager.active(),u=this.tracing.getSpan(s),l=null==u?void 0:u.spanContext(),c=kt.gen(8),f=null;l?(o=l.traceId,f=l.traceState,i=l.spanId):o=kt.gen(16);var p={traceId:o,spanId:c,traceFlags:0,traceState:f},d={attributes:zt(zt({},(null===(e=this.tracing.resource)||void 0===e?void 0:e.attributes)||{}),(null===(r=a.resource)||void 0===r?void 0:r.attributes)||{})};return new Wt({resource:d,scope:this.tracing.scope,session:null===(n=this.tracing.session)||void 0===n?void 0:n.session,context:s,spanContext:p,name:t,kind:0,parentSpanId:i,spanProcessor:this.spanProcessor,startTime:a.startTime,usePerformance:a.usePerformance})}}],e&&Zt(t.prototype,e),r&&Zt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Yt(t){return Yt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yt(t)}function te(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function ee(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:16;return kt.gen(t)}},{key:"createTracer",value:function(){this.contextManager=new ut,this.exporter=new gt(this.api,this.options),this.spanProcessor=new Ut(this.exporter,this.options.tracing),this.tracer=new Kt(this,this.spanProcessor)}},{key:"getTracer",value:function(){return this.tracer}},{key:"addSpanTransform",value:function(t){this.spanProcessor.addTransform(t)}},{key:"getSpan",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active()).getValue(ae)}},{key:"setSpan",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active(),e=arguments.length>1?arguments[1]:void 0;return t.setValue(ae,e)}},{key:"startSpan",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.contextManager.active();return this.tracer.startSpan(t,e,r)}},{key:"with",value:function(t,e,r){for(var n,o=arguments.length,i=new Array(o>3?o-3:0),a=3;a=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ce(t,e){if(t){if("string"==typeof t)return fe(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?fe(t,e):void 0}}function fe(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2*e?t.slice(0,e).concat(t.slice(r-e)):t}function he(t,e,r){r=void 0===r?30:r;var n,o=t.data.body;if(o.trace_chain){var i,a=le(o.trace_chain);try{for(a.s();!(i=a.n()).done;){var s=i.value;n=de(n=s.frames,r),s.frames=n}}catch(t){a.e(t)}finally{a.f()}}else o.trace&&(n=de(n=o.trace.frames,r),o.trace.frames=n);return[t,b(t,e)]}function ye(t,e){return e&&e.length>t?e.slice(0,t-3).concat("..."):e}function ve(t,e,r){return e=q(e,function e(r,n,o){switch(s(n)){case"string":return ye(t,n);case"object":case"array":return q(n,e,o);default:return n}}),[e,b(e,r)]}function me(t){return t.exception&&(delete t.exception.description,t.exception.message=ye(255,t.exception.message)),t.frames=de(t.frames,1),t}function be(t,e){var r=t.data.body;if(r.trace_chain){var n,o=r.trace_chain,i=le(o.entries());try{for(i.s();!(n=i.n()).done;){var a=ue(n.value,2),s=a[0],u=a[1];o[s]=me(u)}}catch(t){i.e(t)}finally{i.f()}}else r.trace&&(r.trace=me(r.trace));return[t,b(t,e)]}function ge(t,e){return function(t){for(var e=0,r=t.length,n=0;ne}var we={truncate:function(t,e,r){r=void 0===r?524288:r;for(var n,o,i,a=[pe,he,ve.bind(null,1024),ve.bind(null,512),ve.bind(null,256),be];n=a.shift();)if(t=(o=n(t,e))[0],(i=o[1]).error||!ge(i.value,r))return i;return i},raw:pe,truncateFrames:he,truncateStrings:ve,maybeTruncateValue:ye};function ke(t){if(!a(t.context,"string")){var e=b(t.context);e.error?t.context="Error: could not serialize 'context'":t.context=e.value||"",t.context.length>255&&(t.context=t.context.substr(0,255))}return{data:t}}function Se(t,e,r){var n=e.hostname,o=e.protocol,i=e.port,a=e.path,s=e.search,u=t.timeout,l=function(t){var e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=t.defaultTransport||"xhr";void 0===e.fetch&&(r="xhr");void 0===e.XMLHttpRequest&&(r="fetch");return r}(t),c=t.proxy;if(t.endpoint){var f=r.parse(t.endpoint);n=f.hostname,o=f.protocol,i=f.port,a=f.pathname,s=f.search}return{timeout:u,hostname:n,protocol:o,port:i,path:a,search:s,proxy:c,transport:l}}function _e(t,e){var r=t.protocol||"https:",n=t.port||("http:"===r?80:"https:"===r?443:void 0),o=t.hostname,i=t.path,a=t.timeout,s=t.transport;return t.search&&(i+=t.search),t.proxy&&(i=r+"//"+o+i,o=t.proxy.host||t.proxy.hostname,n=t.proxy.port,r=t.proxy.protocol||r),{timeout:a,protocol:r,hostname:o,path:i,port:n,method:e,transport:s}}function Oe(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function xe(t){for(var e=1;e3?(o=h===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&dn||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,h),s=c,u=h;(e=s<2?t:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=t}else if((e=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(e){i=t,s=1,u=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(Te(e={},n,function(){return this}),e),f=l.prototype=s.prototype=Object.create(c);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,Te(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,Te(f,"constructor",l),Te(l,"constructor",u),u.displayName="GeneratorFunction",Te(l,o,"GeneratorFunction"),Te(f),Te(f,o,"Generator"),Te(f,n,function(){return this}),Te(f,"toString",function(){return"[object Generator]"}),(Ie=function(){return{w:i,m:p}})()}function Te(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}Te=function(t,e,r,n){function i(e,r){Te(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},Te(t,e,r,n)}function Pe(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function Ae(t,e){for(var r=0;r1&&void 0!==o[1]?o[1]:{},n=_e(this.OTLPTransportOptions,"POST"),t.a(2,this._postPromise({accessToken:this.accessToken,options:n,payload:e,headers:r}))},t,this)}),o=function(){var t=this,e=arguments;return new Promise(function(r,o){var i=n.apply(t,e);function a(t){Pe(i,r,o,a,s,"next",t)}function s(t){Pe(i,r,o,a,s,"throw",t)}a(void 0)})},function(t){return o.apply(this,arguments)})},{key:"buildJsonPayload",value:function(t,e){var r,n=ke(t);return(r=this.truncation?this.truncation.truncate(n):b(n)).error?(e&&e(r.error),null):r.value}},{key:"postJsonPayload",value:function(t,e){var r=_e(this.transportOptions,"POST");this.transport.postJsonPayload(this.accessToken,r,t,e)}},{key:"configure",value:function(t){var e=this.options;return this.options=R(e,t),this.transportOptions=Ne(this.options,this.url),this.OTLPTransportOptions=De(this.options,this.url),void 0!==this.options.accessToken&&(this.accessToken=this.options.accessToken),this}}],e&&Ae(t.prototype,e),r&&Ae(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r,n,o}();function Ne(t,e){return Se(t,Ce,e)}function De(t,e){var r;return Se(t=xe(xe({},t),{},{endpoint:null===(r=t.tracing)||void 0===r?void 0:r.endpoint}),Le,e)}var Me=qe,Ue="3.1.0",He="api.rollbar.com/api/1/item/",Fe="debug",Je="debug",Ve="error",Be=/(^|@)\S+:\d+/,We=/^\s*at .*(\S+:\d+|\(native\))/m,$e=/^(eval@)?(\[native code\])?$/;function Ge(t,e){if(void 0!==t.stacktrace||void 0!==t["opera#sourceloc"])return function(t,e){return!t.stacktrace||t.message.includes("\n")&&t.message.split("\n").length>t.stacktrace.split("\n").length?function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)/i,n=t.message.split("\n"),o=[],i=2,a=n.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;return o.match(/\(([^)]*)\)/)&&(e=o.replace(/^[^(]+\(([^)]*)\)$/,"$1")),{function:i,args:void 0===e||"[arguments not available]"===e?void 0:e.split(","),file:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}(t,e):function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,n=t.stacktrace.split("\n"),o=[],i=0,a=n.length;i"].includes(n[0])?void 0:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}function Qe(t,e){return Xe(t.split("\n").filter(function(t){return!t.match($e)}),e).map(function(t){if(t.includes(" > eval")&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),t.includes("@")||t.includes(":")){var e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,r=t.match(e),n=r&&r[1]?r[1]:void 0,o=ze(t.replace(e,""));return{function:n,file:o[0],line:o[1]?+o[1]:void 0,col:o[2]?+o[2]:void 0,raw:t}}return{function:t}})}function Ke(t){return t.map(function(t){return{functionName:t.function,args:t.args,fileName:t.file,lineNumber:t.line,columnNumber:t.col,source:t.raw}})}var Ye=new RegExp("^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ");function tr(){return null}function er(t){var e={};return e._stackFrame=t,e.url=t.fileName,e.line=t.lineNumber,e.func=t.functionName,e.column=t.columnNumber,e.args=t.args,e.context=null,e}function rr(t,e){return{stack:function(){var r=[];e=e||0;try{r=function(t,e){return Ke(Ge(t,e))}(t)}catch(t){r=[]}for(var n=[],o=e;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ar(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rthis.options.maxRetries&&(o=!1))}o?this._retryApiRequest(r,n):n(e)}},{key:"_retryApiRequest",value:function(t,e){var r=this;this.retryQueue.push({item:t,callback:e}),this.retryHandle||(this.retryHandle=setInterval(function(){for(;r.retryQueue.length;){var t=r.retryQueue.shift();r._makeApiRequest(t.item,t.callback)}},this.options.retryInterval))}},{key:"_dequeuePendingRequest",value:function(t){var e=this.pendingRequests.indexOf(t);-1!==e&&(this.pendingRequests.splice(e,1),this._maybeCallWait())}},{key:"_maybeLog",value:function(t,e){if(this.logger&&this.options.verbose){var r=e||I(t,"body.trace.exception.message")||I(t,"body.trace_chain.0.exception.message");if(r)return void this.logger.error(r);(r=I(t,"body.message.body"))&&this.logger.log(r)}}},{key:"_maybeCallWait",value:function(){return!(!u(this.waitCallback)||0!==this.pendingItems.length||0!==this.pendingRequests.length||(this.waitIntervalID&&(this.waitIntervalID=clearInterval(this.waitIntervalID)),this.waitCallback(),0))}}],r&&vr(e.prototype,r),n&&vr(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();br=kr,wr=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE","EAI_AGAIN"],(gr=mr(gr="RETRIABLE_ERRORS"))in br?Object.defineProperty(br,gr,{value:wr,enumerable:!0,configurable:!0,writable:!0}):br[gr]=wr;var Sr=kr;function _r(t){return _r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_r(t)}function Or(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.startTime=Date.now(),this.counter=0,this.perMinCounter=0,this.platform=null,this.platformOptions={},this.configureGlobal(e)}return function(t,e,r){return e&&Or(t.prototype,e),r&&Or(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(t,[{key:"configureGlobal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.startTime,n=e.maxItems,o=e.itemsPerMinute;void 0!==r&&(t.globalSettings.startTime=r),void 0!==n&&(t.globalSettings.maxItems=n),void 0!==o&&(t.globalSettings.itemsPerMinute=o)}},{key:"shouldSend",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=r-this.startTime;(n<0||n>=6e4)&&(this.startTime=r,this.perMinCounter=0);var o=t.globalSettings.maxItems,i=t.globalSettings.itemsPerMinute;if(jr(e,o,this.counter))return Ir(this.platform,this.platformOptions,"".concat(o," max items reached"),!1);if(jr(e,i,this.perMinCounter))return Ir(this.platform,this.platformOptions,"".concat(i," items per minute reached"),!1);this.counter+=1,this.perMinCounter+=1;var a=!jr(e,o,this.counter),s=a,u=a&&!jr(e,i,this.perMinCounter);return Ir(this.platform,this.platformOptions,null,u,o,i,s)}},{key:"setPlatformOptions",value:function(t,e){this.platform=t,this.platformOptions=e}}])}();function jr(t,e,r){return!t.ignoreRateLimit&&e>=1&&r>e}function Ir(t,e,r,n,o,i,a){var s=null,u=r?new Error(r):null;return u||n||(s=function(t,e,r,n,o){var i=e.environment||e.payload&&e.payload.environment,a=o?"item per minute limit reached, ignoring errors until timeout":"maxItems has been hit, ignoring errors until reset.",s={body:{message:{body:a,extra:{maxItems:r,itemsPerMinute:n}}},language:"javascript",environment:i,notifier:{version:e.notifier&&e.notifier.version||e.version}};"browser"===t?(s.platform="browser",s.framework="browser-js",s.notifier.name="rollbar-browser-js"):"server"===t?(s.framework=e.framework||"node-js",s.notifier.name=e.notifier.name):"react-native"===t&&(s.framework=e.framework||"react-native",s.notifier.name=e.notifier.name);return s}(t,e,o,i,a)),{error:u,shouldSend:n,payload:s}}!function(t,e,r){(e=xr(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}(Er,"globalSettings",{startTime:Date.now(),maxItems:void 0,itemsPerMinute:void 0});var Tr=Er;function Pr(t,e,r,n,o,i,a){this.options=R(t),this.logger=r,Pr.rateLimiter.configureGlobal(this.options),Pr.rateLimiter.setPlatformOptions(a,this.options),this.api=e,this.queue=new Sr(Pr.rateLimiter,e,r,this.options,i),this.tracing=o;var s=this.options.tracer||null;Rr(s)?(this.tracer=s,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier=new hr(this.queue,this.options),this.telemeter=n,Ar(t),this.lastError=null,this.lastErrorHash="none"}function Ar(t){t.stackTraceLimit&&(Error.stackTraceLimit=t.stackTraceLimit)}function Rr(t){if(!t)return!1;if(!t.scope||"function"!=typeof t.scope)return!1;var e=t.scope();return!(!e||!e.active||"function"!=typeof e.active)}Pr.rateLimiter=new Tr({maxItems:0,itemsPerMinute:60}),Pr.prototype.global=function(t){return Pr.rateLimiter.configureGlobal(t),this},Pr.prototype.configure=function(t,e){var r=this.options,n={};e&&(n={payload:e}),this.options=R(r,t,n);var o=this.options.tracer||null;return Rr(o)?(this.tracer=o,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier&&this.notifier.configure(this.options),this.telemeter&&this.telemeter.configure(this.options),Ar(t),this.global(this.options),Rr(t.tracer)&&(this.tracer=t.tracer),this},Pr.prototype.log=function(t){var e=this._defaultLogLevel();return this._log(e,t)},Pr.prototype.debug=function(t){this._log("debug",t)},Pr.prototype.info=function(t){this._log("info",t)},Pr.prototype.warn=function(t){this._log("warning",t)},Pr.prototype.warning=function(t){this._log("warning",t)},Pr.prototype.error=function(t){this._log("error",t)},Pr.prototype.critical=function(t){this._log("critical",t)},Pr.prototype.wait=function(t){this.queue.wait(t)},Pr.prototype.captureEvent=function(t,e,r){return this.telemeter&&this.telemeter.captureEvent(t,e,r)},Pr.prototype.captureDomContentLoaded=function(t){return this.telemeter&&this.telemeter.captureDomContentLoaded(t)},Pr.prototype.captureLoad=function(t){return this.telemeter&&this.telemeter.captureLoad(t)},Pr.prototype.buildJsonPayload=function(t){return this.api.buildJsonPayload(t)},Pr.prototype.sendJsonPayload=function(t){this.api.postJsonPayload(t)},Pr.prototype._log=function(t,e){var r;if(e.callback&&(r=e.callback,delete e.callback),this.options.ignoreDuplicateErrors&&this._sameAsLastError(e)){if(r){var n=new Error("ignored identical item");n.item=e,r(n)}}else try{e.level=e.level||t,this._addItemAttributes(e),this._addTracingInfo(e);var o=this.telemeter;o&&(o._captureRollbarItem(e),e.telemetryEvents=o.copyEvents()||[]),this.notifier.log(e,r)}catch(t){r&&r(t),this.logger.error(t)}},Pr.prototype._addItemAttributes=function(t){var e,r,n=null===(e=this.tracing)||void 0===e?void 0:e.getSpan(),o=[{key:"session_id",value:function(t){var e=t.asyncLocalStorage;if(!e||"function"!=typeof e.getStore)return null;var r=e.getStore();return(null==r?void 0:r.sessionId)||null}(this)||(null===(r=this.tracing)||void 0===r?void 0:r.sessionId)},{key:"span_id",value:null==n?void 0:n.spanId},{key:"trace_id",value:null==n?void 0:n.traceId}];t._isUncaught&&o.push({key:"is_uncaught",value:"true"}),j(t.data,o),null==n||n.addEvent("rollbar.occurrence",[{key:"rollbar.occurrence.uuid",value:t.uuid}])},Pr.prototype._defaultLogLevel=function(){return this.options.logLevel||"debug"},Pr.prototype._sameAsLastError=function(t){if(!t._isUncaught)return!1;var e=function(t){var e=t.message||"",r=(t.err||{}).stack||String(t.err);return e+"::"+r}(t);return this.lastErrorHash===e||(this.lastError=t.err,this.lastErrorHash=e,!1)},Pr.prototype._addTracingInfo=function(t){if(this.tracer){var e=this.tracer.scope().active();if(function(t){if(!t||!t.context||"function"!=typeof t.context)return!1;var e=t.context();if(!e||!e.toSpanId||!e.toTraceId||"function"!=typeof e.toSpanId||"function"!=typeof e.toTraceId)return!1;return!0}(e)){e.setTag("rollbar.error_uuid",t.uuid),e.setTag("rollbar.has_error",!0),e.setTag("error",!0),e.setTag("rollbar.item_url","https://rollbar.com/item/uuid/?uuid=".concat(t.uuid)),e.setTag("rollbar.occurrence_url","https://rollbar.com/occurrence/uuid/?uuid=".concat(t.uuid));var r=e.context().toSpanId(),n=e.context().toTraceId();t.custom?(t.custom.opentracing_span_id=r,t.custom.opentracing_trace_id=n):t.custom={opentracing_span_id:r,opentracing_trace_id:n}}}};var Cr=Pr;function Lr(t,e,r){t._isUncaught&&(t.data._isUncaught=!0),t._originalArgs&&(t.data._originalArgs=t._originalArgs),r(null,t)}function qr(t,e,r){var n=e.payload||{};n.body&&delete n.body,t.data=R(t.data,n),r(null,t)}function Nr(t,e,r){t.telemetryEvents&&T(t,"data.body.telemetry",t.telemetryEvents),r(null,t)}function Dr(t,e,r){if(t.message){var n="data.body.trace_chain.0",o=I(t,n);if(o||(o=I(t,n="data.body.trace")),o){if(!o.exception||!o.exception.description)return T(t,n+".exception.description",t.message),void r(null,t);T(t,n+".extra",R(I(t,n+".extra")||{},{message:t.message}))}r(null,t)}else r(null,t)}function Mr(t){return function(e,r,n){var o,i=R(e),s=null;try{u(r.transform)&&(s=r.transform(i.data,e))}catch(o){return r.transform=null,t.error("Error while calling custom transform() function. Removing custom transform().",o),void n(null,e)}l(o=s)&&a(o.then,"function")?s.then(function(t){t&&(i.data=t),n(null,i)},function(t){n(t,e)}):n(null,i)}}function Ur(t,e,r){if(!e.sendConfig)return r(null,t);var n=I(t,"data.custom")||{};n._rollbarConfig=e,t.data.custom=n,r(null,t)}function Hr(t,e){u(t[e])&&(t[e]=t[e].toString())}function Fr(t,e,r){var n=e._configuredOptions;Hr(n,"transform"),Hr(n,"checkIgnore"),Hr(n,"onSendCallback"),delete n.accessToken,t.data.notifier.configured_options=n,r(null,t)}function Jr(t,e,r){var n=R(t.notifier.client.notifier.diagnostic,t.diagnostic);if(I(t,"err._isAnonymous")&&(n.is_anonymous=!0),t._isUncaught&&(n.is_uncaught=t._isUncaught),t.err)try{n.raw_error={message:t.err.message,name:t.err.name,constructor_name:t.err.constructor&&t.err.constructor.name,filename:t.err.fileName,line:t.err.lineNumber,column:t.err.columnNumber,stack:t.err.stack}}catch(t){n.raw_error={failed:String(t)}}t.data.notifier.diagnostic=R(t.data.notifier.diagnostic,n),r(null,t)}function Vr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:null)||t.stackInfo).stack;return e&&0===e.length&&t._unhandledStackInfo&&t._unhandledStackInfo.stack&&(e=t._unhandledStackInfo.stack),e}function tn(t,e,r){var n=t&&t.data.description,o=t&&t.custom,i=Yr(t,e),a=or.guessErrorClass(e.message),s={exception:{class:en(e,a[0],r),message:a[1]}};if(n&&(s.exception.description=n),i){var u,l,c,f,p,d,h,v;for(0===i.length&&(s.exception.stack=e.rawStack,s.exception.raw=String(e.rawException)),s.frames=[],h=0;ht.length)&&(e=t.length);for(var r=0,n=Array(e);r=400&&t.status<600}(e)){if(403===e.status){var o=t.value&&t.value.message;Ct.error(o)}u(new Error(String(e.status)))}else{u(ln("XHR response had no status code (likely connection failure)"))}}}catch(t){var i;i=t&&t.stack?t:new Error(t),u(i)}};if(e.open(o,n,!0),e.setRequestHeader){e.setRequestHeader("Content-Type","application/json"),e.setRequestHeader("X-Rollbar-Access-Token",r);for(var d=0,h=Object.entries(null!=s?s:{});ds)?(a=e.path,e.path=a.substring(0,s)+i+"&"+a.substring(s+1)):-1!==u?(a=e.path,e.path=a.substring(0,u)+i+a.substring(u)):e.path=e.path+i}(t,e,r);var i=m(e);this._makeZoneRequest({accessToken:t,url:i,method:"GET",callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},fn.prototype.post=function(t){var e,r=t.accessToken,n=t.options,o=t.payload,i=t.headers,a=t.callback,s=t.requestFactory;if(a&&u(a)||(a=function(){}),!o)return a(new Error("Cannot send empty request"));if((e=this.truncation&&o.body?this.truncation.truncate(o):b(o)).error)return a(e.error);var l=m(n);this._makeZoneRequest({accessToken:r,url:l,method:"POST",payload:e.value,headers:i,callback:a,requestFactory:s,timeout:n.timeout,transport:n.transport})},fn.prototype.postJsonPayload=function(t,e,r,n,o){n&&u(n)||(n=function(){});var i=m(e);this._makeZoneRequest({accessToken:t,url:i,method:"POST",payload:r,callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},fn.prototype._makeZoneRequest=function(){var t=this,e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=e&&e.Zone&&e.Zone.root,n=Array.prototype.slice.call(arguments);r?r.run(function(){t._makeRequest.apply(void 0,n)}):this._makeRequest.apply(void 0,n)},fn.prototype._makeRequest=function(t){var e=t.payload,r=t.callback,n=t.transport;if("undefined"!=typeof RollbarProxy)return function(t,e){(new RollbarProxy).sendJsonPayload(t,function(t){},function(t){e(new Error(t))})}(e,r);"fetch"===n?an(t):cn(t)};var pn,dn=fn;function hn(t){var e,r,n={protocol:null,auth:null,host:null,path:null,hash:null,href:t,hostname:null,port:null,pathname:null,search:null,query:null};if(-1!==(e=t.indexOf("//"))?(n.protocol=t.substring(0,e),r=e+2):r=0,-1!==(e=t.indexOf("@",r))&&(n.auth=t.substring(r,e),r=e+1),-1===(e=t.indexOf("/",r))){if(-1===(e=t.indexOf("?",r)))return-1===(e=t.indexOf("#",r))?n.host=t.substring(r):(n.host=t.substring(r,e),n.hash=t.substring(e)),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),n;n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e}else n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e;if(-1===(e=t.indexOf("#",r))?n.path=t.substring(r):(n.path=t.substring(r,e),n.hash=t.substring(e)),n.path){var o=n.path.split("?");n.pathname=o[0],n.query=o[1],n.search=n.query?"?"+n.query:null}return n}function yn(t){return yn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yn(t)}function vn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function mn(t){for(var e=1;e0&&T(e,"data.request",o),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t)return n(null,e);var o=t.navigator||{},i=t.screen||{};T(e,"data.client",{runtime_ms:e.timestamp-t._rollbarStartTime,timestamp:Math.round(e.timestamp/1e3),javascript:{browser:o.userAgent,language:o.language,cookie_enabled:o.cookieEnabled,screen:{width:i.width,height:i.height}}}),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t||!t.navigator)return n(null,e);for(var o,i=[],a=t.navigator.plugins||[],s=0,u=a.length;s=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function An(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;i--){if(e=Cn(t[i]),r=o+3*n.length+e.length,i=83){n.unshift("...");break}n.unshift(e),o+=e.length}return n.join(" > ")}(function(t){for(var e,r=[],n=0;t&&n<5&&(e=Ln(t))&&"html"!==e.tagName;n++)r.unshift(e),t=t.parentNode;return r}(t))}function Cn(t){if(!t||!t.tagName)return"";var e=[t.tagName];t.id&&e.push("#"+t.id),t.classes&&e.push("."+t.classes.join("."));var r,n=Pn(t.attributes);try{for(n.s();!(r=n.n()).done;){var o=r.value;e.push("["+o.key+'="'+o.value+'"]')}}catch(t){n.e(t)}finally{n.f()}return e.join("")}function Ln(t){if(!t||!t.tagName)return null;var e,r={};r.tagName=t.tagName.toLowerCase(),t.id&&(r.id=t.id),(e=t.className)&&"string"==typeof e&&(r.classes=e.split(/\s+/));r.attributes=[];for(var n=0,o=["type","name","title","alt"];n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Hn(t,e){if(t){if("string"==typeof t)return Fn(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Fn(t,e):void 0}}function Fn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r3)){var e=P();a.__rollbar_xhr.end_time_ms=e;var r=null;if(a.__rollbar_xhr.response_content_type=a.getResponseHeader("Content-Type"),t.autoInstrument.networkResponseHeaders){var o=t.autoInstrument.networkResponseHeaders;r={};try{var i;if(!0===o){var s=a.getAllResponseHeaders();if(s){var u,l,c,f=Un(s.trim().split(/[\r\n]+/));try{for(f.s();!(c=f.n()).done;){i=(u=c.value.split(": ")).shift(),l=u.join(": "),r[i]=l}}catch(t){f.e(t)}finally{f.f()}}}else{var p,d=Un(o);try{for(d.s();!(p=d.n()).done;){var h=p.value;r[h]=a.getResponseHeader(h)}}catch(t){d.e(t)}finally{d.f()}}}catch(t){}}var y=null;if(t.autoInstrument.networkResponseBody)try{y=a.responseText}catch(t){}var v=null;(y||r)&&(v={},y&&(t.isJsonContentType(a.__rollbar_xhr.response_content_type)?v.body=t.scrubJson(y):v.body=y),r&&(v.headers=r)),v&&(a.__rollbar_xhr.response=v);try{var m=a.status;m=1223===m?204:m,a.__rollbar_xhr.status_code=m,t.addOtelNetworkResponse(a.__rollbar_event,e,m),a.__rollbar_event.level=t.telemeter.levelFromStatus(m),t.errorOnHttpStatus(a.__rollbar_xhr)}catch(t){}}}return e("onload",a),e("onerror",a),e("onprogress",a),"onreadystatechange"in a&&u(a.onreadystatechange)?Tn(a,"onreadystatechange",function(e){return t.rollbar.wrap(e,void 0,l)}):a.onreadystatechange=l,a.__rollbar_xhr&&t.trackHttpErrors()&&(a.__rollbar_xhr.stack=(new Error).stack),r.apply(this,arguments)}},this.replacements,"network")}"fetch"in this._window&&Tn(this._window,"fetch",function(e){return function(r,n){var o,i,s=Array.prototype.slice.call(arguments),u=s[0],l="GET",c=$n(u);a(u,"string")||c?i=c?u.toString():u:u&&(i=u.url,u.method&&(l=u.method)),s[1]&&s[1].method&&(l=s[1].method);var f=null===(o=t.rollbar)||void 0===o?void 0:o.tracing;C(t.options,f,i)&&L(s,{baggage:"rollbar.session.id=".concat(f.sessionId)});var p={method:l,url:i,status_code:null,start_time_ms:P(),end_time_ms:null};if(s[1]&&s[1].headers){var d=In(s[1].headers);p.request_content_type=d.get("Content-Type"),t.autoInstrument.networkRequestHeaders&&(p.request_headers=t.fetchHeaders(d,t.autoInstrument.networkRequestHeaders))}t.autoInstrument.networkRequestBody&&(s[1]&&s[1].body?p.request=s[1].body:s[0]&&!a(s[0],"string")&&s[0].body&&(p.request=s[0].body));var h=t.captureNetwork(p,"fetch",void 0);return t.trackHttpErrors()&&(p.stack=(new Error).stack),e.apply(this,s).then(function(e){var r=P();p.end_time_ms=r,p.status_code=e.status,t.addOtelNetworkResponse(h,r,e.status),p.response_content_type=e.headers.get("Content-Type");var n=null;t.autoInstrument.networkResponseHeaders&&(n=t.fetchHeaders(e.headers,t.autoInstrument.networkResponseHeaders));var o=null;return t.autoInstrument.networkResponseBody&&"function"==typeof e.text&&(o=e.clone().text()),(n||o)&&(p.response={},o&&("function"==typeof o.then?o.then(function(e){e&&t.isJsonContentType(p.response_content_type)?p.response.body=t.scrubJson(e):p.response.body=e}):p.response.body=o),n&&(p.response.headers=n)),t.errorOnHttpStatus(p),e})}},this.replacements,"network")}},{key:"captureNetwork",value:function(t,e,r){return t.request&&this.isJsonContentType(t.request_content_type)&&(t.request=this.scrubJson(t.request)),this.telemeter.captureNetwork(t,e,r)}},{key:"isJsonContentType",value:function(t){return!!(t&&a(t,"string")&&t.toLowerCase().includes("json"))}},{key:"addOtelNetworkResponse",value:function(t,e,r){t.otelAttributes&&(t.otelAttributes["response.timeUnixNano"]=(1e6*e).toString(),t.otelAttributes.statusCode=r)}},{key:"scrubJson",value:function(t){return JSON.stringify(F(JSON.parse(t),this.options.scrubFields))}},{key:"fetchHeaders",value:function(t,e){var r={};try{if(!0===e){if("function"==typeof t.entries)for(var n=t.entries(),o=n.next();!o.done;)r[o.value[0]]=o.value[1],o=n.next()}else{var i,a=Un(e);try{for(a.s();!(i=a.n()).done;){var s=i.value;r[s]=t.get(s)}}catch(t){a.e(t)}finally{a.f()}}}catch(t){}return r}},{key:"trackHttpErrors",value:function(){return this.autoInstrument.networkErrorOnHttp5xx||this.autoInstrument.networkErrorOnHttp4xx||this.autoInstrument.networkErrorOnHttp0}},{key:"errorOnHttpStatus",value:function(t){var e=t.status_code;if(e>=500&&this.autoInstrument.networkErrorOnHttp5xx||e>=400&&this.autoInstrument.networkErrorOnHttp4xx||0===e&&this.autoInstrument.networkErrorOnHttp0){var r=new Error("HTTP request failed with Status "+e);r.stack=t.stack,this.rollbar.error(r,{skipFrames:1})}}},{key:"deinstrumentConsole",value:function(){for(var t;this.replacements.log.length;)t=this.replacements.log.shift(),this._window.console[t[0]]=t[1]}},{key:"instrumentConsole",value:function(){var t;if(null!==(t=this._window)&&void 0!==t&&null!==(t=t.console)&&void 0!==t&&t.log){var e=this,r=this._window.console;try{for(var n=0,o=["debug","info","warn","error","log"];n500&&(n=n.substr(0,497)+"...");break;case"null":n="null";break;case"undefined":n="undefined";break;case"symbol":n=n.toString()}o.push(n)}return o.join(" ")}(t);e.telemeter.captureLog(r,i,null,P()),n&&Function.prototype.apply.call(n,o,t)},e.replacements.log.push([t,n])}}},{key:"deinstrumentDom",value:function(){this.removeListeners("dom")}},{key:"instrumentDom",value:function(){var t=this;this.addListener("dom",this._window,["click","dblclick","contextmenu"],function(e){return t.handleEvent("click",e)}),this.addListener("dom",this._window,["dragstart","dragend","dragenter","dragleave","drop"],function(e){return t.handleEvent("dragdrop",e)}),this.addListener("dom",this._window,["blur","focus"],function(e){return t.handleEvent("focus",e)}),this.addListener("dom",this._window,["submit","invalid"],function(e){return t.handleEvent("form",e)}),this.addListener("dom",this._window,["input","change"],function(e){return t.handleEvent("input",e)}),this.addListener("dom",this._window,["resize"],function(e){return t.handleEvent("resize",e)}),this.addListener("dom",this._document,["DOMContentLoaded"],function(e){return t.handleEvent("contentLoaded",e)})}},{key:"handleEvent",value:function(t,e){try{return{click:this.handleClick,dragdrop:this.handleDrag,focus:this.handleFocus,form:this.handleForm,input:this.handleInput,resize:this.handleResize,contentLoaded:this.handleContentLoaded}[t].call(this,e)}catch(r){Ct.log("".concat(t," handler error"),e,r,r.stack)}}},{key:"handleContentLoaded",value:function(t){this.rollbar.triggerReplay({type:"navigation",path:new URL(this._location.href).pathname})}},{key:"handleClick",value:function(t){var e,r=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase();["input","select","textarea"].includes(r)||this.telemeter.captureClick({type:t.type,isSynthetic:!t.isTrusted,element:Rn(t.target),timestamp:P()})}},{key:"handleFocus",value:function(t){var e,r=t.type,n=null!==(e=t.target)&&void 0!==e&&e.window?"window":Rn(t.target);this.telemeter.captureFocus({type:r,isSynthetic:!t.isTrusted,element:n,timestamp:P()})}},{key:"handleForm",value:function(t){}},{key:"handleResize",value:function(t){var e=window.screen.width/window.innerWidth;this.telemeter.captureResize({type:t.type,isSynthetic:!t.isTrusted,width:window.innerWidth,height:window.innerHeight,textZoomRatio:e,timestamp:P()})}},{key:"handleDrag",value:function(t){var e,r,n,o,i,a,s=t.type;if("drop"===s){e=[],r=[];var u,l=Un([].concat(Nn(t.dataTransfer.files),Nn(t.dataTransfer.items)));try{for(l.s();!(u=l.n()).done;){var c=u.value;c.kind&&c.type&&(e.push(c.kind),r.push(c.type))}}catch(t){l.e(t)}finally{l.f()}}["drop","dragstart"].includes(s)&&(n=null===(i=t.dataTransfer)||void 0===i?void 0:i.dropEffect,o=null===(a=t.dataTransfer)||void 0===a?void 0:a.effectAllowed);this.telemeter.captureDragDrop({type:s,isSynthetic:!t.isTrusted,element:Rn(t.target),dropEffect:n,effectAllowed:o,kinds:JSON.stringify(e),mediaTypes:JSON.stringify(r),timestamp:P()})}},{key:"scrubInputValue",value:function(t,e,r,n){var o="******";if("password"===n)return o;if(this.scrubTelemetryInputs)return o;var i=Ln(e);if(this.telemetryScrubber){if(this.telemetryScrubber(i))return o}else if(this.defaultValueScrubber(i))return o;return function(t,e,r){try{var n,o=Pn(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;if("string"==typeof i){if(t.classList.contains(i))return!0}else{var a,s=Pn(t.classList);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(i.test(u))return!0}}catch(t){s.e(t)}finally{s.f()}}}}catch(t){o.e(t)}finally{o.f()}var l,c=Pn(r);try{for(c.s();!(l=c.n()).done;){var f=l.value;if(t.matches(f))return!0}}catch(t){c.e(t)}finally{c.f()}}catch(t){}return!1}(e,this.scrubClasses,this.scrubSelectors)?o:this.maskInputOptions[r.toLowerCase()]||this.maskInputOptions[n]?this.maskInputFn?this.maskInputFn(t,e):o:t}},{key:"handleInput",value:function(t){var e,r,n,o,i=t.type,a=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase(),s=null===(r=t.target)||void 0===r?void 0:r.value,u=(null===(n=t.target)||void 0===n||null===(n=n.attributes)||void 0===n||null===(n=n.type)||void 0===n?void 0:n.value)||(null===(o=t.target)||void 0===o?void 0:o.type);switch(void 0!==s&&(s=this.scrubInputValue(s,t.target,a,u)),i){case"input":if(["radio","checkbox"].includes(u))return;["select","textarea"].includes(a)&&(u=a);break;case"change":if(!["radio","checkbox"].includes(u))return;var l;if("checkbox"===u)s=null===(l=t.target)||void 0===l?void 0:l.checked}this.telemeter.captureInput({type:u,isSynthetic:!t.isTrusted,element:Rn(t.target),value:s,timestamp:P()})}},{key:"deinstrumentNavigation",value:function(){var t=this._window.chrome;!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState&&Vn(this.replacements,"navigation")}},{key:"instrumentNavigation",value:function(){var t=this._window.chrome;if(!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState){var e=this;Tn(this._window,"onpopstate",function(t){return function(){var r=e._location.href;e.handleUrlChange(e._lastHref,r),t&&t.apply(this,arguments)}},this.replacements,"navigation"),Tn(this._window.history,"pushState",function(t){return function(){var r=arguments.length>2?arguments[2]:void 0;return r&&e.handleUrlChange(e._lastHref,String(r)),t.apply(this,arguments)}},this.replacements,"navigation")}}},{key:"handleUrlChange",value:function(t,e){var r=hn(this._location.href),n=hn(e),o=hn(t);this._lastHref=e,r.protocol===n.protocol&&r.host===n.host&&(e=n.path+(n.hash||"")),r.protocol===o.protocol&&r.host===o.host&&(t=o.path+(o.hash||"")),this.telemeter.captureNavigation(t,e,null,P()),this.rollbar.triggerReplay({type:"navigation",path:e})}},{key:"instrumentConnectivity",value:function(){var t=this;this.addListener("connectivity",this._window,["online","offline"],function(e){return t.handleConnectivity(e)})}},{key:"handleConnectivity",value:function(t){var e=t.type;this.telemeter.captureConnectivityChange({type:e,isSynthetic:!t.isTrusted,timestamp:P()})}},{key:"handleCspEvent",value:function(t){var e="Security Policy Violation: blockedURI: "+t.blockedURI+", violatedDirective: "+t.violatedDirective+", effectiveDirective: "+t.effectiveDirective+", ";t.sourceFile&&(e+="location: "+t.sourceFile+", line: "+t.lineNumber+", col: "+t.columnNumber+", "),e+="originalPolicy: "+t.originalPolicy,this.telemeter.captureLog(e,"error",null,P()),this.handleCspError(e)}},{key:"handleCspError",value:function(t){this.autoInstrument.errorOnContentSecurityPolicy&&this.rollbar.error(t)}},{key:"deinstrumentContentSecurityPolicy",value:function(){this.removeListeners("contentsecuritypolicy")}},{key:"instrumentContentSecurityPolicy",value:function(){if("addEventListener"in this._document){var t=this.handleCspEvent.bind(this);this.addListener("contentsecuritypolicy",this._document,["securitypolicyviolation"],t)}}},{key:"addListener",value:function(t,e,r,n){var o=this;if(e.addEventListener){var i,a=Un(r);try{var s=function(){var r=i.value,a={capture:!0,passive:!0};e.addEventListener(r,n,a,!0),o.eventRemovers[t].push(function(){e.removeEventListener(r,n,a)})};for(a.s();!(i=a.n()).done;)s()}catch(t){a.e(t)}finally{a.f()}}}},{key:"removeListeners",value:function(t){for(;this.eventRemovers[t].length;)this.eventRemovers[t].shift()()}}])}();function $n(t){return"undefined"!=typeof URL&&t instanceof URL}var Gn=Wn;function zn(t,e,r){if(c(e,"addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var o=function(e,r,o){n.call(this,e,t.wrap(r),o)};o._rollbarOldAdd=n,o.belongsToShim=r,e.addEventListener=o;for(var i=e.removeEventListener;i._rollbarOldRemove&&i.belongsToShim;)i=i._rollbarOldRemove;var a=function(t,e,r){i.call(this,t,e&&e._rollbar_wrapped||e,r)};a._rollbarOldRemove=i,a.belongsToShim=r,e.removeEventListener=a}}var Xn=function(t,e,r){if(t){var n,o,i="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(",");for(n=0;n 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} 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\", \"\"].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(//, \"$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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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":""} \ No newline at end of file +{"version":3,"file":"rollbar.named-amd.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} 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\", \"\"].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(//, \"$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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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":""} \ No newline at end of file diff --git a/dist/rollbar.noconflict.umd.js b/dist/rollbar.noconflict.umd.js index 403ccf7f..67ad00cc 100644 --- a/dist/rollbar.noconflict.umd.js +++ b/dist/rollbar.noconflict.umd.js @@ -201,6 +201,9 @@ function isPromise(p) { function isBrowser() { return typeof window !== 'undefined'; } +function isRequestObject(input) { + return typeof Request !== 'undefined' && input instanceof Request; +} function redact() { return '********'; } @@ -845,6 +848,70 @@ function merge() { } return result; } +function shouldAddBaggageHeader(options, tracing, url) { + var _options$tracing; + if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) { + return false; + } + var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation; + var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders; + if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) { + return false; + } + var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls; + if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) { + return false; + } + return enabledCorsUrls.some(function (pattern) { + if (isType(pattern, 'string')) { + return url === pattern; + } + if (isType(pattern, 'regexp')) { + return pattern.test(url); + } + return false; + }); +} +function addHeadersToFetch(args, newHeaders) { + var _init; + // Headers may be in the request object or the init object. + // If present in both places, the init object must be used. + // + var init = args[1]; + var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers; + var reqHeaders = isRequestObject(args[0]) && args[0].headers; + var headers = initHeaders || reqHeaders; + + // If headers are not present in either place, they are added to the init object. + // If there is no init object, one must be created and added to args. + if (!headers) { + if (!init) { + args[1] = init = {}; + } + headers = init.headers = {}; + } + + // `headers` may be a Headers object or a plain object. + if (headers instanceof Headers) { + for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) { + var key = _Object$keys[_i]; + headers.append(key, newHeaders[key]); + } + } else if (isObject(headers)) { + for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) { + var _key = _Object$keys2[_i2]; + headers[_key] = newHeaders[_key]; + } + } +} +function getSessionIdFromAsyncLocalStorage(client) { + var storage = client.asyncLocalStorage; + if (!storage || typeof storage.getStore !== 'function') { + return null; + } + var store = storage.getStore(); + return (store === null || store === void 0 ? void 0 : store.sessionId) || null; +} ;// ./src/utility/traverse.js @@ -2994,7 +3061,7 @@ function _getOTLPTransport(options, url) { /** * Default options shared across platforms */ -var version = '3.0.0'; +var version = '3.1.0'; var endpoint = 'api.rollbar.com/api/1/item/'; var logLevel = 'debug'; var reportLevel = 'debug'; @@ -4257,9 +4324,11 @@ Rollbar.prototype._log = function (defaultLevel, item) { Rollbar.prototype._addItemAttributes = function (item) { var _this$tracing, _this$tracing2; var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan(); + var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this); + var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId); var attributes = [{ key: 'session_id', - value: (_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId + value: sessionId }, { key: 'span_id', value: span === null || span === void 0 ? void 0 : span.spanId @@ -6647,7 +6716,16 @@ var Instrumenter = /*#__PURE__*/function () { }, this.replacements, 'network'); utility_replace(xhrp, 'send', function (orig) { return function (data) { + var _self$rollbar, _xhr$__rollbar_xhr; var xhr = this; + var tracing = (_self$rollbar = self.rollbar) === null || _self$rollbar === void 0 ? void 0 : _self$rollbar.tracing; + if (shouldAddBaggageHeader(self.options, tracing, (_xhr$__rollbar_xhr = xhr.__rollbar_xhr) === null || _xhr$__rollbar_xhr === void 0 ? void 0 : _xhr$__rollbar_xhr.url)) { + try { + xhr.setRequestHeader('baggage', "rollbar.session.id=".concat(tracing.sessionId)); + } catch (_e) { + /* ignore errors from adding baggage header */ + } + } function onreadystatechangeHandler() { if (xhr.__rollbar_xhr) { if (xhr.__rollbar_xhr.status_code === null) { @@ -6768,6 +6846,7 @@ var Instrumenter = /*#__PURE__*/function () { if ('fetch' in this._window) { utility_replace(this._window, 'fetch', function (orig) { return function (_fn, _t) { + var _self$rollbar2; var args = Array.prototype.slice.call(arguments); var input = args[0]; var method = 'GET'; @@ -6784,6 +6863,13 @@ var Instrumenter = /*#__PURE__*/function () { if (args[1] && args[1].method) { method = args[1].method; } + var tracing = (_self$rollbar2 = self.rollbar) === null || _self$rollbar2 === void 0 ? void 0 : _self$rollbar2.tracing; + if (shouldAddBaggageHeader(self.options, tracing, url)) { + var _headers2 = { + baggage: "rollbar.session.id=".concat(tracing.sessionId) + }; + addHeadersToFetch(args, _headers2); + } var metadata = { method: method, url: url, diff --git a/dist/rollbar.noconflict.umd.js.map b/dist/rollbar.noconflict.umd.js.map index a925150f..d3d91e08 100644 --- a/dist/rollbar.noconflict.umd.js.map +++ b/dist/rollbar.noconflict.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"rollbar.noconflict.umd.js","mappings":"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","sources":["webpack://rollbar/webpack/universalModuleDefinition","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/tracing/defaults.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/replay/defaults.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/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.noconflict.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rollbar\"] = factory();\n\telse\n\t\troot[\"rollbar\"] = factory();\n})(this, function() {\nreturn ","// 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} 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\", \"\"].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(//, \"$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","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\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","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","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","/**\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","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","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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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\nif ((typeof window !== 'undefined') && !window._rollbarStartTime) {\n window._rollbarStartTime = (new Date()).getTime();\n}\n\nexport default rollbar;\n"],"names":["isType","x","t","typeName","name","_typeof","Error","toString","call","match","toLowerCase","isFunction","f","isNativeFunction","reRegExpChar","funcMatchString","Function","prototype","Object","hasOwnProperty","replace","reIsNative","RegExp","isObject","test","value","hasOwn","obj","prop","isString","String","isFiniteNumber","n","Number","isFinite","isIterable","i","type","isError","e","isPromise","p","then","isBrowser","window","redact","uuid4","d","now","uuid","c","r","Math","random","floor","LEVELS","debug","info","warning","error","critical","sanitizeHref","url","urlObject","URL","password","search","_","sanitizeUrl","baseUrlParts","parseUri","anchor","source","query","parseUriOptions","strictMode","key","q","parser","strict","loose","str","undefined","o","m","exec","uri","l","length","$0","$1","$2","addParamsAndAccessTokenToPath","accessToken","options","params","access_token","paramsArray","k","push","join","sort","path","qs","indexOf","h","substring","formatUrl","u","protocol","port","hostname","result","stringify","backup","JSON","jsonError","backupError","maxByteSize","string","count","code","charCodeAt","jsonParse","s","parse","makeUnhandledStackInfo","message","lineno","colno","mode","backupMessage","errorParser","location","line","column","func","guessFunctionName","context","gatherContext","href","document","useragent","navigator","userAgent","stack","wrapCallback","logger","err","resp","nonCircularClone","seen","clone","newSeen","includes","slice","createItem","args","notifier","requestKeys","lambdaContext","custom","callback","request","arg","extraArgs","diagnostic","argTypes","typ","DOMException","j","len","item","timestamp","data","setCustomItemKeys","_originalArgs","original_arg_types","level","skipFrames","addErrorContext","errors","contextAdded","_iterator","_createForOfIteratorHelper","_step","done","merge","rollbarContext","error_context","TELEMETRY_TYPES","TELEMETRY_LEVELS","arrayIncludes","arr","val","_iterator2","_step2","entry","createTelemetryEvent","metadata","event","addItemAttributes","itemData","attributes","_iterator3","_step3","a","get","keys","split","_e","set","setPrototypeOf","temp","replacement","formatArgsAsString","substr","Date","filterIp","requestData","captureIp","newIp","parts","pop","beginning","slashIdx","terminal","concat","handleOptions","current","input","payload","updateDeprecatedOptions","overwriteScrubFields","scrubFields","hostWhiteList","hostSafeList","log","hostBlackList","hostBlockList","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","src","copy","create","arguments","traverse","v","isObj","isArray","seenIndex","mapped","same","scrub","scrubPaths","scrubPath","paramRes","_getScrubFieldRegexs","queryRes","_getScrubQueryParamRegexs","redactQueryParam","dummy0","paramPart","paramScrubber","regex","valScrubber","scrubber","tmpV","last","_iterator4","entries","_step4","_step4$value","_slicedToArray","index","ret","_iterator5","_step5","field","pat","_iterator6","_step6","MAX_EVENTS","fromMillis","millis","trunc","round","Telemeter","tracing","_this$tracing","_classCallCheck","queue","maxTelemetryEvents","maxQueueSize","max","min","telemetrySpan","startSpan","_createClass","configure","oldOptions","newMaxEvents","deleteCount","splice","copyEvents","events","Array","filterTelemetry","filter","map","_ref","_otelAttributes","otelAttributes","_objectWithoutProperties","_excluded","exportTelemetrySpan","end","capture","rollbarUUID","getLevel","timestamp_ms","body","_exc","captureEvent","captureError","_this$telemetrySpan","addEvent","captureLog","_this$telemetrySpan2","_objectSpread","captureNetwork","subtype","_metadata$response","_metadata$response2","_this$telemetrySpan3","levelFromStatus","status_code","endTimeNano","end_time_ms","method","statusCode","request_headers","response","headers","requestBody","responseBody","start_time_ms","captureDom","element","checked","captureInput","_ref2","_this$telemetrySpan4","isSynthetic","endTimeUnixNano","_getRepeatedEvent","_updateRepeatedEvent","captureClick","_ref3","_this$telemetrySpan5","lastEvent","_lastEvent","target","duration","height","width","textZoomRatio","rate","list","captureFocus","_ref4","_this$telemetrySpan6","captureResize","_ref5","_this$telemetrySpan7","captureDragDrop","_ref6","_this$telemetrySpan8","dropEffect","effectAllowed","kinds","mediaTypes","captureNavigation","from","to","_this$telemetrySpan9","captureDomContentLoaded","ts","getTime","captureLoad","captureConnectivityChange","_ref7","_this$telemetrySpan0","_captureRollbarItem","includeItemsInTelemetry","shift","defaultLevel","manual","Context","parentContext","_currentContext","Map","getValue","setValue","deleteValue","self","delete","ROOT_CONTEXT","ContextManager","currentContext","active","enterContext","previousContext","exitContext","with","fn","thisArg","_len","_key","apply","createContextKey","Symbol","for","toMillis","hrtime","toNanos","add","b","usePerformance","performance","timeOrigin","isHrTime","SpanExporter","api","export","spans","_resultCallback","spanExportQueue","_toConsumableArray","toPayload","_this","resourceSpans","resource","scopeMap","span","scopeKey","instrumentationScope","version","has","scope","_transformSpan","_transformResource","scopeSpans","values","scopeData","_transformInstrumentationScope","post","postSpans","_this2","transformAttributes","_transformAnyValue","transformEvents","timeUnixNano","time","traceId","spanContext","spanId","parentSpanId","kind","startTimeUnixNano","startTime","endTime","_this3","keyValues","_this4","attr","_this5","stringValue","isInteger","intValue","doubleValue","boolValue","arrayValue","kvlistValue","gen","bytes","randomBytes","Uint8Array","crypto","getRandomValues","randHex","byte","padStart","id","SESSION_KEY","Session","_defineProperty","session","_attributes","init","attrs","getSession","createSession","initSessionAttributes","serializedSession","sessionStorage","getItem","_unused","createdAt","setSession","sessionString","setItem","_unused2","setAttributes","setUser","user","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","addTransform","transformFn","transformSpan","applyTransforms","transform","onStart","_parentContext","onEnd","Span","initReadableSpan","spanProcessor","_options$session","status","links","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount","setAttribute","_i","_Object$entries","_Object$entries$_i","isRecording","Tracer","_this$tracing$resourc","_options$resource","_this$tracing$session","contextManager","parentSpan","getSpan","parentSpanContext","traceFlags","traceState","SPAN_KEY","Tracing","gWindow","createTracer","initSession","_this$options$payload","_this$options$payload2","environment","idGen","tracer","getTracer","addSpanTransform","setSpan","_this$contextManager","withSpan","default","raw","jsonBackup","selectFrames","frames","range","truncateFrames","trace_chain","chain","trace","maybeTruncateValue","truncateStrings","truncator","truncateTraceData","traceData","exception","description","minBody","_step2$value","needsTruncation","maxSize","truncate","strategies","strategy","results","buildPayload","contextResult","getTransportFromOptions","defaults","timeout","transport","detectTransport","proxy","endpoint","opts","pathname","defaultTransport","fetch","XMLHttpRequest","transportOptions","transportAPI","host","appendPathToPath","base","baseTrailingSlash","pathBeginningSlash","iterator","toStringTag","Generator","_regeneratorDefine2","y","G","TypeError","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","__proto__","displayName","_regenerator","w","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","helpers","defaultOptions","OTLPDefaultOptions","Api","urllib","truncation","_getTransport","OTLPTransportOptions","_getOTLPTransport","_postPromise","reject","postItem","setTimeout","_postSpans","_callee","_args","_context","_x","buildJsonPayload","stringifyResult","postJsonPayload","jsonPayload","_options$tracing","reportLevel","uncaughtErrorLevel","maxItems","itemsPerMin","commonScrubFields","apiScrubFields","requestScrubFields","commonScrubHeaders","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","allowEmpty","parseStack","stackString","parseV8OrIeString","parseFFOrSafariString","extractLocation","urlLike","regExp","applySlice","lines","filtered","sanitizedLine","locationParts","functionName","fileName","function","file","col","functionNameRegex","matches","parseOpera9","parseOpera10","parseOpera11","lineRE","tokens","functionCall","argsRaw","parse$1","parseV8OrIE$1","parseFFOrSafari$1","parseOpera$1","parseOpera9$1","parseOpera10$1","parseOpera11$1","stackframesLiteToStackframes","liteStackframes","liteStackframe","lineNumber","columnNumber","parseErrorStack","UNKNOWN_FUNCTION","ERR_CLASS_REGEXP","Frame","stackFrame","_stackFrame","Stack","skip","getStack","parserStack","_mostSpecificErrorName","rawStack","rawException","nested","cause","traceChain","guessErrorClass","errMsg","errClassMatch","errClass","constructorName","checkLevel","settings","levelVal","reportLevelVal","userCheckIgnore","isUncaught","Boolean","_isUncaught","onSendCallback","checkIgnore","urlIsNotBlockListed","urlIsOnAList","urlIsSafeListed","matchFrames","block","frame","filename","urlRegex","listLength","frameLength","safeOrBlock","traces","tracesLength","listName","messageIsIgnored","ignoredMessages","rIgnoredMessage","messages","messagesFromItem","Notifier","_this$queue","enabled","addPendingItem","originalError","_applyTransforms","removePendingItem","addItem","transformIndex","transformsLength","next","Queue","rateLimiter","replay","predicates","pendingItems","pendingRequests","retryQueue","retryHandle","waitCallback","waitIntervalID","_this$api","addPredicate","predicate","idx","originalItem","predicateResult","_applyPredicates","stop","_maybeLog","transmit","replayId","_makeApiRequest","_dequeuePendingRequest","sendOrDiscardReplay","_this$replay","discard","wait","_maybeCallWait","clearInterval","setInterval","rateLimitResponse","shouldSend","_maybeRetry","shouldRetry","retryInterval","RETRIABLE_ERRORS","maxRetries","retries","_retryApiRequest","retryObject","verbose","RateLimiter","counter","perMinCounter","platformOptions","configureGlobal","itemsPerMinute","globalSettings","elapsedTime","globalRateLimit","globalRateLimitPerMin","checkRate","shouldSendValue","underGlobalLimit","perMinute","setPlatformOptions","limit","ignoreRateLimit","limitPerMin","errorResult","rateLimitPayload","msg","extra","framework","Rollbar","telemeter","validateTracer","_configuredOptions","setStackTraceLimit","lastError","lastErrorHash","global","payloadData","_defaultLogLevel","_log","sendJsonPayload","ignoreDuplicateErrors","_sameAsLastError","_addItemAttributes","_addTracingInfo","telemetryEvents","_this$tracing2","sessionId","itemHash","generateItemHash","validateSpan","setTag","opentracingSpanId","toSpanId","opentracingTraceId","toTraceId","opentracing_span_id","opentracing_trace_id","stackTraceLimit","itemToPayload","addPayloadOptions","payloadOptions","addTelemetryData","addMessageWithError","tracePath","newExtra","newItem","promisedItem","addConfigToPayload","sendConfig","configKey","addFunctionOption","addConfiguredOptions","configuredOptions","configured_options","addDiagnosticKeys","client","is_anonymous","is_uncaught","raw_error","constructor_name","failed","captureUncaughtExceptions","handler","shim","oldOnError","_rollbarOldOnError","onerror","handleAnonymousErrors","_rollbarWindowOnError","old","_rollbarWrappedError","_rollbarContext","handleUncaughtException","anonymousErrorsPending","captureUnhandledRejections","_rollbarURH","belongsToShim","removeEventListener","rejectionHandler","evt","reason","promise","detail","handleUnhandledRejection","addEventListener","autoStart","triggerDefaults","samplingRatio","preDuration","postDuration","triggers","logErrors","logEmits","inlineStylesheet","inlineImages","collectFonts","maskInputOptions","tel","text","color","date","month","number","week","maskAllInputs","blockClass","maskTextClass","ignoreClass","slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","handleDomException","handleItemWithError","stackInfo","_savedStackTrace","e2","ensureItemHasSomethingToSay","addBaseInfo","server","addRequestInfo","requestInfo","query_string","remoteString","user_ip","addClientInfo","nav","scr","screen","runtime_ms","_rollbarStartTime","javascript","browser","cookie_enabled","cookieEnabled","addPluginInfo","plugins","navPlugins","cur","addBody","addBodyTraceChain","addBodyTrace","addBodyMessage","stackFromItem","_unhandledStackInfo","traceChainLength","buildTrace","guess","className","errorClass","class","pre","contextLength","mid","sendFrameUrl","endsWith","reverse","addScrubber","scrubFn","makeFetchRequest","controller","timeoutId","AbortController","abort","signal","clearTimeout","respHeaders","isItemRoute","json","catch","makeXhrRequest","requestFactory","_createXMLHTTPObject","onreadystatechange","readyState","parseResponse","responseText","_isSuccess","getResponseHeader","_isNormalFailure","_newRetriableError","ex","exc","open","setRequestHeader","send","_e1","XDomainRequest","xdomainrequest","onprogress","ontimeout","onload","factories","ActiveXObject","xmlhttp","numFactories","Transport","_makeZoneRequest","rootZone","Zone","root","run","_makeRequest","RollbarProxy","_proxyRequest","rollbarProxy","_msg","auth","hash","parseInt","pathParts","API","sharedPredicates","Client","tracingDefaults","sharedTransforms","browserDefaults","globals","replayDefaults","_instance","components","Instrumenter","instrumenter","wrapGlobals","Replay","_gWindow","replayOptions","recorder","start","gDocument","isChrome","chrome","runtime","addTransformsToNotifier","addPredicatesToQueue","setupUnhandledCapture","instrument","setSessionAttributesFromOptions","rollbar","_this$instrumenter","_createItem","triggerDirectReplay","triggerReplay","unhandledExceptionsInitialized","captureUncaught","handleUncaughtExceptions","wrapGlobalEventHandlers","unhandledRejectionsInitialized","handleUnhandledRejections","inspectAnonymousErrors","prepareStackTrace","_stack","_isAnonymous","reasonResult","wrap","_before","ctxFn","_isWrap","_rollbar_wrapped","_wrappedSource","setSessionUser","setSessionAttributes","_this$tracing3","_options$payload","_options$client","_options$payload2","_options$payload3","_options$payload4","person","code_version","codeVersion","loadFull","setComponents","callInstance","maybeCallback","_getFirstFunction","_Rollbar","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len0","_key0","_len1","_key1","_len10","_key10","_len11","_key11","_len12","_key12","Headers","FetchHeaders","normalizeName","normalizeValue","iteratorFor","items","forEach","append","header","getOwnPropertyNames","oldValue","replacements","orig","getElementType","getAttribute","isDescribedElement","subtypes","tagName","elementType","getElementFromEvent","doc","elementFromPoint","clientX","clientY","treeToArray","elem","MAX_HEIGHT","out","nextDescription","describeElement","parentNode","elementArrayToString","MAX_LENGTH","separator","separatorLength","nextStr","totalLength","descriptionToString","elementString","desc","classes","attribute","isMatchingElement","selectors","cls","classList","contains","sel","domUtil","urlparser","network","networkResponseHeaders","networkResponseBody","networkRequestHeaders","networkRequestBody","networkErrorOnHttp5xx","networkErrorOnHttp4xx","networkErrorOnHttp0","dom","navigation","connectivity","contentSecurityPolicy","errorOnContentSecurityPolicy","restore","nameFromDescription","defaultValueScrubber","patterns","_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","instrumentNetwork","deinstrumentNetwork","instrumentConsole","deinstrumentConsole","instrumentDom","deinstrumentDom","instrumentNavigation","deinstrumentNavigation","instrumentConnectivity","deinstrumentConnectivity","instrumentContentSecurityPolicy","deinstrumentContentSecurityPolicy","wrapProp","xhr","xhrp","isUrlObject","_isUrlObject","__rollbar_xhr","request_content_type","onreadystatechangeHandler","__rollbar_event","response_content_type","headersConfig","allHeaders","getAllResponseHeaders","trim","isJsonContentType","scrubJson","addOtelNetworkResponse","errorOnHttpStatus","trackHttpErrors","_fn","_t","reqHeaders","fetchHeaders","telemetryEvent","contentType","endTimeMs","inHeaders","outHeaders","currentHeader","_this$_window","wrapConsole","origConsole","methods","_i2","_methods","addListener","handleEvent","click","handleClick","dragdrop","handleDrag","focus","handleFocus","form","handleForm","handleInput","resize","handleResize","contentLoaded","handleContentLoaded","_evt","_evt$target","isTrusted","_evt$target2","innerWidth","innerHeight","objs","dataTransfer","files","_evt$dataTransfer","_evt$dataTransfer2","scrubInputValue","inputType","mask","_evt$target3","_evt$target4","_evt$target5","_evt$target6","_evt$target7","chromePackagedApp","app","hasPushState","history","pushState","handleUrlChange","parsedHref","parsedTo","parsedFrom","handleConnectivity","handleCspEvent","cspEvent","blockedURI","violatedDirective","effectiveDirective","sourceFile","originalPolicy","handleCspError","cspHandler","section","types","_iterator7","_step7","_loop","passive","_extendListenerPrototype","oldAddEventListener","_rollbarOldAdd","addFn","bubble","oldRemoveEventListener","_rollbarOldRemove","removeFn"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"rollbar.noconflict.umd.js","mappings":"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","sources":["webpack://rollbar/webpack/universalModuleDefinition","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/tracing/defaults.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/replay/defaults.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/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.noconflict.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rollbar\"] = factory();\n\telse\n\t\troot[\"rollbar\"] = factory();\n})(this, function() {\nreturn ","// 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} 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\", \"\"].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(//, \"$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","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\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","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","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","/**\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","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","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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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\nif ((typeof window !== 'undefined') && !window._rollbarStartTime) {\n window._rollbarStartTime = (new Date()).getTime();\n}\n\nexport default rollbar;\n"],"names":["isType","x","t","typeName","name","_typeof","Error","toString","call","match","toLowerCase","isFunction","f","isNativeFunction","reRegExpChar","funcMatchString","Function","prototype","Object","hasOwnProperty","replace","reIsNative","RegExp","isObject","test","value","hasOwn","obj","prop","isString","String","isFiniteNumber","n","Number","isFinite","isIterable","i","type","isError","e","isPromise","p","then","isBrowser","window","isRequestObject","input","Request","redact","uuid4","d","now","uuid","c","r","Math","random","floor","LEVELS","debug","info","warning","error","critical","sanitizeHref","url","urlObject","URL","password","search","_","sanitizeUrl","baseUrlParts","parseUri","anchor","source","query","parseUriOptions","strictMode","key","q","parser","strict","loose","str","undefined","o","m","exec","uri","l","length","$0","$1","$2","addParamsAndAccessTokenToPath","accessToken","options","params","access_token","paramsArray","k","push","join","sort","path","qs","indexOf","h","substring","formatUrl","u","protocol","port","hostname","result","stringify","backup","JSON","jsonError","backupError","maxByteSize","string","count","code","charCodeAt","jsonParse","s","parse","makeUnhandledStackInfo","message","lineno","colno","mode","backupMessage","errorParser","location","line","column","func","guessFunctionName","context","gatherContext","href","document","useragent","navigator","userAgent","stack","wrapCallback","logger","err","resp","nonCircularClone","seen","clone","newSeen","includes","slice","createItem","args","notifier","requestKeys","lambdaContext","custom","callback","request","arg","extraArgs","diagnostic","argTypes","typ","DOMException","j","len","item","timestamp","data","setCustomItemKeys","_originalArgs","original_arg_types","level","skipFrames","addErrorContext","errors","contextAdded","_iterator","_createForOfIteratorHelper","_step","done","merge","rollbarContext","error_context","TELEMETRY_TYPES","TELEMETRY_LEVELS","arrayIncludes","arr","val","_iterator2","_step2","entry","createTelemetryEvent","metadata","event","addItemAttributes","itemData","attributes","_iterator3","_step3","a","get","keys","split","_e","set","setPrototypeOf","temp","replacement","formatArgsAsString","substr","Date","filterIp","requestData","captureIp","newIp","parts","pop","beginning","slashIdx","terminal","concat","handleOptions","current","payload","updateDeprecatedOptions","overwriteScrubFields","scrubFields","hostWhiteList","hostSafeList","log","hostBlackList","hostBlockList","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","src","copy","create","arguments","shouldAddBaggageHeader","tracing","_options$tracing","sessionId","propagation","enabledHeaders","Array","isArray","enabledCorsUrls","some","pattern","addHeadersToFetch","newHeaders","_init","init","initHeaders","headers","reqHeaders","Headers","_i","_Object$keys","append","_i2","_Object$keys2","getSessionIdFromAsyncLocalStorage","client","storage","asyncLocalStorage","getStore","store","traverse","v","isObj","seenIndex","mapped","same","scrub","scrubPaths","scrubPath","paramRes","_getScrubFieldRegexs","queryRes","_getScrubQueryParamRegexs","redactQueryParam","dummy0","paramPart","paramScrubber","regex","valScrubber","scrubber","tmpV","last","_iterator4","entries","_step4","_step4$value","_slicedToArray","index","ret","_iterator5","_step5","field","pat","_iterator6","_step6","MAX_EVENTS","fromMillis","millis","trunc","round","Telemeter","_this$tracing","_classCallCheck","queue","maxTelemetryEvents","maxQueueSize","max","min","telemetrySpan","startSpan","_createClass","configure","oldOptions","newMaxEvents","deleteCount","splice","copyEvents","events","filterTelemetry","filter","map","_ref","_otelAttributes","otelAttributes","_objectWithoutProperties","_excluded","exportTelemetrySpan","end","capture","rollbarUUID","getLevel","timestamp_ms","body","_exc","captureEvent","captureError","_this$telemetrySpan","addEvent","captureLog","_this$telemetrySpan2","_objectSpread","captureNetwork","subtype","_metadata$response","_metadata$response2","_this$telemetrySpan3","levelFromStatus","status_code","endTimeNano","end_time_ms","method","statusCode","request_headers","response","requestBody","responseBody","start_time_ms","captureDom","element","checked","captureInput","_ref2","_this$telemetrySpan4","isSynthetic","endTimeUnixNano","_getRepeatedEvent","_updateRepeatedEvent","captureClick","_ref3","_this$telemetrySpan5","lastEvent","_lastEvent","target","duration","height","width","textZoomRatio","rate","list","captureFocus","_ref4","_this$telemetrySpan6","captureResize","_ref5","_this$telemetrySpan7","captureDragDrop","_ref6","_this$telemetrySpan8","dropEffect","effectAllowed","kinds","mediaTypes","captureNavigation","from","to","_this$telemetrySpan9","captureDomContentLoaded","ts","getTime","captureLoad","captureConnectivityChange","_ref7","_this$telemetrySpan0","_captureRollbarItem","includeItemsInTelemetry","shift","defaultLevel","manual","Context","parentContext","_currentContext","Map","getValue","setValue","deleteValue","self","delete","ROOT_CONTEXT","ContextManager","currentContext","active","enterContext","previousContext","exitContext","with","fn","thisArg","_len","_key","apply","createContextKey","Symbol","for","toMillis","hrtime","toNanos","add","b","usePerformance","performance","timeOrigin","isHrTime","SpanExporter","api","export","spans","_resultCallback","spanExportQueue","_toConsumableArray","toPayload","_this","resourceSpans","resource","scopeMap","span","scopeKey","instrumentationScope","version","has","scope","_transformSpan","_transformResource","scopeSpans","values","scopeData","_transformInstrumentationScope","post","postSpans","_this2","transformAttributes","_transformAnyValue","transformEvents","timeUnixNano","time","traceId","spanContext","spanId","parentSpanId","kind","startTimeUnixNano","startTime","endTime","_this3","keyValues","_this4","attr","_this5","stringValue","isInteger","intValue","doubleValue","boolValue","arrayValue","kvlistValue","gen","bytes","randomBytes","Uint8Array","crypto","getRandomValues","randHex","byte","padStart","id","SESSION_KEY","Session","_defineProperty","session","_attributes","attrs","getSession","createSession","initSessionAttributes","serializedSession","sessionStorage","getItem","_unused","createdAt","setSession","sessionString","setItem","_unused2","setAttributes","setUser","user","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","addTransform","transformFn","transformSpan","applyTransforms","transform","onStart","_parentContext","onEnd","Span","initReadableSpan","spanProcessor","_options$session","status","links","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount","setAttribute","_Object$entries","_Object$entries$_i","isRecording","Tracer","_this$tracing$resourc","_options$resource","_this$tracing$session","contextManager","parentSpan","getSpan","parentSpanContext","traceFlags","traceState","SPAN_KEY","Tracing","gWindow","createTracer","initSession","_this$options$payload","_this$options$payload2","environment","idGen","tracer","getTracer","addSpanTransform","setSpan","_this$contextManager","withSpan","default","raw","jsonBackup","selectFrames","frames","range","truncateFrames","trace_chain","chain","trace","maybeTruncateValue","truncateStrings","truncator","truncateTraceData","traceData","exception","description","minBody","_step2$value","needsTruncation","maxSize","truncate","strategies","strategy","results","buildPayload","contextResult","getTransportFromOptions","defaults","timeout","transport","detectTransport","proxy","endpoint","opts","pathname","defaultTransport","fetch","XMLHttpRequest","transportOptions","transportAPI","host","appendPathToPath","base","baseTrailingSlash","pathBeginningSlash","iterator","toStringTag","Generator","_regeneratorDefine2","y","G","TypeError","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","__proto__","displayName","_regenerator","w","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","helpers","defaultOptions","OTLPDefaultOptions","Api","urllib","truncation","_getTransport","OTLPTransportOptions","_getOTLPTransport","_postPromise","reject","postItem","setTimeout","_postSpans","_callee","_args","_context","_x","buildJsonPayload","stringifyResult","postJsonPayload","jsonPayload","reportLevel","uncaughtErrorLevel","maxItems","itemsPerMin","commonScrubFields","apiScrubFields","requestScrubFields","commonScrubHeaders","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","allowEmpty","parseStack","stackString","parseV8OrIeString","parseFFOrSafariString","extractLocation","urlLike","regExp","applySlice","lines","filtered","sanitizedLine","locationParts","functionName","fileName","function","file","col","functionNameRegex","matches","parseOpera9","parseOpera10","parseOpera11","lineRE","tokens","functionCall","argsRaw","parse$1","parseV8OrIE$1","parseFFOrSafari$1","parseOpera$1","parseOpera9$1","parseOpera10$1","parseOpera11$1","stackframesLiteToStackframes","liteStackframes","liteStackframe","lineNumber","columnNumber","parseErrorStack","UNKNOWN_FUNCTION","ERR_CLASS_REGEXP","Frame","stackFrame","_stackFrame","Stack","skip","getStack","parserStack","_mostSpecificErrorName","rawStack","rawException","nested","cause","traceChain","guessErrorClass","errMsg","errClassMatch","errClass","constructorName","checkLevel","settings","levelVal","reportLevelVal","userCheckIgnore","isUncaught","Boolean","_isUncaught","onSendCallback","checkIgnore","urlIsNotBlockListed","urlIsOnAList","urlIsSafeListed","matchFrames","block","frame","filename","urlRegex","listLength","frameLength","safeOrBlock","traces","tracesLength","listName","messageIsIgnored","ignoredMessages","rIgnoredMessage","messages","messagesFromItem","Notifier","_this$queue","enabled","addPendingItem","originalError","_applyTransforms","removePendingItem","addItem","transformIndex","transformsLength","next","Queue","rateLimiter","replay","predicates","pendingItems","pendingRequests","retryQueue","retryHandle","waitCallback","waitIntervalID","_this$api","addPredicate","predicate","idx","originalItem","predicateResult","_applyPredicates","stop","_maybeLog","transmit","replayId","_makeApiRequest","_dequeuePendingRequest","sendOrDiscardReplay","_this$replay","discard","wait","_maybeCallWait","clearInterval","setInterval","rateLimitResponse","shouldSend","_maybeRetry","shouldRetry","retryInterval","RETRIABLE_ERRORS","maxRetries","retries","_retryApiRequest","retryObject","verbose","RateLimiter","counter","perMinCounter","platformOptions","configureGlobal","itemsPerMinute","globalSettings","elapsedTime","globalRateLimit","globalRateLimitPerMin","checkRate","shouldSendValue","underGlobalLimit","perMinute","setPlatformOptions","limit","ignoreRateLimit","limitPerMin","errorResult","rateLimitPayload","msg","extra","framework","Rollbar","telemeter","validateTracer","_configuredOptions","setStackTraceLimit","lastError","lastErrorHash","global","payloadData","_defaultLogLevel","_log","sendJsonPayload","ignoreDuplicateErrors","_sameAsLastError","_addItemAttributes","_addTracingInfo","telemetryEvents","_this$tracing2","asyncLocalSessionId","itemHash","generateItemHash","validateSpan","setTag","opentracingSpanId","toSpanId","opentracingTraceId","toTraceId","opentracing_span_id","opentracing_trace_id","stackTraceLimit","itemToPayload","addPayloadOptions","payloadOptions","addTelemetryData","addMessageWithError","tracePath","newExtra","newItem","promisedItem","addConfigToPayload","sendConfig","configKey","addFunctionOption","addConfiguredOptions","configuredOptions","configured_options","addDiagnosticKeys","is_anonymous","is_uncaught","raw_error","constructor_name","failed","captureUncaughtExceptions","handler","shim","oldOnError","_rollbarOldOnError","onerror","handleAnonymousErrors","_rollbarWindowOnError","old","_rollbarWrappedError","_rollbarContext","handleUncaughtException","anonymousErrorsPending","captureUnhandledRejections","_rollbarURH","belongsToShim","removeEventListener","rejectionHandler","evt","reason","promise","detail","handleUnhandledRejection","addEventListener","autoStart","triggerDefaults","samplingRatio","preDuration","postDuration","triggers","logErrors","logEmits","inlineStylesheet","inlineImages","collectFonts","maskInputOptions","tel","text","color","date","month","number","week","maskAllInputs","blockClass","maskTextClass","ignoreClass","slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","handleDomException","handleItemWithError","stackInfo","_savedStackTrace","e2","ensureItemHasSomethingToSay","addBaseInfo","server","addRequestInfo","requestInfo","query_string","remoteString","user_ip","addClientInfo","nav","scr","screen","runtime_ms","_rollbarStartTime","javascript","browser","cookie_enabled","cookieEnabled","addPluginInfo","plugins","navPlugins","cur","addBody","addBodyTraceChain","addBodyTrace","addBodyMessage","stackFromItem","_unhandledStackInfo","traceChainLength","buildTrace","guess","className","errorClass","class","pre","contextLength","mid","sendFrameUrl","endsWith","reverse","addScrubber","scrubFn","makeFetchRequest","controller","timeoutId","AbortController","abort","signal","clearTimeout","respHeaders","isItemRoute","json","catch","makeXhrRequest","requestFactory","_createXMLHTTPObject","onreadystatechange","readyState","parseResponse","responseText","_isSuccess","getResponseHeader","_isNormalFailure","_newRetriableError","ex","exc","open","setRequestHeader","send","_e1","XDomainRequest","xdomainrequest","onprogress","ontimeout","onload","factories","ActiveXObject","xmlhttp","numFactories","Transport","_makeZoneRequest","rootZone","Zone","root","run","_makeRequest","RollbarProxy","_proxyRequest","rollbarProxy","_msg","auth","hash","parseInt","pathParts","API","sharedPredicates","Client","tracingDefaults","sharedTransforms","browserDefaults","globals","replayDefaults","_instance","components","Instrumenter","instrumenter","wrapGlobals","Replay","_gWindow","replayOptions","recorder","start","gDocument","isChrome","chrome","runtime","addTransformsToNotifier","addPredicatesToQueue","setupUnhandledCapture","instrument","setSessionAttributesFromOptions","rollbar","_this$instrumenter","_createItem","triggerDirectReplay","triggerReplay","unhandledExceptionsInitialized","captureUncaught","handleUncaughtExceptions","wrapGlobalEventHandlers","unhandledRejectionsInitialized","handleUnhandledRejections","inspectAnonymousErrors","prepareStackTrace","_stack","_isAnonymous","reasonResult","wrap","_before","ctxFn","_isWrap","_rollbar_wrapped","_wrappedSource","setSessionUser","setSessionAttributes","_this$tracing3","_options$payload","_options$client","_options$payload2","_options$payload3","_options$payload4","person","code_version","codeVersion","loadFull","setComponents","callInstance","maybeCallback","_getFirstFunction","_Rollbar","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len0","_key0","_len1","_key1","_len10","_key10","_len11","_key11","_len12","_key12","FetchHeaders","normalizeName","normalizeValue","iteratorFor","items","forEach","header","getOwnPropertyNames","oldValue","replacements","orig","getElementType","getAttribute","isDescribedElement","subtypes","tagName","elementType","getElementFromEvent","doc","elementFromPoint","clientX","clientY","treeToArray","elem","MAX_HEIGHT","out","nextDescription","describeElement","parentNode","elementArrayToString","MAX_LENGTH","separator","separatorLength","nextStr","totalLength","descriptionToString","elementString","desc","classes","attribute","isMatchingElement","selectors","cls","classList","contains","sel","domUtil","urlparser","network","networkResponseHeaders","networkResponseBody","networkRequestHeaders","networkRequestBody","networkErrorOnHttp5xx","networkErrorOnHttp4xx","networkErrorOnHttp0","dom","navigation","connectivity","contentSecurityPolicy","errorOnContentSecurityPolicy","restore","nameFromDescription","defaultValueScrubber","patterns","_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","instrumentNetwork","deinstrumentNetwork","instrumentConsole","deinstrumentConsole","instrumentDom","deinstrumentDom","instrumentNavigation","deinstrumentNavigation","instrumentConnectivity","deinstrumentConnectivity","instrumentContentSecurityPolicy","deinstrumentContentSecurityPolicy","wrapProp","xhr","xhrp","isUrlObject","_isUrlObject","__rollbar_xhr","request_content_type","_self$rollbar","_xhr$__rollbar_xhr","onreadystatechangeHandler","__rollbar_event","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","wrapConsole","origConsole","methods","_methods","addListener","handleEvent","click","handleClick","dragdrop","handleDrag","focus","handleFocus","form","handleForm","handleInput","resize","handleResize","contentLoaded","handleContentLoaded","_evt","_evt$target","isTrusted","_evt$target2","innerWidth","innerHeight","objs","dataTransfer","files","_evt$dataTransfer","_evt$dataTransfer2","scrubInputValue","inputType","mask","_evt$target3","_evt$target4","_evt$target5","_evt$target6","_evt$target7","chromePackagedApp","app","hasPushState","history","pushState","handleUrlChange","parsedHref","parsedTo","parsedFrom","handleConnectivity","handleCspEvent","cspEvent","blockedURI","violatedDirective","effectiveDirective","sourceFile","originalPolicy","handleCspError","cspHandler","section","types","_iterator7","_step7","_loop","passive","_extendListenerPrototype","oldAddEventListener","_rollbarOldAdd","addFn","bubble","oldRemoveEventListener","_rollbarOldRemove","removeFn"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/rollbar.noconflict.umd.min.js b/dist/rollbar.noconflict.umd.min.js index 33cf744a..02e634f9 100644 --- a/dist/rollbar.noconflict.umd.min.js +++ b/dist/rollbar.noconflict.umd.min.js @@ -1,3 +1,3 @@ /*! For license information please see rollbar.noconflict.umd.min.js.LICENSE.txt */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.rollbar=e():t.rollbar=e()}(this,function(){return function(){"use strict";var t={d:function(e,r){for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{default:function(){return Xn}});var r={};function n(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return o(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(u||(u=S({})),u.extraArgs=S(p));var g,w={message:i,err:a,custom:u,timestamp:P(),callback:l,notifier:r,diagnostic:{},uuid:(g=P(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(g+16*Math.random())%16|0;return g=Math.floor(g/16),("x"===t?e:7&e|8).toString(16)}))};return w.data=w.data||{},function(t,e){e&&void 0!==e.level&&(t.level=e.level,delete e.level);e&&void 0!==e.skipFrames&&(t.skipFrames=e.skipFrames,delete e.skipFrames)}(w,u),n&&c&&(w.request=c),o&&(w.lambdaContext=o),w._originalArgs=t,w.diagnostic.original_arg_types=h,w}var O=["log","network","dom","navigation","error","manual"],x=["critical","error","warning","info","debug"];function E(t,e){var r,o=n(t);try{for(o.s();!(r=o.n()).done;){if(r.value===e)return!0}}catch(t){o.e(t)}finally{o.f()}return!1}function j(t,e){t.attributes=t.attributes||[];var r,o=n(e);try{for(o.s();!(r=o.n()).done;){var i=r.value;void 0!==i.value&&t.attributes.push(i)}}catch(t){o.e(t)}finally{o.f()}}function I(t,e){if(t){var r=e.split("."),n=t;try{for(var o=0,i=r.length;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function N(t,e){if(t){if("string"==typeof t)return D(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D(t,e):void 0}}function D(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rn&&(o=this.queue.length-n),this.maxQueueSize=n,this.queue.splice(0,o)}},{key:"copyEvents",value:function(){var t=Array.prototype.slice.call(this.queue,0);if(u(this.options.filterTelemetry))try{for(var e=t.length;e--;)this.options.filterTelemetry(t[e])&&t.splice(e,1)}catch(t){this.options.filterTelemetry=null}return t=(t=t.filter(function(t){return"connectivity"!==t.type})).map(function(t){t.otelAttributes;var e=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.telemetrySpan&&(this.telemetrySpan.end(t),this.telemetrySpan=this.tracing.startSpan("rollbar-telemetry",{}))}},{key:"capture",value:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a={level:Z(t,r),type:t,timestamp_ms:o||P(),body:e,source:"client"};n&&(a.uuid=n),i&&(a.otelAttributes=i);try{if(u(this.options.filterTelemetry)&&this.options.filterTelemetry(a))return!1}catch(t){this.options.filterTelemetry=null}return this.push(a),a}},{key:"captureEvent",value:function(t,e,r,n){return this.capture(t,e,r,n)}},{key:"captureError",value:function(t,e,r,n){var o,i=t.message||String(t),a={message:i};t.stack&&(a.stack=t.stack);var s={message:i,level:e,type:"error",uuid:r};return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-occurrence-event",s,z(n)),this.capture("error",a,e,r,n,s)}},{key:"captureLog",value:function(t,e,r,n){var o,i=r?"rollbar-occurrence-event":"rollbar-log-event",a=V({message:t,level:e},r?{type:"message",uuid:r}:{});return null===(o=this.telemetrySpan)||void 0===o||o.addEvent(i,a,z(n)),this.capture("log",{message:t},e,r,n,a)}},{key:"captureNetwork",value:function(t,e,r,n){var o,i,a;e=e||"xhr",t.subtype=t.subtype||e,n&&(t.request=n);var s=this.levelFromStatus(t.status_code),u=1e6*(t.end_time_ms||0),l={type:t.subtype,method:t.method,url:t.url,statusCode:t.status_code,"request.headers":JSON.stringify(t.request_headers||{}),"response.headers":JSON.stringify((null===(o=t.response)||void 0===o?void 0:o.headers)||{}),"response.timeUnixNano":u.toString()},c=t.request,f=null===(i=t.response)||void 0===i?void 0:i.body;return c&&(l["request.body"]=JSON.stringify(c)),f&&(l["response.body"]=JSON.stringify(f)),null===(a=this.telemetrySpan)||void 0===a||a.addEvent("rollbar-network-event",l,z(t.start_time_ms)),this.capture("network",t,s,r,t.start_time_ms,l)}},{key:"levelFromStatus",value:function(t){return t>=200&&t<400?"info":0===t||t>=400?"error":"info"}},{key:"captureDom",value:function(t,e,r,n,o){var i={subtype:t,element:e};return void 0!==r&&(i.value=r),void 0!==n&&(i.checked=n),this.capture("dom",i,"info",o)}},{key:"captureInput",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.value,a=t.timestamp,s="rollbar-input-event",u={type:s,subtype:r,element:o,value:i},l={type:r,isSynthetic:n,element:o,value:i,endTimeUnixNano:z(a)},c=this._getRepeatedEvent(s,l);return c?this._updateRepeatedEvent(c,l,a):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(s,l,z(a)),this.capture("dom",u,"info",null,a,l))}},{key:"captureClick",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-click-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o,endTimeUnixNano:z(i)},l=this._getRepeatedEvent(a,u);return l?this._updateRepeatedEvent(l,u,i):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,z(i)),this.capture("dom",s,"info",null,i,u))}},{key:"_getRepeatedEvent",value:function(t,e){var r=this._lastEvent(this.queue);if(r&&r.body.type===t&&r.otelAttributes.target===e.target)return r}},{key:"_updateRepeatedEvent",value:function(t,e,r){var n=Math.max(r-t.timestamp_ms,1);t.body.value=e.value,t.otelAttributes.value=e.value,t.otelAttributes.height=e.height,t.otelAttributes.width=e.width,t.otelAttributes.textZoomRatio=e.textZoomRatio,t.otelAttributes.endTimeUnixNano=z(r),t.otelAttributes.durationUnixNano=z(n),t.otelAttributes.count=(t.otelAttributes.count||1)+1,t.otelAttributes.rate=t.otelAttributes.count/(n/1e3)}},{key:"_lastEvent",value:function(t){return t.length>0?t[t.length-1]:null}},{key:"captureFocus",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-focus-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,z(i)),this.capture("dom",s,"info",null,i,u)}},{key:"captureResize",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.width,i=t.height,a=t.textZoomRatio,s=t.timestamp,u="rollbar-resize-event",l={type:u,subtype:r,width:o,height:i,textZoomRatio:a},c={type:r,isSynthetic:n,width:o,height:i,textZoomRatio:a},f=this._getRepeatedEvent(u,c);return f?this._updateRepeatedEvent(f,c,s):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(u,c,z(s)),this.capture("dom",l,"info",null,s,c))}},{key:"captureDragDrop",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.dropEffect,a=t.effectAllowed,s=t.kinds,u=t.mediaTypes,l=t.timestamp,c="rollbar-dragdrop-event",f={type:c,subtype:r,isSynthetic:n},p={type:r,isSynthetic:n};return"dragstart"===r&&(f=V(V({},f),{},{element:o,dropEffect:i,effectAllowed:a}),p=V(V({},p),{},{element:o,dropEffect:i,effectAllowed:a})),"drop"===r&&(f=V(V({},f),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u}),p=V(V({},p),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u})),null===(e=this.telemetrySpan)||void 0===e||e.addEvent(c,p,z(l)),this.capture("dom",f,"info",null,l,p)}},{key:"captureNavigation",value:function(t,e,r,n){var o;return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-navigation-event",{"previous.url.full":t,"url.full":e},z(n)),this.capture("navigation",{from:t,to:e},"info",r,n)}},{key:"captureDomContentLoaded",value:function(t){return this.capture("navigation",{subtype:"DOMContentLoaded"},"info",void 0,t&&t.getTime())}},{key:"captureLoad",value:function(t){return this.capture("navigation",{subtype:"load"},"info",void 0,t&&t.getTime())}},{key:"captureConnectivityChange",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.timestamp,i="rollbar-connectivity-event",a={type:i,subtype:r},s={type:r,isSynthetic:n};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(i,s,z(o)),this.capture("connectivity",a,"info",null,o,s)}},{key:"_captureRollbarItem",value:function(t){if(this.options.includeItemsInTelemetry)return t.err?this.captureError(t.err,t.level,t.uuid,t.timestamp):t.message?this.captureLog(t.message,t.level,t.uuid,t.timestamp):t.custom?this.capture("log",t.custom,t.level,t.uuid,t.timestamp):void 0}},{key:"push",value:function(t){this.queue.push(t),this.queue.length>this.maxQueueSize&&this.queue.shift()}}],e&&W(t.prototype,e),r&&W(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Z(t,e){if(e)return e;return{error:"error",manual:"info"}[t]||"info"}var Q=X;function K(t){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},K(t)}function Y(t,e){for(var r=0;r3?o-3:0),a=3;a0&&void 0!==arguments[0]&&arguments[0]?ut(st(performance.timeOrigin),st(performance.now())):st(Date.now())},isHrTime:function(t){return Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]}};function ct(t){return ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ct(t)}function ft(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||ht(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pt(t){return function(t){if(Array.isArray(t))return dt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||ht(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ht(t,e){if(t){if("string"==typeof t)return dt(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dt(t,e):void 0}}function dt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.api=e,this.options=r},e=[{key:"export",value:function(t,e){bt.push.apply(bt,pt(t))}},{key:"toPayload",value:function(){var t=this,e=bt.slice();if(bt.length=0,!e||!e.length)return{resourceSpans:[]};var r,n=e[0]&&e[0].resource||{},o=new Map,i=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=ht(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e);try{for(i.s();!(r=i.n()).done;){var a=r.value,s=a.instrumentationScope?"".concat(a.instrumentationScope.name,":").concat(a.instrumentationScope.version):"default:1.0.0";o.has(s)||o.set(s,{scope:a.instrumentationScope||{name:"default",version:"1.0.0",attributes:[]},spans:[]}),o.get(s).spans.push(this._transformSpan(a))}}catch(t){i.e(t)}finally{i.f()}return{resourceSpans:[{resource:this._transformResource(n),scopeSpans:Array.from(o.values()).map(function(e){return{scope:t._transformInstrumentationScope(e.scope),spans:e.spans}})}]}}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.api.postSpans(t,e)}},{key:"_transformSpan",value:function(t){var e,r=this,n=function(t){return Object.entries(t||{}).map(function(t){var e=ft(t,2),n=e[0],o=e[1];return{key:n,value:r._transformAnyValue(o)}})};return{traceId:t.spanContext.traceId,spanId:t.spanContext.spanId,parentSpanId:t.parentSpanId||"",name:t.name,kind:t.kind||1,startTimeUnixNano:lt.toNanos(t.startTime),endTimeUnixNano:lt.toNanos(t.endTime),attributes:n(t.attributes),events:(e=t.events,(e||[]).map(function(t){return{timeUnixNano:lt.toNanos(t.time),name:t.name,attributes:n(t.attributes)}}))}}},{key:"_transformResource",value:function(t){var e=this,r=t.attributes||{};return{attributes:Object.entries(r).map(function(t){var r=ft(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}},{key:"_transformInstrumentationScope",value:function(t){var e=this;return{name:t.name||"",version:t.version||"",attributes:(t.attributes||[]).map(function(t){return{key:t.key,value:e._transformAnyValue(t.value)}})}}},{key:"_transformAnyValue",value:function(t){var e=this;if(null==t)return{stringValue:""};var r=ct(t);return"string"===r?{stringValue:t}:"number"===r?Number.isInteger(t)?{intValue:t.toString()}:{doubleValue:t}:"boolean"===r?{boolValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(function(t){return e._transformAnyValue(t)})}}:"object"===r?{kvlistValue:{values:Object.entries(t).map(function(t){var r=ft(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}:{stringValue:String(t)}}}],e&&yt(t.prototype,e),r&&yt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),bt=[];var gt={gen:function(){var t=new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:16);return crypto.getRandomValues(t),Array.from(t,function(t){return t.toString(16).padStart(2,"0")}).join("")}};function wt(t){return wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wt(t)}function kt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function St(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.session||(this.getSession()||this.createSession(),this.initSessionAttributes(t)),this}},{key:"getSession",value:function(){try{var t=this.window.sessionStorage.getItem(Et);if(!t)return null;this.session=JSON.parse(t)}catch(t){return null}return this}},{key:"createSession",value:function(){return this.session={id:gt.gen(),createdAt:Date.now()},this.setSession(this.session)}},{key:"setSession",value:function(t){var e=JSON.stringify(t);try{this.window.sessionStorage.setItem(Et,e)}catch(t){return null}return this}},{key:"attributes",get:function(){return this._attributes}},{key:"setAttributes",value:function(t){return this._attributes=St(St({},this._attributes),t),this}},{key:"setUser",value:function(t){return this.setAttributes({"user.id":null==t?void 0:t.id,"user.email":null==t?void 0:t.email,"user.name":(null==t?void 0:t.name)||(null==t?void 0:t.username)}),this}},{key:"initSessionAttributes",value:function(t){var e,r,n;return this.setAttributes(St({"session.id":this.session.id,"browser.brands":null===(e=navigator.userAgentData)||void 0===e?void 0:e.brands,"browser.language":navigator.language,"browser.mobile":null===(r=navigator.userAgentData)||void 0===r?void 0:r.mobile,"browser.platform":null===(n=navigator.userAgentData)||void 0===n?void 0:n.platform,"client.address":"$remote_ip","rollbar.notifier.framework":"browser-js","user_agent.original":navigator.userAgent},t)),this}}],e&&_t(t.prototype,e),r&&_t(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),It=function(){},Tt={debug:0,info:1,warn:2,error:3,disable:4},Pt={error:function(){for(var t=arguments.length,e=new Array(t),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Lt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.exporter=e,this.options=r,this.pendingSpans=new Map,this.transforms=[this.userTransform.bind(this)]},e=[{key:"addTransform",value:function(t){this.transforms.unshift(t)}},{key:"userTransform",value:function(t){this.options.transformSpan&&this.options.transformSpan({span:t})}},{key:"applyTransforms",value:function(t){var e,r=Ct(this.transforms);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{n(t)}catch(t){At.error("Error running span transform callback",t)}}}catch(t){r.e(t)}finally{r.f()}}},{key:"onStart",value:function(t,e){this.pendingSpans.set(t.span.spanContext.spanId,t)}},{key:"onEnd",value:function(t){this.applyTransforms(t.span),this.exporter.export([t.export()]),this.pendingSpans.delete(t.span.spanContext.spanId)}}],e&&qt(t.prototype,e),r&&qt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Mt(t){return Mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mt(t)}function Ut(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Ht(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ht(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ht(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;return this.span.ended||this.span.events.push({name:t,attributes:e,time:r||lt.now(),droppedAttributesCount:0}),this}},{key:"isRecording",value:function(){return!1===this.span.ended}},{key:"end",value:function(t,e){t&&this.setAttributes(t),this.span.endTime=e||lt.now(this.usePerformance),this.span.ended=!0,this.spanProcessor.onEnd(this)}},{key:"export",value:function(){return this.span}}],e&&Ft(t.prototype,e),r&&Ft(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Bt(t){return Bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bt(t)}function Wt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function $t(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.tracing.contextManager.active(),u=this.tracing.getSpan(s),l=null==u?void 0:u.spanContext(),c=gt.gen(8),f=null;l?(o=l.traceId,f=l.traceState,i=l.spanId):o=gt.gen(16);var p={traceId:o,spanId:c,traceFlags:0,traceState:f},h={attributes:$t($t({},(null===(e=this.tracing.resource)||void 0===e?void 0:e.attributes)||{}),(null===(r=a.resource)||void 0===r?void 0:r.attributes)||{})};return new Vt({resource:h,scope:this.tracing.scope,session:null===(n=this.tracing.session)||void 0===n?void 0:n.session,context:s,spanContext:p,name:t,kind:0,parentSpanId:i,spanProcessor:this.spanProcessor,startTime:a.startTime,usePerformance:a.usePerformance})}}],e&&zt(t.prototype,e),r&&zt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Qt(t){return Qt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qt(t)}function Kt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Yt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:16;return gt.gen(t)}},{key:"createTracer",value:function(){this.contextManager=new at,this.exporter=new mt(this.api,this.options),this.spanProcessor=new Dt(this.exporter,this.options.tracing),this.tracer=new Zt(this,this.spanProcessor)}},{key:"getTracer",value:function(){return this.tracer}},{key:"addSpanTransform",value:function(t){this.spanProcessor.addTransform(t)}},{key:"getSpan",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active()).getValue(oe)}},{key:"setSpan",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active(),e=arguments.length>1?arguments[1]:void 0;return t.setValue(oe,e)}},{key:"startSpan",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.contextManager.active();return this.tracer.startSpan(t,e,r)}},{key:"with",value:function(t,e,r){for(var n,o=arguments.length,i=new Array(o>3?o-3:0),a=3;a=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ue(t,e){if(t){if("string"==typeof t)return le(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?le(t,e):void 0}}function le(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2*e?t.slice(0,e).concat(t.slice(r-e)):t}function pe(t,e,r){r=void 0===r?30:r;var n,o=t.data.body;if(o.trace_chain){var i,a=se(o.trace_chain);try{for(a.s();!(i=a.n()).done;){var s=i.value;n=fe(n=s.frames,r),s.frames=n}}catch(t){a.e(t)}finally{a.f()}}else o.trace&&(n=fe(n=o.trace.frames,r),o.trace.frames=n);return[t,b(t,e)]}function he(t,e){return e&&e.length>t?e.slice(0,t-3).concat("..."):e}function de(t,e,r){return e=C(e,function e(r,n,o){switch(s(n)){case"string":return he(t,n);case"object":case"array":return C(n,e,o);default:return n}}),[e,b(e,r)]}function ye(t){return t.exception&&(delete t.exception.description,t.exception.message=he(255,t.exception.message)),t.frames=fe(t.frames,1),t}function ve(t,e){var r=t.data.body;if(r.trace_chain){var n,o=r.trace_chain,i=se(o.entries());try{for(i.s();!(n=i.n()).done;){var a=ae(n.value,2),s=a[0],u=a[1];o[s]=ye(u)}}catch(t){i.e(t)}finally{i.f()}}else r.trace&&(r.trace=ye(r.trace));return[t,b(t,e)]}function me(t,e){return function(t){for(var e=0,r=t.length,n=0;ne}var be={truncate:function(t,e,r){r=void 0===r?524288:r;for(var n,o,i,a=[ce,pe,de.bind(null,1024),de.bind(null,512),de.bind(null,256),ve];n=a.shift();)if(t=(o=n(t,e))[0],(i=o[1]).error||!me(i.value,r))return i;return i},raw:ce,truncateFrames:pe,truncateStrings:de,maybeTruncateValue:he};function ge(t){if(!a(t.context,"string")){var e=b(t.context);e.error?t.context="Error: could not serialize 'context'":t.context=e.value||"",t.context.length>255&&(t.context=t.context.substr(0,255))}return{data:t}}function we(t,e,r){var n=e.hostname,o=e.protocol,i=e.port,a=e.path,s=e.search,u=t.timeout,l=function(t){var e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=t.defaultTransport||"xhr";void 0===e.fetch&&(r="xhr");void 0===e.XMLHttpRequest&&(r="fetch");return r}(t),c=t.proxy;if(t.endpoint){var f=r.parse(t.endpoint);n=f.hostname,o=f.protocol,i=f.port,a=f.pathname,s=f.search}return{timeout:u,hostname:n,protocol:o,port:i,path:a,search:s,proxy:c,transport:l}}function ke(t,e){var r=t.protocol||"https:",n=t.port||("http:"===r?80:"https:"===r?443:void 0),o=t.hostname,i=t.path,a=t.timeout,s=t.transport;return t.search&&(i+=t.search),t.proxy&&(i=r+"//"+o+i,o=t.proxy.host||t.proxy.hostname,n=t.proxy.port,r=t.proxy.protocol||r),{timeout:a,protocol:r,hostname:o,path:i,port:n,method:e,transport:s}}function Se(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function _e(t){for(var e=1;e3?(o=d===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=h&&((o=r<2&&hn||n>d)&&(i[4]=r,i[5]=n,p.n=d,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,d){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,d),s=c,u=d;(e=s<2?t:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=t}else if((e=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(e){i=t,s=1,u=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(je(e={},n,function(){return this}),e),f=l.prototype=s.prototype=Object.create(c);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,je(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,je(f,"constructor",l),je(l,"constructor",u),u.displayName="GeneratorFunction",je(l,o,"GeneratorFunction"),je(f),je(f,o,"Generator"),je(f,n,function(){return this}),je(f,"toString",function(){return"[object Generator]"}),(Ee=function(){return{w:i,m:p}})()}function je(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}je=function(t,e,r,n){function i(e,r){je(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},je(t,e,r,n)}function Ie(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function Te(t,e){for(var r=0;r1&&void 0!==o[1]?o[1]:{},n=ke(this.OTLPTransportOptions,"POST"),t.a(2,this._postPromise({accessToken:this.accessToken,options:n,payload:e,headers:r}))},t,this)}),o=function(){var t=this,e=arguments;return new Promise(function(r,o){var i=n.apply(t,e);function a(t){Ie(i,r,o,a,s,"next",t)}function s(t){Ie(i,r,o,a,s,"throw",t)}a(void 0)})},function(t){return o.apply(this,arguments)})},{key:"buildJsonPayload",value:function(t,e){var r,n=ge(t);return(r=this.truncation?this.truncation.truncate(n):b(n)).error?(e&&e(r.error),null):r.value}},{key:"postJsonPayload",value:function(t,e){var r=ke(this.transportOptions,"POST");this.transport.postJsonPayload(this.accessToken,r,t,e)}},{key:"configure",value:function(t){var e=this.options;return this.options=R(e,t),this.transportOptions=Le(this.options,this.url),this.OTLPTransportOptions=qe(this.options,this.url),void 0!==this.options.accessToken&&(this.accessToken=this.options.accessToken),this}}],e&&Te(t.prototype,e),r&&Te(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r,n,o}();function Le(t,e){return we(t,Ae,e)}function qe(t,e){var r;return we(t=_e(_e({},t),{},{endpoint:null===(r=t.tracing)||void 0===r?void 0:r.endpoint}),Re,e)}var Ne=Ce,De="3.0.0",Me="api.rollbar.com/api/1/item/",Ue="debug",He="debug",Fe="error",Je=/(^|@)\S+:\d+/,Ve=/^\s*at .*(\S+:\d+|\(native\))/m,Be=/^(eval@)?(\[native code\])?$/;function We(t,e){if(void 0!==t.stacktrace||void 0!==t["opera#sourceloc"])return function(t,e){return!t.stacktrace||t.message.includes("\n")&&t.message.split("\n").length>t.stacktrace.split("\n").length?function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)/i,n=t.message.split("\n"),o=[],i=2,a=n.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;return o.match(/\(([^)]*)\)/)&&(e=o.replace(/^[^(]+\(([^)]*)\)$/,"$1")),{function:i,args:void 0===e||"[arguments not available]"===e?void 0:e.split(","),file:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}(t,e):function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,n=t.stacktrace.split("\n"),o=[],i=0,a=n.length;i"].includes(n[0])?void 0:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}function Xe(t,e){return Ge(t.split("\n").filter(function(t){return!t.match(Be)}),e).map(function(t){if(t.includes(" > eval")&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),t.includes("@")||t.includes(":")){var e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,r=t.match(e),n=r&&r[1]?r[1]:void 0,o=$e(t.replace(e,""));return{function:n,file:o[0],line:o[1]?+o[1]:void 0,col:o[2]?+o[2]:void 0,raw:t}}return{function:t}})}function Ze(t){return t.map(function(t){return{functionName:t.function,args:t.args,fileName:t.file,lineNumber:t.line,columnNumber:t.col,source:t.raw}})}var Qe=new RegExp("^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ");function Ke(){return null}function Ye(t){var e={};return e._stackFrame=t,e.url=t.fileName,e.line=t.lineNumber,e.func=t.functionName,e.column=t.columnNumber,e.args=t.args,e.context=null,e}function tr(t,e){return{stack:function(){var r,n=[];e=e||0;try{n=Ze(We(t,r))}catch(t){n=[]}for(var o=[],i=e;i=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function or(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rthis.options.maxRetries&&(o=!1))}o?this._retryApiRequest(r,n):n(e)}},{key:"_retryApiRequest",value:function(t,e){var r=this;this.retryQueue.push({item:t,callback:e}),this.retryHandle||(this.retryHandle=setInterval(function(){for(;r.retryQueue.length;){var t=r.retryQueue.shift();r._makeApiRequest(t.item,t.callback)}},this.options.retryInterval))}},{key:"_dequeuePendingRequest",value:function(t){var e=this.pendingRequests.indexOf(t);-1!==e&&(this.pendingRequests.splice(e,1),this._maybeCallWait())}},{key:"_maybeLog",value:function(t,e){if(this.logger&&this.options.verbose){var r=e||I(t,"body.trace.exception.message")||I(t,"body.trace_chain.0.exception.message");if(r)return void this.logger.error(r);(r=I(t,"body.message.body"))&&this.logger.log(r)}}},{key:"_maybeCallWait",value:function(){return!(!u(this.waitCallback)||0!==this.pendingItems.length||0!==this.pendingRequests.length||(this.waitIntervalID&&(this.waitIntervalID=clearInterval(this.waitIntervalID)),this.waitCallback(),0))}}],r&&dr(e.prototype,r),n&&dr(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();vr=gr,br=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE","EAI_AGAIN"],(mr=yr(mr="RETRIABLE_ERRORS"))in vr?Object.defineProperty(vr,mr,{value:br,enumerable:!0,configurable:!0,writable:!0}):vr[mr]=br;var wr=gr;function kr(t){return kr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},kr(t)}function Sr(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.startTime=Date.now(),this.counter=0,this.perMinCounter=0,this.platform=null,this.platformOptions={},this.configureGlobal(e)}return function(t,e,r){return e&&Sr(t.prototype,e),r&&Sr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(t,[{key:"configureGlobal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.startTime,n=e.maxItems,o=e.itemsPerMinute;void 0!==r&&(t.globalSettings.startTime=r),void 0!==n&&(t.globalSettings.maxItems=n),void 0!==o&&(t.globalSettings.itemsPerMinute=o)}},{key:"shouldSend",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=r-this.startTime;(n<0||n>=6e4)&&(this.startTime=r,this.perMinCounter=0);var o=t.globalSettings.maxItems,i=t.globalSettings.itemsPerMinute;if(xr(e,o,this.counter))return Er(this.platform,this.platformOptions,"".concat(o," max items reached"),!1);if(xr(e,i,this.perMinCounter))return Er(this.platform,this.platformOptions,"".concat(i," items per minute reached"),!1);this.counter+=1,this.perMinCounter+=1;var a=!xr(e,o,this.counter),s=a,u=a&&!xr(e,i,this.perMinCounter);return Er(this.platform,this.platformOptions,null,u,o,i,s)}},{key:"setPlatformOptions",value:function(t,e){this.platform=t,this.platformOptions=e}}])}();function xr(t,e,r){return!t.ignoreRateLimit&&e>=1&&r>e}function Er(t,e,r,n,o,i,a){var s=null,u=r?new Error(r):null;return u||n||(s=function(t,e,r,n,o){var i=e.environment||e.payload&&e.payload.environment,a=o?"item per minute limit reached, ignoring errors until timeout":"maxItems has been hit, ignoring errors until reset.",s={body:{message:{body:a,extra:{maxItems:r,itemsPerMinute:n}}},language:"javascript",environment:i,notifier:{version:e.notifier&&e.notifier.version||e.version}};"browser"===t?(s.platform="browser",s.framework="browser-js",s.notifier.name="rollbar-browser-js"):"server"===t?(s.framework=e.framework||"node-js",s.notifier.name=e.notifier.name):"react-native"===t&&(s.framework=e.framework||"react-native",s.notifier.name=e.notifier.name);return s}(t,e,o,i,a)),{error:u,shouldSend:n,payload:s}}!function(t,e,r){(e=_r(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}(Or,"globalSettings",{startTime:Date.now(),maxItems:void 0,itemsPerMinute:void 0});var jr=Or;function Ir(t,e,r,n,o,i,a){this.options=R(t),this.logger=r,Ir.rateLimiter.configureGlobal(this.options),Ir.rateLimiter.setPlatformOptions(a,this.options),this.api=e,this.queue=new wr(Ir.rateLimiter,e,r,this.options,i),this.tracing=o;var s=this.options.tracer||null;Pr(s)?(this.tracer=s,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier=new pr(this.queue,this.options),this.telemeter=n,Tr(t),this.lastError=null,this.lastErrorHash="none"}function Tr(t){t.stackTraceLimit&&(Error.stackTraceLimit=t.stackTraceLimit)}function Pr(t){if(!t)return!1;if(!t.scope||"function"!=typeof t.scope)return!1;var e=t.scope();return!(!e||!e.active||"function"!=typeof e.active)}Ir.rateLimiter=new jr({maxItems:0,itemsPerMinute:60}),Ir.prototype.global=function(t){return Ir.rateLimiter.configureGlobal(t),this},Ir.prototype.configure=function(t,e){var r=this.options,n={};e&&(n={payload:e}),this.options=R(r,t,n);var o=this.options.tracer||null;return Pr(o)?(this.tracer=o,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier&&this.notifier.configure(this.options),this.telemeter&&this.telemeter.configure(this.options),Tr(t),this.global(this.options),Pr(t.tracer)&&(this.tracer=t.tracer),this},Ir.prototype.log=function(t){var e=this._defaultLogLevel();return this._log(e,t)},Ir.prototype.debug=function(t){this._log("debug",t)},Ir.prototype.info=function(t){this._log("info",t)},Ir.prototype.warn=function(t){this._log("warning",t)},Ir.prototype.warning=function(t){this._log("warning",t)},Ir.prototype.error=function(t){this._log("error",t)},Ir.prototype.critical=function(t){this._log("critical",t)},Ir.prototype.wait=function(t){this.queue.wait(t)},Ir.prototype.captureEvent=function(t,e,r){return this.telemeter&&this.telemeter.captureEvent(t,e,r)},Ir.prototype.captureDomContentLoaded=function(t){return this.telemeter&&this.telemeter.captureDomContentLoaded(t)},Ir.prototype.captureLoad=function(t){return this.telemeter&&this.telemeter.captureLoad(t)},Ir.prototype.buildJsonPayload=function(t){return this.api.buildJsonPayload(t)},Ir.prototype.sendJsonPayload=function(t){this.api.postJsonPayload(t)},Ir.prototype._log=function(t,e){var r;if(e.callback&&(r=e.callback,delete e.callback),this.options.ignoreDuplicateErrors&&this._sameAsLastError(e)){if(r){var n=new Error("ignored identical item");n.item=e,r(n)}}else try{e.level=e.level||t,this._addItemAttributes(e),this._addTracingInfo(e);var o=this.telemeter;o&&(o._captureRollbarItem(e),e.telemetryEvents=o.copyEvents()||[]),this.notifier.log(e,r)}catch(t){r&&r(t),this.logger.error(t)}},Ir.prototype._addItemAttributes=function(t){var e,r,n=null===(e=this.tracing)||void 0===e?void 0:e.getSpan(),o=[{key:"session_id",value:null===(r=this.tracing)||void 0===r?void 0:r.sessionId},{key:"span_id",value:null==n?void 0:n.spanId},{key:"trace_id",value:null==n?void 0:n.traceId}];t._isUncaught&&o.push({key:"is_uncaught",value:"true"}),j(t.data,o),null==n||n.addEvent("rollbar.occurrence",[{key:"rollbar.occurrence.uuid",value:t.uuid}])},Ir.prototype._defaultLogLevel=function(){return this.options.logLevel||"debug"},Ir.prototype._sameAsLastError=function(t){if(!t._isUncaught)return!1;var e=function(t){var e=t.message||"",r=(t.err||{}).stack||String(t.err);return e+"::"+r}(t);return this.lastErrorHash===e||(this.lastError=t.err,this.lastErrorHash=e,!1)},Ir.prototype._addTracingInfo=function(t){if(this.tracer){var e=this.tracer.scope().active();if(function(t){if(!t||!t.context||"function"!=typeof t.context)return!1;var e=t.context();if(!e||!e.toSpanId||!e.toTraceId||"function"!=typeof e.toSpanId||"function"!=typeof e.toTraceId)return!1;return!0}(e)){e.setTag("rollbar.error_uuid",t.uuid),e.setTag("rollbar.has_error",!0),e.setTag("error",!0),e.setTag("rollbar.item_url","https://rollbar.com/item/uuid/?uuid=".concat(t.uuid)),e.setTag("rollbar.occurrence_url","https://rollbar.com/occurrence/uuid/?uuid=".concat(t.uuid));var r=e.context().toSpanId(),n=e.context().toTraceId();t.custom?(t.custom.opentracing_span_id=r,t.custom.opentracing_trace_id=n):t.custom={opentracing_span_id:r,opentracing_trace_id:n}}}};var Ar=Ir;function Rr(t,e,r){t._isUncaught&&(t.data._isUncaught=!0),t._originalArgs&&(t.data._originalArgs=t._originalArgs),r(null,t)}function Cr(t,e,r){var n=e.payload||{};n.body&&delete n.body,t.data=R(t.data,n),r(null,t)}function Lr(t,e,r){t.telemetryEvents&&T(t,"data.body.telemetry",t.telemetryEvents),r(null,t)}function qr(t,e,r){if(t.message){var n="data.body.trace_chain.0",o=I(t,n);if(o||(o=I(t,n="data.body.trace")),o){if(!o.exception||!o.exception.description)return T(t,n+".exception.description",t.message),void r(null,t);T(t,n+".extra",R(I(t,n+".extra")||{},{message:t.message}))}r(null,t)}else r(null,t)}function Nr(t){return function(e,r,n){var o,i=R(e),s=null;try{u(r.transform)&&(s=r.transform(i.data,e))}catch(o){return r.transform=null,t.error("Error while calling custom transform() function. Removing custom transform().",o),void n(null,e)}l(o=s)&&a(o.then,"function")?s.then(function(t){t&&(i.data=t),n(null,i)},function(t){n(t,e)}):n(null,i)}}function Dr(t,e,r){if(!e.sendConfig)return r(null,t);var n=I(t,"data.custom")||{};n._rollbarConfig=e,t.data.custom=n,r(null,t)}function Mr(t,e){u(t[e])&&(t[e]=t[e].toString())}function Ur(t,e,r){var n=e._configuredOptions;Mr(n,"transform"),Mr(n,"checkIgnore"),Mr(n,"onSendCallback"),delete n.accessToken,t.data.notifier.configured_options=n,r(null,t)}function Hr(t,e,r){var n=R(t.notifier.client.notifier.diagnostic,t.diagnostic);if(I(t,"err._isAnonymous")&&(n.is_anonymous=!0),t._isUncaught&&(n.is_uncaught=t._isUncaught),t.err)try{n.raw_error={message:t.err.message,name:t.err.name,constructor_name:t.err.constructor&&t.err.constructor.name,filename:t.err.fileName,line:t.err.lineNumber,column:t.err.columnNumber,stack:t.err.stack}}catch(t){n.raw_error={failed:String(t)}}t.data.notifier.diagnostic=R(t.data.notifier.diagnostic,n),r(null,t)}function Fr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:null)||t.stackInfo).stack;return e&&0===e.length&&t._unhandledStackInfo&&t._unhandledStackInfo.stack&&(e=t._unhandledStackInfo.stack),e}function Kr(t,e,r){var n=t&&t.data.description,o=t&&t.custom,i=Qr(t,e),a=rr.guessErrorClass(e.message),s={exception:{class:Yr(e,a[0],r),message:a[1]}};if(n&&(s.exception.description=n),i){var u,l,c,f,p,h,d,v;for(0===i.length&&(s.exception.stack=e.rawStack,s.exception.raw=String(e.rawException)),s.frames=[],d=0;dt.length)&&(e=t.length);for(var r=0,n=Array(e);r=400&&t.status<600}(e)){if(403===e.status){var o=t.value&&t.value.message;At.error(o)}u(new Error(String(e.status)))}else{u(sn("XHR response had no status code (likely connection failure)"))}}}catch(t){var i;i=t&&t.stack?t:new Error(t),u(i)}};if(e.open(o,n,!0),e.setRequestHeader){e.setRequestHeader("Content-Type","application/json"),e.setRequestHeader("X-Rollbar-Access-Token",r);for(var h=0,d=Object.entries(null!=s?s:{});hs)?(a=e.path,e.path=a.substring(0,s)+i+"&"+a.substring(s+1)):-1!==u?(a=e.path,e.path=a.substring(0,u)+i+a.substring(u)):e.path=e.path+i}(t,e,r);var i=m(e);this._makeZoneRequest({accessToken:t,url:i,method:"GET",callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},ln.prototype.post=function(t){var e,r=t.accessToken,n=t.options,o=t.payload,i=t.headers,a=t.callback,s=t.requestFactory;if(a&&u(a)||(a=function(){}),!o)return a(new Error("Cannot send empty request"));if((e=this.truncation&&o.body?this.truncation.truncate(o):b(o)).error)return a(e.error);var l=m(n);this._makeZoneRequest({accessToken:r,url:l,method:"POST",payload:e.value,headers:i,callback:a,requestFactory:s,timeout:n.timeout,transport:n.transport})},ln.prototype.postJsonPayload=function(t,e,r,n,o){n&&u(n)||(n=function(){});var i=m(e);this._makeZoneRequest({accessToken:t,url:i,method:"POST",payload:r,callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},ln.prototype._makeZoneRequest=function(){var t=this,e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=e&&e.Zone&&e.Zone.root,n=Array.prototype.slice.call(arguments);r?r.run(function(){t._makeRequest.apply(void 0,n)}):this._makeRequest.apply(void 0,n)},ln.prototype._makeRequest=function(t){var e=t.payload,r=t.callback,n=t.transport;if("undefined"!=typeof RollbarProxy)return function(t,e){(new RollbarProxy).sendJsonPayload(t,function(t){},function(t){e(new Error(t))})}(e,r);"fetch"===n?nn(t):un(t)};var cn,fn=ln;function pn(t){var e,r,n={protocol:null,auth:null,host:null,path:null,hash:null,href:t,hostname:null,port:null,pathname:null,search:null,query:null};if(-1!==(e=t.indexOf("//"))?(n.protocol=t.substring(0,e),r=e+2):r=0,-1!==(e=t.indexOf("@",r))&&(n.auth=t.substring(r,e),r=e+1),-1===(e=t.indexOf("/",r))){if(-1===(e=t.indexOf("?",r)))return-1===(e=t.indexOf("#",r))?n.host=t.substring(r):(n.host=t.substring(r,e),n.hash=t.substring(e)),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),n;n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e}else n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e;if(-1===(e=t.indexOf("#",r))?n.path=t.substring(r):(n.path=t.substring(r,e),n.hash=t.substring(e)),n.path){var o=n.path.split("?");n.pathname=o[0],n.query=o[1],n.search=n.query?"?"+n.query:null}return n}function hn(t){return hn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hn(t)}function dn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function yn(t){for(var e=1;e0&&T(e,"data.request",o),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t)return n(null,e);var o=t.navigator||{},i=t.screen||{};T(e,"data.client",{runtime_ms:e.timestamp-t._rollbarStartTime,timestamp:Math.round(e.timestamp/1e3),javascript:{browser:o.userAgent,language:o.language,cookie_enabled:o.cookieEnabled,screen:{width:i.width,height:i.height}}}),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t||!t.navigator)return n(null,e);for(var o,i=[],a=t.navigator.plugins||[],s=0,u=a.length;s=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Tn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;i--){if(e=An(t[i]),r=o+3*n.length+e.length,i=83){n.unshift("...");break}n.unshift(e),o+=e.length}return n.join(" > ")}(function(t){for(var e,r=[],n=0;t&&n<5&&(e=Rn(t))&&"html"!==e.tagName;n++)r.unshift(e),t=t.parentNode;return r}(t))}function An(t){if(!t||!t.tagName)return"";var e=[t.tagName];t.id&&e.push("#"+t.id),t.classes&&e.push("."+t.classes.join("."));var r,n=In(t.attributes);try{for(n.s();!(r=n.n()).done;){var o=r.value;e.push("["+o.key+'="'+o.value+'"]')}}catch(t){n.e(t)}finally{n.f()}return e.join("")}function Rn(t){if(!t||!t.tagName)return null;var e,r={};r.tagName=t.tagName.toLowerCase(),t.id&&(r.id=t.id),(e=t.className)&&"string"==typeof e&&(r.classes=e.split(/\s+/));r.attributes=[];for(var n=0,o=["type","name","title","alt"];n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Mn(t,e){if(t){if("string"==typeof t)return Un(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Un(t,e):void 0}}function Un(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r3)){var e=P();o.__rollbar_xhr.end_time_ms=e;var r=null;if(o.__rollbar_xhr.response_content_type=o.getResponseHeader("Content-Type"),t.autoInstrument.networkResponseHeaders){var i=t.autoInstrument.networkResponseHeaders;r={};try{var a;if(!0===i){var s=o.getAllResponseHeaders();if(s){var u,l,c,f=Dn(s.trim().split(/[\r\n]+/));try{for(f.s();!(c=f.n()).done;){a=(u=c.value.split(": ")).shift(),l=u.join(": "),r[a]=l}}catch(t){f.e(t)}finally{f.f()}}}else{var p,h=Dn(i);try{for(h.s();!(p=h.n()).done;){var d=p.value;r[d]=o.getResponseHeader(d)}}catch(t){h.e(t)}finally{h.f()}}}catch(t){}}var y=null;if(t.autoInstrument.networkResponseBody)try{y=o.responseText}catch(t){}var v=null;(y||r)&&(v={},y&&(t.isJsonContentType(o.__rollbar_xhr.response_content_type)?v.body=t.scrubJson(y):v.body=y),r&&(v.headers=r)),v&&(o.__rollbar_xhr.response=v);try{var m=o.status;m=1223===m?204:m,o.__rollbar_xhr.status_code=m,t.addOtelNetworkResponse(o.__rollbar_event,e,m),o.__rollbar_event.level=t.telemeter.levelFromStatus(m),t.errorOnHttpStatus(o.__rollbar_xhr)}catch(t){}}}return e("onload",o),e("onerror",o),e("onprogress",o),"onreadystatechange"in o&&u(o.onreadystatechange)?jn(o,"onreadystatechange",function(e){return t.rollbar.wrap(e,void 0,i)}):o.onreadystatechange=i,o.__rollbar_xhr&&t.trackHttpErrors()&&(o.__rollbar_xhr.stack=(new Error).stack),r.apply(this,arguments)}},this.replacements,"network")}"fetch"in this._window&&jn(this._window,"fetch",function(e){return function(r,n){var o,i=Array.prototype.slice.call(arguments),s=i[0],u="GET",l=Bn(s);a(s,"string")||l?o=l?s.toString():s:s&&(o=s.url,s.method&&(u=s.method)),i[1]&&i[1].method&&(u=i[1].method);var c={method:u,url:o,status_code:null,start_time_ms:P(),end_time_ms:null};if(i[1]&&i[1].headers){var f=En(i[1].headers);c.request_content_type=f.get("Content-Type"),t.autoInstrument.networkRequestHeaders&&(c.request_headers=t.fetchHeaders(f,t.autoInstrument.networkRequestHeaders))}t.autoInstrument.networkRequestBody&&(i[1]&&i[1].body?c.request=i[1].body:i[0]&&!a(i[0],"string")&&i[0].body&&(c.request=i[0].body));var p=t.captureNetwork(c,"fetch",void 0);return t.trackHttpErrors()&&(c.stack=(new Error).stack),e.apply(this,i).then(function(e){var r=P();c.end_time_ms=r,c.status_code=e.status,t.addOtelNetworkResponse(p,r,e.status),c.response_content_type=e.headers.get("Content-Type");var n=null;t.autoInstrument.networkResponseHeaders&&(n=t.fetchHeaders(e.headers,t.autoInstrument.networkResponseHeaders));var o=null;return t.autoInstrument.networkResponseBody&&"function"==typeof e.text&&(o=e.clone().text()),(n||o)&&(c.response={},o&&("function"==typeof o.then?o.then(function(e){e&&t.isJsonContentType(c.response_content_type)?c.response.body=t.scrubJson(e):c.response.body=e}):c.response.body=o),n&&(c.response.headers=n)),t.errorOnHttpStatus(c),e})}},this.replacements,"network")}},{key:"captureNetwork",value:function(t,e,r){return t.request&&this.isJsonContentType(t.request_content_type)&&(t.request=this.scrubJson(t.request)),this.telemeter.captureNetwork(t,e,r)}},{key:"isJsonContentType",value:function(t){return!!(t&&a(t,"string")&&t.toLowerCase().includes("json"))}},{key:"addOtelNetworkResponse",value:function(t,e,r){t.otelAttributes&&(t.otelAttributes["response.timeUnixNano"]=(1e6*e).toString(),t.otelAttributes.statusCode=r)}},{key:"scrubJson",value:function(t){return JSON.stringify(U(JSON.parse(t),this.options.scrubFields))}},{key:"fetchHeaders",value:function(t,e){var r={};try{if(!0===e){if("function"==typeof t.entries)for(var n=t.entries(),o=n.next();!o.done;)r[o.value[0]]=o.value[1],o=n.next()}else{var i,a=Dn(e);try{for(a.s();!(i=a.n()).done;){var s=i.value;r[s]=t.get(s)}}catch(t){a.e(t)}finally{a.f()}}}catch(t){}return r}},{key:"trackHttpErrors",value:function(){return this.autoInstrument.networkErrorOnHttp5xx||this.autoInstrument.networkErrorOnHttp4xx||this.autoInstrument.networkErrorOnHttp0}},{key:"errorOnHttpStatus",value:function(t){var e=t.status_code;if(e>=500&&this.autoInstrument.networkErrorOnHttp5xx||e>=400&&this.autoInstrument.networkErrorOnHttp4xx||0===e&&this.autoInstrument.networkErrorOnHttp0){var r=new Error("HTTP request failed with Status "+e);r.stack=t.stack,this.rollbar.error(r,{skipFrames:1})}}},{key:"deinstrumentConsole",value:function(){for(var t;this.replacements.log.length;)t=this.replacements.log.shift(),this._window.console[t[0]]=t[1]}},{key:"instrumentConsole",value:function(){var t;if(null!==(t=this._window)&&void 0!==t&&null!==(t=t.console)&&void 0!==t&&t.log){var e=this,r=this._window.console;try{for(var n=0,o=["debug","info","warn","error","log"];n500&&(n=n.substr(0,497)+"...");break;case"null":n="null";break;case"undefined":n="undefined";break;case"symbol":n=n.toString()}o.push(n)}return o.join(" ")}(t);e.telemeter.captureLog(r,i,null,P()),n&&Function.prototype.apply.call(n,o,t)},e.replacements.log.push([t,n])}}},{key:"deinstrumentDom",value:function(){this.removeListeners("dom")}},{key:"instrumentDom",value:function(){var t=this;this.addListener("dom",this._window,["click","dblclick","contextmenu"],function(e){return t.handleEvent("click",e)}),this.addListener("dom",this._window,["dragstart","dragend","dragenter","dragleave","drop"],function(e){return t.handleEvent("dragdrop",e)}),this.addListener("dom",this._window,["blur","focus"],function(e){return t.handleEvent("focus",e)}),this.addListener("dom",this._window,["submit","invalid"],function(e){return t.handleEvent("form",e)}),this.addListener("dom",this._window,["input","change"],function(e){return t.handleEvent("input",e)}),this.addListener("dom",this._window,["resize"],function(e){return t.handleEvent("resize",e)}),this.addListener("dom",this._document,["DOMContentLoaded"],function(e){return t.handleEvent("contentLoaded",e)})}},{key:"handleEvent",value:function(t,e){try{return{click:this.handleClick,dragdrop:this.handleDrag,focus:this.handleFocus,form:this.handleForm,input:this.handleInput,resize:this.handleResize,contentLoaded:this.handleContentLoaded}[t].call(this,e)}catch(r){At.log("".concat(t," handler error"),e,r,r.stack)}}},{key:"handleContentLoaded",value:function(t){this.rollbar.triggerReplay({type:"navigation",path:new URL(this._location.href).pathname})}},{key:"handleClick",value:function(t){var e,r=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase();["input","select","textarea"].includes(r)||this.telemeter.captureClick({type:t.type,isSynthetic:!t.isTrusted,element:Pn(t.target),timestamp:P()})}},{key:"handleFocus",value:function(t){var e,r=t.type,n=null!==(e=t.target)&&void 0!==e&&e.window?"window":Pn(t.target);this.telemeter.captureFocus({type:r,isSynthetic:!t.isTrusted,element:n,timestamp:P()})}},{key:"handleForm",value:function(t){}},{key:"handleResize",value:function(t){var e=window.screen.width/window.innerWidth;this.telemeter.captureResize({type:t.type,isSynthetic:!t.isTrusted,width:window.innerWidth,height:window.innerHeight,textZoomRatio:e,timestamp:P()})}},{key:"handleDrag",value:function(t){var e,r,n,o,i,a,s=t.type;if("drop"===s){e=[],r=[];var u,l=Dn([].concat(Ln(t.dataTransfer.files),Ln(t.dataTransfer.items)));try{for(l.s();!(u=l.n()).done;){var c=u.value;c.kind&&c.type&&(e.push(c.kind),r.push(c.type))}}catch(t){l.e(t)}finally{l.f()}}["drop","dragstart"].includes(s)&&(n=null===(i=t.dataTransfer)||void 0===i?void 0:i.dropEffect,o=null===(a=t.dataTransfer)||void 0===a?void 0:a.effectAllowed);this.telemeter.captureDragDrop({type:s,isSynthetic:!t.isTrusted,element:Pn(t.target),dropEffect:n,effectAllowed:o,kinds:JSON.stringify(e),mediaTypes:JSON.stringify(r),timestamp:P()})}},{key:"scrubInputValue",value:function(t,e,r,n){var o="******";if("password"===n)return o;if(this.scrubTelemetryInputs)return o;var i=Rn(e);if(this.telemetryScrubber){if(this.telemetryScrubber(i))return o}else if(this.defaultValueScrubber(i))return o;return function(t,e,r){try{var n,o=In(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;if("string"==typeof i){if(t.classList.contains(i))return!0}else{var a,s=In(t.classList);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(i.test(u))return!0}}catch(t){s.e(t)}finally{s.f()}}}}catch(t){o.e(t)}finally{o.f()}var l,c=In(r);try{for(c.s();!(l=c.n()).done;){var f=l.value;if(t.matches(f))return!0}}catch(t){c.e(t)}finally{c.f()}}catch(t){}return!1}(e,this.scrubClasses,this.scrubSelectors)?o:this.maskInputOptions[r.toLowerCase()]||this.maskInputOptions[n]?this.maskInputFn?this.maskInputFn(t,e):o:t}},{key:"handleInput",value:function(t){var e,r,n,o,i=t.type,a=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase(),s=null===(r=t.target)||void 0===r?void 0:r.value,u=(null===(n=t.target)||void 0===n||null===(n=n.attributes)||void 0===n||null===(n=n.type)||void 0===n?void 0:n.value)||(null===(o=t.target)||void 0===o?void 0:o.type);switch(void 0!==s&&(s=this.scrubInputValue(s,t.target,a,u)),i){case"input":if(["radio","checkbox"].includes(u))return;["select","textarea"].includes(a)&&(u=a);break;case"change":if(!["radio","checkbox"].includes(u))return;var l;if("checkbox"===u)s=null===(l=t.target)||void 0===l?void 0:l.checked}this.telemeter.captureInput({type:u,isSynthetic:!t.isTrusted,element:Pn(t.target),value:s,timestamp:P()})}},{key:"deinstrumentNavigation",value:function(){var t=this._window.chrome;!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState&&Fn(this.replacements,"navigation")}},{key:"instrumentNavigation",value:function(){var t=this._window.chrome;if(!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState){var e=this;jn(this._window,"onpopstate",function(t){return function(){var r=e._location.href;e.handleUrlChange(e._lastHref,r),t&&t.apply(this,arguments)}},this.replacements,"navigation"),jn(this._window.history,"pushState",function(t){return function(){var r=arguments.length>2?arguments[2]:void 0;return r&&e.handleUrlChange(e._lastHref,String(r)),t.apply(this,arguments)}},this.replacements,"navigation")}}},{key:"handleUrlChange",value:function(t,e){var r=pn(this._location.href),n=pn(e),o=pn(t);this._lastHref=e,r.protocol===n.protocol&&r.host===n.host&&(e=n.path+(n.hash||"")),r.protocol===o.protocol&&r.host===o.host&&(t=o.path+(o.hash||"")),this.telemeter.captureNavigation(t,e,null,P()),this.rollbar.triggerReplay({type:"navigation",path:e})}},{key:"instrumentConnectivity",value:function(){var t=this;this.addListener("connectivity",this._window,["online","offline"],function(e){return t.handleConnectivity(e)})}},{key:"handleConnectivity",value:function(t){var e=t.type;this.telemeter.captureConnectivityChange({type:e,isSynthetic:!t.isTrusted,timestamp:P()})}},{key:"handleCspEvent",value:function(t){var e="Security Policy Violation: blockedURI: "+t.blockedURI+", violatedDirective: "+t.violatedDirective+", effectiveDirective: "+t.effectiveDirective+", ";t.sourceFile&&(e+="location: "+t.sourceFile+", line: "+t.lineNumber+", col: "+t.columnNumber+", "),e+="originalPolicy: "+t.originalPolicy,this.telemeter.captureLog(e,"error",null,P()),this.handleCspError(e)}},{key:"handleCspError",value:function(t){this.autoInstrument.errorOnContentSecurityPolicy&&this.rollbar.error(t)}},{key:"deinstrumentContentSecurityPolicy",value:function(){this.removeListeners("contentsecuritypolicy")}},{key:"instrumentContentSecurityPolicy",value:function(){if("addEventListener"in this._document){var t=this.handleCspEvent.bind(this);this.addListener("contentsecuritypolicy",this._document,["securitypolicyviolation"],t)}}},{key:"addListener",value:function(t,e,r,n){var o=this;if(e.addEventListener){var i,a=Dn(r);try{var s=function(){var r=i.value,a={capture:!0,passive:!0};e.addEventListener(r,n,a,!0),o.eventRemovers[t].push(function(){e.removeEventListener(r,n,a)})};for(a.s();!(i=a.n()).done;)s()}catch(t){a.e(t)}finally{a.f()}}}},{key:"removeListeners",value:function(t){for(;this.eventRemovers[t].length;)this.eventRemovers[t].shift()()}}])}();function Bn(t){return"undefined"!=typeof URL&&t instanceof URL}var Wn=Vn;function $n(t,e,r){if(c(e,"addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var o=function(e,r,o){n.call(this,e,t.wrap(r),o)};o._rollbarOldAdd=n,o.belongsToShim=r,e.addEventListener=o;for(var i=e.removeEventListener;i._rollbarOldRemove&&i.belongsToShim;)i=i._rollbarOldRemove;var a=function(t,e,r){i.call(this,t,e&&e._rollbar_wrapped||e,r)};a._rollbarOldRemove=i,a.belongsToShim=r,e.removeEventListener=a}}var Gn=function(t,e,r){if(t){var n,o,i="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(",");for(n=0;n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(u||(u=S({})),u.extraArgs=S(p));var g,w={message:i,err:a,custom:u,timestamp:P(),callback:l,notifier:r,diagnostic:{},uuid:(g=P(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(g+16*Math.random())%16|0;return g=Math.floor(g/16),("x"===t?e:7&e|8).toString(16)}))};return w.data=w.data||{},function(t,e){e&&void 0!==e.level&&(t.level=e.level,delete e.level);e&&void 0!==e.skipFrames&&(t.skipFrames=e.skipFrames,delete e.skipFrames)}(w,u),n&&c&&(w.request=c),o&&(w.lambdaContext=o),w._originalArgs=t,w.diagnostic.original_arg_types=d,w}var O=["log","network","dom","navigation","error","manual"],x=["critical","error","warning","info","debug"];function E(t,e){var r,o=n(t);try{for(o.s();!(r=o.n()).done;){if(r.value===e)return!0}}catch(t){o.e(t)}finally{o.f()}return!1}function j(t,e){t.attributes=t.attributes||[];var r,o=n(e);try{for(o.s();!(r=o.n()).done;){var i=r.value;void 0!==i.value&&t.attributes.push(i)}}catch(t){o.e(t)}finally{o.f()}}function I(t,e){if(t){var r=e.split("."),n=t;try{for(var o=0,i=r.length;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function M(t,e){if(t){if("string"==typeof t)return U(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?U(t,e):void 0}}function U(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rn&&(o=this.queue.length-n),this.maxQueueSize=n,this.queue.splice(0,o)}},{key:"copyEvents",value:function(){var t=Array.prototype.slice.call(this.queue,0);if(u(this.options.filterTelemetry))try{for(var e=t.length;e--;)this.options.filterTelemetry(t[e])&&t.splice(e,1)}catch(t){this.options.filterTelemetry=null}return t=(t=t.filter(function(t){return"connectivity"!==t.type})).map(function(t){t.otelAttributes;var e=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.telemetrySpan&&(this.telemetrySpan.end(t),this.telemetrySpan=this.tracing.startSpan("rollbar-telemetry",{}))}},{key:"capture",value:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a={level:K(t,r),type:t,timestamp_ms:o||P(),body:e,source:"client"};n&&(a.uuid=n),i&&(a.otelAttributes=i);try{if(u(this.options.filterTelemetry)&&this.options.filterTelemetry(a))return!1}catch(t){this.options.filterTelemetry=null}return this.push(a),a}},{key:"captureEvent",value:function(t,e,r,n){return this.capture(t,e,r,n)}},{key:"captureError",value:function(t,e,r,n){var o,i=t.message||String(t),a={message:i};t.stack&&(a.stack=t.stack);var s={message:i,level:e,type:"error",uuid:r};return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-occurrence-event",s,Z(n)),this.capture("error",a,e,r,n,s)}},{key:"captureLog",value:function(t,e,r,n){var o,i=r?"rollbar-occurrence-event":"rollbar-log-event",a=W({message:t,level:e},r?{type:"message",uuid:r}:{});return null===(o=this.telemetrySpan)||void 0===o||o.addEvent(i,a,Z(n)),this.capture("log",{message:t},e,r,n,a)}},{key:"captureNetwork",value:function(t,e,r,n){var o,i,a;e=e||"xhr",t.subtype=t.subtype||e,n&&(t.request=n);var s=this.levelFromStatus(t.status_code),u=1e6*(t.end_time_ms||0),l={type:t.subtype,method:t.method,url:t.url,statusCode:t.status_code,"request.headers":JSON.stringify(t.request_headers||{}),"response.headers":JSON.stringify((null===(o=t.response)||void 0===o?void 0:o.headers)||{}),"response.timeUnixNano":u.toString()},c=t.request,f=null===(i=t.response)||void 0===i?void 0:i.body;return c&&(l["request.body"]=JSON.stringify(c)),f&&(l["response.body"]=JSON.stringify(f)),null===(a=this.telemetrySpan)||void 0===a||a.addEvent("rollbar-network-event",l,Z(t.start_time_ms)),this.capture("network",t,s,r,t.start_time_ms,l)}},{key:"levelFromStatus",value:function(t){return t>=200&&t<400?"info":0===t||t>=400?"error":"info"}},{key:"captureDom",value:function(t,e,r,n,o){var i={subtype:t,element:e};return void 0!==r&&(i.value=r),void 0!==n&&(i.checked=n),this.capture("dom",i,"info",o)}},{key:"captureInput",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.value,a=t.timestamp,s="rollbar-input-event",u={type:s,subtype:r,element:o,value:i},l={type:r,isSynthetic:n,element:o,value:i,endTimeUnixNano:Z(a)},c=this._getRepeatedEvent(s,l);return c?this._updateRepeatedEvent(c,l,a):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(s,l,Z(a)),this.capture("dom",u,"info",null,a,l))}},{key:"captureClick",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-click-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o,endTimeUnixNano:Z(i)},l=this._getRepeatedEvent(a,u);return l?this._updateRepeatedEvent(l,u,i):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,Z(i)),this.capture("dom",s,"info",null,i,u))}},{key:"_getRepeatedEvent",value:function(t,e){var r=this._lastEvent(this.queue);if(r&&r.body.type===t&&r.otelAttributes.target===e.target)return r}},{key:"_updateRepeatedEvent",value:function(t,e,r){var n=Math.max(r-t.timestamp_ms,1);t.body.value=e.value,t.otelAttributes.value=e.value,t.otelAttributes.height=e.height,t.otelAttributes.width=e.width,t.otelAttributes.textZoomRatio=e.textZoomRatio,t.otelAttributes.endTimeUnixNano=Z(r),t.otelAttributes.durationUnixNano=Z(n),t.otelAttributes.count=(t.otelAttributes.count||1)+1,t.otelAttributes.rate=t.otelAttributes.count/(n/1e3)}},{key:"_lastEvent",value:function(t){return t.length>0?t[t.length-1]:null}},{key:"captureFocus",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.timestamp,a="rollbar-focus-event",s={type:a,subtype:r,element:o},u={type:r,isSynthetic:n,element:o};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(a,u,Z(i)),this.capture("dom",s,"info",null,i,u)}},{key:"captureResize",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.width,i=t.height,a=t.textZoomRatio,s=t.timestamp,u="rollbar-resize-event",l={type:u,subtype:r,width:o,height:i,textZoomRatio:a},c={type:r,isSynthetic:n,width:o,height:i,textZoomRatio:a},f=this._getRepeatedEvent(u,c);return f?this._updateRepeatedEvent(f,c,s):(null===(e=this.telemetrySpan)||void 0===e||e.addEvent(u,c,Z(s)),this.capture("dom",l,"info",null,s,c))}},{key:"captureDragDrop",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.element,i=t.dropEffect,a=t.effectAllowed,s=t.kinds,u=t.mediaTypes,l=t.timestamp,c="rollbar-dragdrop-event",f={type:c,subtype:r,isSynthetic:n},p={type:r,isSynthetic:n};return"dragstart"===r&&(f=W(W({},f),{},{element:o,dropEffect:i,effectAllowed:a}),p=W(W({},p),{},{element:o,dropEffect:i,effectAllowed:a})),"drop"===r&&(f=W(W({},f),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u}),p=W(W({},p),{},{element:o,dropEffect:i,effectAllowed:a,kinds:s,mediaTypes:u})),null===(e=this.telemetrySpan)||void 0===e||e.addEvent(c,p,Z(l)),this.capture("dom",f,"info",null,l,p)}},{key:"captureNavigation",value:function(t,e,r,n){var o;return null===(o=this.telemetrySpan)||void 0===o||o.addEvent("rollbar-navigation-event",{"previous.url.full":t,"url.full":e},Z(n)),this.capture("navigation",{from:t,to:e},"info",r,n)}},{key:"captureDomContentLoaded",value:function(t){return this.capture("navigation",{subtype:"DOMContentLoaded"},"info",void 0,t&&t.getTime())}},{key:"captureLoad",value:function(t){return this.capture("navigation",{subtype:"load"},"info",void 0,t&&t.getTime())}},{key:"captureConnectivityChange",value:function(t){var e,r=t.type,n=t.isSynthetic,o=t.timestamp,i="rollbar-connectivity-event",a={type:i,subtype:r},s={type:r,isSynthetic:n};return null===(e=this.telemetrySpan)||void 0===e||e.addEvent(i,s,Z(o)),this.capture("connectivity",a,"info",null,o,s)}},{key:"_captureRollbarItem",value:function(t){if(this.options.includeItemsInTelemetry)return t.err?this.captureError(t.err,t.level,t.uuid,t.timestamp):t.message?this.captureLog(t.message,t.level,t.uuid,t.timestamp):t.custom?this.capture("log",t.custom,t.level,t.uuid,t.timestamp):void 0}},{key:"push",value:function(t){this.queue.push(t),this.queue.length>this.maxQueueSize&&this.queue.shift()}}],e&&G(t.prototype,e),r&&G(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function K(t,e){if(e)return e;return{error:"error",manual:"info"}[t]||"info"}var Y=Q;function tt(t){return tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tt(t)}function et(t,e){for(var r=0;r3?o-3:0),a=3;a0&&void 0!==arguments[0]&&arguments[0]?ct(lt(performance.timeOrigin),lt(performance.now())):lt(Date.now())},isHrTime:function(t){return Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]}};function pt(t){return pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pt(t)}function dt(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||yt(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ht(t){return function(t){if(Array.isArray(t))return vt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||yt(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function yt(t,e){if(t){if("string"==typeof t)return vt(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?vt(t,e):void 0}}function vt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.api=e,this.options=r},e=[{key:"export",value:function(t,e){wt.push.apply(wt,ht(t))}},{key:"toPayload",value:function(){var t=this,e=wt.slice();if(wt.length=0,!e||!e.length)return{resourceSpans:[]};var r,n=e[0]&&e[0].resource||{},o=new Map,i=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=yt(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e);try{for(i.s();!(r=i.n()).done;){var a=r.value,s=a.instrumentationScope?"".concat(a.instrumentationScope.name,":").concat(a.instrumentationScope.version):"default:1.0.0";o.has(s)||o.set(s,{scope:a.instrumentationScope||{name:"default",version:"1.0.0",attributes:[]},spans:[]}),o.get(s).spans.push(this._transformSpan(a))}}catch(t){i.e(t)}finally{i.f()}return{resourceSpans:[{resource:this._transformResource(n),scopeSpans:Array.from(o.values()).map(function(e){return{scope:t._transformInstrumentationScope(e.scope),spans:e.spans}})}]}}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.api.postSpans(t,e)}},{key:"_transformSpan",value:function(t){var e,r=this,n=function(t){return Object.entries(t||{}).map(function(t){var e=dt(t,2),n=e[0],o=e[1];return{key:n,value:r._transformAnyValue(o)}})};return{traceId:t.spanContext.traceId,spanId:t.spanContext.spanId,parentSpanId:t.parentSpanId||"",name:t.name,kind:t.kind||1,startTimeUnixNano:ft.toNanos(t.startTime),endTimeUnixNano:ft.toNanos(t.endTime),attributes:n(t.attributes),events:(e=t.events,(e||[]).map(function(t){return{timeUnixNano:ft.toNanos(t.time),name:t.name,attributes:n(t.attributes)}}))}}},{key:"_transformResource",value:function(t){var e=this,r=t.attributes||{};return{attributes:Object.entries(r).map(function(t){var r=dt(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}},{key:"_transformInstrumentationScope",value:function(t){var e=this;return{name:t.name||"",version:t.version||"",attributes:(t.attributes||[]).map(function(t){return{key:t.key,value:e._transformAnyValue(t.value)}})}}},{key:"_transformAnyValue",value:function(t){var e=this;if(null==t)return{stringValue:""};var r=pt(t);return"string"===r?{stringValue:t}:"number"===r?Number.isInteger(t)?{intValue:t.toString()}:{doubleValue:t}:"boolean"===r?{boolValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(function(t){return e._transformAnyValue(t)})}}:"object"===r?{kvlistValue:{values:Object.entries(t).map(function(t){var r=dt(t,2),n=r[0],o=r[1];return{key:n,value:e._transformAnyValue(o)}})}}:{stringValue:String(t)}}}],e&&mt(t.prototype,e),r&&mt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),wt=[];var kt={gen:function(){var t=new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:16);return crypto.getRandomValues(t),Array.from(t,function(t){return t.toString(16).padStart(2,"0")}).join("")}};function St(t){return St="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},St(t)}function _t(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Ot(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.session||(this.getSession()||this.createSession(),this.initSessionAttributes(t)),this}},{key:"getSession",value:function(){try{var t=this.window.sessionStorage.getItem(It);if(!t)return null;this.session=JSON.parse(t)}catch(t){return null}return this}},{key:"createSession",value:function(){return this.session={id:kt.gen(),createdAt:Date.now()},this.setSession(this.session)}},{key:"setSession",value:function(t){var e=JSON.stringify(t);try{this.window.sessionStorage.setItem(It,e)}catch(t){return null}return this}},{key:"attributes",get:function(){return this._attributes}},{key:"setAttributes",value:function(t){return this._attributes=Ot(Ot({},this._attributes),t),this}},{key:"setUser",value:function(t){return this.setAttributes({"user.id":null==t?void 0:t.id,"user.email":null==t?void 0:t.email,"user.name":(null==t?void 0:t.name)||(null==t?void 0:t.username)}),this}},{key:"initSessionAttributes",value:function(t){var e,r,n;return this.setAttributes(Ot({"session.id":this.session.id,"browser.brands":null===(e=navigator.userAgentData)||void 0===e?void 0:e.brands,"browser.language":navigator.language,"browser.mobile":null===(r=navigator.userAgentData)||void 0===r?void 0:r.mobile,"browser.platform":null===(n=navigator.userAgentData)||void 0===n?void 0:n.platform,"client.address":"$remote_ip","rollbar.notifier.framework":"browser-js","user_agent.original":navigator.userAgent},t)),this}}],e&&xt(t.prototype,e),r&&xt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),Pt=function(){},At={debug:0,info:1,warn:2,error:3,disable:4},Rt={error:function(){for(var t=arguments.length,e=new Array(t),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Nt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.exporter=e,this.options=r,this.pendingSpans=new Map,this.transforms=[this.userTransform.bind(this)]},e=[{key:"addTransform",value:function(t){this.transforms.unshift(t)}},{key:"userTransform",value:function(t){this.options.transformSpan&&this.options.transformSpan({span:t})}},{key:"applyTransforms",value:function(t){var e,r=qt(this.transforms);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{n(t)}catch(t){Ct.error("Error running span transform callback",t)}}}catch(t){r.e(t)}finally{r.f()}}},{key:"onStart",value:function(t,e){this.pendingSpans.set(t.span.spanContext.spanId,t)}},{key:"onEnd",value:function(t){this.applyTransforms(t.span),this.exporter.export([t.export()]),this.pendingSpans.delete(t.span.spanContext.spanId)}}],e&&Dt(t.prototype,e),r&&Dt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Ht(t){return Ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ht(t)}function Ft(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Jt(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Jt(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Jt(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;return this.span.ended||this.span.events.push({name:t,attributes:e,time:r||ft.now(),droppedAttributesCount:0}),this}},{key:"isRecording",value:function(){return!1===this.span.ended}},{key:"end",value:function(t,e){t&&this.setAttributes(t),this.span.endTime=e||ft.now(this.usePerformance),this.span.ended=!0,this.spanProcessor.onEnd(this)}},{key:"export",value:function(){return this.span}}],e&&Vt(t.prototype,e),r&&Vt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function $t(t){return $t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$t(t)}function Gt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function zt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.tracing.contextManager.active(),u=this.tracing.getSpan(s),l=null==u?void 0:u.spanContext(),c=kt.gen(8),f=null;l?(o=l.traceId,f=l.traceState,i=l.spanId):o=kt.gen(16);var p={traceId:o,spanId:c,traceFlags:0,traceState:f},d={attributes:zt(zt({},(null===(e=this.tracing.resource)||void 0===e?void 0:e.attributes)||{}),(null===(r=a.resource)||void 0===r?void 0:r.attributes)||{})};return new Wt({resource:d,scope:this.tracing.scope,session:null===(n=this.tracing.session)||void 0===n?void 0:n.session,context:s,spanContext:p,name:t,kind:0,parentSpanId:i,spanProcessor:this.spanProcessor,startTime:a.startTime,usePerformance:a.usePerformance})}}],e&&Zt(t.prototype,e),r&&Zt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Yt(t){return Yt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yt(t)}function te(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function ee(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:16;return kt.gen(t)}},{key:"createTracer",value:function(){this.contextManager=new ut,this.exporter=new gt(this.api,this.options),this.spanProcessor=new Ut(this.exporter,this.options.tracing),this.tracer=new Kt(this,this.spanProcessor)}},{key:"getTracer",value:function(){return this.tracer}},{key:"addSpanTransform",value:function(t){this.spanProcessor.addTransform(t)}},{key:"getSpan",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active()).getValue(ae)}},{key:"setSpan",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.contextManager.active(),e=arguments.length>1?arguments[1]:void 0;return t.setValue(ae,e)}},{key:"startSpan",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.contextManager.active();return this.tracer.startSpan(t,e,r)}},{key:"with",value:function(t,e,r){for(var n,o=arguments.length,i=new Array(o>3?o-3:0),a=3;a=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ce(t,e){if(t){if("string"==typeof t)return fe(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?fe(t,e):void 0}}function fe(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2*e?t.slice(0,e).concat(t.slice(r-e)):t}function he(t,e,r){r=void 0===r?30:r;var n,o=t.data.body;if(o.trace_chain){var i,a=le(o.trace_chain);try{for(a.s();!(i=a.n()).done;){var s=i.value;n=de(n=s.frames,r),s.frames=n}}catch(t){a.e(t)}finally{a.f()}}else o.trace&&(n=de(n=o.trace.frames,r),o.trace.frames=n);return[t,b(t,e)]}function ye(t,e){return e&&e.length>t?e.slice(0,t-3).concat("..."):e}function ve(t,e,r){return e=q(e,function e(r,n,o){switch(s(n)){case"string":return ye(t,n);case"object":case"array":return q(n,e,o);default:return n}}),[e,b(e,r)]}function me(t){return t.exception&&(delete t.exception.description,t.exception.message=ye(255,t.exception.message)),t.frames=de(t.frames,1),t}function be(t,e){var r=t.data.body;if(r.trace_chain){var n,o=r.trace_chain,i=le(o.entries());try{for(i.s();!(n=i.n()).done;){var a=ue(n.value,2),s=a[0],u=a[1];o[s]=me(u)}}catch(t){i.e(t)}finally{i.f()}}else r.trace&&(r.trace=me(r.trace));return[t,b(t,e)]}function ge(t,e){return function(t){for(var e=0,r=t.length,n=0;ne}var we={truncate:function(t,e,r){r=void 0===r?524288:r;for(var n,o,i,a=[pe,he,ve.bind(null,1024),ve.bind(null,512),ve.bind(null,256),be];n=a.shift();)if(t=(o=n(t,e))[0],(i=o[1]).error||!ge(i.value,r))return i;return i},raw:pe,truncateFrames:he,truncateStrings:ve,maybeTruncateValue:ye};function ke(t){if(!a(t.context,"string")){var e=b(t.context);e.error?t.context="Error: could not serialize 'context'":t.context=e.value||"",t.context.length>255&&(t.context=t.context.substr(0,255))}return{data:t}}function Se(t,e,r){var n=e.hostname,o=e.protocol,i=e.port,a=e.path,s=e.search,u=t.timeout,l=function(t){var e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=t.defaultTransport||"xhr";void 0===e.fetch&&(r="xhr");void 0===e.XMLHttpRequest&&(r="fetch");return r}(t),c=t.proxy;if(t.endpoint){var f=r.parse(t.endpoint);n=f.hostname,o=f.protocol,i=f.port,a=f.pathname,s=f.search}return{timeout:u,hostname:n,protocol:o,port:i,path:a,search:s,proxy:c,transport:l}}function _e(t,e){var r=t.protocol||"https:",n=t.port||("http:"===r?80:"https:"===r?443:void 0),o=t.hostname,i=t.path,a=t.timeout,s=t.transport;return t.search&&(i+=t.search),t.proxy&&(i=r+"//"+o+i,o=t.proxy.host||t.proxy.hostname,n=t.proxy.port,r=t.proxy.protocol||r),{timeout:a,protocol:r,hostname:o,path:i,port:n,method:e,transport:s}}function Oe(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function xe(t){for(var e=1;e3?(o=h===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&dn||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,h),s=c,u=h;(e=s<2?t:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=t}else if((e=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(e){i=t,s=1,u=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(Te(e={},n,function(){return this}),e),f=l.prototype=s.prototype=Object.create(c);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,Te(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=l,Te(f,"constructor",l),Te(l,"constructor",u),u.displayName="GeneratorFunction",Te(l,o,"GeneratorFunction"),Te(f),Te(f,o,"Generator"),Te(f,n,function(){return this}),Te(f,"toString",function(){return"[object Generator]"}),(Ie=function(){return{w:i,m:p}})()}function Te(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}Te=function(t,e,r,n){function i(e,r){Te(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},Te(t,e,r,n)}function Pe(t,e,r,n,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function Ae(t,e){for(var r=0;r1&&void 0!==o[1]?o[1]:{},n=_e(this.OTLPTransportOptions,"POST"),t.a(2,this._postPromise({accessToken:this.accessToken,options:n,payload:e,headers:r}))},t,this)}),o=function(){var t=this,e=arguments;return new Promise(function(r,o){var i=n.apply(t,e);function a(t){Pe(i,r,o,a,s,"next",t)}function s(t){Pe(i,r,o,a,s,"throw",t)}a(void 0)})},function(t){return o.apply(this,arguments)})},{key:"buildJsonPayload",value:function(t,e){var r,n=ke(t);return(r=this.truncation?this.truncation.truncate(n):b(n)).error?(e&&e(r.error),null):r.value}},{key:"postJsonPayload",value:function(t,e){var r=_e(this.transportOptions,"POST");this.transport.postJsonPayload(this.accessToken,r,t,e)}},{key:"configure",value:function(t){var e=this.options;return this.options=R(e,t),this.transportOptions=Ne(this.options,this.url),this.OTLPTransportOptions=De(this.options,this.url),void 0!==this.options.accessToken&&(this.accessToken=this.options.accessToken),this}}],e&&Ae(t.prototype,e),r&&Ae(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r,n,o}();function Ne(t,e){return Se(t,Ce,e)}function De(t,e){var r;return Se(t=xe(xe({},t),{},{endpoint:null===(r=t.tracing)||void 0===r?void 0:r.endpoint}),Le,e)}var Me=qe,Ue="3.1.0",He="api.rollbar.com/api/1/item/",Fe="debug",Je="debug",Ve="error",Be=/(^|@)\S+:\d+/,We=/^\s*at .*(\S+:\d+|\(native\))/m,$e=/^(eval@)?(\[native code\])?$/;function Ge(t,e){if(void 0!==t.stacktrace||void 0!==t["opera#sourceloc"])return function(t,e){return!t.stacktrace||t.message.includes("\n")&&t.message.split("\n").length>t.stacktrace.split("\n").length?function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)/i,n=t.message.split("\n"),o=[],i=2,a=n.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;return o.match(/\(([^)]*)\)/)&&(e=o.replace(/^[^(]+\(([^)]*)\)$/,"$1")),{function:i,args:void 0===e||"[arguments not available]"===e?void 0:e.split(","),file:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}(t,e):function(t,e){for(var r=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,n=t.stacktrace.split("\n"),o=[],i=0,a=n.length;i"].includes(n[0])?void 0:n[0],line:n[1]?+n[1]:void 0,col:n[2]?+n[2]:void 0,raw:t}})}function Qe(t,e){return Xe(t.split("\n").filter(function(t){return!t.match($e)}),e).map(function(t){if(t.includes(" > eval")&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),t.includes("@")||t.includes(":")){var e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,r=t.match(e),n=r&&r[1]?r[1]:void 0,o=ze(t.replace(e,""));return{function:n,file:o[0],line:o[1]?+o[1]:void 0,col:o[2]?+o[2]:void 0,raw:t}}return{function:t}})}function Ke(t){return t.map(function(t){return{functionName:t.function,args:t.args,fileName:t.file,lineNumber:t.line,columnNumber:t.col,source:t.raw}})}var Ye=new RegExp("^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ");function tr(){return null}function er(t){var e={};return e._stackFrame=t,e.url=t.fileName,e.line=t.lineNumber,e.func=t.functionName,e.column=t.columnNumber,e.args=t.args,e.context=null,e}function rr(t,e){return{stack:function(){var r,n=[];e=e||0;try{n=Ke(Ge(t,r))}catch(t){n=[]}for(var o=[],i=e;i=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ar(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rthis.options.maxRetries&&(o=!1))}o?this._retryApiRequest(r,n):n(e)}},{key:"_retryApiRequest",value:function(t,e){var r=this;this.retryQueue.push({item:t,callback:e}),this.retryHandle||(this.retryHandle=setInterval(function(){for(;r.retryQueue.length;){var t=r.retryQueue.shift();r._makeApiRequest(t.item,t.callback)}},this.options.retryInterval))}},{key:"_dequeuePendingRequest",value:function(t){var e=this.pendingRequests.indexOf(t);-1!==e&&(this.pendingRequests.splice(e,1),this._maybeCallWait())}},{key:"_maybeLog",value:function(t,e){if(this.logger&&this.options.verbose){var r=e||I(t,"body.trace.exception.message")||I(t,"body.trace_chain.0.exception.message");if(r)return void this.logger.error(r);(r=I(t,"body.message.body"))&&this.logger.log(r)}}},{key:"_maybeCallWait",value:function(){return!(!u(this.waitCallback)||0!==this.pendingItems.length||0!==this.pendingRequests.length||(this.waitIntervalID&&(this.waitIntervalID=clearInterval(this.waitIntervalID)),this.waitCallback(),0))}}],r&&vr(e.prototype,r),n&&vr(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();br=kr,wr=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE","EAI_AGAIN"],(gr=mr(gr="RETRIABLE_ERRORS"))in br?Object.defineProperty(br,gr,{value:wr,enumerable:!0,configurable:!0,writable:!0}):br[gr]=wr;var Sr=kr;function _r(t){return _r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_r(t)}function Or(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.startTime=Date.now(),this.counter=0,this.perMinCounter=0,this.platform=null,this.platformOptions={},this.configureGlobal(e)}return function(t,e,r){return e&&Or(t.prototype,e),r&&Or(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(t,[{key:"configureGlobal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.startTime,n=e.maxItems,o=e.itemsPerMinute;void 0!==r&&(t.globalSettings.startTime=r),void 0!==n&&(t.globalSettings.maxItems=n),void 0!==o&&(t.globalSettings.itemsPerMinute=o)}},{key:"shouldSend",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=r-this.startTime;(n<0||n>=6e4)&&(this.startTime=r,this.perMinCounter=0);var o=t.globalSettings.maxItems,i=t.globalSettings.itemsPerMinute;if(jr(e,o,this.counter))return Ir(this.platform,this.platformOptions,"".concat(o," max items reached"),!1);if(jr(e,i,this.perMinCounter))return Ir(this.platform,this.platformOptions,"".concat(i," items per minute reached"),!1);this.counter+=1,this.perMinCounter+=1;var a=!jr(e,o,this.counter),s=a,u=a&&!jr(e,i,this.perMinCounter);return Ir(this.platform,this.platformOptions,null,u,o,i,s)}},{key:"setPlatformOptions",value:function(t,e){this.platform=t,this.platformOptions=e}}])}();function jr(t,e,r){return!t.ignoreRateLimit&&e>=1&&r>e}function Ir(t,e,r,n,o,i,a){var s=null,u=r?new Error(r):null;return u||n||(s=function(t,e,r,n,o){var i=e.environment||e.payload&&e.payload.environment,a=o?"item per minute limit reached, ignoring errors until timeout":"maxItems has been hit, ignoring errors until reset.",s={body:{message:{body:a,extra:{maxItems:r,itemsPerMinute:n}}},language:"javascript",environment:i,notifier:{version:e.notifier&&e.notifier.version||e.version}};"browser"===t?(s.platform="browser",s.framework="browser-js",s.notifier.name="rollbar-browser-js"):"server"===t?(s.framework=e.framework||"node-js",s.notifier.name=e.notifier.name):"react-native"===t&&(s.framework=e.framework||"react-native",s.notifier.name=e.notifier.name);return s}(t,e,o,i,a)),{error:u,shouldSend:n,payload:s}}!function(t,e,r){(e=xr(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}(Er,"globalSettings",{startTime:Date.now(),maxItems:void 0,itemsPerMinute:void 0});var Tr=Er;function Pr(t,e,r,n,o,i,a){this.options=R(t),this.logger=r,Pr.rateLimiter.configureGlobal(this.options),Pr.rateLimiter.setPlatformOptions(a,this.options),this.api=e,this.queue=new Sr(Pr.rateLimiter,e,r,this.options,i),this.tracing=o;var s=this.options.tracer||null;Rr(s)?(this.tracer=s,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier=new hr(this.queue,this.options),this.telemeter=n,Ar(t),this.lastError=null,this.lastErrorHash="none"}function Ar(t){t.stackTraceLimit&&(Error.stackTraceLimit=t.stackTraceLimit)}function Rr(t){if(!t)return!1;if(!t.scope||"function"!=typeof t.scope)return!1;var e=t.scope();return!(!e||!e.active||"function"!=typeof e.active)}Pr.rateLimiter=new Tr({maxItems:0,itemsPerMinute:60}),Pr.prototype.global=function(t){return Pr.rateLimiter.configureGlobal(t),this},Pr.prototype.configure=function(t,e){var r=this.options,n={};e&&(n={payload:e}),this.options=R(r,t,n);var o=this.options.tracer||null;return Rr(o)?(this.tracer=o,this.options.tracer="opentracing-tracer-enabled",this.options._configuredOptions.tracer="opentracing-tracer-enabled"):this.tracer=null,this.notifier&&this.notifier.configure(this.options),this.telemeter&&this.telemeter.configure(this.options),Ar(t),this.global(this.options),Rr(t.tracer)&&(this.tracer=t.tracer),this},Pr.prototype.log=function(t){var e=this._defaultLogLevel();return this._log(e,t)},Pr.prototype.debug=function(t){this._log("debug",t)},Pr.prototype.info=function(t){this._log("info",t)},Pr.prototype.warn=function(t){this._log("warning",t)},Pr.prototype.warning=function(t){this._log("warning",t)},Pr.prototype.error=function(t){this._log("error",t)},Pr.prototype.critical=function(t){this._log("critical",t)},Pr.prototype.wait=function(t){this.queue.wait(t)},Pr.prototype.captureEvent=function(t,e,r){return this.telemeter&&this.telemeter.captureEvent(t,e,r)},Pr.prototype.captureDomContentLoaded=function(t){return this.telemeter&&this.telemeter.captureDomContentLoaded(t)},Pr.prototype.captureLoad=function(t){return this.telemeter&&this.telemeter.captureLoad(t)},Pr.prototype.buildJsonPayload=function(t){return this.api.buildJsonPayload(t)},Pr.prototype.sendJsonPayload=function(t){this.api.postJsonPayload(t)},Pr.prototype._log=function(t,e){var r;if(e.callback&&(r=e.callback,delete e.callback),this.options.ignoreDuplicateErrors&&this._sameAsLastError(e)){if(r){var n=new Error("ignored identical item");n.item=e,r(n)}}else try{e.level=e.level||t,this._addItemAttributes(e),this._addTracingInfo(e);var o=this.telemeter;o&&(o._captureRollbarItem(e),e.telemetryEvents=o.copyEvents()||[]),this.notifier.log(e,r)}catch(t){r&&r(t),this.logger.error(t)}},Pr.prototype._addItemAttributes=function(t){var e,r,n=null===(e=this.tracing)||void 0===e?void 0:e.getSpan(),o=[{key:"session_id",value:function(t){var e=t.asyncLocalStorage;if(!e||"function"!=typeof e.getStore)return null;var r=e.getStore();return(null==r?void 0:r.sessionId)||null}(this)||(null===(r=this.tracing)||void 0===r?void 0:r.sessionId)},{key:"span_id",value:null==n?void 0:n.spanId},{key:"trace_id",value:null==n?void 0:n.traceId}];t._isUncaught&&o.push({key:"is_uncaught",value:"true"}),j(t.data,o),null==n||n.addEvent("rollbar.occurrence",[{key:"rollbar.occurrence.uuid",value:t.uuid}])},Pr.prototype._defaultLogLevel=function(){return this.options.logLevel||"debug"},Pr.prototype._sameAsLastError=function(t){if(!t._isUncaught)return!1;var e=function(t){var e=t.message||"",r=(t.err||{}).stack||String(t.err);return e+"::"+r}(t);return this.lastErrorHash===e||(this.lastError=t.err,this.lastErrorHash=e,!1)},Pr.prototype._addTracingInfo=function(t){if(this.tracer){var e=this.tracer.scope().active();if(function(t){if(!t||!t.context||"function"!=typeof t.context)return!1;var e=t.context();if(!e||!e.toSpanId||!e.toTraceId||"function"!=typeof e.toSpanId||"function"!=typeof e.toTraceId)return!1;return!0}(e)){e.setTag("rollbar.error_uuid",t.uuid),e.setTag("rollbar.has_error",!0),e.setTag("error",!0),e.setTag("rollbar.item_url","https://rollbar.com/item/uuid/?uuid=".concat(t.uuid)),e.setTag("rollbar.occurrence_url","https://rollbar.com/occurrence/uuid/?uuid=".concat(t.uuid));var r=e.context().toSpanId(),n=e.context().toTraceId();t.custom?(t.custom.opentracing_span_id=r,t.custom.opentracing_trace_id=n):t.custom={opentracing_span_id:r,opentracing_trace_id:n}}}};var Cr=Pr;function Lr(t,e,r){t._isUncaught&&(t.data._isUncaught=!0),t._originalArgs&&(t.data._originalArgs=t._originalArgs),r(null,t)}function qr(t,e,r){var n=e.payload||{};n.body&&delete n.body,t.data=R(t.data,n),r(null,t)}function Nr(t,e,r){t.telemetryEvents&&T(t,"data.body.telemetry",t.telemetryEvents),r(null,t)}function Dr(t,e,r){if(t.message){var n="data.body.trace_chain.0",o=I(t,n);if(o||(o=I(t,n="data.body.trace")),o){if(!o.exception||!o.exception.description)return T(t,n+".exception.description",t.message),void r(null,t);T(t,n+".extra",R(I(t,n+".extra")||{},{message:t.message}))}r(null,t)}else r(null,t)}function Mr(t){return function(e,r,n){var o,i=R(e),s=null;try{u(r.transform)&&(s=r.transform(i.data,e))}catch(o){return r.transform=null,t.error("Error while calling custom transform() function. Removing custom transform().",o),void n(null,e)}l(o=s)&&a(o.then,"function")?s.then(function(t){t&&(i.data=t),n(null,i)},function(t){n(t,e)}):n(null,i)}}function Ur(t,e,r){if(!e.sendConfig)return r(null,t);var n=I(t,"data.custom")||{};n._rollbarConfig=e,t.data.custom=n,r(null,t)}function Hr(t,e){u(t[e])&&(t[e]=t[e].toString())}function Fr(t,e,r){var n=e._configuredOptions;Hr(n,"transform"),Hr(n,"checkIgnore"),Hr(n,"onSendCallback"),delete n.accessToken,t.data.notifier.configured_options=n,r(null,t)}function Jr(t,e,r){var n=R(t.notifier.client.notifier.diagnostic,t.diagnostic);if(I(t,"err._isAnonymous")&&(n.is_anonymous=!0),t._isUncaught&&(n.is_uncaught=t._isUncaught),t.err)try{n.raw_error={message:t.err.message,name:t.err.name,constructor_name:t.err.constructor&&t.err.constructor.name,filename:t.err.fileName,line:t.err.lineNumber,column:t.err.columnNumber,stack:t.err.stack}}catch(t){n.raw_error={failed:String(t)}}t.data.notifier.diagnostic=R(t.data.notifier.diagnostic,n),r(null,t)}function Vr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:null)||t.stackInfo).stack;return e&&0===e.length&&t._unhandledStackInfo&&t._unhandledStackInfo.stack&&(e=t._unhandledStackInfo.stack),e}function tn(t,e,r){var n=t&&t.data.description,o=t&&t.custom,i=Yr(t,e),a=or.guessErrorClass(e.message),s={exception:{class:en(e,a[0],r),message:a[1]}};if(n&&(s.exception.description=n),i){var u,l,c,f,p,d,h,v;for(0===i.length&&(s.exception.stack=e.rawStack,s.exception.raw=String(e.rawException)),s.frames=[],h=0;ht.length)&&(e=t.length);for(var r=0,n=Array(e);r=400&&t.status<600}(e)){if(403===e.status){var o=t.value&&t.value.message;Ct.error(o)}u(new Error(String(e.status)))}else{u(ln("XHR response had no status code (likely connection failure)"))}}}catch(t){var i;i=t&&t.stack?t:new Error(t),u(i)}};if(e.open(o,n,!0),e.setRequestHeader){e.setRequestHeader("Content-Type","application/json"),e.setRequestHeader("X-Rollbar-Access-Token",r);for(var d=0,h=Object.entries(null!=s?s:{});ds)?(a=e.path,e.path=a.substring(0,s)+i+"&"+a.substring(s+1)):-1!==u?(a=e.path,e.path=a.substring(0,u)+i+a.substring(u)):e.path=e.path+i}(t,e,r);var i=m(e);this._makeZoneRequest({accessToken:t,url:i,method:"GET",callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},fn.prototype.post=function(t){var e,r=t.accessToken,n=t.options,o=t.payload,i=t.headers,a=t.callback,s=t.requestFactory;if(a&&u(a)||(a=function(){}),!o)return a(new Error("Cannot send empty request"));if((e=this.truncation&&o.body?this.truncation.truncate(o):b(o)).error)return a(e.error);var l=m(n);this._makeZoneRequest({accessToken:r,url:l,method:"POST",payload:e.value,headers:i,callback:a,requestFactory:s,timeout:n.timeout,transport:n.transport})},fn.prototype.postJsonPayload=function(t,e,r,n,o){n&&u(n)||(n=function(){});var i=m(e);this._makeZoneRequest({accessToken:t,url:i,method:"POST",payload:r,callback:n,requestFactory:o,timeout:e.timeout,transport:e.transport})},fn.prototype._makeZoneRequest=function(){var t=this,e="undefined"!=typeof window&&window||"undefined"!=typeof self&&self,r=e&&e.Zone&&e.Zone.root,n=Array.prototype.slice.call(arguments);r?r.run(function(){t._makeRequest.apply(void 0,n)}):this._makeRequest.apply(void 0,n)},fn.prototype._makeRequest=function(t){var e=t.payload,r=t.callback,n=t.transport;if("undefined"!=typeof RollbarProxy)return function(t,e){(new RollbarProxy).sendJsonPayload(t,function(t){},function(t){e(new Error(t))})}(e,r);"fetch"===n?an(t):cn(t)};var pn,dn=fn;function hn(t){var e,r,n={protocol:null,auth:null,host:null,path:null,hash:null,href:t,hostname:null,port:null,pathname:null,search:null,query:null};if(-1!==(e=t.indexOf("//"))?(n.protocol=t.substring(0,e),r=e+2):r=0,-1!==(e=t.indexOf("@",r))&&(n.auth=t.substring(r,e),r=e+1),-1===(e=t.indexOf("/",r))){if(-1===(e=t.indexOf("?",r)))return-1===(e=t.indexOf("#",r))?n.host=t.substring(r):(n.host=t.substring(r,e),n.hash=t.substring(e)),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),n;n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e}else n.host=t.substring(r,e),n.hostname=n.host.split(":")[0],n.port=n.host.split(":")[1],n.port&&(n.port=parseInt(n.port,10)),r=e;if(-1===(e=t.indexOf("#",r))?n.path=t.substring(r):(n.path=t.substring(r,e),n.hash=t.substring(e)),n.path){var o=n.path.split("?");n.pathname=o[0],n.query=o[1],n.search=n.query?"?"+n.query:null}return n}function yn(t){return yn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yn(t)}function vn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function mn(t){for(var e=1;e0&&T(e,"data.request",o),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t)return n(null,e);var o=t.navigator||{},i=t.screen||{};T(e,"data.client",{runtime_ms:e.timestamp-t._rollbarStartTime,timestamp:Math.round(e.timestamp/1e3),javascript:{browser:o.userAgent,language:o.language,cookie_enabled:o.cookieEnabled,screen:{width:i.width,height:i.height}}}),n(null,e)}}(r)).addTransform(function(t){return function(e,r,n){if(!t||!t.navigator)return n(null,e);for(var o,i=[],a=t.navigator.plugins||[],s=0,u=a.length;s=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function An(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;i--){if(e=Cn(t[i]),r=o+3*n.length+e.length,i=83){n.unshift("...");break}n.unshift(e),o+=e.length}return n.join(" > ")}(function(t){for(var e,r=[],n=0;t&&n<5&&(e=Ln(t))&&"html"!==e.tagName;n++)r.unshift(e),t=t.parentNode;return r}(t))}function Cn(t){if(!t||!t.tagName)return"";var e=[t.tagName];t.id&&e.push("#"+t.id),t.classes&&e.push("."+t.classes.join("."));var r,n=Pn(t.attributes);try{for(n.s();!(r=n.n()).done;){var o=r.value;e.push("["+o.key+'="'+o.value+'"]')}}catch(t){n.e(t)}finally{n.f()}return e.join("")}function Ln(t){if(!t||!t.tagName)return null;var e,r={};r.tagName=t.tagName.toLowerCase(),t.id&&(r.id=t.id),(e=t.className)&&"string"==typeof e&&(r.classes=e.split(/\s+/));r.attributes=[];for(var n=0,o=["type","name","title","alt"];n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Hn(t,e){if(t){if("string"==typeof t)return Fn(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Fn(t,e):void 0}}function Fn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r3)){var e=P();a.__rollbar_xhr.end_time_ms=e;var r=null;if(a.__rollbar_xhr.response_content_type=a.getResponseHeader("Content-Type"),t.autoInstrument.networkResponseHeaders){var o=t.autoInstrument.networkResponseHeaders;r={};try{var i;if(!0===o){var s=a.getAllResponseHeaders();if(s){var u,l,c,f=Un(s.trim().split(/[\r\n]+/));try{for(f.s();!(c=f.n()).done;){i=(u=c.value.split(": ")).shift(),l=u.join(": "),r[i]=l}}catch(t){f.e(t)}finally{f.f()}}}else{var p,d=Un(o);try{for(d.s();!(p=d.n()).done;){var h=p.value;r[h]=a.getResponseHeader(h)}}catch(t){d.e(t)}finally{d.f()}}}catch(t){}}var y=null;if(t.autoInstrument.networkResponseBody)try{y=a.responseText}catch(t){}var v=null;(y||r)&&(v={},y&&(t.isJsonContentType(a.__rollbar_xhr.response_content_type)?v.body=t.scrubJson(y):v.body=y),r&&(v.headers=r)),v&&(a.__rollbar_xhr.response=v);try{var m=a.status;m=1223===m?204:m,a.__rollbar_xhr.status_code=m,t.addOtelNetworkResponse(a.__rollbar_event,e,m),a.__rollbar_event.level=t.telemeter.levelFromStatus(m),t.errorOnHttpStatus(a.__rollbar_xhr)}catch(t){}}}return e("onload",a),e("onerror",a),e("onprogress",a),"onreadystatechange"in a&&u(a.onreadystatechange)?Tn(a,"onreadystatechange",function(e){return t.rollbar.wrap(e,void 0,l)}):a.onreadystatechange=l,a.__rollbar_xhr&&t.trackHttpErrors()&&(a.__rollbar_xhr.stack=(new Error).stack),r.apply(this,arguments)}},this.replacements,"network")}"fetch"in this._window&&Tn(this._window,"fetch",function(e){return function(r,n){var o,i,s=Array.prototype.slice.call(arguments),u=s[0],l="GET",c=$n(u);a(u,"string")||c?i=c?u.toString():u:u&&(i=u.url,u.method&&(l=u.method)),s[1]&&s[1].method&&(l=s[1].method);var f=null===(o=t.rollbar)||void 0===o?void 0:o.tracing;C(t.options,f,i)&&L(s,{baggage:"rollbar.session.id=".concat(f.sessionId)});var p={method:l,url:i,status_code:null,start_time_ms:P(),end_time_ms:null};if(s[1]&&s[1].headers){var d=In(s[1].headers);p.request_content_type=d.get("Content-Type"),t.autoInstrument.networkRequestHeaders&&(p.request_headers=t.fetchHeaders(d,t.autoInstrument.networkRequestHeaders))}t.autoInstrument.networkRequestBody&&(s[1]&&s[1].body?p.request=s[1].body:s[0]&&!a(s[0],"string")&&s[0].body&&(p.request=s[0].body));var h=t.captureNetwork(p,"fetch",void 0);return t.trackHttpErrors()&&(p.stack=(new Error).stack),e.apply(this,s).then(function(e){var r=P();p.end_time_ms=r,p.status_code=e.status,t.addOtelNetworkResponse(h,r,e.status),p.response_content_type=e.headers.get("Content-Type");var n=null;t.autoInstrument.networkResponseHeaders&&(n=t.fetchHeaders(e.headers,t.autoInstrument.networkResponseHeaders));var o=null;return t.autoInstrument.networkResponseBody&&"function"==typeof e.text&&(o=e.clone().text()),(n||o)&&(p.response={},o&&("function"==typeof o.then?o.then(function(e){e&&t.isJsonContentType(p.response_content_type)?p.response.body=t.scrubJson(e):p.response.body=e}):p.response.body=o),n&&(p.response.headers=n)),t.errorOnHttpStatus(p),e})}},this.replacements,"network")}},{key:"captureNetwork",value:function(t,e,r){return t.request&&this.isJsonContentType(t.request_content_type)&&(t.request=this.scrubJson(t.request)),this.telemeter.captureNetwork(t,e,r)}},{key:"isJsonContentType",value:function(t){return!!(t&&a(t,"string")&&t.toLowerCase().includes("json"))}},{key:"addOtelNetworkResponse",value:function(t,e,r){t.otelAttributes&&(t.otelAttributes["response.timeUnixNano"]=(1e6*e).toString(),t.otelAttributes.statusCode=r)}},{key:"scrubJson",value:function(t){return JSON.stringify(F(JSON.parse(t),this.options.scrubFields))}},{key:"fetchHeaders",value:function(t,e){var r={};try{if(!0===e){if("function"==typeof t.entries)for(var n=t.entries(),o=n.next();!o.done;)r[o.value[0]]=o.value[1],o=n.next()}else{var i,a=Un(e);try{for(a.s();!(i=a.n()).done;){var s=i.value;r[s]=t.get(s)}}catch(t){a.e(t)}finally{a.f()}}}catch(t){}return r}},{key:"trackHttpErrors",value:function(){return this.autoInstrument.networkErrorOnHttp5xx||this.autoInstrument.networkErrorOnHttp4xx||this.autoInstrument.networkErrorOnHttp0}},{key:"errorOnHttpStatus",value:function(t){var e=t.status_code;if(e>=500&&this.autoInstrument.networkErrorOnHttp5xx||e>=400&&this.autoInstrument.networkErrorOnHttp4xx||0===e&&this.autoInstrument.networkErrorOnHttp0){var r=new Error("HTTP request failed with Status "+e);r.stack=t.stack,this.rollbar.error(r,{skipFrames:1})}}},{key:"deinstrumentConsole",value:function(){for(var t;this.replacements.log.length;)t=this.replacements.log.shift(),this._window.console[t[0]]=t[1]}},{key:"instrumentConsole",value:function(){var t;if(null!==(t=this._window)&&void 0!==t&&null!==(t=t.console)&&void 0!==t&&t.log){var e=this,r=this._window.console;try{for(var n=0,o=["debug","info","warn","error","log"];n500&&(n=n.substr(0,497)+"...");break;case"null":n="null";break;case"undefined":n="undefined";break;case"symbol":n=n.toString()}o.push(n)}return o.join(" ")}(t);e.telemeter.captureLog(r,i,null,P()),n&&Function.prototype.apply.call(n,o,t)},e.replacements.log.push([t,n])}}},{key:"deinstrumentDom",value:function(){this.removeListeners("dom")}},{key:"instrumentDom",value:function(){var t=this;this.addListener("dom",this._window,["click","dblclick","contextmenu"],function(e){return t.handleEvent("click",e)}),this.addListener("dom",this._window,["dragstart","dragend","dragenter","dragleave","drop"],function(e){return t.handleEvent("dragdrop",e)}),this.addListener("dom",this._window,["blur","focus"],function(e){return t.handleEvent("focus",e)}),this.addListener("dom",this._window,["submit","invalid"],function(e){return t.handleEvent("form",e)}),this.addListener("dom",this._window,["input","change"],function(e){return t.handleEvent("input",e)}),this.addListener("dom",this._window,["resize"],function(e){return t.handleEvent("resize",e)}),this.addListener("dom",this._document,["DOMContentLoaded"],function(e){return t.handleEvent("contentLoaded",e)})}},{key:"handleEvent",value:function(t,e){try{return{click:this.handleClick,dragdrop:this.handleDrag,focus:this.handleFocus,form:this.handleForm,input:this.handleInput,resize:this.handleResize,contentLoaded:this.handleContentLoaded}[t].call(this,e)}catch(r){Ct.log("".concat(t," handler error"),e,r,r.stack)}}},{key:"handleContentLoaded",value:function(t){this.rollbar.triggerReplay({type:"navigation",path:new URL(this._location.href).pathname})}},{key:"handleClick",value:function(t){var e,r=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase();["input","select","textarea"].includes(r)||this.telemeter.captureClick({type:t.type,isSynthetic:!t.isTrusted,element:Rn(t.target),timestamp:P()})}},{key:"handleFocus",value:function(t){var e,r=t.type,n=null!==(e=t.target)&&void 0!==e&&e.window?"window":Rn(t.target);this.telemeter.captureFocus({type:r,isSynthetic:!t.isTrusted,element:n,timestamp:P()})}},{key:"handleForm",value:function(t){}},{key:"handleResize",value:function(t){var e=window.screen.width/window.innerWidth;this.telemeter.captureResize({type:t.type,isSynthetic:!t.isTrusted,width:window.innerWidth,height:window.innerHeight,textZoomRatio:e,timestamp:P()})}},{key:"handleDrag",value:function(t){var e,r,n,o,i,a,s=t.type;if("drop"===s){e=[],r=[];var u,l=Un([].concat(Nn(t.dataTransfer.files),Nn(t.dataTransfer.items)));try{for(l.s();!(u=l.n()).done;){var c=u.value;c.kind&&c.type&&(e.push(c.kind),r.push(c.type))}}catch(t){l.e(t)}finally{l.f()}}["drop","dragstart"].includes(s)&&(n=null===(i=t.dataTransfer)||void 0===i?void 0:i.dropEffect,o=null===(a=t.dataTransfer)||void 0===a?void 0:a.effectAllowed);this.telemeter.captureDragDrop({type:s,isSynthetic:!t.isTrusted,element:Rn(t.target),dropEffect:n,effectAllowed:o,kinds:JSON.stringify(e),mediaTypes:JSON.stringify(r),timestamp:P()})}},{key:"scrubInputValue",value:function(t,e,r,n){var o="******";if("password"===n)return o;if(this.scrubTelemetryInputs)return o;var i=Ln(e);if(this.telemetryScrubber){if(this.telemetryScrubber(i))return o}else if(this.defaultValueScrubber(i))return o;return function(t,e,r){try{var n,o=Pn(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;if("string"==typeof i){if(t.classList.contains(i))return!0}else{var a,s=Pn(t.classList);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(i.test(u))return!0}}catch(t){s.e(t)}finally{s.f()}}}}catch(t){o.e(t)}finally{o.f()}var l,c=Pn(r);try{for(c.s();!(l=c.n()).done;){var f=l.value;if(t.matches(f))return!0}}catch(t){c.e(t)}finally{c.f()}}catch(t){}return!1}(e,this.scrubClasses,this.scrubSelectors)?o:this.maskInputOptions[r.toLowerCase()]||this.maskInputOptions[n]?this.maskInputFn?this.maskInputFn(t,e):o:t}},{key:"handleInput",value:function(t){var e,r,n,o,i=t.type,a=null===(e=t.target)||void 0===e?void 0:e.tagName.toLowerCase(),s=null===(r=t.target)||void 0===r?void 0:r.value,u=(null===(n=t.target)||void 0===n||null===(n=n.attributes)||void 0===n||null===(n=n.type)||void 0===n?void 0:n.value)||(null===(o=t.target)||void 0===o?void 0:o.type);switch(void 0!==s&&(s=this.scrubInputValue(s,t.target,a,u)),i){case"input":if(["radio","checkbox"].includes(u))return;["select","textarea"].includes(a)&&(u=a);break;case"change":if(!["radio","checkbox"].includes(u))return;var l;if("checkbox"===u)s=null===(l=t.target)||void 0===l?void 0:l.checked}this.telemeter.captureInput({type:u,isSynthetic:!t.isTrusted,element:Rn(t.target),value:s,timestamp:P()})}},{key:"deinstrumentNavigation",value:function(){var t=this._window.chrome;!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState&&Vn(this.replacements,"navigation")}},{key:"instrumentNavigation",value:function(){var t=this._window.chrome;if(!(t&&t.app&&t.app.runtime)&&this._window.history&&this._window.history.pushState){var e=this;Tn(this._window,"onpopstate",function(t){return function(){var r=e._location.href;e.handleUrlChange(e._lastHref,r),t&&t.apply(this,arguments)}},this.replacements,"navigation"),Tn(this._window.history,"pushState",function(t){return function(){var r=arguments.length>2?arguments[2]:void 0;return r&&e.handleUrlChange(e._lastHref,String(r)),t.apply(this,arguments)}},this.replacements,"navigation")}}},{key:"handleUrlChange",value:function(t,e){var r=hn(this._location.href),n=hn(e),o=hn(t);this._lastHref=e,r.protocol===n.protocol&&r.host===n.host&&(e=n.path+(n.hash||"")),r.protocol===o.protocol&&r.host===o.host&&(t=o.path+(o.hash||"")),this.telemeter.captureNavigation(t,e,null,P()),this.rollbar.triggerReplay({type:"navigation",path:e})}},{key:"instrumentConnectivity",value:function(){var t=this;this.addListener("connectivity",this._window,["online","offline"],function(e){return t.handleConnectivity(e)})}},{key:"handleConnectivity",value:function(t){var e=t.type;this.telemeter.captureConnectivityChange({type:e,isSynthetic:!t.isTrusted,timestamp:P()})}},{key:"handleCspEvent",value:function(t){var e="Security Policy Violation: blockedURI: "+t.blockedURI+", violatedDirective: "+t.violatedDirective+", effectiveDirective: "+t.effectiveDirective+", ";t.sourceFile&&(e+="location: "+t.sourceFile+", line: "+t.lineNumber+", col: "+t.columnNumber+", "),e+="originalPolicy: "+t.originalPolicy,this.telemeter.captureLog(e,"error",null,P()),this.handleCspError(e)}},{key:"handleCspError",value:function(t){this.autoInstrument.errorOnContentSecurityPolicy&&this.rollbar.error(t)}},{key:"deinstrumentContentSecurityPolicy",value:function(){this.removeListeners("contentsecuritypolicy")}},{key:"instrumentContentSecurityPolicy",value:function(){if("addEventListener"in this._document){var t=this.handleCspEvent.bind(this);this.addListener("contentsecuritypolicy",this._document,["securitypolicyviolation"],t)}}},{key:"addListener",value:function(t,e,r,n){var o=this;if(e.addEventListener){var i,a=Un(r);try{var s=function(){var r=i.value,a={capture:!0,passive:!0};e.addEventListener(r,n,a,!0),o.eventRemovers[t].push(function(){e.removeEventListener(r,n,a)})};for(a.s();!(i=a.n()).done;)s()}catch(t){a.e(t)}finally{a.f()}}}},{key:"removeListeners",value:function(t){for(;this.eventRemovers[t].length;)this.eventRemovers[t].shift()()}}])}();function $n(t){return"undefined"!=typeof URL&&t instanceof URL}var Gn=Wn;function zn(t,e,r){if(c(e,"addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var o=function(e,r,o){n.call(this,e,t.wrap(r),o)};o._rollbarOldAdd=n,o.belongsToShim=r,e.addEventListener=o;for(var i=e.removeEventListener;i._rollbarOldRemove&&i.belongsToShim;)i=i._rollbarOldRemove;var a=function(t,e,r){i.call(this,t,e&&e._rollbar_wrapped||e,r)};a._rollbarOldRemove=i,a.belongsToShim=r,e.removeEventListener=a}}var Xn=function(t,e,r){if(t){var n,o,i="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(",");for(n=0;n 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} 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\", \"\"].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(//, \"$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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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\nif ((typeof window !== 'undefined') && !window._rollbarStartTime) {\n window._rollbarStartTime = (new Date()).getTime();\n}\n\nexport default rollbar;\n"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","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","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","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","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"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"rollbar.noconflict.umd.min.js","mappings":"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","sources":["webpack://rollbar/webpack/universalModuleDefinition","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.noconflict.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rollbar\"] = factory();\n\telse\n\t\troot[\"rollbar\"] = factory();\n})(this, function() {\nreturn ","// 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} 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\", \"\"].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(//, \"$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} classes - An array of class names (string or regex) to match against.\n * @param {Array} 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\nif ((typeof window !== 'undefined') && !window._rollbarStartTime) {\n window._rollbarStartTime = (new Date()).getTime();\n}\n\nexport default rollbar;\n"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","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","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","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","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"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/rollbar.replay.js b/dist/rollbar.replay.js index 4308e3e0..9d3d38c5 100644 --- a/dist/rollbar.replay.js +++ b/dist/rollbar.replay.js @@ -187,6 +187,9 @@ function isPromise(p) { function isBrowser() { return typeof window !== 'undefined'; } +function isRequestObject(input) { + return typeof Request !== 'undefined' && input instanceof Request; +} function redact() { return '********'; } @@ -831,6 +834,70 @@ function merge() { } return result; } +function shouldAddBaggageHeader(options, tracing, url) { + var _options$tracing; + if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) { + return false; + } + var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation; + var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders; + if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) { + return false; + } + var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls; + if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) { + return false; + } + return enabledCorsUrls.some(function (pattern) { + if (isType(pattern, 'string')) { + return url === pattern; + } + if (isType(pattern, 'regexp')) { + return pattern.test(url); + } + return false; + }); +} +function addHeadersToFetch(args, newHeaders) { + var _init; + // Headers may be in the request object or the init object. + // If present in both places, the init object must be used. + // + var init = args[1]; + var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers; + var reqHeaders = isRequestObject(args[0]) && args[0].headers; + var headers = initHeaders || reqHeaders; + + // If headers are not present in either place, they are added to the init object. + // If there is no init object, one must be created and added to args. + if (!headers) { + if (!init) { + args[1] = init = {}; + } + headers = init.headers = {}; + } + + // `headers` may be a Headers object or a plain object. + if (headers instanceof Headers) { + for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) { + var key = _Object$keys[_i]; + headers.append(key, newHeaders[key]); + } + } else if (isObject(headers)) { + for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) { + var _key = _Object$keys2[_i2]; + headers[_key] = newHeaders[_key]; + } + } +} +function getSessionIdFromAsyncLocalStorage(client) { + var storage = client.asyncLocalStorage; + if (!storage || typeof storage.getStore !== 'function') { + return null; + } + var store = storage.getStore(); + return (store === null || store === void 0 ? void 0 : store.sessionId) || null; +} ;// ./src/utility/traverse.js @@ -2980,7 +3047,7 @@ function _getOTLPTransport(options, url) { /** * Default options shared across platforms */ -var version = '3.0.0'; +var version = '3.1.0'; var endpoint = 'api.rollbar.com/api/1/item/'; var logLevel = 'debug'; var reportLevel = 'debug'; @@ -4243,9 +4310,11 @@ Rollbar.prototype._log = function (defaultLevel, item) { Rollbar.prototype._addItemAttributes = function (item) { var _this$tracing, _this$tracing2; var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan(); + var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this); + var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId); var attributes = [{ key: 'session_id', - value: (_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId + value: sessionId }, { key: 'span_id', value: span === null || span === void 0 ? void 0 : span.spanId @@ -22507,7 +22576,16 @@ var Instrumenter = /*#__PURE__*/function () { }, this.replacements, 'network'); utility_replace(xhrp, 'send', function (orig) { return function (data) { + var _self$rollbar, _xhr$__rollbar_xhr; var xhr = this; + var tracing = (_self$rollbar = self.rollbar) === null || _self$rollbar === void 0 ? void 0 : _self$rollbar.tracing; + if (shouldAddBaggageHeader(self.options, tracing, (_xhr$__rollbar_xhr = xhr.__rollbar_xhr) === null || _xhr$__rollbar_xhr === void 0 ? void 0 : _xhr$__rollbar_xhr.url)) { + try { + xhr.setRequestHeader('baggage', "rollbar.session.id=".concat(tracing.sessionId)); + } catch (_e) { + /* ignore errors from adding baggage header */ + } + } function onreadystatechangeHandler() { if (xhr.__rollbar_xhr) { if (xhr.__rollbar_xhr.status_code === null) { @@ -22628,6 +22706,7 @@ var Instrumenter = /*#__PURE__*/function () { if ('fetch' in this._window) { utility_replace(this._window, 'fetch', function (orig) { return function (_fn, _t) { + var _self$rollbar2; var args = Array.prototype.slice.call(arguments); var input = args[0]; var method = 'GET'; @@ -22644,6 +22723,13 @@ var Instrumenter = /*#__PURE__*/function () { if (args[1] && args[1].method) { method = args[1].method; } + var tracing = (_self$rollbar2 = self.rollbar) === null || _self$rollbar2 === void 0 ? void 0 : _self$rollbar2.tracing; + if (shouldAddBaggageHeader(self.options, tracing, url)) { + var _headers2 = { + baggage: "rollbar.session.id=".concat(tracing.sessionId) + }; + addHeadersToFetch(args, _headers2); + } var metadata = { method: method, url: url, diff --git a/dist/rollbar.replay.js.map b/dist/rollbar.replay.js.map index 46f2cd31..02700ecc 100644 --- a/dist/rollbar.replay.js.map +++ b/dist/rollbar.replay.js.map @@ -1 +1 @@ -{"version":3,"file":"rollbar.replay.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/tracing/defaults.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/browser/replay/defaults.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/../../rrweb/dist/rrweb.js","webpack://rollbar/../src/index.ts","webpack://rollbar/./src/browser/replay/checkoutWatchdog.js","webpack://rollbar/./src/browser/replay/recorder.js","webpack://rollbar/./src/browser/replay/replayPredicates.js","webpack://rollbar/./src/browser/replay/scheduledStreamCapture.js","webpack://rollbar/./src/browser/replay/replay.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/rollbarReplay.js","webpack://rollbar/./src/browser/bundles/rollbarReplay.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} 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\", \"\"].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(//, \"$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","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\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","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","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","/**\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","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","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$3 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$3 || {});\nconst testableAccessors$1 = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods$1 = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nconst isAngularZonePresent$1 = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {\n untaintedBasePrototype$1[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache$1[cacheKey])\n return untaintedAccessorCache$1[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache$1[cacheKey])\n return untaintedMethodCache$1[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction ownerDocument$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"ownerDocument\");\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nfunction patch$1(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index$1 = {\n ownerDocument: ownerDocument$1,\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1,\n patch: patch$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n const rules2 = s2.rules || s2.cssRules;\n if (!rules2) {\n return null;\n }\n let sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode) {\n sheetHref = s2.ownerNode.baseURI;\n }\n const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x2 = 0; x2 < canvas.width; x2 += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x2,\n y,\n Math.min(chunkSize, canvas.width - x2),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction isNodeMetaEqual(a2, b) {\n if (!a2 || !b || a2.type !== b.type) return false;\n if (a2.type === NodeType$3.Document)\n return a2.compatMode === b.compatMode;\n else if (a2.type === NodeType$3.DocumentType)\n return a2.name === b.name && a2.publicId === b.publicId && a2.systemId === b.systemId;\n else if (a2.type === NodeType$3.Comment || a2.type === NodeType$3.Text || a2.type === NodeType$3.CDATA)\n return a2.textContent === b.textContent;\n else if (a2.type === NodeType$3.Element)\n return a2.tagName === b.tagName && JSON.stringify(a2.attributes) === JSON.stringify(b.attributes) && a2.isSVG === b.isSVG && a2.needBlock === b.needBlock;\n return false;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n let iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i2 = 1; i2 < childNodes2.length; i2++) {\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n const textContentNorm = normalizeCssString(\n childNodes2[i2].textContent,\n _testNoPxNorm\n );\n const jLimit = 100;\n let j = 3;\n for (; j < textContentNorm.length; j++) {\n if (\n // keep consuming css identifiers (to get a decent chunk more quickly)\n textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1\n ) {\n continue;\n }\n break;\n }\n for (; j < textContentNorm.length; j++) {\n let startSubstring = textContentNorm.substring(0, j);\n let cssNormSplits = cssTextNorm.split(startSubstring);\n let splitNorm = -1;\n if (cssNormSplits.length === 2) {\n splitNorm = cssNormSplits[0].length;\n } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i2 - 1].textContent !== \"\") {\n splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n } else if (cssNormSplits.length === 1) {\n startSubstring = startSubstring.substring(\n 0,\n startSubstring.length - 1\n );\n cssNormSplits = cssTextNorm.split(startSubstring);\n if (cssNormSplits.length <= 1) {\n splits.push(cssText);\n return splits;\n }\n j = jLimit + 1;\n } else if (j === textContentNorm.length - 1) {\n splitNorm = cssTextNorm.indexOf(startSubstring);\n }\n if (cssNormSplits.length >= 2 && j > jLimit) {\n const prevTextContent = childNodes2[i2 - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n const prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(\n cssText.substring(0, k),\n _testNoPxNorm\n );\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(\n 1,\n Math.floor((splitNorm - normPart.length) / normFactor)\n );\n } else {\n k -= Math.max(\n 1,\n Math.floor((normPart.length - splitNorm) * normFactor)\n );\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars2;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && [\"table\", \"td\", \"th\"].includes(tagName)) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return [\"video\", \"audio\"].includes(tagName) && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n const rootId = getRootId(doc, mirror2);\n switch (n2.nodeType) {\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId\n });\n case n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n const docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n const tagName = getValidTagName$1(n2);\n let attributes = {};\n const len = n2.attributes.length;\n for (let i2 = 0; i2 < len; i2++) {\n const attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n return s2.href === n2.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n let cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n if (n2.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n2);\n }\n attributes._cssText = cssText;\n }\n }\n if ([\"input\", \"textarea\", \"select\"].includes(tagName)) {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\n });\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n2)) {\n const canvasDataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n2;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if ([\"audio\", \"video\"].includes(tagName)) {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {\n }\n return {\n type: NodeType$3.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMDefaults(_slimDOMOptions) {\n if (_slimDOMOptions === true || _slimDOMOptions === \"all\") {\n return {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n };\n } else if (_slimDOMOptions) {\n return _slimDOMOptions;\n }\n return {};\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" && sn.attributes.as === \"script\" || sn.attributes.rel === \"modulepreload\") || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n2,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n let id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index$1.childNodes(n2))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n for (const childN of Array.from(index$1.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n2,\n () => {\n const iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n2,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n2,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n2,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n const {\n mirror: mirror2 = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOMDefaults(slimDOM);\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, \"g\");\nconst mediaSelectorPlugin = {\n postcssPlugin: \"postcss-custom-selectors\",\n prepare() {\n return {\n postcssPlugin: \"postcss-custom-selectors\",\n AtRule: function(atrule) {\n if (atrule.params.match(MEDIA_SELECTOR_GLOBAL)) {\n atrule.params = atrule.params.replace(MEDIA_SELECTOR_GLOBAL, \"$1-$2\");\n }\n }\n };\n }\n};\nconst pseudoClassPlugin = {\n postcssPlugin: \"postcss-hover-classes\",\n prepare: function() {\n const fixed = [];\n return {\n Rule: function(rule2) {\n if (fixed.indexOf(rule2) !== -1) {\n return;\n }\n fixed.push(rule2);\n rule2.selectors.forEach(function(selector) {\n if (selector.includes(\":hover\")) {\n rule2.selector += \",\\n\" + selector.replace(/:hover/g, \".\\\\:hover\");\n }\n });\n }\n };\n }\n};\nfunction getDefaultExportFromCjs$1(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar x$1 = String;\nvar create$1 = function() {\n return { isColorSupported: false, reset: x$1, bold: x$1, dim: x$1, italic: x$1, underline: x$1, inverse: x$1, hidden: x$1, strikethrough: x$1, black: x$1, red: x$1, green: x$1, yellow: x$1, blue: x$1, magenta: x$1, cyan: x$1, white: x$1, gray: x$1, bgBlack: x$1, bgRed: x$1, bgGreen: x$1, bgYellow: x$1, bgBlue: x$1, bgMagenta: x$1, bgCyan: x$1, bgWhite: x$1 };\n};\npicocolors_browser$1.exports = create$1();\npicocolors_browser$1.exports.createColors = create$1;\nvar picocolors_browserExports$1 = picocolors_browser$1.exports;\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nlet pico$1 = picocolors_browserExports$1;\nlet terminalHighlight$1$1 = require$$2$1;\nlet CssSyntaxError$3$1 = class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico$1.isColorSupported;\n if (terminalHighlight$1$1) {\n if (color) css = terminalHighlight$1$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico$1.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError$1 = CssSyntaxError$3$1;\nCssSyntaxError$3$1.default = CssSyntaxError$3$1;\nvar symbols$1 = {};\nsymbols$1.isClean = Symbol(\"isClean\");\nsymbols$1.my = Symbol(\"my\");\nconst DEFAULT_RAW$1 = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize$1(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2$1 = class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW$1[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize$1(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW$1[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier$1 = Stringifier$2$1;\nStringifier$2$1.default = Stringifier$2$1;\nlet Stringifier$1$1 = stringifier$1;\nfunction stringify$4$1(node2, builder) {\n let str = new Stringifier$1$1(builder);\n str.stringify(node2);\n}\nvar stringify_1$1 = stringify$4$1;\nstringify$4$1.default = stringify$4$1;\nlet { isClean: isClean$2$1, my: my$2$1 } = symbols$1;\nlet CssSyntaxError$2$1 = cssSyntaxError$1;\nlet Stringifier2$1 = stringifier$1;\nlet stringify$3$1 = stringify_1$1;\nfunction cloneNode$1(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode$1(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode$1(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4$1 = class Node2 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2$1] = false;\n this[my$2$1] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode$1(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2$1(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2$1]) {\n this[isClean$2$1] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2$1] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier2$1();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3$1) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node$1 = Node$4$1;\nNode$4$1.default = Node$4$1;\nlet Node$3$1 = node$1;\nlet Declaration$4$1 = class Declaration extends Node$3$1 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration$1 = Declaration$4$1;\nDeclaration$4$1.default = Declaration$4$1;\nlet urlAlphabet$1 = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet$1 = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet$1[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure$1 = { nanoid: nanoid$1$1, customAlphabet: customAlphabet$1 };\nlet { SourceMapConsumer: SourceMapConsumer$2$1, SourceMapGenerator: SourceMapGenerator$2$1 } = require$$2$1;\nlet { existsSync: existsSync$1, readFileSync: readFileSync$1 } = require$$2$1;\nlet { dirname: dirname$1$1, join: join$1 } = require$$2$1;\nfunction fromBase64$1(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2$1 = class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2$1(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64$1(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1$1(path);\n if (existsSync$1(path)) {\n this.mapFile = path;\n return readFileSync$1(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2$1) {\n return SourceMapGenerator$2$1.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2$1) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join$1(dirname$1$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap$1 = PreviousMap$2$1;\nPreviousMap$2$1.default = PreviousMap$2$1;\nlet { SourceMapConsumer: SourceMapConsumer$1$1, SourceMapGenerator: SourceMapGenerator$1$1 } = require$$2$1;\nlet { fileURLToPath: fileURLToPath$1, pathToFileURL: pathToFileURL$1$1 } = require$$2$1;\nlet { isAbsolute: isAbsolute$1, resolve: resolve$1$1 } = require$$2$1;\nlet { nanoid: nanoid$2 } = nonSecure$1;\nlet terminalHighlight$2 = require$$2$1;\nlet CssSyntaxError$1$1 = cssSyntaxError$1;\nlet PreviousMap$1$1 = previousMap$1;\nlet fromOffsetCache$1 = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1);\nlet pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1);\nlet Input$4$1 = class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"￾\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute$1(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1$1(opts.from);\n }\n }\n if (pathAvailable$1$1 && sourceMapAvailable$1$1) {\n let map = new PreviousMap$1$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1$1) {\n result2.input.url = pathToFileURL$1$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache$1]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache$1] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache$1];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute$1(from.source)) {\n fromUrl = pathToFileURL$1$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath$1) {\n result2.file = fileURLToPath$1(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input$1 = Input$4$1;\nInput$4$1.default = Input$4$1;\nif (terminalHighlight$2 && terminalHighlight$2.registerInput) {\n terminalHighlight$2.registerInput(Input$4$1);\n}\nlet { SourceMapConsumer: SourceMapConsumer$3, SourceMapGenerator: SourceMapGenerator$3 } = require$$2$1;\nlet { dirname: dirname$2, relative: relative$1, resolve: resolve$2, sep: sep$1 } = require$$2$1;\nlet { pathToFileURL: pathToFileURL$2 } = require$$2$1;\nlet Input$3$1 = input$1;\nlet sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3);\nlet pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1);\nlet MapGenerator$2$1 = class MapGenerator {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname$2(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer$3(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable$2 && sourceMapAvailable$2 && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator$3.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname$2(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname$2(resolve$2(from, this.mapOpts.annotation));\n }\n let path = relative$1(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3$1(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL$2) {\n let fileURL = pathToFileURL$2(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep$1 === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator$1 = MapGenerator$2$1;\nlet Node$2$1 = node$1;\nlet Comment$4$1 = class Comment extends Node$2$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment$1 = Comment$4$1;\nComment$4$1.default = Comment$4$1;\nlet { isClean: isClean$1$1, my: my$1$1 } = symbols$1;\nlet Declaration$3$1 = declaration$1;\nlet Comment$3$1 = comment$1;\nlet Node$1$1 = node$1;\nlet parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1;\nfunction cleanSource$1(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp$1(node2) {\n node2[isClean$1$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp$1(i2);\n }\n }\n}\nlet Container$7$1 = class Container extends Node$1$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource$1(parse$4$1(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3$1(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4$1(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4$1(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3$1(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1$1]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1$1]) markDirtyUp$1(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7$1.registerParse = (dependant) => {\n parse$4$1 = dependant;\n};\nContainer$7$1.registerRule = (dependant) => {\n Rule$4$1 = dependant;\n};\nContainer$7$1.registerAtRule = (dependant) => {\n AtRule$4$1 = dependant;\n};\nContainer$7$1.registerRoot = (dependant) => {\n Root$6$1 = dependant;\n};\nvar container$1 = Container$7$1;\nContainer$7$1.default = Container$7$1;\nContainer$7$1.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4$1.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4$1.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3$1.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3$1.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6$1.prototype);\n }\n node2[my$1$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7$1.rebuild(child);\n });\n }\n};\nlet Container$6$1 = container$1;\nlet LazyResult$4$1, Processor$3$1;\nlet Document$3$1 = class Document2 extends Container$6$1 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4$1(new Processor$3$1(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3$1.registerLazyResult = (dependant) => {\n LazyResult$4$1 = dependant;\n};\nDocument$3$1.registerProcessor = (dependant) => {\n Processor$3$1 = dependant;\n};\nvar document$1$1 = Document$3$1;\nDocument$3$1.default = Document$3$1;\nlet printed$1 = {};\nvar warnOnce$2$1 = function warnOnce(message) {\n if (printed$1[message]) return;\n printed$1[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2$1 = class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning$1 = Warning$2$1;\nWarning$2$1.default = Warning$2$1;\nlet Warning$1$1 = warning$1;\nlet Result$3$1 = class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result$1 = Result$3$1;\nResult$3$1.default = Result$3$1;\nconst SINGLE_QUOTE$1 = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE$1 = '\"'.charCodeAt(0);\nconst BACKSLASH$1 = \"\\\\\".charCodeAt(0);\nconst SLASH$1 = \"/\".charCodeAt(0);\nconst NEWLINE$1 = \"\\n\".charCodeAt(0);\nconst SPACE$1 = \" \".charCodeAt(0);\nconst FEED$1 = \"\\f\".charCodeAt(0);\nconst TAB$1 = \"\t\".charCodeAt(0);\nconst CR$1 = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE$1 = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE$1 = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES$1 = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES$1 = \")\".charCodeAt(0);\nconst OPEN_CURLY$1 = \"{\".charCodeAt(0);\nconst CLOSE_CURLY$1 = \"}\".charCodeAt(0);\nconst SEMICOLON$1 = \";\".charCodeAt(0);\nconst ASTERISK$1 = \"*\".charCodeAt(0);\nconst COLON$1 = \":\".charCodeAt(0);\nconst AT$1 = \"@\".charCodeAt(0);\nconst RE_AT_END$1 = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END$1 = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET$1 = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE$1 = /[\\da-f]/i;\nvar tokenize$1 = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE$1:\n case SPACE$1:\n case TAB$1:\n case CR$1:\n case FEED$1: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE$1:\n case CLOSE_SQUARE$1:\n case OPEN_CURLY$1:\n case CLOSE_CURLY$1:\n case COLON$1:\n case SEMICOLON$1:\n case CLOSE_PARENTHESES$1: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES$1: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET$1.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE$1:\n case DOUBLE_QUOTE$1: {\n quote = code === SINGLE_QUOTE$1 ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT$1: {\n RE_AT_END$1.lastIndex = pos + 1;\n RE_AT_END$1.test(css);\n if (RE_AT_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END$1.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH$1: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH$1) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) {\n next += 1;\n if (RE_HEX_ESCAPE$1.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE$1.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE$1) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH$1 && css.charCodeAt(pos + 1) === ASTERISK$1) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END$1.lastIndex = pos + 1;\n RE_WORD_END$1.test(css);\n if (RE_WORD_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END$1.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5$1 = container$1;\nlet AtRule$3$1 = class AtRule extends Container$5$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule$1 = AtRule$3$1;\nAtRule$3$1.default = AtRule$3$1;\nContainer$5$1.registerAtRule(AtRule$3$1);\nlet Container$4$1 = container$1;\nlet LazyResult$3$1, Processor$2$1;\nlet Root$5$1 = class Root extends Container$4$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3$1(new Processor$2$1(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5$1.registerLazyResult = (dependant) => {\n LazyResult$3$1 = dependant;\n};\nRoot$5$1.registerProcessor = (dependant) => {\n Processor$2$1 = dependant;\n};\nvar root$1 = Root$5$1;\nRoot$5$1.default = Root$5$1;\nContainer$4$1.registerRoot(Root$5$1);\nlet list$2$1 = {\n comma(string) {\n return list$2$1.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2$1.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1$1 = list$2$1;\nlist$2$1.default = list$2$1;\nlet Container$3$1 = container$1;\nlet list$1$1 = list_1$1;\nlet Rule$3$1 = class Rule extends Container$3$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule$1 = Rule$3$1;\nRule$3$1.default = Rule$3$1;\nContainer$3$1.registerRule(Rule$3$1);\nlet Declaration$2$1 = declaration$1;\nlet tokenizer2$1 = tokenize$1;\nlet Comment$2$1 = comment$1;\nlet AtRule$2$1 = atRule$1;\nlet Root$4$1 = root$1;\nlet Rule$2$1 = rule$1;\nconst SAFE_COMMENT_NEIGHBOR$1 = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition$1(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1$1 = class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4$1();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2$1();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2$1();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer2$1(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2$1();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition$1(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2$1();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2$1();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser$1 = Parser$1$1;\nlet Container$2$1 = container$1;\nlet Parser2$1 = parser$1;\nlet Input$2$1 = input$1;\nfunction parse$3$1(css, opts) {\n let input2 = new Input$2$1(css, opts);\n let parser2 = new Parser2$1(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1$1 = parse$3$1;\nparse$3$1.default = parse$3$1;\nContainer$2$1.registerParse(parse$3$1);\nlet { isClean: isClean$3, my: my$3 } = symbols$1;\nlet MapGenerator$1$1 = mapGenerator$1;\nlet stringify$2$1 = stringify_1$1;\nlet Container$1$1 = container$1;\nlet Document$2$1 = document$1$1;\nlet warnOnce$1$1 = warnOnce$2$1;\nlet Result$2$1 = result$1;\nlet parse$2$1 = parse_1$1;\nlet Root$3$1 = root$1;\nconst TYPE_TO_CLASS_NAME$1 = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS$1 = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS$1 = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN$1 = 0;\nfunction isPromise$1(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents$1(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME$1[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN$1,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN$1, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack$1(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN$1, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN$1, \"RootExit\"];\n } else {\n events = getEvents$1(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks$1(node2) {\n node2[isClean$3] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks$1(i2));\n return node2;\n}\nlet postcss$2$1 = {};\nlet LazyResult$2$1 = class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks$1(css);\n } else if (css instanceof LazyResult || css instanceof Result$2$1) {\n root2 = cleanMarks$1(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2$1;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my$3]) {\n Container$1$1.rebuild(root2);\n }\n }\n this.result = new Result$2$1(processor2, root2, opts);\n this.helpers = { ...postcss$2$1, postcss: postcss$2$1, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS$1[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n let stack = [toStack$1(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise$1(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2$1;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean$3]) {\n child[isClean$3] = true;\n stack.push(toStack$1(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN$1) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean$3] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean$3] = true;\n let events = getEvents$1(node2);\n for (let event of events) {\n if (event === CHILDREN$1) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean$3]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2$1.registerPostcss = (dependant) => {\n postcss$2$1 = dependant;\n};\nvar lazyResult$1 = LazyResult$2$1;\nLazyResult$2$1.default = LazyResult$2$1;\nRoot$3$1.registerLazyResult(LazyResult$2$1);\nDocument$2$1.registerLazyResult(LazyResult$2$1);\nlet MapGenerator2$1 = mapGenerator$1;\nlet stringify$1$1 = stringify_1$1;\nlet warnOnce2$1 = warnOnce$2$1;\nlet parse$1$1 = parse_1$1;\nconst Result$1$1 = result$1;\nlet NoWorkResult$1$1 = class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1$1;\n this.result = new Result$1$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator2$1(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult$1 = NoWorkResult$1$1;\nNoWorkResult$1$1.default = NoWorkResult$1$1;\nlet NoWorkResult2$1 = noWorkResult$1;\nlet LazyResult$1$1 = lazyResult$1;\nlet Document$1$1 = document$1$1;\nlet Root$2$1 = root$1;\nlet Processor$1$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2$1(this, css, opts);\n } else {\n return new LazyResult$1$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor$1 = Processor$1$1;\nProcessor$1$1.default = Processor$1$1;\nRoot$2$1.registerProcessor(Processor$1$1);\nDocument$1$1.registerProcessor(Processor$1$1);\nlet Declaration$1$1 = declaration$1;\nlet PreviousMap2$1 = previousMap$1;\nlet Comment$1$1 = comment$1;\nlet AtRule$1$1 = atRule$1;\nlet Input$1$1 = input$1;\nlet Root$1$1 = root$1;\nlet Rule$1$1 = rule$1;\nfunction fromJSON$1$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap2$1.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1$1 = fromJSON$1$1;\nfromJSON$1$1.default = fromJSON$1$1;\nlet CssSyntaxError2$1 = cssSyntaxError$1;\nlet Declaration2$1 = declaration$1;\nlet LazyResult2$1 = lazyResult$1;\nlet Container2$1 = container$1;\nlet Processor2$1 = processor$1;\nlet stringify$5 = stringify_1$1;\nlet fromJSON$2 = fromJSON_1$1;\nlet Document22 = document$1$1;\nlet Warning2$1 = warning$1;\nlet Comment2$1 = comment$1;\nlet AtRule2$1 = atRule$1;\nlet Result2$1 = result$1;\nlet Input2$1 = input$1;\nlet parse$5 = parse_1$1;\nlet list$3 = list_1$1;\nlet Rule2$1 = rule$1;\nlet Root2$1 = root$1;\nlet Node2$1 = node$1;\nfunction postcss$3(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2$1(plugins);\n}\npostcss$3.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2$1().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss$3([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss$3.stringify = stringify$5;\npostcss$3.parse = parse$5;\npostcss$3.fromJSON = fromJSON$2;\npostcss$3.list = list$3;\npostcss$3.comment = (defaults) => new Comment2$1(defaults);\npostcss$3.atRule = (defaults) => new AtRule2$1(defaults);\npostcss$3.decl = (defaults) => new Declaration2$1(defaults);\npostcss$3.rule = (defaults) => new Rule2$1(defaults);\npostcss$3.root = (defaults) => new Root2$1(defaults);\npostcss$3.document = (defaults) => new Document22(defaults);\npostcss$3.CssSyntaxError = CssSyntaxError2$1;\npostcss$3.Declaration = Declaration2$1;\npostcss$3.Container = Container2$1;\npostcss$3.Processor = Processor2$1;\npostcss$3.Document = Document22;\npostcss$3.Comment = Comment2$1;\npostcss$3.Warning = Warning2$1;\npostcss$3.AtRule = AtRule2$1;\npostcss$3.Result = Result2$1;\npostcss$3.Input = Input2$1;\npostcss$3.Rule = Rule2$1;\npostcss$3.Root = Root2$1;\npostcss$3.Node = Node2$1;\nLazyResult2$1.registerPostcss(postcss$3);\nvar postcss_1$1 = postcss$3;\npostcss$3.default = postcss$3;\nconst postcss$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcss_1$1);\npostcss$1$1.stringify;\npostcss$1$1.fromJSON;\npostcss$1$1.plugin;\npostcss$1$1.parse;\npostcss$1$1.list;\npostcss$1$1.document;\npostcss$1$1.comment;\npostcss$1$1.atRule;\npostcss$1$1.rule;\npostcss$1$1.decl;\npostcss$1$1.root;\npostcss$1$1.CssSyntaxError;\npostcss$1$1.Declaration;\npostcss$1$1.Container;\npostcss$1$1.Processor;\npostcss$1$1.Document;\npostcss$1$1.Comment;\npostcss$1$1.Warning;\npostcss$1$1.AtRule;\npostcss$1$1.Result;\npostcss$1$1.Input;\npostcss$1$1.Rule;\npostcss$1$1.Root;\npostcss$1$1.Node;\nconst tagMap = {\n script: \"noscript\",\n // camel case svg element tag names\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nfunction getTagName(n2) {\n let tagName = tagMap[n2.tagName] ? tagMap[n2.tagName] : n2.tagName;\n if (tagName === \"link\" && n2.attributes._cssText) {\n tagName = \"style\";\n }\n return tagName;\n}\nfunction adaptCssForReplay(cssText, cache) {\n const cachedStyle = cache == null ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n let result2 = cssText;\n try {\n const ast = postcss$1$1([\n mediaSelectorPlugin,\n pseudoClassPlugin\n ]).process(cssText);\n result2 = ast.css;\n } catch (error) {\n console.warn(\"Failed to adapt css for replay\", error);\n }\n cache == null ? void 0 : cache.stylesWithHoverClass.set(cssText, result2);\n return result2;\n}\nfunction createCache() {\n const stylesWithHoverClass = /* @__PURE__ */ new Map();\n return {\n stylesWithHoverClass\n };\n}\nfunction applyCssSplits(n2, cssText, hackCss, cache) {\n const childTextNodes = [];\n for (const scn of n2.childNodes) {\n if (scn.type === NodeType$3.Text) {\n childTextNodes.push(scn);\n }\n }\n const cssTextSplits = cssText.split(\"/* rr_split */\");\n while (cssTextSplits.length > 1 && cssTextSplits.length > childTextNodes.length) {\n cssTextSplits.splice(-2, 2, cssTextSplits.slice(-2).join(\"\"));\n }\n let adaptedCss = \"\";\n if (hackCss) {\n adaptedCss = adaptCssForReplay(cssTextSplits.join(\"\"), cache);\n }\n let startIndex = 0;\n for (let i2 = 0; i2 < childTextNodes.length; i2++) {\n if (i2 === cssTextSplits.length) {\n break;\n }\n const childTextNode = childTextNodes[i2];\n if (!hackCss) {\n childTextNode.textContent = cssTextSplits[i2];\n } else if (i2 < cssTextSplits.length - 1) {\n let endIndex = startIndex;\n let endSearch = cssTextSplits[i2 + 1].length;\n endSearch = Math.min(endSearch, 30);\n let found = false;\n for (; endSearch > 2; endSearch--) {\n const searchBit = cssTextSplits[i2 + 1].substring(0, endSearch);\n const searchIndex = adaptedCss.substring(startIndex).indexOf(searchBit);\n found = searchIndex !== -1;\n if (found) {\n endIndex += searchIndex;\n break;\n }\n }\n if (!found) {\n endIndex += cssTextSplits[i2].length;\n }\n childTextNode.textContent = adaptedCss.substring(startIndex, endIndex);\n startIndex = endIndex;\n } else {\n childTextNode.textContent = adaptedCss.substring(startIndex);\n }\n }\n}\nfunction buildStyleNode(n2, styleEl, cssText, options) {\n const { doc, hackCss, cache } = options;\n if (n2.childNodes.length) {\n applyCssSplits(n2, cssText, hackCss, cache);\n } else {\n if (hackCss) {\n cssText = adaptCssForReplay(cssText, cache);\n }\n styleEl.appendChild(doc.createTextNode(cssText));\n }\n}\nfunction buildNode(n2, options) {\n var _a2;\n const { doc, hackCss, cache } = options;\n switch (n2.type) {\n case NodeType$3.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType$3.DocumentType:\n return doc.implementation.createDocumentType(\n n2.name || \"html\",\n n2.publicId,\n n2.systemId\n );\n case NodeType$3.Element: {\n const tagName = getTagName(n2);\n let node2;\n if (n2.isSVG) {\n node2 = doc.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n } else {\n if (\n // If the tag name is a custom element name\n n2.isCustom && // If the browser supports custom elements\n ((_a2 = doc.defaultView) == null ? void 0 : _a2.customElements) && // If the custom element hasn't been defined yet\n !doc.defaultView.customElements.get(n2.tagName)\n )\n doc.defaultView.customElements.define(\n n2.tagName,\n class extends doc.defaultView.HTMLElement {\n }\n );\n node2 = doc.createElement(tagName);\n }\n const specialAttributes = {};\n for (const name in n2.attributes) {\n if (!Object.prototype.hasOwnProperty.call(n2.attributes, name)) {\n continue;\n }\n let value = n2.attributes[name];\n if (tagName === \"option\" && name === \"selected\" && value === false) {\n continue;\n }\n if (value === null) {\n continue;\n }\n if (value === true) value = \"\";\n if (name.startsWith(\"rr_\")) {\n specialAttributes[name] = value;\n continue;\n }\n if (typeof value !== \"string\") ;\n else if (tagName === \"style\" && name === \"_cssText\") {\n buildStyleNode(n2, node2, value, options);\n continue;\n } else if (tagName === \"textarea\" && name === \"value\") {\n node2.appendChild(doc.createTextNode(value));\n n2.childNodes = [];\n continue;\n }\n try {\n if (n2.isSVG && name === \"xlink:href\") {\n node2.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n name,\n value.toString()\n );\n } else if (name === \"onload\" || name === \"onclick\" || name.substring(0, 7) === \"onmouse\") {\n node2.setAttribute(\"_\" + name, value.toString());\n } else if (tagName === \"meta\" && n2.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && name === \"content\") {\n node2.setAttribute(\"csp-content\", value.toString());\n continue;\n } else if (tagName === \"link\" && (n2.attributes.rel === \"preload\" && n2.attributes.as === \"script\" || n2.attributes.rel === \"modulepreload\")) {\n } else if (tagName === \"link\" && n2.attributes.rel === \"prefetch\" && typeof n2.attributes.href === \"string\" && extractFileExtension(n2.attributes.href) === \"js\") {\n } else if (tagName === \"img\" && n2.attributes.srcset && n2.attributes.rr_dataURL) {\n node2.setAttribute(\n \"rrweb-original-srcset\",\n n2.attributes.srcset\n );\n } else {\n node2.setAttribute(name, value.toString());\n }\n } catch (error) {\n }\n }\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n if (tagName === \"canvas\" && name === \"rr_dataURL\") {\n const image = doc.createElement(\"img\");\n image.onload = () => {\n const ctx = node2.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n if (node2.RRNodeType)\n node2.rr_dataURL = value.toString();\n } else if (tagName === \"img\" && name === \"rr_dataURL\") {\n const image = node2;\n if (!image.currentSrc.startsWith(\"data:\")) {\n image.setAttribute(\n \"rrweb-original-src\",\n n2.attributes.src\n );\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node2.style.setProperty(\"width\", value.toString());\n } else if (name === \"rr_height\") {\n node2.style.setProperty(\"height\", value.toString());\n } else if (name === \"rr_mediaCurrentTime\" && typeof value === \"number\") {\n node2.currentTime = value;\n } else if (name === \"rr_mediaState\") {\n switch (value) {\n case \"played\":\n node2.play().catch((e2) => console.warn(\"media playback error\", e2));\n break;\n case \"paused\":\n node2.pause();\n break;\n }\n } else if (name === \"rr_mediaPlaybackRate\" && typeof value === \"number\") {\n node2.playbackRate = value;\n } else if (name === \"rr_mediaMuted\" && typeof value === \"boolean\") {\n node2.muted = value;\n } else if (name === \"rr_mediaLoop\" && typeof value === \"boolean\") {\n node2.loop = value;\n } else if (name === \"rr_mediaVolume\" && typeof value === \"number\") {\n node2.volume = value;\n } else if (name === \"rr_open_mode\") {\n node2.setAttribute(\n \"rr_open_mode\",\n value\n );\n }\n }\n if (n2.isShadowHost) {\n if (!node2.shadowRoot) {\n node2.attachShadow({ mode: \"open\" });\n } else {\n while (node2.shadowRoot.firstChild) {\n node2.shadowRoot.removeChild(node2.shadowRoot.firstChild);\n }\n }\n }\n return node2;\n }\n case NodeType$3.Text:\n if (n2.isStyle && hackCss) {\n return doc.createTextNode(adaptCssForReplay(n2.textContent, cache));\n }\n return doc.createTextNode(n2.textContent);\n case NodeType$3.CDATA:\n return doc.createCDATASection(n2.textContent);\n case NodeType$3.Comment:\n return doc.createComment(n2.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n2, options) {\n const {\n doc,\n mirror: mirror2,\n skipChild = false,\n hackCss = true,\n afterAppend,\n cache\n } = options;\n if (mirror2.has(n2.id)) {\n const nodeInMirror = mirror2.getNode(n2.id);\n const meta = mirror2.getMeta(nodeInMirror);\n if (isNodeMetaEqual(meta, n2)) return mirror2.getNode(n2.id);\n }\n let node2 = buildNode(n2, { doc, hackCss, cache });\n if (!node2) {\n return null;\n }\n if (n2.rootId && mirror2.getNode(n2.rootId) !== doc) {\n mirror2.replace(n2.rootId, doc);\n }\n if (n2.type === NodeType$3.Document) {\n doc.close();\n doc.open();\n if (n2.compatMode === \"BackCompat\" && n2.childNodes && n2.childNodes[0].type !== NodeType$3.DocumentType) {\n if (n2.childNodes[0].type === NodeType$3.Element && \"xmlns\" in n2.childNodes[0].attributes && n2.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\") {\n doc.write(\n ''\n );\n } else {\n doc.write(\n ''\n );\n }\n }\n node2 = doc;\n }\n mirror2.add(node2, n2);\n if ((n2.type === NodeType$3.Document || n2.type === NodeType$3.Element) && !skipChild) {\n for (const childN of n2.childNodes) {\n const childNode = buildNodeWithSN(childN, {\n doc,\n mirror: mirror2,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n if (!childNode) {\n console.warn(\"Failed to rebuild\", childN);\n continue;\n }\n if (childN.isShadow && isElement(node2) && node2.shadowRoot) {\n node2.shadowRoot.appendChild(childNode);\n } else if (n2.type === NodeType$3.Document && childN.type == NodeType$3.Element) {\n const htmlElement = childNode;\n let body = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === \"BODY\") body = child;\n });\n if (body) {\n htmlElement.removeChild(body);\n node2.appendChild(childNode);\n htmlElement.appendChild(body);\n } else {\n node2.appendChild(childNode);\n }\n } else {\n node2.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n return node2;\n}\nfunction visit(mirror2, onVisit) {\n function walk(node2) {\n onVisit(node2);\n }\n for (const id of mirror2.getIds()) {\n if (mirror2.has(id)) {\n walk(mirror2.getNode(id));\n }\n }\n}\nfunction handleScroll(node2, mirror2) {\n const n2 = mirror2.getMeta(node2);\n if ((n2 == null ? void 0 : n2.type) !== NodeType$3.Element) {\n return;\n }\n const el = node2;\n for (const name in n2.attributes) {\n if (!(Object.prototype.hasOwnProperty.call(n2.attributes, name) && name.startsWith(\"rr_\"))) {\n continue;\n }\n const value = n2.attributes[name];\n if (name === \"rr_scrollLeft\") {\n el.scrollLeft = value;\n }\n if (name === \"rr_scrollTop\") {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n2, options) {\n const {\n doc,\n onVisit,\n hackCss = true,\n afterAppend,\n cache,\n mirror: mirror2 = new Mirror()\n } = options;\n const node2 = buildNodeWithSN(n2, {\n doc,\n mirror: mirror2,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n visit(mirror2, (visitedNode) => {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode, mirror2);\n });\n return node2;\n}\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __defProp22 = Object.defineProperty;\nvar __defNormalProp22 = (obj, key, value) => key in obj ? __defProp22(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField22 = (obj, key, value) => __defNormalProp22(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet Mirror$1 = class Mirror2 {\n constructor() {\n __publicField22(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField22(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction createMirror$1() {\n return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar x = String;\nvar create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError2 extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError2);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier2 {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n let str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier22 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node3 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier22();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration2 extends Node$3 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = { nanoid: nanoid$1, customAlphabet };\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2 = class PreviousMap2 {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input2 {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"￾\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n let map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator2 {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment2 extends Node$2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp(i2);\n }\n }\n}\nlet Container$7 = class Container2 extends Node$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1]) Container2.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7.registerParse = (dependant) => {\n parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7.rebuild(child);\n });\n }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document23 extends Container$6 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3.registerLazyResult = (dependant) => {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2 = class Warning2 {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result2 {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer2(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule2 extends Container$5 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root2 extends Container$4 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5.registerLazyResult = (dependant) => {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n comma(string) {\n return list$2.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule2 extends Container$3 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer22 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser2 {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer22(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser22 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser22(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult2 {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult2 || css instanceof Result$2) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2.registerPostcss = (dependant) => {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator22 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce22 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult2 {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator22(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce22(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult22 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor2 {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult22(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap22 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap22.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError22 = cssSyntaxError;\nlet Declaration22 = declaration;\nlet LazyResult22 = lazyResult;\nlet Container22 = container;\nlet Processor22 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document222 = document$1;\nlet Warning22 = warning;\nlet Comment22 = comment;\nlet AtRule22 = atRule;\nlet Result22 = result;\nlet Input22 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule22 = rule;\nlet Root22 = root;\nlet Node22 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor22(plugins);\n}\npostcss.plugin = function plugin2(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor22().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment22(defaults);\npostcss.atRule = (defaults) => new AtRule22(defaults);\npostcss.decl = (defaults) => new Declaration22(defaults);\npostcss.rule = (defaults) => new Rule22(defaults);\npostcss.root = (defaults) => new Root22(defaults);\npostcss.document = (defaults) => new Document222(defaults);\npostcss.CssSyntaxError = CssSyntaxError22;\npostcss.Declaration = Declaration22;\npostcss.Container = Container22;\npostcss.Processor = Processor22;\npostcss.Document = Document222;\npostcss.Comment = Comment22;\npostcss.Warning = Warning22;\npostcss.AtRule = AtRule22;\npostcss.Result = Result22;\npostcss.Input = Input22;\npostcss.Rule = Rule22;\npostcss.Root = Root22;\npostcss.Node = Node22;\nLazyResult22.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nfunction parseCSSText(cssText) {\n const res = {};\n const listDelimiter = /;(?![^(]*\\))/g;\n const propertyDelimiter = /:(.+)/;\n const comment2 = /\\/\\*.*?\\*\\//g;\n cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n if (item) {\n const tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n }\n });\n return res;\n}\nfunction toCSSText(style) {\n const properties = [];\n for (const name in style) {\n const value = style[name];\n if (typeof value !== \"string\") continue;\n const normalizedName = hyphenate(name);\n properties.push(`${normalizedName}: ${value};`);\n }\n return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n return str.replace(camelizeRE, (_, c2) => c2 ? c2.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass BaseRRDocument extends BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args) {\n super(args);\n __publicField2(this, \"nodeType\", 9);\n __publicField2(this, \"nodeName\", \"#document\");\n __publicField2(this, \"compatMode\", \"CSS1Compat\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Document);\n __publicField2(this, \"textContent\", null);\n this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(newChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s2) => s2.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = appendChild(this, newChild);\n child.parentElement = null;\n return child;\n }\n insertBefore(newChild, refChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s2) => s2.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = insertBefore(this, newChild, refChild);\n child.parentElement = null;\n return child;\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n open() {\n this.firstChild = null;\n this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\')\n * 2. doc.write('\\')\n */\n write(content) {\n let publicId;\n if (content === '')\n publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n else if (content === '')\n publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n if (publicId) {\n const doctype = this.createDocumentType(\"html\", publicId, \"\");\n this.open();\n this.appendChild(doctype);\n }\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new BaseRRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n doctype.ownerDocument = this;\n return doctype;\n }\n createElement(tagName) {\n const element = new BaseRRElement(tagName);\n element.ownerDocument = this;\n return element;\n }\n createElementNS(_namespaceURI, qualifiedName) {\n return this.createElement(qualifiedName);\n }\n createTextNode(data) {\n const text = new BaseRRText(data);\n text.ownerDocument = this;\n return text;\n }\n createComment(data) {\n const comment2 = new BaseRRComment(data);\n comment2.ownerDocument = this;\n return comment2;\n }\n createCDATASection(data) {\n const CDATASection = new BaseRRCDATASection(data);\n CDATASection.ownerDocument = this;\n return CDATASection;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n constructor(qualifiedName, publicId, systemId) {\n super();\n __publicField2(this, \"nodeType\", 10);\n __publicField2(this, \"RRNodeType\", NodeType$1.DocumentType);\n __publicField2(this, \"name\");\n __publicField2(this, \"publicId\");\n __publicField2(this, \"systemId\");\n __publicField2(this, \"textContent\", null);\n this.name = qualifiedName;\n this.publicId = publicId;\n this.systemId = systemId;\n this.nodeName = qualifiedName;\n }\n toString() {\n return \"RRDocumentType\";\n }\n}\nclass BaseRRElement extends BaseRRNode {\n constructor(tagName) {\n super();\n __publicField2(this, \"nodeType\", 1);\n __publicField2(this, \"RRNodeType\", NodeType$1.Element);\n __publicField2(this, \"tagName\");\n __publicField2(this, \"attributes\", {});\n __publicField2(this, \"shadowRoot\", null);\n __publicField2(this, \"scrollLeft\");\n __publicField2(this, \"scrollTop\");\n this.tagName = tagName.toUpperCase();\n this.nodeName = tagName.toUpperCase();\n }\n get textContent() {\n let result2 = \"\";\n this.childNodes.forEach((node2) => result2 += node2.textContent);\n return result2;\n }\n set textContent(textContent2) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent2));\n }\n get classList() {\n return new ClassList(\n this.attributes.class,\n (newClassName) => {\n this.attributes.class = newClassName;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n const hyphenateRE2 = /\\B([A-Z])/g;\n style.setProperty = (name, value, priority) => {\n if (hyphenateRE2.test(name)) return;\n const normalizedName = camelize(name);\n if (!value) delete style[normalizedName];\n else style[normalizedName] = value;\n if (priority === \"important\") style[normalizedName] += \" !important\";\n this.attributes.style = toCSSText(style);\n };\n style.removeProperty = (name) => {\n if (hyphenateRE2.test(name)) return \"\";\n const normalizedName = camelize(name);\n const value = style[normalizedName] || \"\";\n delete style[normalizedName];\n this.attributes.style = toCSSText(style);\n return value;\n };\n return style;\n }\n getAttribute(name) {\n if (this.attributes[name] === void 0) return null;\n return this.attributes[name];\n }\n setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n }\n setAttributeNS(_namespace, qualifiedName, value) {\n this.setAttribute(qualifiedName, value);\n }\n removeAttribute(name) {\n delete this.attributes[name];\n }\n appendChild(newChild) {\n return appendChild(this, newChild);\n }\n insertBefore(newChild, refChild) {\n return insertBefore(this, newChild, refChild);\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n const shadowRoot2 = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot2;\n return shadowRoot2;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispatchEvent(_event) {\n return true;\n }\n toString() {\n let attributeString = \"\";\n for (const attribute in this.attributes) {\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n }\n return `${this.tagName} ${attributeString}`;\n }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"currentTime\");\n __publicField2(this, \"volume\");\n __publicField2(this, \"paused\");\n __publicField2(this, \"muted\");\n __publicField2(this, \"playbackRate\");\n __publicField2(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n throw new Error(\n `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n );\n }\n play() {\n this.paused = false;\n }\n pause() {\n this.paused = true;\n }\n}\nclass BaseRRDialogElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"tagName\", \"DIALOG\");\n __publicField2(this, \"nodeName\", \"DIALOG\");\n }\n get isModal() {\n return this.getAttribute(\"rr_open_mode\") === \"modal\";\n }\n get open() {\n return this.getAttribute(\"open\") !== null;\n }\n close() {\n this.removeAttribute(\"open\");\n this.removeAttribute(\"rr_open_mode\");\n }\n show() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"non-modal\");\n }\n showModal() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"modal\");\n }\n}\nclass BaseRRText extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeType\", 3);\n __publicField2(this, \"nodeName\", \"#text\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Text);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRComment extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeType\", 8);\n __publicField2(this, \"nodeName\", \"#comment\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Comment);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeName\", \"#cdata-section\");\n __publicField2(this, \"nodeType\", 4);\n __publicField2(this, \"RRNodeType\", NodeType$1.CDATA);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass ClassList {\n constructor(classText, onChange) {\n __publicField2(this, \"onChange\");\n __publicField2(this, \"classes\", []);\n __publicField2(this, \"add\", (...classNames) => {\n for (const item of classNames) {\n const className = String(item);\n if (this.classes.indexOf(className) >= 0) continue;\n this.classes.push(className);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n __publicField2(this, \"remove\", (...classNames) => {\n this.classes = this.classes.filter(\n (item) => classNames.indexOf(item) === -1\n );\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n if (classText) {\n const classes = classText.trim().split(/\\s+/);\n this.classes.push(...classes);\n }\n this.onChange = onChange;\n }\n}\nfunction appendChild(parent, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n if (parent.lastChild) {\n parent.lastChild.nextSibling = newChild;\n newChild.previousSibling = parent.lastChild;\n } else {\n parent.firstChild = newChild;\n newChild.previousSibling = null;\n }\n parent.lastChild = newChild;\n newChild.nextSibling = null;\n newChild.parentNode = parent;\n newChild.parentElement = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n if (!refChild) return appendChild(parent, newChild);\n if (refChild.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n if (newChild === refChild) return newChild;\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.previousSibling = refChild.previousSibling;\n refChild.previousSibling = newChild;\n newChild.nextSibling = refChild;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parent.firstChild = newChild;\n newChild.parentElement = parent;\n newChild.parentNode = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction removeChild(parent, child) {\n if (child.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n if (child.previousSibling)\n child.previousSibling.nextSibling = child.nextSibling;\n else parent.firstChild = child.nextSibling;\n if (child.nextSibling)\n child.nextSibling.previousSibling = child.previousSibling;\n else parent.lastChild = child.previousSibling;\n child.previousSibling = null;\n child.nextSibling = null;\n child.parentElement = null;\n child.parentNode = null;\n return child;\n}\nvar NodeType$2 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n return NodeType2;\n})(NodeType$2 || {});\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n oldTree = diffBeforeUpdatingChildren(\n oldTree,\n newTree,\n replayer,\n rrnodeMirror\n );\n diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n var _a2;\n if (replayer.afterAppend && !createdNodeSet) {\n createdNodeSet = /* @__PURE__ */ new WeakSet();\n setTimeout(() => {\n createdNodeSet = null;\n }, 0);\n }\n if (!sameNodeType(oldTree, newTree)) {\n const calibratedOldTree = createOrGetNode(\n newTree,\n replayer.mirror,\n rrnodeMirror\n );\n (_a2 = oldTree.parentNode) == null ? void 0 : _a2.replaceChild(calibratedOldTree, oldTree);\n oldTree = calibratedOldTree;\n }\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n const newMeta = rrnodeMirror.getMeta(newTree);\n if (newMeta) {\n replayer.mirror.removeNodeFromMap(oldTree);\n oldTree.close();\n oldTree.open();\n replayer.mirror.add(oldTree, newMeta);\n createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n }\n }\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n switch (newRRElement.tagName) {\n case \"IFRAME\": {\n const oldContentDocument = oldTree.contentDocument;\n if (!oldContentDocument) break;\n diff(\n oldContentDocument,\n newTree.contentDocument,\n replayer,\n rrnodeMirror\n );\n break;\n }\n }\n if (newRRElement.shadowRoot) {\n if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n diffChildren(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n oldElement.shadowRoot,\n newRRElement.shadowRoot,\n replayer,\n rrnodeMirror\n );\n }\n diffProps(oldElement, newRRElement, rrnodeMirror);\n break;\n }\n }\n return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n var _a2;\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n const scrollData = newTree.scrollData;\n scrollData && replayer.applyScroll(scrollData, true);\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n switch (newRRElement.tagName) {\n case \"AUDIO\":\n case \"VIDEO\": {\n const oldMediaElement = oldTree;\n const newMediaRRElement = newRRElement;\n if (newMediaRRElement.paused !== void 0)\n newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n if (newMediaRRElement.muted !== void 0)\n oldMediaElement.muted = newMediaRRElement.muted;\n if (newMediaRRElement.volume !== void 0)\n oldMediaElement.volume = newMediaRRElement.volume;\n if (newMediaRRElement.currentTime !== void 0)\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\n if (newMediaRRElement.playbackRate !== void 0)\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n if (newMediaRRElement.loop !== void 0)\n oldMediaElement.loop = newMediaRRElement.loop;\n break;\n }\n case \"CANVAS\": {\n const rrCanvasElement = newTree;\n if (rrCanvasElement.rr_dataURL !== null) {\n const image = document.createElement(\"img\");\n image.onload = () => {\n const ctx = oldElement.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = rrCanvasElement.rr_dataURL;\n }\n rrCanvasElement.canvasMutations.forEach(\n (canvasMutation2) => replayer.applyCanvas(\n canvasMutation2.event,\n canvasMutation2.mutation,\n oldTree\n )\n );\n break;\n }\n case \"STYLE\": {\n const styleSheet = oldElement.sheet;\n styleSheet && newTree.rules.forEach(\n (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n );\n break;\n }\n case \"DIALOG\": {\n const dialog = oldElement;\n const rrDialog = newRRElement;\n const wasOpen = dialog.open;\n const wasModal = dialog.matches(\"dialog:modal\");\n const shouldBeOpen = rrDialog.open;\n const shouldBeModal = rrDialog.isModal;\n const modalChanged = wasModal !== shouldBeModal;\n const openChanged = wasOpen !== shouldBeOpen;\n if (modalChanged || wasOpen && openChanged) dialog.close();\n if (shouldBeOpen && (openChanged || modalChanged)) {\n try {\n if (shouldBeModal) dialog.showModal();\n else dialog.show();\n } catch (e2) {\n console.warn(e2);\n }\n }\n break;\n }\n }\n break;\n }\n case NodeType$1.Text:\n case NodeType$1.Comment:\n case NodeType$1.CDATA: {\n if (oldTree.textContent !== newTree.data)\n oldTree.textContent = newTree.data;\n break;\n }\n }\n if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n createdNodeSet.delete(oldTree);\n (_a2 = replayer.afterAppend) == null ? void 0 : _a2.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n const oldAttributes = oldTree.attributes;\n const newAttributes = newTree.attributes;\n for (const name in newAttributes) {\n const newValue = newAttributes[name];\n const sn = rrnodeMirror.getMeta(newTree);\n if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n const image = document.createElement(\"img\");\n image.src = newValue;\n image.onload = () => {\n const ctx = oldTree.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n } else if (newTree.tagName === \"IFRAME\" && name === \"srcdoc\") continue;\n else {\n try {\n oldTree.setAttribute(name, newValue);\n } catch (err) {\n console.warn(err);\n }\n }\n }\n for (const { name } of Array.from(oldAttributes))\n if (!(name in newAttributes)) oldTree.removeAttribute(name);\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n const oldChildren = Array.from(oldTree.childNodes);\n const newChildren = newTree.childNodes;\n if (oldChildren.length === 0 && newChildren.length === 0) return;\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n let oldIdToIndex = void 0, indexInOld = void 0;\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n if (oldStartNode === void 0) {\n oldStartNode = oldChildren[++oldStartIndex];\n } else if (oldEndNode === void 0) {\n oldEndNode = oldChildren[--oldEndIndex];\n } else if (\n // same first node?\n nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n oldStartNode = oldChildren[++oldStartIndex];\n newStartNode = newChildren[++newStartIndex];\n } else if (\n // same last node?\n nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n oldEndNode = oldChildren[--oldEndIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the first old node the same as the last new node?\n nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n } catch (e2) {\n console.warn(e2);\n }\n oldStartNode = oldChildren[++oldStartIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the last old node the same as the first new node?\n nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldEndNode, oldStartNode);\n } catch (e2) {\n console.warn(e2);\n }\n oldEndNode = oldChildren[--oldEndIndex];\n newStartNode = newChildren[++newStartIndex];\n } else {\n if (!oldIdToIndex) {\n oldIdToIndex = {};\n for (let i2 = oldStartIndex; i2 <= oldEndIndex; i2++) {\n const oldChild2 = oldChildren[i2];\n if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n oldIdToIndex[replayer.mirror.getId(oldChild2)] = i2;\n }\n }\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n const nodeToMove = oldChildren[indexInOld];\n if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n try {\n oldTree.insertBefore(nodeToMove, oldStartNode);\n } catch (e2) {\n console.warn(e2);\n }\n oldChildren[indexInOld] = void 0;\n } else {\n const newNode = createOrGetNode(\n newStartNode,\n replayer.mirror,\n rrnodeMirror\n );\n if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n */\n (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n */\n newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n oldTree.removeChild(oldStartNode);\n replayer.mirror.removeNodeFromMap(oldStartNode);\n oldStartNode = oldChildren[++oldStartIndex];\n }\n try {\n oldTree.insertBefore(newNode, oldStartNode || null);\n } catch (e2) {\n console.warn(e2);\n }\n }\n newStartNode = newChildren[++newStartIndex];\n }\n }\n if (oldStartIndex > oldEndIndex) {\n const referenceRRNode = newChildren[newEndIndex + 1];\n let referenceNode = null;\n if (referenceRRNode)\n referenceNode = replayer.mirror.getNode(\n rrnodeMirror.getId(referenceRRNode)\n );\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n const newNode = createOrGetNode(\n newChildren[newStartIndex],\n replayer.mirror,\n rrnodeMirror\n );\n try {\n oldTree.insertBefore(newNode, referenceNode);\n } catch (e2) {\n console.warn(e2);\n }\n }\n } else if (newStartIndex > newEndIndex) {\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n const node2 = oldChildren[oldStartIndex];\n if (!node2 || node2.parentNode !== oldTree) continue;\n try {\n oldTree.removeChild(node2);\n replayer.mirror.removeNodeFromMap(node2);\n } catch (e2) {\n console.warn(e2);\n }\n }\n }\n let oldChild = oldTree.firstChild;\n let newChild = newTree.firstChild;\n while (oldChild !== null && newChild !== null) {\n diff(oldChild, newChild, replayer, rrnodeMirror);\n oldChild = oldChild.nextSibling;\n newChild = newChild.nextSibling;\n }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n const nodeId = rrnodeMirror.getId(rrNode);\n const sn = rrnodeMirror.getMeta(rrNode);\n let node2 = null;\n if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n switch (rrNode.RRNodeType) {\n case NodeType$1.Document:\n node2 = new Document();\n break;\n case NodeType$1.DocumentType:\n node2 = document.implementation.createDocumentType(\n rrNode.name,\n rrNode.publicId,\n rrNode.systemId\n );\n break;\n case NodeType$1.Element: {\n let tagName = rrNode.tagName.toLowerCase();\n tagName = SVGTagMap[tagName] || tagName;\n if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n } else node2 = document.createElement(rrNode.tagName);\n break;\n }\n case NodeType$1.Text:\n node2 = document.createTextNode(rrNode.data);\n break;\n case NodeType$1.Comment:\n node2 = document.createComment(rrNode.data);\n break;\n case NodeType$1.CDATA:\n node2 = document.createCDATASection(rrNode.data);\n break;\n }\n if (sn) domMirror.add(node2, { ...sn });\n try {\n createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n } catch (e2) {\n }\n return node2;\n}\nfunction sameNodeType(node1, node2) {\n if (node1.nodeType !== node2.nodeType) return false;\n return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n const node1Id = domMirror.getId(node1);\n const node2Id = rrdomMirror.getId(node2);\n if (node1Id === -1 || node1Id !== node2Id) return false;\n return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n constructor(mirror2) {\n super();\n __publicField2(this, \"UNSERIALIZED_STARTING_ID\", -2);\n __publicField2(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n __publicField2(this, \"mirror\", createMirror());\n __publicField2(this, \"scrollData\", null);\n if (mirror2) {\n this.mirror = mirror2;\n }\n }\n /**\n * Every time the id is used, it will minus 1 automatically to avoid collisions.\n */\n get unserializedId() {\n return this._unserializedId--;\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new RRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const documentTypeNode = new RRDocumentType(\n qualifiedName,\n publicId,\n systemId\n );\n documentTypeNode.ownerDocument = this;\n return documentTypeNode;\n }\n createElement(tagName) {\n const upperTagName = tagName.toUpperCase();\n let element;\n switch (upperTagName) {\n case \"AUDIO\":\n case \"VIDEO\":\n element = new RRMediaElement(upperTagName);\n break;\n case \"IFRAME\":\n element = new RRIFrameElement(upperTagName, this.mirror);\n break;\n case \"CANVAS\":\n element = new RRCanvasElement(upperTagName);\n break;\n case \"STYLE\":\n element = new RRStyleElement(upperTagName);\n break;\n case \"DIALOG\":\n element = new RRDialogElement(upperTagName);\n break;\n default:\n element = new RRElement(upperTagName);\n break;\n }\n element.ownerDocument = this;\n return element;\n }\n createComment(data) {\n const commentNode = new RRComment(data);\n commentNode.ownerDocument = this;\n return commentNode;\n }\n createCDATASection(data) {\n const sectionNode = new RRCDATASection(data);\n sectionNode.ownerDocument = this;\n return sectionNode;\n }\n createTextNode(data) {\n const textNode = new RRText(data);\n textNode.ownerDocument = this;\n return textNode;\n }\n destroyTree() {\n this.firstChild = null;\n this.lastChild = null;\n this.mirror.reset();\n }\n open() {\n super.open();\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"inputData\", null);\n __publicField2(this, \"scrollData\", null);\n }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRDialogElement extends BaseRRDialogElement {\n}\nclass RRCanvasElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"rr_dataURL\", null);\n __publicField2(this, \"canvasMutations\", []);\n }\n /**\n * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n */\n getContext() {\n return null;\n }\n}\nclass RRStyleElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"rules\", []);\n }\n}\nclass RRIFrameElement extends RRElement {\n constructor(upperTagName, mirror2) {\n super(upperTagName);\n __publicField2(this, \"contentDocument\", new RRDocument());\n this.contentDocument.mirror = mirror2;\n }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"FORM\";\n }\n return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n let rrNode;\n switch (node2.nodeType) {\n case NodeType$2.DOCUMENT_NODE:\n if (parentRRNode && parentRRNode.nodeName === \"IFRAME\")\n rrNode = parentRRNode.contentDocument;\n else {\n rrNode = rrdom;\n rrNode.compatMode = node2.compatMode;\n }\n break;\n case NodeType$2.DOCUMENT_TYPE_NODE: {\n const documentType = node2;\n rrNode = rrdom.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n break;\n }\n case NodeType$2.ELEMENT_NODE: {\n const elementNode = node2;\n const tagName = getValidTagName(elementNode);\n rrNode = rrdom.createElement(tagName);\n const rrElement = rrNode;\n for (const { name, value } of Array.from(elementNode.attributes)) {\n rrElement.attributes[name] = value;\n }\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n break;\n }\n case NodeType$2.TEXT_NODE:\n rrNode = rrdom.createTextNode(node2.textContent || \"\");\n break;\n case NodeType$2.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node2.data);\n break;\n case NodeType$2.COMMENT_NODE:\n rrNode = rrdom.createComment(node2.textContent || \"\");\n break;\n case NodeType$2.DOCUMENT_FRAGMENT_NODE:\n rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let sn = domMirror.getMeta(node2);\n if (rrdom instanceof RRDocument) {\n if (!sn) {\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\n domMirror.add(node2, sn);\n }\n rrdom.mirror.add(rrNode, { ...sn });\n }\n return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n function walk2(node2, parentRRNode) {\n const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n if (rrNode === null) return;\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n node2.nodeType !== NodeType$2.DOCUMENT_FRAGMENT_NODE\n ) {\n parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n rrNode.parentNode = parentRRNode;\n rrNode.parentElement = parentRRNode;\n }\n if (node2.nodeName === \"IFRAME\") {\n const iframeDoc = node2.contentDocument;\n iframeDoc && walk2(iframeDoc, rrNode);\n } else if (node2.nodeType === NodeType$2.DOCUMENT_NODE || node2.nodeType === NodeType$2.ELEMENT_NODE || node2.nodeType === NodeType$2.DOCUMENT_FRAGMENT_NODE) {\n if (node2.nodeType === NodeType$2.ELEMENT_NODE && node2.shadowRoot)\n walk2(node2.shadowRoot, rrNode);\n node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n }\n }\n walk2(dom, null);\n return rrdom;\n}\nfunction createMirror() {\n return new Mirror22();\n}\nclass Mirror22 {\n constructor() {\n __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction getDefaultSN(node2, id) {\n switch (node2.RRNodeType) {\n case NodeType$1.Document:\n return {\n id,\n type: node2.RRNodeType,\n childNodes: []\n };\n case NodeType$1.DocumentType: {\n const doctype = node2;\n return {\n id,\n type: node2.RRNodeType,\n name: doctype.name,\n publicId: doctype.publicId,\n systemId: doctype.systemId\n };\n }\n case NodeType$1.Element:\n return {\n id,\n type: node2.RRNodeType,\n tagName: node2.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case NodeType$1.Text:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.Comment:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.CDATA:\n return {\n id,\n type: node2.RRNodeType,\n textContent: \"\"\n };\n }\n}\nconst testableAccessors = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction ownerDocument(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"ownerDocument\");\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n ownerDocument,\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n const el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n const parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n}\nfunction queueToResolveTrees(queue) {\n const queueNodeMap = {};\n const putIntoMap = (m, parent) => {\n const nodeInTree = {\n value: m,\n parent,\n children: []\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n const queueNodeTrees = [];\n for (const mutation of queue) {\n const { nextId, parentId } = mutation;\n if (nextId && nextId in queueNodeMap) {\n const nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n const idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(\n idx,\n 0,\n putIntoMap(mutation, nextInTree.parent)\n );\n } else {\n const idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n const parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n return queueNodeTrees;\n}\nfunction iterateResolveTree(tree, cb) {\n cb(tree.value);\n for (let i2 = tree.children.length - 1; i2 >= 0; i2--) {\n iterateResolveTree(tree.children[i2], cb);\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n return Boolean(\n n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n );\n}\nfunction getBaseDimension(node2, rootIframe) {\n var _a2, _b;\n const frameElement = (_b = (_a2 = node2.ownerDocument) == null ? void 0 : _a2.defaultView) == null ? void 0 : _b.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1\n };\n }\n const frameDimension = frameElement.getBoundingClientRect();\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n const relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x: frameDimension.x * frameBaseDimension.relativeScale + frameBaseDimension.x,\n y: frameDimension.y * frameBaseDimension.relativeScale + frameBaseDimension.y,\n relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale\n };\n}\nfunction hasShadowRoot(n2) {\n if (!n2) return false;\n if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\n}\nfunction getNestedRule(rules2, position) {\n const rule2 = rules2[position[0]];\n if (position.length === 1) {\n return rule2;\n } else {\n return getNestedRule(\n rule2.cssRules[position[1]].cssRules,\n position.slice(2)\n );\n }\n}\nfunction getPositionsAndIndex(nestedIndex) {\n const positions = [...nestedIndex];\n const index2 = positions.pop();\n return { positions, index: index2 };\n}\nfunction uniqueTextMutations(mutations) {\n const idSet = /* @__PURE__ */ new Set();\n const uniqueMutations = [];\n for (let i2 = mutations.length; i2--; ) {\n const mutation = mutations[i2];\n if (!idSet.has(mutation.id)) {\n uniqueMutations.push(mutation);\n idSet.add(mutation.id);\n }\n }\n return uniqueMutations;\n}\nclass StyleSheetMirror {\n constructor() {\n __publicField(this, \"id\", 1);\n __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n2) {\n var _a2;\n let shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n shadowHost = index.host(index.getRootNode(n2));\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n let rootShadowHost = n2;\n let shadowHost;\n while (shadowHost = getShadowHost(rootShadowHost))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n const doc = index.ownerDocument(n2);\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = index.ownerDocument(n2);\n if (!doc) return false;\n return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nconst utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StyleSheetMirror,\n get _mirror() {\n return _mirror;\n },\n closestElementOfNode,\n getBaseDimension,\n getNestedRule,\n getPositionsAndIndex,\n getRootShadowHost,\n getShadowHost,\n getWindowHeight,\n getWindowScroll,\n getWindowWidth,\n hasShadowRoot,\n hookSetter,\n inDom,\n isAncestorRemoved,\n isBlocked,\n isIgnored,\n isSerialized,\n isSerializedIframe,\n isSerializedStylesheet,\n iterateResolveTree,\n legacy_isTouchEvent,\n get nowTimestamp() {\n return nowTimestamp;\n },\n on,\n polyfill: polyfill$1,\n queueToResolveTrees,\n shadowHostInDom,\n throttle,\n uniqueTextMutations\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n constructor() {\n __publicField(this, \"length\", 0);\n __publicField(this, \"head\", null);\n __publicField(this, \"tail\", null);\n }\n get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n let current = this.head;\n for (let index2 = 0; index2 < position; index2++) {\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n }\n addNode(n2) {\n const node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n const current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n const current = n2.nextSibling.__ln.previous;\n node2.previous = current;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current) {\n current.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n }\n removeNode(n2) {\n const current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"texts\", []);\n __publicField(this, \"attributes\", []);\n __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"removes\", []);\n __publicField(this, \"mapRemoves\", []);\n __publicField(this, \"movedMap\", {});\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */\n __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"blockClass\");\n __publicField(this, \"blockSelector\");\n __publicField(this, \"maskTextClass\");\n __publicField(this, \"maskTextSelector\");\n __publicField(this, \"inlineStylesheet\");\n __publicField(this, \"maskInputOptions\");\n __publicField(this, \"maskTextFn\");\n __publicField(this, \"maskInputFn\");\n __publicField(this, \"keepIframeSrcFn\");\n __publicField(this, \"recordCanvas\");\n __publicField(this, \"inlineImages\");\n __publicField(this, \"slimDOMOptions\");\n __publicField(this, \"dataURLOptions\");\n __publicField(this, \"doc\");\n __publicField(this, \"mirror\");\n __publicField(this, \"iframeManager\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"shadowDomManager\");\n __publicField(this, \"canvasManager\");\n __publicField(this, \"processedNodeManager\");\n __publicField(this, \"unattachedDoc\");\n __publicField(this, \"processMutations\", (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n });\n __publicField(this, \"emit\", () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = /* @__PURE__ */ new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n2) => {\n let ns = n2;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n2) => {\n const parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n let cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n const parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\n const nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n const sn = serializeNodeWithId(n2, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN\n );\n }\n if (hasShadowRoot(n2)) {\n this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n cssCaptured\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n2 of this.movedSet) {\n if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, n2, this.mirror)) {\n pushAdd(n2);\n } else if (isAncestorInSet(this.movedSet, n2)) {\n pushAdd(n2);\n } else {\n this.droppedSet.add(n2);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node2 = null;\n if (candidate) {\n const parentId = this.mirror.getId(index.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(index.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n if (nextId === -1) continue;\n else if (parentId !== -1) {\n node2 = _node;\n break;\n } else {\n const unhandledNode = _node.value;\n const parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = index.host(parent);\n const parentId2 = this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n const payload = {\n texts: this.texts.map((text) => {\n const n2 = text.node;\n const parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(parent);\n }\n return {\n id: this.mirror.getId(n2),\n value: text.value\n };\n }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes.map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === \"string\") {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes\n };\n }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = /* @__PURE__ */ new WeakMap();\n this.removes = [];\n this.addedSet = /* @__PURE__ */ new Set();\n this.movedSet = /* @__PURE__ */ new Set();\n this.droppedSet = /* @__PURE__ */ new Set();\n this.removesSubTreeCache = /* @__PURE__ */ new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n });\n __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n const value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\n item.attributes.value = maskInputValue({\n element: textarea,\n maskInputOptions: this.maskInputOptions,\n tagName: textarea.tagName,\n type: getInputType(textarea),\n value,\n maskInputFn: this.maskInputFn\n });\n });\n __publicField(this, \"processMutation\", (m) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case \"characterData\": {\n const value = index.textContent(m.target);\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true\n // checkAncestors\n ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\": {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n const type = getInputType(target);\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value\n );\n if (attributeName === \"style\") {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === \"\") {\n item.styleDiff[pname] = false;\n }\n }\n } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\n }\n }\n }\n break;\n }\n case \"childList\": {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n if (m.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n m.removedNodes.forEach((n2) => {\n const nodeId = this.mirror.getId(n2);\n const parentId = isShadowRoot(m.target) ? this.mirror.getId(index.host(m.target)) : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions) || !isSerialized(n2, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n2)) {\n deepDelete(this.addedSet, n2);\n this.droppedSet.add(n2);\n } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n2);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n processRemoves(n2, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */\n __publicField(this, \"genAdds\", (n2, target) => {\n if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n if (this.mirror.hasNode(n2)) {\n if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n2);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n this.addedSet.add(n2);\n this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n init(options) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n const queue = [n2];\n while (queue.length) {\n const next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach((n22) => queue.push(n22));\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n const node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = (...rest) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n };\n return rrwebWrapped;\n};\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor())(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror: mirror2\n}) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle(\n callbackWrapper(\n (source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source\n );\n positions = [];\n timeBaseline = null;\n }\n ),\n callbackThreshold\n );\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(\n typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n );\n }),\n threshold,\n {\n trailing: false\n }\n )\n );\n const handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch (event.pointerType) {\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n const id = mirror2.getId(target);\n const { clientX, clientY } = e2;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...pointerType !== null && { pointerType }\n });\n };\n };\n Object.keys(MouseInteractions).filter(\n (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n ).forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({\n scrollCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }),\n sampling.scroll || 100\n )\n );\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200\n )\n );\n return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput\n}) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = index.parentElement(target);\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n let text = target.value;\n let isChecked = false;\n const type = getInputType(target) || \"\";\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\n );\n const name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n if (el !== target) {\n const text2 = el.value;\n cbWithDedup(\n el,\n userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n );\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n lastInputValueMap.set(target, v2);\n const id = mirror2.getId(target);\n callbackWrapper(inputCb)({\n ...v2,\n id\n });\n }\n }\n const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n const handlers = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n );\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, \"value\"],\n [currentWindow.HTMLInputElement.prototype, \"checked\"],\n [currentWindow.HTMLSelectElement.prototype, \"value\"],\n [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map(\n (p) => hookSetter(\n p[0],\n p[1],\n {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n false,\n currentWindow\n )\n )\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n const positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n const rules2 = Array.from(\n childRule.parentRule.cssRules\n );\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule: rule2, index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n const rule2 = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\n };\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\n };\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule: rule2,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index2 || 0\n // defaults to 0\n ]\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index2] }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({\n mirror: mirror2,\n stylesheetManager\n}, host2) {\n var _a2, _b, _c;\n let hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n patchTarget == null ? void 0 : patchTarget.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set(sheets) {\n var _a3;\n const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {\n }\n }\n return result2;\n }\n });\n return callbackWrapper(() => {\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver({\n styleDeclarationCb,\n mirror: mirror2,\n ignoreCSSAttributes,\n stylesheetManager\n}, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror: mirror2,\n sampling,\n doc\n}) {\n const handler = callbackWrapper(\n (type) => throttle(\n callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } = target;\n mediaInteractionCb({\n type,\n id: mirror2.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop\n });\n }),\n sampling.media || 500\n )\n );\n const handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = /* @__PURE__ */ new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== \"string\",\n descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n const restoreHandler = patch(\n doc.fonts,\n \"add\",\n function(original) {\n return function(fontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0\n );\n return original.apply(this, [fontFace]);\n };\n }\n );\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i2 = 0; i2 < count; i2++) {\n const range = selection.getRangeAt(i2);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset,\n end: mirror2.getId(endContainer),\n endOffset\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n doc,\n customElementCb\n}) {\n const win = doc.defaultView;\n if (!win || !win.customElements) return () => {\n };\n const restoreHandler = patch(\n win.customElements,\n \"define\",\n function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name\n }\n });\n } catch (e2) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n }\n );\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb\n } = o2;\n o2.mutationCb = (...p) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o2.mousemoveCb = (...p) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o2.mouseInteractionCb = (...p) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o2.scrollCb = (...p) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o2.viewportResizeCb = (...p) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o2.inputCb = (...p) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o2.mediaInteractionCb = (...p) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o2.styleSheetRuleCb = (...p) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o2.styleDeclarationCb = (...p) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o2.canvasMutationCb = (...p) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o2.fontCb = (...p) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o2.selectionCb = (...p) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o2.customElementCb = (...c2) => {\n if (hooks.customElement) {\n hooks.customElement(...c2);\n }\n customElementCb(...c2);\n };\n}\nfunction initObservers(o2, hooks = {}) {\n const currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n mergeHooks(o2, hooks);\n let mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n const mousemoveHandler = initMoveObserver(o2);\n const mouseInteractionHandler = initMouseInteractionObserver(o2);\n const scrollHandler = initScrollObserver(o2);\n const viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n const inputHandler = initInputObserver(o2);\n const mediaInteractionHandler = initMediaInteractionObserver(o2);\n let styleSheetObserver = () => {\n };\n let adoptedStyleSheetObserver = () => {\n };\n let styleDeclarationObserver = () => {\n };\n let fontObserver = () => {\n };\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n const selectionObserver = initSelectionObserver(o2);\n const customElementObserver = initCustomElementObserver(o2);\n const pluginHandlers = [];\n for (const plugin3 of o2.plugins) {\n pluginHandlers.push(\n plugin3.observer(plugin3.callback, currentWindow, plugin3.options)\n );\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(\n typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n );\n}\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(\n (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n );\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\nclass IframeManager {\n constructor(options) {\n __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField(this, \"crossOriginIframeStyleMirror\");\n __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"wrappedEmit\");\n __publicField(this, \"loadListener\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes)\n (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n );\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument)\n );\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event\n );\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout\n );\n }\n transformCrossOriginEvent(iframeEl, e2) {\n var _a2;\n switch (e2.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n const rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e2;\n }\n case EventType.Custom: {\n this.replaceIds(\n e2.data.payload,\n iframeEl,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n );\n return e2;\n }\n case EventType.IncrementalSnapshot: {\n switch (e2.data.source) {\n case IncrementalSource.Mutation: {\n e2.data.adds.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n this.replaceIdOnNode(n2.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n });\n e2.data.attributes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n e2.data.texts.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e2.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n return e2;\n }\n case IncrementalSource.Font: {\n return e2;\n }\n case IncrementalSource.Selection: {\n e2.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key]\n );\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node2, iframeEl) {\n this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node2, rootId) {\n if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"scrollCb\");\n __publicField(this, \"bypassOptions\");\n __publicField(this, \"mirror\");\n __publicField(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot2, doc) {\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot2\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot2,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot2.adoptedStyleSheets,\n this.mirror.getId(index.host(shadowRoot2))\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot2\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(\n iframeElement.contentWindow.Element,\n iframeElement.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n \"attachShadow\",\n function(original) {\n return function(option) {\n const sRoot = original.call(this, option);\n const shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e2) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\nvar decode = function(base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i2, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i2 = 0; i2 < len; i2 += 4) {\n encoded1 = lookup[base64.charCodeAt(i2)];\n encoded2 = lookup[base64.charCodeAt(i2 + 1)];\n encoded3 = lookup[base64.charCodeAt(i2 + 2)];\n encoded4 = lookup[base64.charCodeAt(i2 + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n};\nconst canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n return;\n const name = value.constructor.name;\n const list2 = variableListFor$1(ctx, name);\n let index2 = list2.indexOf(value);\n if (index2 === -1) {\n index2 = list2.length;\n list2.push(value);\n }\n return index2;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = \"HTMLImageElement\";\n const src = value.toDataURL();\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n const name = value.constructor.name;\n const index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index2\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name) => typeof win[name] === \"function\"\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name) => value instanceof win[name]\n )\n );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype\n );\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function(original) {\n return function(...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [v2],\n setter: true\n });\n }\n }\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n \"getContext\",\n function(original) {\n return function(contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n if (args[0] && typeof args[0] === \"object\") {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)\n ) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function(original) {\n return function(...args) {\n const result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(prototype, prop, {\n set(v2) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v2],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\nconst blob = typeof window !== \"undefined\" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n const worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", () => {\n (window.URL || window.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\n \"data:text/javascript;base64,\" + encodedJs,\n {\n name: options == null ? void 0 : options.name\n }\n );\n } finally {\n objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);\n }\n}\nclass CanvasManager {\n constructor(options) {\n __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"resetObservers\");\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"processMutation\", (target, mutation) => {\n const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n });\n const {\n sampling = \"all\",\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\")\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\")\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions\n });\n }\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true\n );\n const snapshotInProgressMap = /* @__PURE__ */ new Map();\n const worker = new WorkerWrapper();\n worker.onmessage = (e2) => {\n const { id } = e2.data;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n const { base64, type, width, height } = e2.data;\n this.mutationCb({\n id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, width, height]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64 }],\n type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const timeBetweenSnapshots = 1e3 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = () => {\n const matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas().forEach(async (canvas) => {\n var _a2;\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n if (canvas.width === 0 || canvas.height === 0) return;\n snapshotInProgressMap.set(id, true);\n if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n },\n [bitmap]\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n }\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n const values = valuesWithType.map((value) => {\n const { type: type2, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\nclass StylesheetManager {\n constructor(options) {\n __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"adoptedStyleSheetCb\");\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r2, index2) => ({\n rule: stringifyRule(r2, sheet.href),\n index: index2\n }))\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(_linkEl) {\n }\n}\nclass ProcessedNodeManager {\n constructor() {\n __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"active\", false);\n }\n inOtherBuffer(node2, thisBuffer) {\n const buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n }\n add(node2, buffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n }\n destroy() {\n }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n if (Array.from([1], (x2) => x2 * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = \"rr-block\",\n blockSelector = null,\n ignoreClass = \"rr-ignore\",\n ignoreSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n errorHandler: errorHandler2\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = slimDOMDefaults(_slimDOMOptions);\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin3 of plugins || []) {\n if (plugin3.eventProcessor) {\n e2 = plugin3.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m\n }\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p\n }\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p\n }\n });\n const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a2\n }\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit\n });\n for (const plugin3 of plugins || []) {\n if (plugin3.getMirror)\n plugin3.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions\n });\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager\n },\n mirror\n });\n takeFullSnapshot$1 = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n },\n isCheckout\n );\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node2 = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n2) => {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(index.shadowRoot(n2), document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n },\n isCheckout\n );\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document)\n );\n };\n try {\n const handlers = [];\n const observe = (doc) => {\n var _a2;\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions\n }\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d\n }\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d\n }\n }),\n inputCb: (v2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v2\n }\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p\n }\n }),\n styleSheetRuleCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r2\n }\n }),\n styleDeclarationCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r2\n }\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p\n }\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p\n }\n });\n },\n customElementCb: (c2) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c2\n }\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload\n }\n })\n }))) || []\n },\n hooks\n );\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if ([\"interactive\", \"complete\"].includes(document.readyState)) {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((handler) => {\n try {\n handler();\n } catch (error) {\n const msg = String(error).toLowerCase();\n if (!msg.includes(\"cross-origin\")) {\n console.warn(error);\n }\n }\n });\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nfunction mitt$1(n2) {\n return { all: n2 = n2 || /* @__PURE__ */ new Map(), on: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 ? i2.push(e2) : n2.set(t2, [e2]);\n }, off: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 && (e2 ? i2.splice(i2.indexOf(e2) >>> 0, 1) : n2.set(t2, []));\n }, emit: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 && i2.slice().map(function(n3) {\n n3(e2);\n }), (i2 = n2.get(\"*\")) && i2.slice().map(function(n3) {\n n3(t2, e2);\n });\n } };\n}\nconst mittProxy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: mitt$1\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction polyfill(w = window, d = document) {\n if (\"scrollBehavior\" in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n }\n const Element2 = w.HTMLElement || w.Element;\n const SCROLL_TIME = 468;\n const original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element2.prototype.scroll || scrollElement,\n scrollIntoView: Element2.prototype.scrollIntoView\n };\n const now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n function isMicrosoftBrowser(userAgent) {\n const userAgentPatterns = [\"MSIE \", \"Trident/\", \"Edge/\"];\n return new RegExp(userAgentPatterns.join(\"|\")).test(userAgent);\n }\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n function scrollElement(x2, y) {\n this.scrollLeft = x2;\n this.scrollTop = y;\n }\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n function shouldBailOut(firstArg) {\n if (firstArg === null || typeof firstArg !== \"object\" || firstArg.behavior === void 0 || firstArg.behavior === \"auto\" || firstArg.behavior === \"instant\") {\n return true;\n }\n if (typeof firstArg === \"object\" && firstArg.behavior === \"smooth\") {\n return false;\n }\n throw new TypeError(\n \"behavior member of ScrollOptions \" + firstArg.behavior + \" is not a valid value for enumeration ScrollBehavior.\"\n );\n }\n function hasScrollableSpace(el, axis) {\n if (axis === \"Y\") {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n if (axis === \"X\") {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n function canOverflow(el, axis) {\n const overflowValue = w.getComputedStyle(el, null)[\"overflow\" + axis];\n return overflowValue === \"auto\" || overflowValue === \"scroll\";\n }\n function isScrollable(el) {\n const isScrollableY = hasScrollableSpace(el, \"Y\") && canOverflow(el, \"Y\");\n const isScrollableX = hasScrollableSpace(el, \"X\") && canOverflow(el, \"X\");\n return isScrollableY || isScrollableX;\n }\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n return el;\n }\n function step(context) {\n const time = now();\n let value;\n let currentX;\n let currentY;\n let elapsed = (time - context.startTime) / SCROLL_TIME;\n elapsed = elapsed > 1 ? 1 : elapsed;\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY);\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n function smoothScroll(el, x2, y) {\n let scrollable;\n let startX;\n let startY;\n let method;\n const startTime = now();\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n step({\n scrollable,\n method,\n startTime,\n startX,\n startY,\n x: x2,\n y\n });\n }\n w.scroll = w.scrollTo = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== \"object\" ? arguments[0] : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : w.scrollY || w.pageYOffset\n );\n return;\n }\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== void 0 ? ~~arguments[0].left : w.scrollX || w.pageXOffset,\n arguments[0].top !== void 0 ? ~~arguments[0].top : w.scrollY || w.pageYOffset\n );\n };\n w.scrollBy = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== \"object\" ? arguments[0] : 0,\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : 0\n );\n return;\n }\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n Element2.prototype.scroll = Element2.prototype.scrollTo = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n if (typeof arguments[0] === \"number\" && arguments[1] === void 0) {\n throw new SyntaxError(\"Value could not be converted\");\n }\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== void 0 ? ~~arguments[0].left : typeof arguments[0] !== \"object\" ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== void 0 ? ~~arguments[0].top : arguments[1] !== void 0 ? ~~arguments[1] : this.scrollTop\n );\n return;\n }\n const left = arguments[0].left;\n const top = arguments[0].top;\n smoothScroll.call(\n this,\n this,\n typeof left === \"undefined\" ? this.scrollLeft : ~~left,\n typeof top === \"undefined\" ? this.scrollTop : ~~top\n );\n };\n Element2.prototype.scrollBy = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== void 0 ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== void 0 ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop\n );\n return;\n }\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n Element2.prototype.scrollIntoView = function() {\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === void 0 ? true : arguments[0]\n );\n return;\n }\n const scrollableParent = findScrollableParent(this);\n const parentRects = scrollableParent.getBoundingClientRect();\n const clientRects = this.getBoundingClientRect();\n if (scrollableParent !== d.body) {\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n if (w.getComputedStyle(scrollableParent).position !== \"fixed\") {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: \"smooth\"\n });\n }\n } else {\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: \"smooth\"\n });\n }\n };\n}\nclass Timer {\n constructor(actions = [], config) {\n __publicField(this, \"timeOffset\", 0);\n __publicField(this, \"speed\");\n __publicField(this, \"actions\");\n __publicField(this, \"raf\", null);\n __publicField(this, \"lastTimestamp\");\n this.actions = actions;\n this.speed = config.speed;\n }\n /**\n * Add an action, possibly after the timer starts.\n */\n addAction(action) {\n const rafWasActive = this.raf === true;\n if (!this.actions.length || this.actions[this.actions.length - 1].delay <= action.delay) {\n this.actions.push(action);\n } else {\n const index2 = this.findActionIndex(action);\n this.actions.splice(index2, 0, action);\n }\n if (rafWasActive) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n }\n start() {\n this.timeOffset = 0;\n this.lastTimestamp = performance.now();\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n rafCheck() {\n const time = performance.now();\n this.timeOffset += (time - this.lastTimestamp) * this.speed;\n this.lastTimestamp = time;\n while (this.actions.length) {\n const action = this.actions[0];\n if (this.timeOffset >= action.delay) {\n this.actions.shift();\n action.doAction();\n } else {\n break;\n }\n }\n if (this.actions.length > 0) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n } else {\n this.raf = true;\n }\n }\n clear() {\n if (this.raf) {\n if (this.raf !== true) {\n cancelAnimationFrame(this.raf);\n }\n this.raf = null;\n }\n this.actions.length = 0;\n }\n setSpeed(speed) {\n this.speed = speed;\n }\n isActive() {\n return this.raf !== null;\n }\n findActionIndex(action) {\n let start = 0;\n let end = this.actions.length - 1;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (this.actions[mid].delay < action.delay) {\n start = mid + 1;\n } else if (this.actions[mid].delay > action.delay) {\n end = mid - 1;\n } else {\n return mid + 1;\n }\n }\n return start;\n }\n}\nfunction addDelay(event, baselineTime) {\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions && event.data.positions.length) {\n const firstOffset = event.data.positions[0].timeOffset;\n const firstTimestamp = event.timestamp + firstOffset;\n event.delay = firstTimestamp - baselineTime;\n return firstTimestamp - baselineTime;\n }\n event.delay = event.timestamp - baselineTime;\n return event.delay;\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t2, n2) {\n var e2 = \"function\" == typeof Symbol && t2[Symbol.iterator];\n if (!e2) return t2;\n var r2, o2, i2 = e2.call(t2), a2 = [];\n try {\n for (; (void 0 === n2 || n2-- > 0) && !(r2 = i2.next()).done; ) a2.push(r2.value);\n } catch (t3) {\n o2 = { error: t3 };\n } finally {\n try {\n r2 && !r2.done && (e2 = i2.return) && e2.call(i2);\n } finally {\n if (o2) throw o2.error;\n }\n }\n return a2;\n}\nvar n;\n!function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n || (n = {}));\nvar e = { type: \"xstate.init\" };\nfunction r(t2) {\n return void 0 === t2 ? [] : [].concat(t2);\n}\nfunction o(t2) {\n return { type: \"xstate.assign\", assignment: t2 };\n}\nfunction i(t2, n2) {\n return \"string\" == typeof (t2 = \"string\" == typeof t2 && n2 && n2[t2] ? n2[t2] : t2) ? { type: t2 } : \"function\" == typeof t2 ? { type: t2.name, exec: t2 } : t2;\n}\nfunction a(t2) {\n return function(n2) {\n return t2 === n2;\n };\n}\nfunction u(t2) {\n return \"string\" == typeof t2 ? { type: t2 } : t2;\n}\nfunction c(t2, n2) {\n return { value: t2, context: n2, actions: [], changed: false, matches: a(t2) };\n}\nfunction f(t2, n2, e2) {\n var r2 = n2, o2 = false;\n return [t2.filter(function(t3) {\n if (\"xstate.assign\" === t3.type) {\n o2 = true;\n var n3 = Object.assign({}, r2);\n return \"function\" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(o3) {\n n3[o3] = \"function\" == typeof t3.assignment[o3] ? t3.assignment[o3](r2, e2) : t3.assignment[o3];\n }), r2 = n3, false;\n }\n return true;\n }), r2, o2];\n}\nfunction s(n2, o2) {\n void 0 === o2 && (o2 = {});\n var s2 = t(f(r(n2.states[n2.initial].entry).map(function(t2) {\n return i(t2, o2.actions);\n }), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: o2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, o3) {\n var s3, l3, v3 = \"string\" == typeof e2 ? { value: e2, context: n2.context } : e2, p = v3.value, g = v3.context, d = u(o3), x2 = n2.states[p];\n if (x2.on) {\n var m = r(x2.on[d.type]);\n try {\n for (var h = function(t2) {\n var n3 = \"function\" == typeof Symbol && Symbol.iterator, e3 = n3 && t2[n3], r2 = 0;\n if (e3) return e3.call(t2);\n if (t2 && \"number\" == typeof t2.length) return { next: function() {\n return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };\n } };\n throw new TypeError(n3 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }(m), b = h.next(); !b.done; b = h.next()) {\n var S = b.value;\n if (void 0 === S) return c(p, g);\n var w = \"string\" == typeof S ? { target: S } : S, j = w.target, E = w.actions, R = void 0 === E ? [] : E, N = w.cond, O = void 0 === N ? function() {\n return true;\n } : N, _ = void 0 === j, k = null != j ? j : p, T = n2.states[k];\n if (O(g, d)) {\n var q = t(f((_ ? r(R) : [].concat(x2.exit, R, T.entry).filter(function(t2) {\n return t2;\n })).map(function(t2) {\n return i(t2, y._options.actions);\n }), g, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;\n return { value: C, context: A, actions: z, changed: j !== p || z.length > 0 || B, matches: a(C) };\n }\n }\n } catch (t2) {\n s3 = { error: t2 };\n } finally {\n try {\n b && !b.done && (l3 = h.return) && l3.call(h);\n } finally {\n if (s3) throw s3.error;\n }\n }\n }\n return c(p, g);\n } };\n return y;\n}\nvar l = function(t2, n2) {\n return t2.actions.forEach(function(e2) {\n var r2 = e2.exec;\n return r2 && r2(t2.context, n2);\n });\n};\nfunction v(t2) {\n var r2 = t2.initialState, o2 = n.NotStarted, i2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {\n o2 === n.Running && (r2 = t2.transition(r2, e2), l(r2, u(e2)), i2.forEach(function(t3) {\n return t3(r2);\n }));\n }, subscribe: function(t3) {\n return i2.add(t3), t3(r2), { unsubscribe: function() {\n return i2.delete(t3);\n } };\n }, start: function(i3) {\n if (i3) {\n var u2 = \"object\" == typeof i3 ? i3 : { context: t2.config.context, value: i3 };\n r2 = { value: u2.value, actions: [], context: u2.context, matches: a(u2.value) };\n }\n return o2 = n.Running, l(r2, e), c2;\n }, stop: function() {\n return o2 = n.Stopped, i2.clear(), c2;\n }, get state() {\n return r2;\n }, get status() {\n return o2;\n } };\n return c2;\n}\nfunction discardPriorSnapshots(events, baselineTime) {\n for (let idx = events.length - 1; idx >= 0; idx--) {\n const event = events[idx];\n if (event.type === EventType.Meta) {\n if (event.timestamp <= baselineTime) {\n return events.slice(idx);\n }\n }\n }\n return events;\n}\nfunction createPlayerService(context, { getCastFn, applyEventsSynchronously, emitter }) {\n const playerMachine = s(\n {\n id: \"player\",\n context,\n initial: \"paused\",\n states: {\n playing: {\n on: {\n PAUSE: {\n target: \"paused\",\n actions: [\"pause\"]\n },\n CAST_EVENT: {\n target: \"playing\",\n actions: \"castEvent\"\n },\n END: {\n target: \"paused\",\n actions: [\"resetLastPlayedEvent\", \"pause\"]\n },\n ADD_EVENT: {\n target: \"playing\",\n actions: [\"addEvent\"]\n }\n }\n },\n paused: {\n on: {\n PLAY: {\n target: \"playing\",\n actions: [\"recordTimeOffset\", \"play\"]\n },\n CAST_EVENT: {\n target: \"paused\",\n actions: \"castEvent\"\n },\n TO_LIVE: {\n target: \"live\",\n actions: [\"startLive\"]\n },\n ADD_EVENT: {\n target: \"paused\",\n actions: [\"addEvent\"]\n }\n }\n },\n live: {\n on: {\n ADD_EVENT: {\n target: \"live\",\n actions: [\"addEvent\"]\n },\n CAST_EVENT: {\n target: \"live\",\n actions: [\"castEvent\"]\n }\n }\n }\n }\n },\n {\n actions: {\n castEvent: o({\n lastPlayedEvent: (ctx, event) => {\n if (event.type === \"CAST_EVENT\") {\n return event.payload.event;\n }\n return ctx.lastPlayedEvent;\n }\n }),\n recordTimeOffset: o((ctx, event) => {\n let timeOffset = ctx.timeOffset;\n if (\"payload\" in event && \"timeOffset\" in event.payload) {\n timeOffset = event.payload.timeOffset;\n }\n return {\n ...ctx,\n timeOffset,\n baselineTime: ctx.events[0].timestamp + timeOffset\n };\n }),\n play(ctx) {\n var _a2;\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\n timer.clear();\n for (const event of events) {\n addDelay(event, baselineTime);\n }\n const neededEvents = discardPriorSnapshots(events, baselineTime);\n let lastPlayedTimestamp = lastPlayedEvent == null ? void 0 : lastPlayedEvent.timestamp;\n if ((lastPlayedEvent == null ? void 0 : lastPlayedEvent.type) === EventType.IncrementalSnapshot && lastPlayedEvent.data.source === IncrementalSource.MouseMove) {\n lastPlayedTimestamp = lastPlayedEvent.timestamp + ((_a2 = lastPlayedEvent.data.positions[0]) == null ? void 0 : _a2.timeOffset);\n }\n if (baselineTime < (lastPlayedTimestamp || 0)) {\n emitter.emit(ReplayerEvents.PlayBack);\n }\n const syncEvents = new Array();\n for (const event of neededEvents) {\n if (lastPlayedTimestamp && lastPlayedTimestamp < baselineTime && (event.timestamp <= lastPlayedTimestamp || event === lastPlayedEvent)) {\n continue;\n }\n if (event.timestamp < baselineTime) {\n syncEvents.push(event);\n } else {\n const castFn = getCastFn(event, false);\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay\n });\n }\n }\n applyEventsSynchronously(syncEvents);\n emitter.emit(ReplayerEvents.Flush);\n timer.start();\n },\n pause(ctx) {\n ctx.timer.clear();\n },\n resetLastPlayedEvent: o((ctx) => {\n return {\n ...ctx,\n lastPlayedEvent: null\n };\n }),\n startLive: o({\n baselineTime: (ctx, event) => {\n ctx.timer.start();\n if (event.type === \"TO_LIVE\" && event.payload.baselineTime) {\n return event.payload.baselineTime;\n }\n return Date.now();\n }\n }),\n addEvent: o((ctx, machineEvent) => {\n const { baselineTime, timer, events } = ctx;\n if (machineEvent.type === \"ADD_EVENT\") {\n const { event } = machineEvent.payload;\n addDelay(event, baselineTime);\n let end = events.length - 1;\n if (!events[end] || events[end].timestamp <= event.timestamp) {\n events.push(event);\n } else {\n let insertionIndex = -1;\n let start = 0;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (events[mid].timestamp <= event.timestamp) {\n start = mid + 1;\n } else {\n end = mid - 1;\n }\n }\n if (insertionIndex === -1) {\n insertionIndex = start;\n }\n events.splice(insertionIndex, 0, event);\n }\n const isSync = event.timestamp < baselineTime;\n const castFn = getCastFn(event, isSync);\n if (isSync) {\n castFn();\n } else if (timer.isActive()) {\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay\n });\n }\n }\n return { ...ctx, events };\n })\n }\n }\n );\n return v(playerMachine);\n}\nfunction createSpeedService(context) {\n const speedMachine = s(\n {\n id: \"speed\",\n context,\n initial: \"normal\",\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: \"skipping\",\n actions: [\"recordSpeed\", \"setSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: \"normal\",\n actions: [\"restoreSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n }\n }\n },\n {\n actions: {\n setSpeed: (ctx, event) => {\n if (\"payload\" in event) {\n ctx.timer.setSpeed(event.payload.speed);\n }\n },\n recordSpeed: o({\n normalSpeed: (ctx) => ctx.timer.speed\n }),\n restoreSpeed: (ctx) => {\n ctx.timer.setSpeed(ctx.normalSpeed);\n }\n }\n }\n );\n return v(speedMachine);\n}\nconst rules = (blockClass) => [\n `.${blockClass} { background: currentColor }`,\n \"noscript { display: none !important; }\"\n];\nconst webGLVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor(ctx, ctor) {\n let contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nfunction deserializeArg(imageMap, ctx, preload) {\n return async (arg) => {\n if (arg && typeof arg === \"object\" && \"rr_type\" in arg) {\n if (preload) preload.isUnchanged = false;\n if (arg.rr_type === \"ImageBitmap\" && \"args\" in arg) {\n const args = await deserializeArg(imageMap, ctx, preload)(arg.args);\n return await createImageBitmap.apply(null, args);\n } else if (\"index\" in arg) {\n if (preload || ctx === null) return arg;\n const { rr_type: name, index: index2 } = arg;\n return variableListFor(ctx, name)[index2];\n } else if (\"args\" in arg) {\n const { rr_type: name, args } = arg;\n const ctor = window[name];\n return new ctor(\n ...await Promise.all(\n args.map(deserializeArg(imageMap, ctx, preload))\n )\n );\n } else if (\"base64\" in arg) {\n return decode(arg.base64);\n } else if (\"src\" in arg) {\n const image = imageMap.get(arg.src);\n if (image) {\n return image;\n } else {\n const image2 = new Image();\n image2.src = arg.src;\n imageMap.set(arg.src, image2);\n return image2;\n }\n } else if (\"data\" in arg && arg.rr_type === \"Blob\") {\n const blobContents = await Promise.all(\n arg.data.map(deserializeArg(imageMap, ctx, preload))\n );\n const blob2 = new Blob(blobContents, {\n type: arg.type\n });\n return blob2;\n }\n } else if (Array.isArray(arg)) {\n const result2 = await Promise.all(\n arg.map(deserializeArg(imageMap, ctx, preload))\n );\n return result2;\n }\n return arg;\n };\n}\nfunction getContext(target, type) {\n try {\n if (type === CanvasContext.WebGL) {\n return target.getContext(\"webgl\") || target.getContext(\"experimental-webgl\");\n }\n return target.getContext(\"webgl2\");\n } catch (e2) {\n return null;\n }\n}\nconst WebGLVariableConstructorsNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\"\n];\nfunction saveToWebGLVarMap(ctx, result2) {\n if (!(result2 == null ? void 0 : result2.constructor)) return;\n const { name } = result2.constructor;\n if (!WebGLVariableConstructorsNames.includes(name)) return;\n const variables = variableListFor(ctx, name);\n if (!variables.includes(result2)) variables.push(result2);\n}\nasync function webglMutation({\n mutation,\n target,\n type,\n imageMap,\n errorHandler: errorHandler2\n}) {\n try {\n const ctx = getContext(target, type);\n if (!ctx) return;\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[mutation.property];\n const args = await Promise.all(\n mutation.args.map(deserializeArg(imageMap, ctx))\n );\n const result2 = original.apply(ctx, args);\n saveToWebGLVarMap(ctx, result2);\n const debugMode = false;\n if (debugMode) ;\n } catch (error) {\n errorHandler2(mutation, error);\n }\n}\nasync function canvasMutation$1({\n event,\n mutations,\n target,\n imageMap,\n errorHandler: errorHandler2\n}) {\n const ctx = target.getContext(\"2d\");\n if (!ctx) {\n errorHandler2(mutations[0], new Error(\"Canvas context is null\"));\n return;\n }\n const mutationArgsPromises = mutations.map(\n async (mutation) => {\n return Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\n }\n );\n const args = await Promise.all(mutationArgsPromises);\n args.forEach((args2, index2) => {\n const mutation = mutations[index2];\n try {\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[mutation.property];\n if (mutation.property === \"drawImage\" && typeof mutation.args[0] === \"string\") {\n imageMap.get(event);\n original.apply(ctx, mutation.args);\n } else {\n original.apply(ctx, args2);\n }\n } catch (error) {\n errorHandler2(mutation, error);\n }\n return;\n });\n}\nasync function canvasMutation({\n event,\n mutation,\n target,\n imageMap,\n canvasEventMap,\n errorHandler: errorHandler2\n}) {\n try {\n const precomputedMutation = canvasEventMap.get(event) || mutation;\n const commands = \"commands\" in precomputedMutation ? precomputedMutation.commands : [precomputedMutation];\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\n for (let i2 = 0; i2 < commands.length; i2++) {\n const command = commands[i2];\n await webglMutation({\n mutation: command,\n type: mutation.type,\n target,\n imageMap,\n errorHandler: errorHandler2\n });\n }\n return;\n }\n await canvasMutation$1({\n event,\n mutations: commands,\n target,\n imageMap,\n errorHandler: errorHandler2\n });\n } catch (error) {\n errorHandler2(mutation, error);\n }\n}\nclass MediaManager {\n constructor(options) {\n __publicField(this, \"mediaMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"warn\");\n __publicField(this, \"service\");\n __publicField(this, \"speedService\");\n __publicField(this, \"emitter\");\n __publicField(this, \"getCurrentTime\");\n __publicField(this, \"metadataCallbackMap\", /* @__PURE__ */ new Map());\n this.warn = options.warn;\n this.service = options.service;\n this.speedService = options.speedService;\n this.emitter = options.emitter;\n this.getCurrentTime = options.getCurrentTime;\n this.emitter.on(ReplayerEvents.Start, this.start.bind(this));\n this.emitter.on(ReplayerEvents.SkipStart, this.start.bind(this));\n this.emitter.on(ReplayerEvents.Pause, this.pause.bind(this));\n this.emitter.on(ReplayerEvents.Finish, this.pause.bind(this));\n this.speedService.subscribe(() => {\n this.syncAllMediaElements();\n });\n }\n syncAllMediaElements(options = { pause: false }) {\n this.mediaMap.forEach((_mediaState, target) => {\n this.syncTargetWithState(target);\n if (options.pause) {\n target.pause();\n }\n });\n }\n start() {\n this.syncAllMediaElements();\n }\n pause() {\n this.syncAllMediaElements({ pause: true });\n }\n seekTo({\n time,\n target,\n mediaState\n }) {\n if (mediaState.isPlaying) {\n const differenceBetweenCurrentTimeAndMediaMutationTimestamp = time - mediaState.lastInteractionTimeOffset;\n const mediaPlaybackOffset = differenceBetweenCurrentTimeAndMediaMutationTimestamp / 1e3 * mediaState.playbackRate;\n const duration = \"duration\" in target && target.duration;\n if (Number.isNaN(duration)) {\n this.waitForMetadata(target);\n return;\n }\n let seekToTime = mediaState.currentTimeAtLastInteraction + mediaPlaybackOffset;\n if (target.loop && // RRMediaElement doesn't have a duration property\n duration !== false) {\n seekToTime = seekToTime % duration;\n }\n target.currentTime = seekToTime;\n } else {\n target.pause();\n target.currentTime = mediaState.currentTimeAtLastInteraction;\n }\n }\n waitForMetadata(target) {\n if (this.metadataCallbackMap.has(target)) return;\n if (!(\"addEventListener\" in target)) return;\n const onLoadedMetadata = () => {\n this.metadataCallbackMap.delete(target);\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n };\n this.metadataCallbackMap.set(target, onLoadedMetadata);\n target.addEventListener(\"loadedmetadata\", onLoadedMetadata, {\n once: true\n });\n }\n getMediaStateFromMutation({\n target,\n timeOffset,\n mutation\n }) {\n const lastState = this.mediaMap.get(target);\n const { type, playbackRate, currentTime, muted, volume, loop } = mutation;\n const isPlaying = type === MediaInteractions.Play || type !== MediaInteractions.Pause && ((lastState == null ? void 0 : lastState.isPlaying) || target.getAttribute(\"autoplay\") !== null);\n const mediaState = {\n isPlaying,\n currentTimeAtLastInteraction: currentTime ?? (lastState == null ? void 0 : lastState.currentTimeAtLastInteraction) ?? 0,\n lastInteractionTimeOffset: timeOffset,\n playbackRate: playbackRate ?? (lastState == null ? void 0 : lastState.playbackRate) ?? 1,\n volume: volume ?? (lastState == null ? void 0 : lastState.volume) ?? 1,\n muted: muted ?? (lastState == null ? void 0 : lastState.muted) ?? target.getAttribute(\"muted\") === null,\n loop: loop ?? (lastState == null ? void 0 : lastState.loop) ?? target.getAttribute(\"loop\") === null\n };\n return mediaState;\n }\n syncTargetWithState(target) {\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n const { muted, loop, volume, isPlaying } = mediaState;\n const playerIsPaused = this.service.state.matches(\"paused\");\n const playbackRate = mediaState.playbackRate * this.speedService.state.context.timer.speed;\n try {\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n if (target.volume !== volume) {\n target.volume = volume;\n }\n target.muted = muted;\n target.loop = loop;\n if (target.playbackRate !== playbackRate) {\n target.playbackRate = playbackRate;\n }\n if (isPlaying && !playerIsPaused) {\n void target.play();\n } else {\n target.pause();\n }\n } catch (error) {\n this.warn(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n `Failed to replay media interactions: ${error.message || error}`\n );\n }\n }\n addMediaElements(node2, timeOffset, mirror2) {\n if (![\"AUDIO\", \"VIDEO\"].includes(node2.nodeName)) return;\n const target = node2;\n const serializedNode = mirror2.getMeta(target);\n if (!serializedNode || !(\"attributes\" in serializedNode)) return;\n const playerIsPaused = this.service.state.matches(\"paused\");\n const mediaAttributes = serializedNode.attributes;\n let isPlaying = false;\n if (mediaAttributes.rr_mediaState) {\n isPlaying = mediaAttributes.rr_mediaState === \"played\";\n } else {\n isPlaying = target.getAttribute(\"autoplay\") !== null;\n }\n if (isPlaying && playerIsPaused) target.pause();\n let playbackRate = 1;\n if (typeof mediaAttributes.rr_mediaPlaybackRate === \"number\") {\n playbackRate = mediaAttributes.rr_mediaPlaybackRate;\n }\n let muted = false;\n if (typeof mediaAttributes.rr_mediaMuted === \"boolean\") {\n muted = mediaAttributes.rr_mediaMuted;\n } else {\n muted = target.getAttribute(\"muted\") !== null;\n }\n let loop = false;\n if (typeof mediaAttributes.rr_mediaLoop === \"boolean\") {\n loop = mediaAttributes.rr_mediaLoop;\n } else {\n loop = target.getAttribute(\"loop\") !== null;\n }\n let volume = 1;\n if (typeof mediaAttributes.rr_mediaVolume === \"number\") {\n volume = mediaAttributes.rr_mediaVolume;\n }\n let currentTimeAtLastInteraction = 0;\n if (typeof mediaAttributes.rr_mediaCurrentTime === \"number\") {\n currentTimeAtLastInteraction = mediaAttributes.rr_mediaCurrentTime;\n }\n this.mediaMap.set(target, {\n isPlaying,\n currentTimeAtLastInteraction,\n lastInteractionTimeOffset: timeOffset,\n playbackRate,\n volume,\n muted,\n loop\n });\n this.syncTargetWithState(target);\n }\n mediaMutation({\n target,\n timeOffset,\n mutation\n }) {\n this.mediaMap.set(\n target,\n this.getMediaStateFromMutation({\n target,\n timeOffset,\n mutation\n })\n );\n this.syncTargetWithState(target);\n }\n isSupportedMediaElement(node2) {\n return [\"AUDIO\", \"VIDEO\"].includes(node2.nodeName);\n }\n reset() {\n this.mediaMap.clear();\n }\n}\nfunction applyDialogToTopLevel(node2, attributeMutation) {\n if (node2.nodeName !== \"DIALOG\" || node2 instanceof BaseRRNode) return;\n const dialog = node2;\n const oldIsOpen = dialog.open;\n const oldIsModalState = oldIsOpen && dialog.matches(\"dialog:modal\");\n const rrOpenMode = dialog.getAttribute(\"rr_open_mode\");\n const newIsOpen = typeof (attributeMutation == null ? void 0 : attributeMutation.attributes.open) === \"string\" || typeof dialog.getAttribute(\"open\") === \"string\";\n const newIsModalState = rrOpenMode === \"modal\";\n const newIsNonModalState = rrOpenMode === \"non-modal\";\n const modalStateChanged = oldIsModalState && newIsNonModalState || !oldIsModalState && newIsModalState;\n if (oldIsOpen && !modalStateChanged) return;\n if (!dialog.isConnected) {\n console.warn(\"dialog is not attached to the dom\", dialog);\n return;\n }\n if (oldIsOpen) dialog.close();\n if (!newIsOpen) return;\n if (newIsModalState) dialog.showModal();\n else dialog.show();\n}\nfunction removeDialogFromTopLevel(node2, attributeMutation) {\n if (node2.nodeName !== \"DIALOG\" || node2 instanceof BaseRRNode) return;\n const dialog = node2;\n if (!dialog.isConnected) {\n console.warn(\"dialog is not attached to the dom\", dialog);\n return;\n }\n if (attributeMutation.attributes.open === null) {\n dialog.removeAttribute(\"open\");\n dialog.removeAttribute(\"rr_open_mode\");\n }\n}\nconst SKIP_TIME_INTERVAL = 5 * 1e3;\nconst mitt = mitt$1 || mittProxy;\nconst REPLAY_CONSOLE_PREFIX = \"[replayer]\";\nconst defaultMouseTailConfig = {\n duration: 500,\n lineCap: \"round\",\n lineWidth: 3,\n strokeStyle: \"red\"\n};\nfunction indicatesTouchDevice(e2) {\n return e2.type == EventType.IncrementalSnapshot && (e2.data.source == IncrementalSource.TouchMove || e2.data.source == IncrementalSource.MouseInteraction && e2.data.type == MouseInteractions.TouchStart);\n}\nclass Replayer {\n constructor(events, config) {\n __publicField(this, \"wrapper\");\n __publicField(this, \"iframe\");\n __publicField(this, \"service\");\n __publicField(this, \"speedService\");\n __publicField(this, \"config\");\n // In the fast-forward process, if the virtual-dom optimization is used, this flag value is true.\n __publicField(this, \"usingVirtualDom\", false);\n __publicField(this, \"virtualDom\", new RRDocument());\n __publicField(this, \"mouse\");\n __publicField(this, \"mouseTail\", null);\n __publicField(this, \"tailPositions\", []);\n __publicField(this, \"emitter\", mitt());\n __publicField(this, \"nextUserInteractionEvent\");\n __publicField(this, \"legacy_missingNodeRetryMap\", {});\n // The replayer uses the cache to speed up replay and scrubbing.\n __publicField(this, \"cache\", createCache());\n __publicField(this, \"imageMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"canvasEventMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"mirror\", createMirror$2());\n // Used to track StyleSheetObjects adopted on multiple document hosts.\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n // Used to track video & audio elements, and keep them in sync with general playback.\n __publicField(this, \"mediaManager\");\n __publicField(this, \"firstFullSnapshot\", null);\n __publicField(this, \"newDocumentQueue\", []);\n __publicField(this, \"mousePos\", null);\n __publicField(this, \"touchActive\", null);\n __publicField(this, \"lastMouseDownEvent\", null);\n // Keep the rootNode of the last hovered element. So when hovering a new element, we can remove the last hovered element's :hover style.\n __publicField(this, \"lastHoveredRootNode\");\n // In the fast-forward mode, only the last selection data needs to be applied.\n __publicField(this, \"lastSelectionData\", null);\n // In the fast-forward mode using VirtualDom optimization, all stylesheetRule, and styleDeclaration events on constructed StyleSheets will be delayed to get applied until the flush stage.\n __publicField(this, \"constructedStyleMutations\", []);\n // Similar to the reason for constructedStyleMutations.\n __publicField(this, \"adoptedStyleSheets\", []);\n __publicField(this, \"handleResize\", (dimension) => {\n this.iframe.style.display = \"inherit\";\n for (const el of [this.mouseTail, this.iframe]) {\n if (!el) {\n continue;\n }\n el.setAttribute(\"width\", String(dimension.width));\n el.setAttribute(\"height\", String(dimension.height));\n }\n });\n __publicField(this, \"applyEventsSynchronously\", (events) => {\n for (const event of events) {\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n case EventType.Custom:\n continue;\n case EventType.FullSnapshot:\n case EventType.Meta:\n case EventType.Plugin:\n case EventType.IncrementalSnapshot:\n break;\n }\n const castFn = this.getCastFn(event, true);\n castFn();\n }\n });\n __publicField(this, \"getCastFn\", (event, isSync = false) => {\n let castFn;\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n break;\n case EventType.Custom:\n castFn = () => {\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\n };\n break;\n case EventType.Meta:\n castFn = () => this.emitter.emit(ReplayerEvents.Resize, {\n width: event.data.width,\n height: event.data.height\n });\n break;\n case EventType.FullSnapshot:\n castFn = () => {\n var _a2;\n if (this.firstFullSnapshot) {\n if (this.firstFullSnapshot === event) {\n this.firstFullSnapshot = true;\n return;\n }\n } else {\n this.firstFullSnapshot = true;\n }\n this.mediaManager.reset();\n this.styleMirror.reset();\n this.rebuildFullSnapshot(event, isSync);\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo(event.data.initialOffset);\n };\n break;\n case EventType.IncrementalSnapshot:\n castFn = () => {\n this.applyIncremental(event, isSync);\n if (isSync) {\n return;\n }\n if (event === this.nextUserInteractionEvent) {\n this.nextUserInteractionEvent = null;\n this.backToNormal();\n }\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\n for (const _event of this.service.state.context.events) {\n if (_event.timestamp <= event.timestamp) {\n continue;\n }\n if (this.isUserInteraction(_event)) {\n if (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _event.delay - event.delay > this.config.inactivePeriodThreshold * this.speedService.state.context.timer.speed\n ) {\n this.nextUserInteractionEvent = _event;\n }\n break;\n }\n }\n if (this.nextUserInteractionEvent) {\n const skipTime = (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.nextUserInteractionEvent.delay - event.delay\n );\n const payload = {\n speed: Math.min(\n Math.round(skipTime / SKIP_TIME_INTERVAL),\n this.config.maxSpeed\n )\n };\n this.speedService.send({ type: \"FAST_FORWARD\", payload });\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\n }\n }\n };\n break;\n }\n const wrappedCastFn = () => {\n if (castFn) {\n castFn();\n }\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.handler) plugin3.handler(event, isSync, { replayer: this });\n }\n this.service.send({ type: \"CAST_EVENT\", payload: { event } });\n const lastIndex = this.service.state.context.events.length - 1;\n if (!this.config.liveMode && event === this.service.state.context.events[lastIndex]) {\n const finish = () => {\n if (lastIndex < this.service.state.context.events.length - 1) {\n return;\n }\n this.backToNormal();\n this.service.send(\"END\");\n this.emitter.emit(ReplayerEvents.Finish);\n };\n let finishBuffer = 50;\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions.length) {\n finishBuffer += Math.max(0, -event.data.positions[0].timeOffset);\n }\n setTimeout(finish, finishBuffer);\n }\n this.emitter.emit(ReplayerEvents.EventCast, event);\n };\n return wrappedCastFn;\n });\n if (!(config == null ? void 0 : config.liveMode) && events.length < 2) {\n throw new Error(\"Replayer need at least 2 events.\");\n }\n const defaultConfig = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: false,\n inactivePeriodThreshold: 10 * 1e3,\n showWarning: true,\n showDebug: false,\n blockClass: \"rr-block\",\n liveMode: false,\n insertStyleRules: [],\n triggerFocus: true,\n UNSAFE_replayCanvas: false,\n pauseAnimation: true,\n mouseTail: defaultMouseTailConfig,\n useVirtualDom: true,\n // Virtual-dom optimization is enabled by default.\n logger: console\n };\n this.config = Object.assign({}, defaultConfig, config);\n this.handleResize = this.handleResize.bind(this);\n this.getCastFn = this.getCastFn.bind(this);\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\n this.emitter.on(ReplayerEvents.Resize, this.handleResize);\n this.setupDom();\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.getMirror) plugin3.getMirror({ nodeMirror: this.mirror });\n }\n this.emitter.on(ReplayerEvents.Flush, () => {\n if (this.usingVirtualDom) {\n const replayerHandler = {\n mirror: this.mirror,\n applyCanvas: (canvasEvent, canvasMutationData, target) => {\n void canvasMutation({\n event: canvasEvent,\n mutation: canvasMutationData,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n },\n applyInput: this.applyInput.bind(this),\n applyScroll: this.applyScroll.bind(this),\n applyStyleSheetMutation: (data, styleSheet) => {\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n },\n afterAppend: (node2, id) => {\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild) plugin3.onBuild(node2, { id, replayer: this });\n }\n }\n };\n if (this.iframe.contentDocument)\n try {\n diff(\n this.iframe.contentDocument,\n this.virtualDom,\n replayerHandler,\n this.virtualDom.mirror\n );\n } catch (e2) {\n console.warn(e2);\n }\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const realNode = createOrGetNode(\n value.node,\n this.mirror,\n this.virtualDom.mirror\n );\n diff(\n realNode,\n value.node,\n replayerHandler,\n this.virtualDom.mirror\n );\n value.node = realNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n this.constructedStyleMutations.forEach((data) => {\n this.applyStyleSheetMutation(data);\n });\n this.constructedStyleMutations = [];\n this.adoptedStyleSheets.forEach((data) => {\n this.applyAdoptedStyleSheet(data);\n });\n this.adoptedStyleSheets = [];\n }\n if (this.mousePos) {\n this.moveAndHover(\n this.mousePos.x,\n this.mousePos.y,\n this.mousePos.id,\n true,\n this.mousePos.debugData\n );\n this.mousePos = null;\n }\n if (this.touchActive === true) {\n this.mouse.classList.add(\"touch-active\");\n } else if (this.touchActive === false) {\n this.mouse.classList.remove(\"touch-active\");\n }\n this.touchActive = null;\n if (this.lastMouseDownEvent) {\n const [target, event] = this.lastMouseDownEvent;\n target.dispatchEvent(event);\n }\n this.lastMouseDownEvent = null;\n if (this.lastSelectionData) {\n this.applySelection(this.lastSelectionData);\n this.lastSelectionData = null;\n }\n });\n this.emitter.on(ReplayerEvents.PlayBack, () => {\n this.firstFullSnapshot = null;\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n });\n const timer = new Timer([], {\n speed: this.config.speed\n });\n this.service = createPlayerService(\n {\n events: events.map((e2) => {\n if (config && config.unpackFn) {\n return config.unpackFn(e2);\n }\n return e2;\n }).sort((a1, a2) => a1.timestamp - a2.timestamp),\n timer,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null\n },\n {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter\n }\n );\n this.service.start();\n this.service.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n player: state\n });\n });\n this.speedService = createSpeedService({\n normalSpeed: -1,\n timer\n });\n this.speedService.start();\n this.speedService.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n speed: state\n });\n });\n this.mediaManager = new MediaManager({\n warn: this.warn.bind(this),\n service: this.service,\n speedService: this.speedService,\n emitter: this.emitter,\n getCurrentTime: this.getCurrentTime.bind(this)\n });\n const firstMeta = this.service.state.context.events.find(\n (e2) => e2.type === EventType.Meta\n );\n const firstFullsnapshot = this.service.state.context.events.find(\n (e2) => e2.type === EventType.FullSnapshot\n );\n if (firstMeta) {\n const { width, height } = firstMeta.data;\n setTimeout(() => {\n this.emitter.emit(ReplayerEvents.Resize, {\n width,\n height\n });\n }, 0);\n }\n if (firstFullsnapshot) {\n setTimeout(() => {\n var _a2;\n if (this.firstFullSnapshot) {\n return;\n }\n this.firstFullSnapshot = firstFullsnapshot;\n this.rebuildFullSnapshot(\n firstFullsnapshot\n );\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo(\n firstFullsnapshot.data.initialOffset\n );\n }, 1);\n }\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\n this.mouse.classList.add(\"touch-device\");\n }\n }\n get timer() {\n return this.service.state.context.timer;\n }\n on(event, handler) {\n this.emitter.on(event, handler);\n return this;\n }\n off(event, handler) {\n this.emitter.off(event, handler);\n return this;\n }\n setConfig(config) {\n Object.keys(config).forEach((key) => {\n config[key];\n this.config[key] = config[key];\n });\n if (!this.config.skipInactive) {\n this.backToNormal();\n }\n if (typeof config.speed !== \"undefined\") {\n this.speedService.send({\n type: \"SET_SPEED\",\n payload: {\n speed: config.speed\n }\n });\n }\n if (typeof config.mouseTail !== \"undefined\") {\n if (config.mouseTail === false) {\n if (this.mouseTail) {\n this.mouseTail.style.display = \"none\";\n }\n } else {\n if (!this.mouseTail) {\n this.mouseTail = document.createElement(\"canvas\");\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\n this.mouseTail.classList.add(\"replayer-mouse-tail\");\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\n }\n this.mouseTail.style.display = \"inherit\";\n }\n }\n }\n getMetaData() {\n const firstEvent = this.service.state.context.events[0];\n const lastEvent = this.service.state.context.events[this.service.state.context.events.length - 1];\n return {\n startTime: firstEvent.timestamp,\n endTime: lastEvent.timestamp,\n totalTime: lastEvent.timestamp - firstEvent.timestamp\n };\n }\n /**\n * Get the actual time offset the player is at now compared to the first event.\n */\n getCurrentTime() {\n return this.timer.timeOffset + this.getTimeOffset();\n }\n /**\n * Get the time offset the player is at now compared to the first event, but without regard for the timer.\n */\n getTimeOffset() {\n const { baselineTime, events } = this.service.state.context;\n return baselineTime - events[0].timestamp;\n }\n getMirror() {\n return this.mirror;\n }\n /**\n * This API was designed to be used as play at any time offset.\n * Since we minimized the data collected from recorder, we do not\n * have the ability of undo an event.\n * So the implementation of play at any time offset will always iterate\n * all of the events, cast event before the offset synchronously\n * and cast event after the offset asynchronously with timer.\n * @param timeOffset - number\n */\n play(timeOffset = 0) {\n var _a2, _b;\n if (this.service.state.matches(\"paused\")) {\n this.service.send({ type: \"PLAY\", payload: { timeOffset } });\n } else {\n this.service.send({ type: \"PAUSE\" });\n this.service.send({ type: \"PLAY\", payload: { timeOffset } });\n }\n (_b = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b.classList.remove(\"rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Start);\n }\n pause(timeOffset) {\n var _a2, _b;\n if (timeOffset === void 0 && this.service.state.matches(\"playing\")) {\n this.service.send({ type: \"PAUSE\" });\n }\n if (typeof timeOffset === \"number\") {\n this.play(timeOffset);\n this.service.send({ type: \"PAUSE\" });\n }\n (_b = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b.classList.add(\"rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Pause);\n }\n resume(timeOffset = 0) {\n this.warn(\n `The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`\n );\n this.play(timeOffset);\n this.emitter.emit(ReplayerEvents.Resume);\n }\n /**\n * Totally destroy this replayer and please be careful that this operation is irreversible.\n * Memory occupation can be released by removing all references to this replayer.\n */\n destroy() {\n this.pause();\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n this.config.root.removeChild(this.wrapper);\n this.emitter.emit(ReplayerEvents.Destroy);\n }\n startLive(baselineTime) {\n this.service.send({ type: \"TO_LIVE\", payload: { baselineTime } });\n }\n addEvent(rawEvent) {\n const event = this.config.unpackFn ? this.config.unpackFn(rawEvent) : rawEvent;\n if (indicatesTouchDevice(event)) {\n this.mouse.classList.add(\"touch-device\");\n }\n void Promise.resolve().then(\n () => this.service.send({ type: \"ADD_EVENT\", payload: { event } })\n );\n }\n enableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"auto\");\n this.iframe.style.pointerEvents = \"auto\";\n }\n disableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"no\");\n this.iframe.style.pointerEvents = \"none\";\n }\n /**\n * Empties the replayer's cache and reclaims memory.\n * The replayer will use this cache to speed up the playback.\n */\n resetCache() {\n this.cache = createCache();\n }\n setupDom() {\n this.wrapper = document.createElement(\"div\");\n this.wrapper.classList.add(\"replayer-wrapper\");\n this.config.root.appendChild(this.wrapper);\n this.mouse = document.createElement(\"div\");\n this.mouse.classList.add(\"replayer-mouse\");\n this.wrapper.appendChild(this.mouse);\n if (this.config.mouseTail !== false) {\n this.mouseTail = document.createElement(\"canvas\");\n this.mouseTail.classList.add(\"replayer-mouse-tail\");\n this.mouseTail.style.display = \"inherit\";\n this.wrapper.appendChild(this.mouseTail);\n }\n this.iframe = document.createElement(\"iframe\");\n const attributes = [\"allow-same-origin\"];\n if (this.config.UNSAFE_replayCanvas) {\n attributes.push(\"allow-scripts\");\n }\n this.iframe.style.display = \"none\";\n this.iframe.setAttribute(\"sandbox\", attributes.join(\" \"));\n this.disableInteract();\n this.wrapper.appendChild(this.iframe);\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\n polyfill(\n this.iframe.contentWindow,\n this.iframe.contentDocument\n );\n polyfill$1(this.iframe.contentWindow);\n }\n }\n rebuildFullSnapshot(event, isSync = false) {\n if (!this.iframe.contentDocument) {\n return this.warn(\"Looks like your replayer has been destroyed.\");\n }\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n this.warn(\n \"Found unresolved missing node map\",\n this.legacy_missingNodeRetryMap\n );\n }\n this.legacy_missingNodeRetryMap = {};\n const collectedIframes = [];\n const collectedDialogs = /* @__PURE__ */ new Set();\n const afterAppend = (builtNode, id) => {\n if (builtNode.nodeName === \"DIALOG\")\n collectedDialogs.add(builtNode);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n if (this.mediaManager.isSupportedMediaElement(builtNode)) {\n const { events } = this.service.state.context;\n this.mediaManager.addMediaElements(\n builtNode,\n event.timestamp - events[0].timestamp,\n this.mirror\n );\n }\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild)\n plugin3.onBuild(builtNode, {\n id,\n replayer: this\n });\n }\n };\n if (this.usingVirtualDom) {\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n }\n this.mirror.reset();\n rebuild(event.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend,\n cache: this.cache,\n mirror: this.mirror\n });\n afterAppend(this.iframe.contentDocument, event.data.node.id);\n for (const { mutationInQueue, builtNode } of collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n const { documentElement, head } = this.iframe.contentDocument;\n this.insertStyleRules(documentElement, head);\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n if (!this.service.state.matches(\"playing\")) {\n this.iframe.contentDocument.getElementsByTagName(\"html\")[0].classList.add(\"rrweb-paused\");\n }\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\n if (!isSync) {\n this.waitForStylesheetLoad();\n }\n if (this.config.UNSAFE_replayCanvas) {\n void this.preloadAllImages();\n }\n }\n insertStyleRules(documentElement, head) {\n var _a2;\n const injectStylesRules = rules(\n this.config.blockClass\n ).concat(this.config.insertStyleRules);\n if (this.config.pauseAnimation) {\n injectStylesRules.push(\n \"html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }\"\n );\n }\n if (!injectStylesRules.length) {\n return;\n }\n if (this.usingVirtualDom) {\n const styleEl = this.virtualDom.createElement(\"style\");\n this.virtualDom.mirror.add(\n styleEl,\n getDefaultSN(styleEl, this.virtualDom.unserializedId)\n );\n documentElement.insertBefore(styleEl, head);\n styleEl.rules.push({\n source: IncrementalSource.StyleSheetRule,\n adds: injectStylesRules.map((cssText, index2) => ({\n rule: cssText,\n index: index2\n }))\n });\n } else {\n const styleEl = document.createElement(\"style\");\n documentElement.insertBefore(\n styleEl,\n head\n );\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\n (_a2 = styleEl.sheet) == null ? void 0 : _a2.insertRule(injectStylesRules[idx], idx);\n }\n }\n }\n attachDocumentToIframe(mutation, iframeEl) {\n const mirror2 = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n const collectedIframes = [];\n const collectedDialogs = /* @__PURE__ */ new Set();\n const afterAppend = (builtNode, id) => {\n if (builtNode.nodeName === \"DIALOG\")\n collectedDialogs.add(builtNode);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n const sn = mirror2.getMeta(builtNode);\n if ((sn == null ? void 0 : sn.type) === NodeType.Element && (sn == null ? void 0 : sn.tagName.toUpperCase()) === \"HTML\") {\n const { documentElement, head } = iframeEl.contentDocument;\n this.insertStyleRules(\n documentElement,\n head\n );\n }\n if (this.usingVirtualDom) return;\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild)\n plugin3.onBuild(builtNode, {\n id,\n replayer: this\n });\n }\n };\n buildNodeWithSN(mutation.node, {\n doc: iframeEl.contentDocument,\n mirror: mirror2,\n hackCss: true,\n skipChild: false,\n afterAppend,\n cache: this.cache\n });\n afterAppend(iframeEl.contentDocument, mutation.node.id);\n for (const { mutationInQueue, builtNode } of collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n }\n collectIframeAndAttachDocument(collected, builtNode) {\n if (isSerializedIframe(builtNode, this.mirror)) {\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === this.mirror.getId(builtNode)\n );\n if (mutationInQueue) {\n collected.push({\n mutationInQueue,\n builtNode\n });\n }\n }\n }\n /**\n * pause when loading style sheet, resume when loaded all timeout exceed\n */\n waitForStylesheetLoad() {\n var _a2;\n const head = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.head;\n if (head) {\n const unloadSheets = /* @__PURE__ */ new Set();\n let timer;\n let beforeLoadState = this.service.state;\n const stateHandler = () => {\n beforeLoadState = this.service.state;\n };\n this.emitter.on(ReplayerEvents.Start, stateHandler);\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\n const unsubscribe = () => {\n this.emitter.off(ReplayerEvents.Start, stateHandler);\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\n };\n head.querySelectorAll('link[rel=\"stylesheet\"]').forEach((css) => {\n if (!css.sheet) {\n unloadSheets.add(css);\n css.addEventListener(\"load\", () => {\n unloadSheets.delete(css);\n if (unloadSheets.size === 0 && timer !== -1) {\n if (beforeLoadState.matches(\"playing\")) {\n this.play(this.getCurrentTime());\n }\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\n if (timer) {\n clearTimeout(timer);\n }\n unsubscribe();\n }\n });\n }\n });\n if (unloadSheets.size > 0) {\n this.service.send({ type: \"PAUSE\" });\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\n timer = setTimeout(() => {\n if (beforeLoadState.matches(\"playing\")) {\n this.play(this.getCurrentTime());\n }\n timer = -1;\n unsubscribe();\n }, this.config.loadTimeout);\n }\n }\n }\n /**\n * pause when there are some canvas drawImage args need to be loaded\n */\n async preloadAllImages() {\n const promises = [];\n for (const event of this.service.state.context.events) {\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.CanvasMutation) {\n promises.push(\n this.deserializeAndPreloadCanvasEvents(event.data, event)\n );\n const commands = \"commands\" in event.data ? event.data.commands : [event.data];\n commands.forEach((c2) => {\n this.preloadImages(c2, event);\n });\n }\n }\n return Promise.all(promises);\n }\n preloadImages(data, event) {\n if (data.property === \"drawImage\" && typeof data.args[0] === \"string\" && !this.imageMap.has(event)) {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n const imgd = ctx == null ? void 0 : ctx.createImageData(canvas.width, canvas.height);\n ctx == null ? void 0 : ctx.putImageData(imgd, 0, 0);\n }\n }\n async deserializeAndPreloadCanvasEvents(data, event) {\n if (!this.canvasEventMap.has(event)) {\n const status = {\n isUnchanged: true\n };\n if (\"commands\" in data) {\n const commands = await Promise.all(\n data.commands.map(async (c2) => {\n const args = await Promise.all(\n c2.args.map(deserializeArg(this.imageMap, null, status))\n );\n return { ...c2, args };\n })\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, commands });\n } else {\n const args = await Promise.all(\n data.args.map(deserializeArg(this.imageMap, null, status))\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, args });\n }\n }\n }\n applyIncremental(e2, isSync) {\n var _a2, _b, _c;\n const { data: d } = e2;\n switch (d.source) {\n case IncrementalSource.Mutation: {\n try {\n this.applyMutation(d, isSync);\n } catch (error) {\n this.warn(`Exception in mutation ${error.message || error}`, d);\n }\n break;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove:\n if (isSync) {\n const lastPosition = d.positions[d.positions.length - 1];\n this.mousePos = {\n x: lastPosition.x,\n y: lastPosition.y,\n id: lastPosition.id,\n debugData: d\n };\n } else {\n d.positions.forEach((p) => {\n const action = {\n doAction: () => {\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\n },\n delay: p.timeOffset + e2.timestamp - this.service.state.context.baselineTime\n };\n this.timer.addAction(action);\n });\n this.timer.addAction({\n doAction() {\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delay: e2.delay - ((_a2 = d.positions[0]) == null ? void 0 : _a2.timeOffset)\n });\n }\n break;\n case IncrementalSource.MouseInteraction: {\n if (d.id === -1) {\n break;\n }\n const event = new Event(toLowerCase(MouseInteractions[d.type]));\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\n type: d.type,\n target\n });\n const { triggerFocus } = this.config;\n switch (d.type) {\n case MouseInteractions.Blur:\n if (\"blur\" in target) {\n target.blur();\n }\n break;\n case MouseInteractions.Focus:\n if (triggerFocus && target.focus) {\n target.focus({\n preventScroll: true\n });\n }\n break;\n case MouseInteractions.Click:\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n if (isSync) {\n if (d.type === MouseInteractions.TouchStart) {\n this.touchActive = true;\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.touchActive = false;\n }\n if (d.type === MouseInteractions.MouseDown) {\n this.lastMouseDownEvent = [target, event];\n } else if (d.type === MouseInteractions.MouseUp) {\n this.lastMouseDownEvent = null;\n }\n this.mousePos = {\n x: d.x || 0,\n y: d.y || 0,\n id: d.id,\n debugData: d\n };\n } else {\n if (d.type === MouseInteractions.TouchStart) {\n this.tailPositions.length = 0;\n }\n this.moveAndHover(d.x || 0, d.y || 0, d.id, isSync, d);\n if (d.type === MouseInteractions.Click) {\n this.mouse.classList.remove(\"active\");\n void this.mouse.offsetWidth;\n this.mouse.classList.add(\"active\");\n } else if (d.type === MouseInteractions.TouchStart) {\n void this.mouse.offsetWidth;\n this.mouse.classList.add(\"touch-active\");\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.mouse.classList.remove(\"touch-active\");\n } else {\n target.dispatchEvent(event);\n }\n }\n break;\n case MouseInteractions.TouchCancel:\n if (isSync) {\n this.touchActive = false;\n } else {\n this.mouse.classList.remove(\"touch-active\");\n }\n break;\n default:\n target.dispatchEvent(event);\n }\n break;\n }\n case IncrementalSource.Scroll: {\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.scrollData = d;\n break;\n }\n this.applyScroll(d, isSync);\n break;\n }\n case IncrementalSource.ViewportResize:\n this.emitter.emit(ReplayerEvents.Resize, {\n width: d.width,\n height: d.height\n });\n break;\n case IncrementalSource.Input: {\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.inputData = d;\n break;\n }\n this.applyInput(d);\n break;\n }\n case IncrementalSource.MediaInteraction: {\n const target = this.usingVirtualDom ? this.virtualDom.mirror.getNode(d.id) : this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const mediaEl = target;\n const { events } = this.service.state.context;\n this.mediaManager.mediaMutation({\n target: mediaEl,\n timeOffset: e2.timestamp - events[0].timestamp,\n mutation: d\n });\n break;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n if (this.usingVirtualDom) {\n if (d.styleId) this.constructedStyleMutations.push(d);\n else if (d.id)\n (_b = this.virtualDom.mirror.getNode(d.id)) == null ? void 0 : _b.rules.push(d);\n } else this.applyStyleSheetMutation(d);\n break;\n }\n case IncrementalSource.CanvasMutation: {\n if (!this.config.UNSAFE_replayCanvas) {\n return;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(\n d.id\n );\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.canvasMutations.push({\n event: e2,\n mutation: d\n });\n } else {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n void canvasMutation({\n event: e2,\n mutation: d,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n }\n break;\n }\n case IncrementalSource.Font: {\n try {\n const fontFace = new FontFace(\n d.family,\n d.buffer ? new Uint8Array(JSON.parse(d.fontSource)) : d.fontSource,\n d.descriptors\n );\n (_c = this.iframe.contentDocument) == null ? void 0 : _c.fonts.add(fontFace);\n } catch (error) {\n this.warn(error);\n }\n break;\n }\n case IncrementalSource.Selection: {\n if (isSync) {\n this.lastSelectionData = d;\n break;\n }\n this.applySelection(d);\n break;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n if (this.usingVirtualDom) this.adoptedStyleSheets.push(d);\n else this.applyAdoptedStyleSheet(d);\n break;\n }\n }\n }\n /**\n * Apply the mutation to the virtual dom or the real dom.\n * @param d - The mutation data.\n * @param isSync - Whether the mutation should be applied synchronously (while fast-forwarding).\n */\n applyMutation(d, isSync) {\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\n this.usingVirtualDom = true;\n buildFromDom(this.iframe.contentDocument, this.mirror, this.virtualDom);\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const virtualNode = buildFromNode(\n value.node,\n this.virtualDom,\n this.mirror\n );\n if (virtualNode) value.node = virtualNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n }\n const mirror2 = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n d.removes = d.removes.filter((mutation) => {\n if (!mirror2.getNode(mutation.id)) {\n this.warnNodeNotFound(d, mutation.id);\n return false;\n }\n return true;\n });\n d.removes.forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n return;\n }\n let parent = mirror2.getNode(\n mutation.parentId\n );\n if (!parent) {\n return this.warnNodeNotFound(d, mutation.parentId);\n }\n if (mutation.isShadow && hasShadowRoot(parent)) {\n parent = parent.shadowRoot;\n }\n mirror2.removeNodeFromMap(target);\n if (parent)\n try {\n parent.removeChild(target);\n if (this.usingVirtualDom && target.nodeName === \"#text\" && parent.nodeName === \"STYLE\" && ((_a2 = parent.rules) == null ? void 0 : _a2.length) > 0)\n parent.rules = [];\n } catch (error) {\n if (error instanceof DOMException) {\n this.warn(\n \"parent could not remove child in mutation\",\n parent,\n target,\n d\n );\n } else {\n throw error;\n }\n }\n });\n const legacy_missingNodeMap = {\n ...this.legacy_missingNodeRetryMap\n };\n const queue = [];\n const nextNotInDOM = (mutation) => {\n let next = null;\n if (mutation.nextId) {\n next = mirror2.getNode(mutation.nextId);\n }\n if (mutation.nextId !== null && mutation.nextId !== void 0 && mutation.nextId !== -1 && !next) {\n return true;\n }\n return false;\n };\n const appendNode = (mutation) => {\n var _a2, _b;\n if (!this.iframe.contentDocument) {\n return this.warn(\"Looks like your replayer has been destroyed.\");\n }\n let parent = mirror2.getNode(\n mutation.parentId\n );\n if (!parent) {\n if (mutation.node.type === NodeType.Document) {\n return this.newDocumentQueue.push(mutation);\n }\n return queue.push(mutation);\n }\n if (mutation.node.isShadow) {\n if (!hasShadowRoot(parent)) {\n parent.attachShadow({ mode: \"open\" });\n parent = parent.shadowRoot;\n } else parent = parent.shadowRoot;\n }\n let previous = null;\n let next = null;\n if (mutation.previousId) {\n previous = mirror2.getNode(mutation.previousId);\n }\n if (mutation.nextId) {\n next = mirror2.getNode(mutation.nextId);\n }\n if (nextNotInDOM(mutation)) {\n return queue.push(mutation);\n }\n if (mutation.node.rootId && !mirror2.getNode(mutation.node.rootId)) {\n return;\n }\n const targetDoc = mutation.node.rootId ? mirror2.getNode(mutation.node.rootId) : this.usingVirtualDom ? this.virtualDom : this.iframe.contentDocument;\n if (isSerializedIframe(parent, mirror2)) {\n this.attachDocumentToIframe(\n mutation,\n parent\n );\n return;\n }\n const afterAppend = (node2, id) => {\n if (this.usingVirtualDom) return;\n applyDialogToTopLevel(node2);\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild) plugin3.onBuild(node2, { id, replayer: this });\n }\n };\n const target = buildNodeWithSN(mutation.node, {\n doc: targetDoc,\n // can be Document or RRDocument\n mirror: mirror2,\n // can be this.mirror or virtualDom.mirror\n skipChild: true,\n hackCss: true,\n cache: this.cache,\n /**\n * caveat: `afterAppend` only gets called on child nodes of target\n * we have to call it again below when this target was added to the DOM\n */\n afterAppend\n });\n if (mutation.previousId === -1 || mutation.nextId === -1) {\n legacy_missingNodeMap[mutation.node.id] = {\n node: target,\n mutation\n };\n return;\n }\n const parentSn = mirror2.getMeta(parent);\n if (parentSn && parentSn.type === NodeType.Element && mutation.node.type === NodeType.Text) {\n const prospectiveSiblings = Array.isArray(parent.childNodes) ? parent.childNodes : Array.from(parent.childNodes);\n if (parentSn.tagName === \"textarea\") {\n for (const c2 of prospectiveSiblings) {\n if (c2.nodeType === parent.TEXT_NODE) {\n parent.removeChild(c2);\n }\n }\n } else if (parentSn.tagName === \"style\" && prospectiveSiblings.length === 1) {\n for (const cssText of prospectiveSiblings) {\n if (cssText.nodeType === parent.TEXT_NODE && !mirror2.hasNode(cssText)) {\n target.textContent = cssText.textContent;\n parent.removeChild(cssText);\n }\n }\n }\n } else if ((parentSn == null ? void 0 : parentSn.type) === NodeType.Document) {\n const parentDoc = parent;\n if (mutation.node.type === NodeType.DocumentType && ((_a2 = parentDoc.childNodes[0]) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_TYPE_NODE)\n parentDoc.removeChild(parentDoc.childNodes[0]);\n if (target.nodeName === \"HTML\" && parentDoc.documentElement)\n parentDoc.removeChild(\n parentDoc.documentElement\n );\n }\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\n parent.insertBefore(\n target,\n previous.nextSibling\n );\n } else if (next && next.parentNode) {\n parent.contains(next) ? parent.insertBefore(target, next) : parent.insertBefore(target, null);\n } else {\n parent.appendChild(target);\n }\n afterAppend(target, mutation.node.id);\n if (this.usingVirtualDom && target.nodeName === \"#text\" && parent.nodeName === \"STYLE\" && ((_b = parent.rules) == null ? void 0 : _b.length) > 0)\n parent.rules = [];\n if (isSerializedIframe(target, this.mirror)) {\n const targetId = this.mirror.getId(target);\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === targetId\n );\n if (mutationInQueue) {\n this.attachDocumentToIframe(\n mutationInQueue,\n target\n );\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n }\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(\n legacy_missingNodeMap,\n parent,\n target,\n mutation\n );\n }\n };\n d.adds.forEach((mutation) => {\n appendNode(mutation);\n });\n const startTime = Date.now();\n while (queue.length) {\n const resolveTrees = queueToResolveTrees(queue);\n queue.length = 0;\n if (Date.now() - startTime > 500) {\n this.warn(\n \"Timeout in the loop, please check the resolve tree data:\",\n resolveTrees\n );\n break;\n }\n for (const tree of resolveTrees) {\n const parent = mirror2.getNode(tree.value.parentId);\n if (!parent) {\n this.debug(\n \"Drop resolve tree since there is no parent for the root node.\",\n tree\n );\n } else {\n iterateResolveTree(tree, (mutation) => {\n appendNode(mutation);\n });\n }\n }\n }\n if (Object.keys(legacy_missingNodeMap).length) {\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\n }\n uniqueTextMutations(d.texts).forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r2) => r2.id === mutation.id)) {\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n const parentEl = target.parentElement;\n if (mutation.value && parentEl && parentEl.tagName === \"STYLE\") {\n target.textContent = adaptCssForReplay(mutation.value, this.cache);\n } else {\n target.textContent = mutation.value;\n }\n if (this.usingVirtualDom) {\n const parent = target.parentNode;\n if (((_a2 = parent == null ? void 0 : parent.rules) == null ? void 0 : _a2.length) > 0) parent.rules = [];\n }\n });\n d.attributes.forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r2) => r2.id === mutation.id)) {\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n for (const attributeName in mutation.attributes) {\n if (typeof attributeName === \"string\") {\n const value = mutation.attributes[attributeName];\n if (value === null) {\n target.removeAttribute(attributeName);\n if (attributeName === \"open\")\n removeDialogFromTopLevel(target, mutation);\n } else if (typeof value === \"string\") {\n try {\n if (attributeName === \"_cssText\" && (target.nodeName === \"LINK\" || target.nodeName === \"STYLE\")) {\n try {\n const newSn = mirror2.getMeta(\n target\n );\n const newNode = buildNodeWithSN(\n {\n ...newSn,\n attributes: {\n ...newSn.attributes,\n ...mutation.attributes\n }\n },\n {\n doc: target.ownerDocument,\n // can be Document or RRDocument\n mirror: mirror2,\n skipChild: true,\n hackCss: true,\n cache: this.cache\n }\n );\n Object.assign(\n newSn.attributes,\n mutation.attributes\n );\n const siblingNode = target.nextSibling;\n const parentNode2 = target.parentNode;\n if (newNode && parentNode2) {\n parentNode2.removeChild(target);\n parentNode2.insertBefore(\n newNode,\n siblingNode\n );\n mirror2.replace(mutation.id, newNode);\n break;\n }\n } catch (e2) {\n }\n }\n if (attributeName === \"value\" && target.nodeName === \"TEXTAREA\") {\n const textarea = target;\n textarea.childNodes.forEach(\n (c2) => textarea.removeChild(c2)\n );\n const tn = (_a2 = target.ownerDocument) == null ? void 0 : _a2.createTextNode(value);\n if (tn) {\n textarea.appendChild(tn);\n }\n } else {\n target.setAttribute(\n attributeName,\n value\n );\n }\n if (attributeName === \"rr_open_mode\" && target.nodeName === \"DIALOG\") {\n applyDialogToTopLevel(target, mutation);\n }\n } catch (error) {\n this.warn(\n \"An error occurred may due to the checkout feature.\",\n error\n );\n }\n } else if (attributeName === \"style\") {\n const styleValues = value;\n const targetEl = target;\n for (const s2 in styleValues) {\n if (styleValues[s2] === false) {\n targetEl.style.removeProperty(s2);\n } else if (styleValues[s2] instanceof Array) {\n const svp = styleValues[s2];\n targetEl.style.setProperty(s2, svp[0], svp[1]);\n } else {\n const svs = styleValues[s2];\n targetEl.style.setProperty(s2, svs);\n }\n }\n }\n }\n }\n });\n }\n /**\n * Apply the scroll data on real elements.\n * If the replayer is in sync mode, smooth scroll behavior should be disabled.\n * @param d - the scroll data\n * @param isSync - whether the replayer is in sync mode(fast-forward)\n */\n applyScroll(d, isSync) {\n var _a2, _b;\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const sn = this.mirror.getMeta(target);\n if (target === this.iframe.contentDocument) {\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } else if ((sn == null ? void 0 : sn.type) === NodeType.Document) {\n (_b = target.defaultView) == null ? void 0 : _b.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } else {\n try {\n target.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } catch (error) {\n }\n }\n }\n applyInput(d) {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n try {\n target.checked = d.isChecked;\n target.value = d.text;\n } catch (error) {\n }\n }\n applySelection(d) {\n try {\n const selectionSet = /* @__PURE__ */ new Set();\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\n const startContainer = this.mirror.getNode(start);\n const endContainer = this.mirror.getNode(end);\n if (!startContainer || !endContainer) return;\n const result2 = new Range();\n result2.setStart(startContainer, startOffset);\n result2.setEnd(endContainer, endOffset);\n const doc = startContainer.ownerDocument;\n const selection = doc == null ? void 0 : doc.getSelection();\n selection && selectionSet.add(selection);\n return {\n range: result2,\n selection\n };\n });\n selectionSet.forEach((s2) => s2.removeAllRanges());\n ranges.forEach((r2) => {\n var _a2;\n return r2 && ((_a2 = r2.selection) == null ? void 0 : _a2.addRange(r2.range));\n });\n } catch (error) {\n }\n }\n applyStyleSheetMutation(data) {\n var _a2;\n let styleSheet = null;\n if (data.styleId) styleSheet = this.styleMirror.getStyle(data.styleId);\n else if (data.id)\n styleSheet = ((_a2 = this.mirror.getNode(data.id)) == null ? void 0 : _a2.sheet) || null;\n if (!styleSheet) return;\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n }\n applyStyleSheetRule(data, styleSheet) {\n var _a2, _b, _c, _d;\n (_a2 = data.adds) == null ? void 0 : _a2.forEach(({ rule: rule2, index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index: index2 } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.insertRule(rule2, index2);\n } else {\n const index2 = nestedIndex === void 0 ? void 0 : Math.min(nestedIndex, styleSheet.cssRules.length);\n styleSheet == null ? void 0 : styleSheet.insertRule(rule2, index2);\n }\n } catch (e2) {\n }\n });\n (_b = data.removes) == null ? void 0 : _b.forEach(({ index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index: index2 } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.deleteRule(index2 || 0);\n } else {\n styleSheet == null ? void 0 : styleSheet.deleteRule(nestedIndex);\n }\n } catch (e2) {\n }\n });\n if (data.replace)\n try {\n void ((_c = styleSheet.replace) == null ? void 0 : _c.call(styleSheet, data.replace));\n } catch (e2) {\n }\n if (data.replaceSync)\n try {\n (_d = styleSheet.replaceSync) == null ? void 0 : _d.call(styleSheet, data.replaceSync);\n } catch (e2) {\n }\n }\n applyStyleDeclaration(data, styleSheet) {\n if (data.set) {\n const rule2 = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule2.style.setProperty(\n data.set.property,\n data.set.value,\n data.set.priority\n );\n }\n if (data.remove) {\n const rule2 = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule2.style.removeProperty(data.remove.property);\n }\n }\n applyAdoptedStyleSheet(data) {\n var _a2;\n const targetHost = this.mirror.getNode(data.id);\n if (!targetHost) return;\n (_a2 = data.styles) == null ? void 0 : _a2.forEach((style) => {\n var _a3;\n let newStyleSheet = null;\n let hostWindow = null;\n if (hasShadowRoot(targetHost))\n hostWindow = ((_a3 = targetHost.ownerDocument) == null ? void 0 : _a3.defaultView) || null;\n else if (targetHost.nodeName === \"#document\")\n hostWindow = targetHost.defaultView;\n if (!hostWindow) return;\n try {\n newStyleSheet = new hostWindow.CSSStyleSheet();\n this.styleMirror.add(newStyleSheet, style.styleId);\n this.applyStyleSheetRule(\n {\n source: IncrementalSource.StyleSheetRule,\n adds: style.rules\n },\n newStyleSheet\n );\n } catch (e2) {\n }\n });\n const MAX_RETRY_TIME = 10;\n let count = 0;\n const adoptStyleSheets = (targetHost2, styleIds) => {\n const stylesToAdopt = styleIds.map((styleId) => this.styleMirror.getStyle(styleId)).filter((style) => style !== null);\n if (hasShadowRoot(targetHost2))\n targetHost2.shadowRoot.adoptedStyleSheets = stylesToAdopt;\n else if (targetHost2.nodeName === \"#document\")\n targetHost2.adoptedStyleSheets = stylesToAdopt;\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\n setTimeout(\n () => adoptStyleSheets(targetHost2, styleIds),\n 0 + 100 * count\n );\n count++;\n }\n };\n adoptStyleSheets(targetHost, data.styleIds);\n }\n legacy_resolveMissingNode(map, parent, target, targetMutation) {\n const { previousId, nextId } = targetMutation;\n const previousInMap = previousId && map[previousId];\n const nextInMap = nextId && map[nextId];\n if (previousInMap) {\n const { node: node2, mutation } = previousInMap;\n parent.insertBefore(node2, target);\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node2, mutation);\n }\n }\n if (nextInMap) {\n const { node: node2, mutation } = nextInMap;\n parent.insertBefore(\n node2,\n target.nextSibling\n );\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node2, mutation);\n }\n }\n }\n moveAndHover(x2, y, id, isSync, debugData) {\n const target = this.mirror.getNode(id);\n if (!target) {\n return this.debugNodeNotFound(debugData, id);\n }\n const base = getBaseDimension(target, this.iframe);\n const _x = x2 * base.absoluteScale + base.x;\n const _y = y * base.absoluteScale + base.y;\n this.mouse.style.left = `${_x}px`;\n this.mouse.style.top = `${_y}px`;\n if (!isSync) {\n this.drawMouseTail({ x: _x, y: _y });\n }\n this.hoverElements(target);\n }\n drawMouseTail(position) {\n if (!this.mouseTail) {\n return;\n }\n const { lineCap, lineWidth, strokeStyle, duration } = this.config.mouseTail === true ? defaultMouseTailConfig : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\n const draw = () => {\n if (!this.mouseTail) {\n return;\n }\n const ctx = this.mouseTail.getContext(\"2d\");\n if (!ctx || !this.tailPositions.length) {\n return;\n }\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\n ctx.beginPath();\n ctx.lineWidth = lineWidth;\n ctx.lineCap = lineCap;\n ctx.strokeStyle = strokeStyle;\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\n ctx.stroke();\n };\n this.tailPositions.push(position);\n draw();\n setTimeout(() => {\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\n draw();\n }, duration / this.speedService.state.context.timer.speed);\n }\n hoverElements(el) {\n var _a2;\n (_a2 = this.lastHoveredRootNode || this.iframe.contentDocument) == null ? void 0 : _a2.querySelectorAll(\".\\\\:hover\").forEach((hoveredEl) => {\n hoveredEl.classList.remove(\":hover\");\n });\n this.lastHoveredRootNode = el.getRootNode();\n let currentEl = el;\n while (currentEl) {\n if (currentEl.classList) {\n currentEl.classList.add(\":hover\");\n }\n currentEl = currentEl.parentElement;\n }\n }\n isUserInteraction(event) {\n if (event.type !== EventType.IncrementalSnapshot) {\n return false;\n }\n return event.data.source > IncrementalSource.Mutation && event.data.source <= IncrementalSource.Input;\n }\n backToNormal() {\n this.nextUserInteractionEvent = null;\n if (this.speedService.state.matches(\"normal\")) {\n return;\n }\n this.speedService.send({ type: \"BACK_TO_NORMAL\" });\n this.emitter.emit(ReplayerEvents.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed\n });\n }\n warnNodeNotFound(d, id) {\n this.warn(`Node with id '${id}' not found. `, d);\n }\n warnCanvasMutationFailed(d, error) {\n this.warn(`Has error on canvas update`, error, \"canvas mutation:\", d);\n }\n debugNodeNotFound(d, id) {\n this.debug(`Node with id '${id}' not found. `, d);\n }\n warn(...args) {\n if (!this.config.showWarning) {\n return;\n }\n this.config.logger.warn(REPLAY_CONSOLE_PREFIX, ...args);\n }\n debug(...args) {\n if (!this.config.showDebug) {\n return;\n }\n this.config.logger.log(REPLAY_CONSOLE_PREFIX, ...args);\n }\n}\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\nexport {\n EventType,\n IncrementalSource,\n MouseInteractions,\n Replayer,\n ReplayerEvents,\n addCustomEvent,\n canvasMutation,\n freezePage,\n _mirror as mirror,\n record,\n takeFullSnapshot,\n utils\n};\n//# sourceMappingURL=rrweb.js.map\n","export enum EventType {\n DomContentLoaded,\n Load,\n FullSnapshot,\n IncrementalSnapshot,\n Meta,\n Custom,\n Plugin,\n}\n\nexport type domContentLoadedEvent = {\n type: EventType.DomContentLoaded;\n data: unknown;\n};\n\nexport type loadedEvent = {\n type: EventType.Load;\n data: unknown;\n};\n\nexport type fullSnapshotEvent = {\n type: EventType.FullSnapshot;\n data: {\n node: serializedNodeWithId;\n initialOffset: {\n top: number;\n left: number;\n };\n };\n};\n\nexport type incrementalSnapshotEvent = {\n type: EventType.IncrementalSnapshot;\n data: incrementalData;\n};\n\nexport type metaEvent = {\n type: EventType.Meta;\n data: {\n href: string;\n width: number;\n height: number;\n };\n};\n\nexport type customEvent = {\n type: EventType.Custom;\n data: {\n tag: string;\n payload: T;\n };\n};\n\nexport type pluginEvent = {\n type: EventType.Plugin;\n data: {\n plugin: string;\n payload: T;\n };\n};\n\nexport enum IncrementalSource {\n Mutation,\n MouseMove,\n MouseInteraction,\n Scroll,\n ViewportResize,\n Input,\n TouchMove,\n MediaInteraction,\n StyleSheetRule,\n CanvasMutation,\n Font,\n Log,\n Drag,\n StyleDeclaration,\n Selection,\n AdoptedStyleSheet,\n CustomElement,\n}\n\nexport type mutationData = {\n source: IncrementalSource.Mutation;\n} & mutationCallbackParam;\n\nexport type mousemoveData = {\n source:\n | IncrementalSource.MouseMove\n | IncrementalSource.TouchMove\n | IncrementalSource.Drag;\n positions: mousePosition[];\n};\n\nexport type mouseInteractionData = {\n source: IncrementalSource.MouseInteraction;\n} & mouseInteractionParam;\n\nexport type scrollData = {\n source: IncrementalSource.Scroll;\n} & scrollPosition;\n\nexport type viewportResizeData = {\n source: IncrementalSource.ViewportResize;\n} & viewportResizeDimension;\n\nexport type inputData = {\n source: IncrementalSource.Input;\n id: number;\n} & inputValue;\n\nexport type mediaInteractionData = {\n source: IncrementalSource.MediaInteraction;\n} & mediaInteractionParam;\n\nexport type styleSheetRuleData = {\n source: IncrementalSource.StyleSheetRule;\n} & styleSheetRuleParam;\n\nexport type styleDeclarationData = {\n source: IncrementalSource.StyleDeclaration;\n} & styleDeclarationParam;\n\nexport type canvasMutationData = {\n source: IncrementalSource.CanvasMutation;\n} & canvasMutationParam;\n\nexport type fontData = {\n source: IncrementalSource.Font;\n} & fontParam;\n\nexport type selectionData = {\n source: IncrementalSource.Selection;\n} & selectionParam;\n\nexport type adoptedStyleSheetData = {\n source: IncrementalSource.AdoptedStyleSheet;\n} & adoptedStyleSheetParam;\n\nexport type customElementData = {\n source: IncrementalSource.CustomElement;\n} & customElementParam;\n\nexport type incrementalData =\n | mutationData\n | mousemoveData\n | mouseInteractionData\n | scrollData\n | viewportResizeData\n | inputData\n | mediaInteractionData\n | styleSheetRuleData\n | canvasMutationData\n | fontData\n | selectionData\n | styleDeclarationData\n | adoptedStyleSheetData\n | customElementData;\n\nexport type eventWithoutTime =\n | domContentLoadedEvent\n | loadedEvent\n | fullSnapshotEvent\n | incrementalSnapshotEvent\n | metaEvent\n | customEvent\n | pluginEvent;\n\n/**\n * @deprecated intended for internal use\n * a synonym for eventWithoutTime\n */\nexport type event = eventWithoutTime;\n\nexport type eventWithTime = eventWithoutTime & {\n timestamp: number;\n delay?: number;\n};\n\nexport type canvasEventWithTime = eventWithTime & {\n type: EventType.IncrementalSnapshot;\n data: canvasMutationData;\n};\n\nexport type blockClass = string | RegExp;\n\nexport type maskTextClass = string | RegExp;\n\nexport type SamplingStrategy = Partial<{\n /**\n * false means not to record mouse/touch move events\n * number is the throttle threshold of recording mouse/touch move\n */\n mousemove: boolean | number;\n /**\n * number is the throttle threshold of mouse/touch move callback\n */\n mousemoveCallback: number;\n /**\n * false means not to record mouse interaction events\n * can also specify record some kinds of mouse interactions\n */\n mouseInteraction: boolean | Record;\n /**\n * number is the throttle threshold of recording scroll\n */\n scroll: number;\n /**\n * number is the throttle threshold of recording media interactions\n */\n media: number;\n /**\n * 'all' will record all the input events\n * 'last' will only record the last input value while input a sequence of chars\n */\n input: 'all' | 'last';\n /**\n * 'all' will record every single canvas call\n * number between 1 and 60, will record an image snapshots in a web-worker a (maximum) number of times per second.\n * Number only supported where [`OffscreenCanvas`](http://mdn.io/offscreencanvas) is supported.\n */\n canvas: 'all' | number;\n}>;\n\nexport interface ICrossOriginIframeMirror {\n getId(\n iframe: HTMLIFrameElement,\n remoteId: number,\n parentToRemoteMap?: Map,\n remoteToParentMap?: Map,\n ): number;\n getIds(iframe: HTMLIFrameElement, remoteId: number[]): number[];\n getRemoteId(\n iframe: HTMLIFrameElement,\n parentId: number,\n map?: Map,\n ): number;\n getRemoteIds(iframe: HTMLIFrameElement, parentId: number[]): number[];\n reset(iframe?: HTMLIFrameElement): void;\n}\n\nexport type RecordPlugin = {\n name: string;\n observer?: (\n cb: (...args: Array) => void,\n win: IWindow,\n options: TOptions,\n ) => listenerHandler;\n eventProcessor?: (event: eventWithTime) => eventWithTime & TExtend;\n getMirror?: (mirrors: {\n nodeMirror: IMirror;\n crossOriginIframeMirror: ICrossOriginIframeMirror;\n crossOriginIframeStyleMirror: ICrossOriginIframeMirror;\n }) => void;\n options: TOptions;\n};\n\nexport type hooksParam = {\n mutation?: mutationCallBack;\n mousemove?: mousemoveCallBack;\n mouseInteraction?: mouseInteractionCallBack;\n scroll?: scrollCallback;\n viewportResize?: viewportResizeCallback;\n input?: inputCallback;\n mediaInteaction?: mediaInteractionCallback;\n styleSheetRule?: styleSheetRuleCallback;\n styleDeclaration?: styleDeclarationCallback;\n canvasMutation?: canvasMutationCallback;\n font?: fontCallback;\n selection?: selectionCallback;\n customElement?: customElementCallback;\n};\n\n// https://dom.spec.whatwg.org/#interface-mutationrecord\nexport type mutationRecord = Readonly<{\n type: string;\n target: Node;\n oldValue: string | null;\n addedNodes: NodeList;\n removedNodes: NodeList;\n attributeName: string | null;\n}>;\n\nexport type textCursor = {\n node: Node;\n value: string | null;\n};\nexport type textMutation = {\n id: number;\n value: string | null;\n};\n\nexport type styleOMValue = {\n [key: string]: styleValueWithPriority | string | false;\n};\n\nexport type styleValueWithPriority = [string, string];\n\nexport type attributeCursor = {\n node: Node;\n attributes: {\n [key: string]: string | styleOMValue | null;\n };\n styleDiff: styleOMValue;\n _unchangedStyles: styleOMValue;\n};\nexport type attributeMutation = {\n id: number;\n attributes: {\n [key: string]: string | styleOMValue | null;\n };\n};\n\nexport type removedNodeMutation = {\n parentId: number;\n id: number;\n isShadow?: boolean;\n};\n\nexport type addedNodeMutation = {\n parentId: number;\n // Newly recorded mutations will not have previousId any more, just for compatibility\n previousId?: number | null;\n nextId: number | null;\n node: serializedNodeWithId;\n};\n\nexport type mutationCallbackParam = {\n texts: textMutation[];\n attributes: attributeMutation[];\n removes: removedNodeMutation[];\n adds: addedNodeMutation[];\n isAttachIframe?: true;\n};\n\nexport type mutationCallBack = (m: mutationCallbackParam) => void;\n\nexport type mousemoveCallBack = (\n p: mousePosition[],\n source:\n | IncrementalSource.MouseMove\n | IncrementalSource.TouchMove\n | IncrementalSource.Drag,\n) => void;\n\nexport type mousePosition = {\n x: number;\n y: number;\n id: number;\n timeOffset: number;\n};\n\nexport type mouseMovePos = {\n x: number;\n y: number;\n id: number;\n debugData: incrementalData;\n};\n\nexport enum MouseInteractions {\n MouseUp,\n MouseDown,\n Click,\n ContextMenu,\n DblClick,\n Focus,\n Blur,\n TouchStart,\n TouchMove_Departed, // we will start a separate observer for touch move event\n TouchEnd,\n TouchCancel,\n}\n\nexport enum PointerTypes {\n Mouse,\n Pen,\n Touch,\n}\n\nexport enum CanvasContext {\n '2D',\n WebGL,\n WebGL2,\n}\n\nexport type SerializedCanvasArg =\n | {\n rr_type: 'ArrayBuffer';\n base64: string; // base64\n }\n | {\n rr_type: 'Blob';\n data: Array;\n type?: string;\n }\n | {\n rr_type: string;\n src: string; // url of image\n }\n | {\n rr_type: string;\n args: Array;\n }\n | {\n rr_type: string;\n index: number;\n };\n\nexport type CanvasArg =\n | SerializedCanvasArg\n | string\n | number\n | boolean\n | null\n | CanvasArg[];\n\ntype mouseInteractionParam = {\n type: MouseInteractions;\n id: number;\n x?: number;\n y?: number;\n pointerType?: PointerTypes;\n};\n\nexport type mouseInteractionCallBack = (d: mouseInteractionParam) => void;\n\nexport type scrollPosition = {\n id: number;\n x: number;\n y: number;\n};\n\nexport type scrollCallback = (p: scrollPosition) => void;\n\nexport type styleSheetAddRule = {\n rule: string;\n index?: number | number[];\n};\n\nexport type styleSheetDeleteRule = {\n index: number | number[];\n};\n\nexport type styleSheetRuleParam = {\n id?: number;\n styleId?: number;\n removes?: styleSheetDeleteRule[];\n adds?: styleSheetAddRule[];\n replace?: string;\n replaceSync?: string;\n};\n\nexport type styleSheetRuleCallback = (s: styleSheetRuleParam) => void;\n\nexport type adoptedStyleSheetParam = {\n // id indicates the node id of document or shadow DOMs' host element.\n id: number;\n // New CSSStyleSheets which have never appeared before.\n styles?: {\n styleId: number;\n rules: styleSheetAddRule[];\n }[];\n // StyleSheet ids to be adopted.\n styleIds: number[];\n};\n\nexport type adoptedStyleSheetCallback = (a: adoptedStyleSheetParam) => void;\n\nexport type styleDeclarationParam = {\n id?: number;\n styleId?: number;\n index: number[];\n set?: {\n property: string;\n value: string | null;\n priority: string | undefined;\n };\n remove?: {\n property: string;\n };\n};\n\nexport type styleDeclarationCallback = (s: styleDeclarationParam) => void;\n\nexport type canvasMutationCommand = {\n property: string;\n args: Array;\n setter?: true;\n};\n\nexport type canvasMutationParam =\n | {\n id: number;\n type: CanvasContext;\n commands: canvasMutationCommand[];\n }\n | ({\n id: number;\n type: CanvasContext;\n } & canvasMutationCommand);\n\nexport type canvasMutationWithType = {\n type: CanvasContext;\n} & canvasMutationCommand;\n\nexport type canvasMutationCallback = (p: canvasMutationParam) => void;\n\nexport type canvasManagerMutationCallback = (\n target: HTMLCanvasElement,\n p: canvasMutationWithType,\n) => void;\n\nexport type ImageBitmapDataURLWorkerParams = {\n id: number;\n bitmap: ImageBitmap;\n width: number;\n height: number;\n dataURLOptions: DataURLOptions;\n};\n\nexport type ImageBitmapDataURLWorkerResponse =\n | {\n id: number;\n }\n | {\n id: number;\n type: string;\n base64: string;\n width: number;\n height: number;\n };\n\nexport type fontParam = {\n family: string;\n fontSource: string;\n buffer: boolean;\n descriptors?: FontFaceDescriptors;\n};\n\nexport type fontCallback = (p: fontParam) => void;\n\nexport type viewportResizeDimension = {\n width: number;\n height: number;\n};\n\nexport type viewportResizeCallback = (d: viewportResizeDimension) => void;\n\nexport type inputValue = {\n text: string;\n isChecked: boolean;\n\n // `userTriggered` indicates if this event was triggered directly by user (userTriggered: true)\n // or was triggered indirectly (userTriggered: false)\n // Example of `userTriggered` in action:\n // User clicks on radio element (userTriggered: true) which triggers the other radio element to change (userTriggered: false)\n userTriggered?: boolean;\n};\n\nexport type inputCallback = (v: inputValue & { id: number }) => void;\n\nexport enum MediaInteractions {\n Play,\n Pause,\n Seeked,\n VolumeChange,\n RateChange,\n}\n\nexport type mediaInteractionParam = {\n type: MediaInteractions;\n id: number;\n currentTime?: number;\n volume?: number;\n muted?: boolean;\n loop?: boolean;\n playbackRate?: number;\n};\n\nexport type mediaInteractionCallback = (p: mediaInteractionParam) => void;\n\nexport type DocumentDimension = {\n x: number;\n y: number;\n // scale value relative to its parent iframe\n relativeScale: number;\n // scale value relative to the root iframe\n absoluteScale: number;\n};\n\nexport type SelectionRange = {\n start: number;\n startOffset: number;\n end: number;\n endOffset: number;\n};\n\nexport type selectionParam = {\n ranges: Array;\n};\n\nexport type selectionCallback = (p: selectionParam) => void;\n\nexport type customElementParam = {\n define?: {\n name: string;\n };\n};\n\nexport type customElementCallback = (c: customElementParam) => void;\n\n/**\n * @deprecated\n */\ninterface INode extends Node {\n __sn: serializedNodeWithId;\n}\n\nexport type DeprecatedMirror = {\n map: {\n [key: number]: INode;\n };\n getId: (n: Node) => number;\n getNode: (id: number) => INode | null;\n removeNodeFromMap: (n: Node) => void;\n has: (id: number) => boolean;\n reset: () => void;\n};\n\nexport type throttleOptions = {\n leading?: boolean;\n trailing?: boolean;\n};\n\nexport type listenerHandler = () => void;\nexport type hookResetter = () => void;\n\nexport type playerMetaData = {\n startTime: number;\n endTime: number;\n totalTime: number;\n};\n\nexport type actionWithDelay = {\n doAction: () => void;\n delay: number;\n};\n\nexport type Handler = (event?: unknown) => void;\n\nexport type Emitter = {\n on(type: string, handler: Handler): void;\n emit(type: string, event?: unknown): void;\n off(type: string, handler: Handler): void;\n};\n\nexport type Arguments = T extends (...payload: infer U) => unknown\n ? U\n : unknown;\n\nexport enum ReplayerEvents {\n Start = 'start',\n Pause = 'pause',\n /**\n * @deprecated use Play instead\n */\n Resume = 'resume',\n Resize = 'resize',\n Finish = 'finish',\n FullsnapshotRebuilded = 'fullsnapshot-rebuilded',\n LoadStylesheetStart = 'load-stylesheet-start',\n LoadStylesheetEnd = 'load-stylesheet-end',\n SkipStart = 'skip-start',\n SkipEnd = 'skip-end',\n MouseInteraction = 'mouse-interaction',\n EventCast = 'event-cast',\n CustomEvent = 'custom-event',\n Flush = 'flush',\n StateChange = 'state-change',\n PlayBack = 'play-back',\n Destroy = 'destroy',\n}\n\nexport type KeepIframeSrcFn = (src: string) => boolean;\n\ndeclare global {\n interface Window {\n FontFace: typeof FontFace;\n }\n}\n\nexport type IWindow = Window & typeof globalThis;\n\nexport type Optional = Pick, K> & Omit;\n\nexport type GetTypedKeys = TakeTypeHelper<\n Obj,\n ValueType\n>[keyof TakeTypeHelper];\nexport type TakeTypeHelper = {\n [K in keyof Obj]: Obj[K] extends ValueType ? K : never;\n};\n\nexport type TakeTypedKeyValues = Pick<\n Obj,\n TakeTypeHelper[keyof TakeTypeHelper]\n>;\n\nexport enum NodeType {\n Document,\n DocumentType,\n Element,\n Text,\n CDATA,\n Comment,\n}\n\nexport type documentNode = {\n type: NodeType.Document;\n childNodes: serializedNodeWithId[];\n compatMode?: string;\n};\n\nexport type documentTypeNode = {\n type: NodeType.DocumentType;\n name: string;\n publicId: string;\n systemId: string;\n};\n\ntype cssTextKeyAttr = {\n _cssText?: string;\n};\n\nexport type attributes = cssTextKeyAttr & {\n [key: string]:\n | string\n | number // properties e.g. rr_scrollLeft or rr_mediaCurrentTime\n | true // e.g. checked on \n | null; // an indication that an attribute was removed (during a mutation)\n};\n\nexport type legacyAttributes = {\n /**\n * @deprecated old bug in rrweb was causing these to always be set\n * @see https://github.com/rrweb-io/rrweb/pull/651\n */\n selected: false;\n};\n\nexport type mediaAttributes = {\n rr_mediaState: 'played' | 'paused';\n rr_mediaCurrentTime: number;\n /**\n * for backwards compatibility this is optional but should always be set\n */\n rr_mediaPlaybackRate?: number;\n /**\n * for backwards compatibility this is optional but should always be set\n */\n rr_mediaMuted?: boolean;\n /**\n * for backwards compatibility this is optional but should always be set\n */\n rr_mediaLoop?: boolean;\n /**\n * for backwards compatibility this is optional but should always be set\n */\n rr_mediaVolume?: number;\n};\n\nexport type elementNode = {\n type: NodeType.Element;\n tagName: string;\n attributes: attributes;\n childNodes: serializedNodeWithId[];\n isSVG?: true;\n needBlock?: boolean;\n // This is a custom element or not.\n isCustom?: true;\n};\n\nexport type textNode = {\n type: NodeType.Text;\n textContent: string;\n /**\n * @deprecated styles are now always snapshotted against parent