{"version":3,"file":"static/chunks/main-72ad3238f4dc7e4dd42c.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/construct.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/createClass.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/inherits.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/typeof.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://_N_E/./node_modules/@babel/runtime/regenerator/index.js","webpack://_N_E/./node_modules/@next/polyfill-module/dist/polyfill-module.js","webpack://_N_E/./node_modules/@sentry/hub/esm/session.js","webpack://_N_E/./node_modules/@sentry/hub/esm/hub.js","webpack://_N_E/./node_modules/@sentry/hub/esm/scope.js","webpack://_N_E/./node_modules/@sentry/minimal/esm/index.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://_N_E/./node_modules/@sentry/types/esm/severity.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://_N_E/./node_modules/@sentry/browser/esm/tracekit.js","webpack://_N_E/./node_modules/@sentry/browser/esm/parsers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://_N_E/./node_modules/@sentry/utils/esm/polyfill.js","webpack://_N_E/./node_modules/@sentry/utils/esm/error.js","webpack://_N_E/./node_modules/@sentry/utils/esm/dsn.js","webpack://_N_E/./node_modules/@sentry/core/esm/api.js","webpack://_N_E/./node_modules/@sentry/browser/esm/helpers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/useragent.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://_N_E/./node_modules/@sentry/browser/esm/index.js","webpack://_N_E/./node_modules/@sentry/core/esm/version.js","webpack://_N_E/./node_modules/@sentry/core/esm/integration.js","webpack://_N_E/./node_modules/@sentry/core/esm/baseclient.js","webpack://_N_E/./node_modules/@sentry/types/esm/status.js","webpack://_N_E/./node_modules/@sentry/core/esm/transports/noop.js","webpack://_N_E/./node_modules/@sentry/core/esm/basebackend.js","webpack://_N_E/./node_modules/@sentry/core/esm/request.js","webpack://_N_E/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/base.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://_N_E/./node_modules/@sentry/browser/esm/backend.js","webpack://_N_E/./node_modules/@sentry/browser/esm/client.js","webpack://_N_E/./node_modules/@sentry/browser/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/core/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/backgroundtab.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getFirstHidden.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/whenInput.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/bindReporter.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/initMetric.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/observe.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/onHidden.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getLCP.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/metrics.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getCLS.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getFID.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/request.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/router.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/browsertracing.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/integrations/express.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/integrations/postgres.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/integrations/mysql.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/integrations/mongo.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/index.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/performance/client.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/metadataBuilder.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/userIntegrations.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/index.client.js","webpack://_N_E/./node_modules/@sentry/react/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/types/esm/transaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/errors.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/hubextensions.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/idletransaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/span.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/spanstatus.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/transaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/utils.js","webpack://_N_E/./node_modules/@sentry/types/esm/session.js","webpack://_N_E/./node_modules/@sentry/utils/esm/browser.js","webpack://_N_E/./node_modules/@sentry/utils/esm/instrument.js","webpack://_N_E/./node_modules/@sentry/utils/esm/is.js","webpack://_N_E/./node_modules/@sentry/utils/esm/logger.js","webpack://_N_E/./node_modules/@sentry/utils/esm/misc.js","webpack://_N_E/./node_modules/@sentry/utils/esm/node.js","webpack://_N_E/./node_modules/@sentry/utils/esm/memo.js","webpack://_N_E/./node_modules/@sentry/utils/esm/object.js","webpack://_N_E/./node_modules/@sentry/utils/esm/stacktrace.js","webpack://_N_E/./node_modules/@sentry/utils/esm/string.js","webpack://_N_E/./node_modules/@sentry/utils/esm/supports.js","webpack://_N_E/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://_N_E/./node_modules/@sentry/utils/esm/time.js","webpack://_N_E/./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack://_N_E/./node_modules/next/dist/client/head-manager.js","webpack://_N_E/./node_modules/next/dist/client/index.js","webpack://_N_E/./node_modules/next/dist/client/next.js","webpack://_N_E/./node_modules/next/dist/client/normalize-trailing-slash.js","webpack://_N_E/./node_modules/next/dist/client/page-loader.js","webpack://_N_E/./node_modules/next/dist/client/performance-relayer.js","webpack://_N_E/./node_modules/next/dist/client/portal/index.js","webpack://_N_E/./node_modules/next/dist/client/request-idle-callback.js","webpack://_N_E/./node_modules/next/dist/client/route-announcer.js","webpack://_N_E/./node_modules/next/dist/client/route-loader.js","webpack://_N_E/./node_modules/next/dist/client/router.js","webpack://_N_E/./node_modules/next/dist/client/script.js","webpack://_N_E/./node_modules/next/dist/client/with-router.js","webpack://_N_E/./node_modules/next/dist/pages/_error.js","webpack://_N_E/./node_modules/next/dist/shared/lib/amp-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/amp.js","webpack://_N_E/./node_modules/next/dist/shared/lib/head-manager-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/head.js","webpack://_N_E/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js","webpack://_N_E/./node_modules/next/dist/shared/lib/mitt.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router/router.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router/utils/format-url.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router/utils/querystring.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js","webpack://_N_E/./node_modules/next/dist/shared/lib/router/utils/route-regex.js","webpack://_N_E/./node_modules/next/dist/shared/lib/runtime-config.js","webpack://_N_E/./node_modules/next/dist/shared/lib/side-effect.js","webpack://_N_E/./node_modules/next/dist/shared/lib/utils.js","webpack://_N_E/./sentry.client.config.js","webpack://_N_E/./node_modules/next/dist/build/polyfills/object-assign.js","webpack://_N_E/./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js","webpack://_N_E/./node_modules/next/dist/server/denormalize-page-path.js","webpack://_N_E/./node_modules/next/router.js","webpack://_N_E/./node_modules/process/browser.js","webpack://_N_E/./node_modules/regenerator-runtime/runtime.js","webpack://_N_E/./node_modules/tslib/tslib.es6.js"],"sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(o){return r.resolve(t()).then(function(){return o})},function(o){return r.resolve(t()).then(function(){throw o})})});\n","import { SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.duration = 0;\n this.status = SessionStatus.Ok;\n this.init = true;\n this.ignoreDuration = false;\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n }\n else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n var duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === SessionStatus.Ok) {\n this.update({ status: SessionStatus.Exited });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: dropUndefinedKeys({\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n }),\n });\n };\n return Session;\n}());\nexport { Session };\n//# sourceMappingURL=session.js.map","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable max-lines */\nimport { SessionStatus, } from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\nimport { Scope } from './scope';\nimport { Session } from './session';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n this.bindClient(client);\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var _a, _b, _c, _d, _e;\n (_c = (_b = (_a = this.getStackTop()) === null || _a === void 0 ? void 0 : _a.scope) === null || _b === void 0 ? void 0 : _b.getSession()) === null || _c === void 0 ? void 0 : _c.close();\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n (_e = (_d = this.getStackTop()) === null || _d === void 0 ? void 0 : _d.scope) === null || _e === void 0 ? void 0 : _e.setSession();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n var userAgent = (global.navigator || {}).userAgent;\n var session = new Session(__assign(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), (userAgent && { userAgent: userAgent })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === SessionStatus.Ok) {\n currentSession.update({ status: SessionStatus.Exited });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n };\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\n }\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n var _a, _b, _c;\n try {\n var activeDomain = (_c = (_b = (_a = getMainCarrier().__SENTRY__) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b.domain) === null || _c === void 0 ? void 0 : _c.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub)\n return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifiying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getRequestSession = function () {\n return this._requestSession;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setRequestSession = function (requestSession) {\n this._requestSession = requestSession;\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n var _a, _b, _c, _d;\n // often, this span will be a transaction, but it's not guaranteed to be\n var span = this.getSpan();\n // try it the new way first\n if ((_a = span) === null || _a === void 0 ? void 0 : _a.transaction) {\n return (_b = span) === null || _b === void 0 ? void 0 : _b.transaction;\n }\n // fallback to the old way (known bug: this only finds transactions with sampled = true)\n if ((_d = (_c = span) === null || _c === void 0 ? void 0 : _c.spanRecorder) === null || _d === void 0 ? void 0 : _d.spans[0]) {\n return span.spanRecorder.spans[0];\n }\n // neither way found a transaction\n return undefined;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs = __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxCrumbs);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional informartion about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n var _a;\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relys on that.\n if (this._span) {\n event.contexts = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = (_a = this._span.transaction) === null || _a === void 0 ? void 0 : _a.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n void result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n void _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\n }\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Retruns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception, captureContext) {\n var syntheticException;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, captureContext) {\n var syntheticException;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext: captureContext } : undefined;\n return callOnHub('captureMessage', message, level, __assign({ originalException: message, syntheticException: syntheticException }, context));\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}\n//# sourceMappingURL=index.js.map","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map","/** JSDoc */\n// eslint-disable-next-line import/export\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));\n//# sourceMappingURL=severity.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n // This checks prevents most of the occurrences of the bug linked below:\n // https://github.com/getsentry/sentry-javascript/issues/2622\n // The bug is caused by multiple SDK instances, where one is minified and one is using non-mangled code.\n // Unfortunatelly we cannot fix it reliably (thus reserved property in rollup's terser config),\n // as we cannot force people using multiple instances in their apps to sync SDK versions.\n var options = typeof self._mergeOptions === 'function' ? self._mergeOptions(clientOptions) : {};\n if (typeof self._shouldDropEvent !== 'function') {\n return event;\n }\n return self._shouldDropEvent(event, options) ? null : event;\n }\n return event;\n });\n };\n /** JSDoc */\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n return false;\n };\n /** JSDoc */\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (!options.ignoreInternal) {\n return false;\n }\n try {\n return ((event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false);\n }\n catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n };\n /** JSDoc */\n InboundFilters.prototype._isDeniedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? false : options.denyUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._isAllowedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? true : options.allowUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n allowUrls: __spread((this._options.whitelistUrls || []), (this._options.allowUrls || []), (clientOptions.whitelistUrls || []), (clientOptions.allowUrls || [])),\n denyUrls: __spread((this._options.blacklistUrls || []), (this._options.denyUrls || []), (clientOptions.blacklistUrls || []), (clientOptions.denyUrls || [])),\n ignoreErrors: __spread((this._options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n };\n };\n /** JSDoc */\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n };\n /** JSDoc */\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return (frames_1 && frames_1[frames_1.length - 1].filename) || null;\n }\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return (frames_2 && frames_2[frames_2.length - 1].filename) || null;\n }\n return null;\n }\n catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n//# sourceMappingURL=inboundfilters.js.map","/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\nimport { __assign } from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function computeStackTrace(ex) {\n var stack = null;\n var popSize = 0;\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n }\n else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\nfunction computeStackTraceFromStackProp(ex) {\n if (!ex || !ex.stack) {\n return null;\n }\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n for (var i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n // Arpad: Working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n var url = parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2];\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n var func = parts[1] || UNKNOWN_FUNCTION;\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n if (isSafariExtension || isSafariWebExtension) {\n func = func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION;\n url = isSafariExtension ? \"safari-extension:\" + url : \"safari-web-extension:\" + url;\n }\n element = {\n url: url,\n func: func,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || \"eval\";\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n }\n else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n }\n else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n }\n else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace, popSize) {\n try {\n return __assign(__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });\n }\n catch (e) {\n return stacktrace;\n }\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n//# sourceMappingURL=tracekit.js.map","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n if (frames && frames.length) {\n exception.stacktrace = { frames: frames };\n }\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception],\n },\n };\n}\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || '';\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(function (frame) { return ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }); })\n .reverse();\n}\n//# sourceMappingURL=parsers.js.map","import { __assign } from \"tslib\";\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise, } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromException(options, exception, hint) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(options, message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n // eslint-disable-next-line no-param-reassign\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name, code, and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n if ('code' in domException) {\n event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': \"\" + domException.code });\n }\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event = {\n message: input,\n };\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n//# sourceMappingURL=eventbuilder.js.map","export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n // eslint-disable-next-line no-prototype-builtins\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n//# sourceMappingURL=polyfill.js.map","import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n __extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n//# sourceMappingURL=error.js.map","import { __read } from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n }\n else {\n this._fromComponents(from);\n }\n this._validate();\n }\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, publicKey = _a.publicKey;\n return (protocol + \"://\" + publicKey + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n };\n /** Parses a string into this Dsn. */\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n var _a = __read(match.slice(1), 6), protocol = _a[0], publicKey = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n this._fromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, publicKey: publicKey });\n };\n /** Maps Dsn components into this instance. */\n Dsn.prototype._fromComponents = function (components) {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n this.user = components.publicKey || '';\n this.protocol = components.protocol;\n this.publicKey = components.publicKey || '';\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n Dsn.prototype._validate = function () {\n var _this = this;\n ['protocol', 'publicKey', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE + \": \" + component + \" missing\");\n }\n });\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid projectId \" + this.projectId);\n }\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE + \": Invalid protocol \" + this.protocol);\n }\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid port \" + this.port);\n }\n };\n return Dsn;\n}());\nexport { Dsn };\n//# sourceMappingURL=dsn.js.map","import { Dsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n **/\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn, metadata, tunnel) {\n if (metadata === void 0) { metadata = {}; }\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Does this transport force envelopes? */\n API.prototype.forceEnvelope = function () {\n return !!this._tunnel;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n API.prototype.getBaseApiEndpoint = function () {\n var dsn = this.getDsn();\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port + (dsn.path ? \"/\" + dsn.path : '') + \"/api/\";\n };\n /** Returns the store endpoint URL. */\n API.prototype.getStoreEndpoint = function () {\n return this._getIngestEndpoint('store');\n };\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return this.getStoreEndpoint() + \"?\" + this._encodedAuth();\n };\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n if (this.forceEnvelope()) {\n return this._tunnel;\n }\n return this._getEnvelopeEndpoint() + \"?\" + this._encodedAuth();\n };\n /** Returns only the path component for the store endpoint. */\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this.getDsn();\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n var dsn = this.getDsn();\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.publicKey);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n };\n /** Returns the url to the report dialog endpoint. */\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) { dialogOptions = {}; }\n var dsn = this.getDsn();\n var endpoint = this.getBaseApiEndpoint() + \"embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n }\n else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n return endpoint;\n };\n /** Returns the envelope endpoint URL. */\n API.prototype._getEnvelopeEndpoint = function () {\n return this._getIngestEndpoint('envelope');\n };\n /** Returns the ingest API endpoint for target. */\n API.prototype._getIngestEndpoint = function (target) {\n if (this._tunnel) {\n return this._tunnel;\n }\n var base = this.getBaseApiEndpoint();\n var dsn = this.getDsn();\n return \"\" + base + dsn.projectId + \"/\" + target + \"/\";\n };\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n API.prototype._encodedAuth = function () {\n var dsn = this.getDsn();\n var auth = {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n };\n return urlEncode(auth);\n };\n return API;\n}());\nexport { API };\n//# sourceMappingURL=api.js.map","import { __assign } from \"tslib\";\nimport { API, captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, logger } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n if (options === void 0) { options = {}; }\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\n }\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = __assign({}, event);\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n processedEvent.extra = __assign(__assign({}, processedEvent.extra), { arguments: args });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // eslint-disable-line no-empty\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\n });\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n }\n catch (_oO) { }\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n logger.error(\"Missing eventId option in showReportDialog call\");\n return;\n }\n if (!options.dsn) {\n logger.error(\"Missing dsn option in showReportDialog call\");\n return;\n }\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n (document.head || document.body).appendChild(script);\n}\n//# sourceMappingURL=helpers.js.map","import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = __assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n var _this = this;\n if (this._onErrorHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (data) {\n var error = data.error;\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n var client = currentHub.getClient();\n var event = error === undefined && isString(data.msg)\n ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)\n : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error || data.msg, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }), data.url, data.line, data.column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n },\n type: 'error',\n });\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n var _this = this;\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (e) {\n var error = e;\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n }\n catch (_oO) {\n // no-empty\n }\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? _this._eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n return;\n },\n type: 'unhandledrejection',\n });\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n var event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n };\n /**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\n GlobalHandlers.prototype._eventFromRejectionWithPrimitive = function (reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: \"Non-Error promise rejection captured with value: \" + String(reason),\n },\n ],\n },\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map","import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n if (this._options.eventTarget) {\n var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n };\n /** JSDoc */\n TryCatch.prototype._wrapTimeFunction = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TryCatch.prototype._wrapRAF = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(this, wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }));\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapEventTarget = function (target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.call(this, eventName, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (eventName, fn, options) {\n var _a;\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn;\n try {\n var originalEventHandler = (_a = wrappedEventHandler) === null || _a === void 0 ? void 0 : _a.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n };\n /** JSDoc */\n TryCatch.prototype._wrapXHR = function (originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n }, {\n event: event,\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._consoleBreadcrumb.apply(_this, __spread(args));\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._domBreadcrumb.apply(_this, __spread(args));\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._xhrBreadcrumb.apply(_this, __spread(args));\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._fetchBreadcrumb.apply(_this, __spread(args));\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._historyBreadcrumb.apply(_this, __spread(args));\n },\n type: 'history',\n });\n }\n };\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target;\n var keyAttrs = typeof this._options.dom === 'object' ? this._options.dom.serializeAttribute : undefined;\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target, keyAttrs)\n : htmlTreeAsString(handlerData.event, keyAttrs);\n }\n catch (e) {\n target = '';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n var _a = handlerData.xhr.__sentry_xhr__ || {}, method = _a.method, url = _a.url, status_code = _a.status_code, body = _a.body;\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code,\n },\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n input: body,\n });\n return;\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n return self._handler(event, hint);\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, __spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n//# sourceMappingURL=linkederrors.js.map","import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var _a, _b, _c;\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n // grab as much info as exists and add it to the event\n var url = ((_a = event.request) === null || _a === void 0 ? void 0 : _a.url) || ((_b = global.location) === null || _b === void 0 ? void 0 : _b.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n var headers = __assign(__assign(__assign({}, (_c = event.request) === null || _c === void 0 ? void 0 : _c.headers), (referrer && { Referer: referrer })), (userAgent && { 'User-Agent': userAgent }));\n var request = __assign(__assign({}, (url && { url: url })), { headers: headers });\n return __assign(__assign({}, event), { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n//# sourceMappingURL=useragent.js.map","/** Deduplication filter */\nvar Dedupe = /** @class */ (function () {\n function Dedupe() {\n /**\n * @inheritDoc\n */\n this.name = Dedupe.id;\n }\n /**\n * @inheritDoc\n */\n Dedupe.prototype.setupOnce = function (addGlobalEventProcessor, getCurrentHub) {\n addGlobalEventProcessor(function (currentEvent) {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (self._shouldDropEvent(currentEvent, self._previousEvent)) {\n return null;\n }\n }\n catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n };\n /** JSDoc */\n Dedupe.prototype._shouldDropEvent = function (currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n if (this._isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n if (this._isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n return false;\n };\n /** JSDoc */\n Dedupe.prototype._isSameMessageEvent = function (currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n if (currentMessage !== previousMessage) {\n return false;\n }\n if (!this._isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!this._isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._getFramesFromEvent = function (event) {\n var exception = event.exception;\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n }\n catch (_oO) {\n return undefined;\n }\n }\n else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n };\n /** JSDoc */\n Dedupe.prototype._isSameStacktrace = function (currentEvent, previousEvent) {\n var currentFrames = this._getFramesFromEvent(currentEvent);\n var previousFrames = this._getFramesFromEvent(previousEvent);\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n currentFrames = currentFrames;\n previousFrames = previousFrames;\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n // Otherwise, compare the two\n for (var i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n if (frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function) {\n return false;\n }\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._getExceptionFromEvent = function (event) {\n return event.exception && event.exception.values && event.exception.values[0];\n };\n /** JSDoc */\n Dedupe.prototype._isSameExceptionEvent = function (currentEvent, previousEvent) {\n var previousException = this._getExceptionFromEvent(previousEvent);\n var currentException = this._getExceptionFromEvent(currentEvent);\n if (!previousException || !currentException) {\n return false;\n }\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n if (!this._isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!this._isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._isSameFingerprint = function (currentEvent, previousEvent) {\n var currentFingerprint = currentEvent.fingerprint;\n var previousFingerprint = previousEvent.fingerprint;\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n currentFingerprint = currentFingerprint;\n previousFingerprint = previousFingerprint;\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n }\n catch (_oO) {\n return false;\n }\n };\n /**\n * @inheritDoc\n */\n Dedupe.id = 'Dedupe';\n return Dedupe;\n}());\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map","import { __assign } from \"tslib\";\nexport * from './exports';\nimport { Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nimport * as BrowserIntegrations from './integrations';\nimport * as Transports from './transports';\nvar windowIntegrations = {};\n// This block is needed to add compatibility with the integrations packages when used with a CDN\nvar _window = getGlobalObject();\nif (_window.Sentry && _window.Sentry.Integrations) {\n windowIntegrations = _window.Sentry.Integrations;\n}\nvar INTEGRATIONS = __assign(__assign(__assign({}, windowIntegrations), CoreIntegrations), BrowserIntegrations);\nexport { INTEGRATIONS as Integrations, Transports };\n//# sourceMappingURL=index.js.map","export var SDK_VERSION = '6.8.0';\n//# sourceMappingURL=version.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce(function (acc, integrations) {\n if (acc.every(function (accIntegration) { return integrations.name !== accIntegration.name; })) {\n acc.push(integrations);\n }\n return acc;\n }, []);\n}\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && __spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = __spread(filterDuplicates(defaultIntegrations));\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = __spread(integrations.filter(function (integrations) {\n return userIntegrations.every(function (userIntegration) { return userIntegration.name !== integrations.name; });\n }), filterDuplicates(userIntegrations));\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}\n//# sourceMappingURL=integration.js.map","import { __assign, __read, __spread, __values } from \"tslib\";\n/* eslint-disable max-lines */\nimport { Scope } from '@sentry/hub';\nimport { SessionStatus, } from '@sentry/types';\nimport { dateTimestampInSeconds, Dsn, isPlainObject, isPrimitive, isThenable, logger, normalize, SentryError, SyncPromise, truncate, uuid4, } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Number of call being processed */\n this._processing = 0;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._process(this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n this._process(promisedEvent\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var eventId = hint && hint.event_id;\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureSession = function (session) {\n if (!this._isEnabled()) {\n logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n if (!(typeof session.release === 'string')) {\n logger.warn('Discarded session because of missing or non-string release');\n }\n else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientProcessing(timeout).then(function (ready) {\n return _this._getBackend()\n .getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return ready && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled()) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Updates existing session based on the provided event */\n BaseClient.prototype._updateSessionFromEvent = function (session, event) {\n var e_1, _a;\n var crashed = false;\n var errored = false;\n var exceptions = event.exception && event.exception.values;\n if (exceptions) {\n errored = true;\n try {\n for (var exceptions_1 = __values(exceptions), exceptions_1_1 = exceptions_1.next(); !exceptions_1_1.done; exceptions_1_1 = exceptions_1.next()) {\n var ex = exceptions_1_1.value;\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (exceptions_1_1 && !exceptions_1_1.done && (_a = exceptions_1.return)) _a.call(exceptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === SessionStatus.Ok;\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n if (shouldUpdateAndSend) {\n session.update(__assign(__assign({}, (crashed && { status: SessionStatus.Crashed })), { errors: session.errors || Number(errored || crashed) }));\n this.captureSession(session);\n }\n };\n /** Deliver captured session to Sentry */\n BaseClient.prototype._sendSession = function (session) {\n this._getBackend().sendSession(session);\n };\n /** Waits for the client to be done with processing. */\n BaseClient.prototype._isClientProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this._processing == 0) {\n clearInterval(interval);\n resolve(true);\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions().normalizeDepth, normalizeDepth = _a === void 0 ? 3 : _a;\n var prepared = __assign(__assign({}, event), { event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()), timestamp: event.timestamp || dateTimestampInSeconds() });\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n var finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n // We prepare the result here with a resolved Event.\n var result = SyncPromise.resolve(prepared);\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (__assign(__assign({}, b), (b.data && {\n data: normalize(b.data, depth),\n }))); }),\n })), (event.user && {\n user: normalize(event.user, depth),\n })), (event.contexts && {\n contexts: normalize(event.contexts, depth),\n })), (event.extra && {\n extra: normalize(event.extra, depth),\n }));\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n return normalized;\n };\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n BaseClient.prototype._applyClientOptions = function (event) {\n var options = this.getOptions();\n var environment = options.environment, release = options.release, dist = options.dist, _a = options.maxValueLength, maxValueLength = _a === void 0 ? 250 : _a;\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = __spread((event.sdk.integrations || []), integrationsArray);\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\n };\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n BaseClient.prototype._captureEvent = function (event, hint, scope) {\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n logger.error(reason);\n return undefined;\n });\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n if (!this._isEnabled()) {\n return SyncPromise.reject(new SentryError('SDK not enabled, will not capture event.'));\n }\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject(new SentryError(\"Discarding event because it's not included in the random sample (sampling rate = \" + sampleRate + \")\"));\n }\n return this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n if (prepared === null) {\n throw new SentryError('An event processor returned null, will not send event.');\n }\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n return _this._ensureBeforeSendRv(beforeSendResult);\n })\n .then(function (processedEvent) {\n if (processedEvent === null) {\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n var session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n _this._updateSessionFromEvent(session, processedEvent);\n }\n _this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, function (reason) {\n if (reason instanceof SentryError) {\n throw reason;\n }\n _this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\"Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: \" + reason);\n });\n };\n /**\n * Occupies the client with processing and event\n */\n BaseClient.prototype._process = function (promise) {\n var _this = this;\n this._processing += 1;\n void promise.then(function (value) {\n _this._processing -= 1;\n return value;\n }, function (reason) {\n _this._processing -= 1;\n return reason;\n });\n };\n /**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\n BaseClient.prototype._ensureBeforeSendRv = function (rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(function (event) {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n }, function (e) {\n throw new SentryError(\"beforeSend rejected with \" + e);\n });\n }\n else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n };\n return BaseClient;\n}());\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map","/** The status of an event. */\n// eslint-disable-next-line import/export\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n }\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));\n//# sourceMappingURL=status.js.map","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped,\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n//# sourceMappingURL=noop.js.map","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n void this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendSession = function (session) {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n void this._transport.sendSession(session).then(null, function (reason) {\n logger.error(\"Error while sending session: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n//# sourceMappingURL=basebackend.js.map","import { __assign, __read, __rest, __spread } from \"tslib\";\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api) {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n var _a = api.metadata.sdk, name = _a.name, version = _a.version;\n return { name: name, version: version };\n}\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = __spread((event.sdk.integrations || []), (sdkInfo.integrations || []));\n event.sdk.packages = __spread((event.sdk.packages || []), (sdkInfo.packages || []));\n return event;\n}\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var envelopeHeaders = JSON.stringify(__assign(__assign({ sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));\n // I know this is hacky but we don't want to add `session` to request type since it's never rate limited\n var type = 'aggregates' in session ? 'sessions' : 'session';\n var itemHeaders = JSON.stringify({\n type: type,\n });\n return {\n body: envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + JSON.stringify(session),\n type: type,\n url: api.getEnvelopeEndpointWithUrlEncodedAuth(),\n };\n}\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var eventType = event.type || 'event';\n var useEnvelope = eventType === 'transaction' || api.forceEnvelope();\n var _a = event.debug_meta || {}, transactionSampling = _a.transactionSampling, metadata = __rest(_a, [\"transactionSampling\"]);\n var _b = transactionSampling || {}, samplingMethod = _b.method, sampleRate = _b.rate;\n if (Object.keys(metadata).length === 0) {\n delete event.debug_meta;\n }\n else {\n event.debug_meta = metadata;\n }\n var req = {\n body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n type: eventType,\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth(),\n };\n // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n var envelopeHeaders = JSON.stringify(__assign(__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));\n var itemHeaders = JSON.stringify({\n type: eventType,\n // TODO: Right now, sampleRate may or may not be defined (it won't be in the cases of inheritance and\n // explicitly-set sampling decisions). Are we good with that?\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n });\n // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n var envelope = envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + req.body;\n req.body = envelope;\n }\n return req;\n}\n//# sourceMappingURL=request.js.map","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\nvar PromiseBuffer = /** @class */ (function () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise to the queue.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task: PromiseLike`,\n * however, Promises were instantly created on the call-site, making them fall through the buffer limit.\n * @returns The original promise.\n */\n PromiseBuffer.prototype.add = function (taskProducer) {\n var _this = this;\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n var task = taskProducer();\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n void task\n .then(function () { return _this.remove(task); })\n .then(null, function () {\n return _this.remove(task).then(null, function () {\n // We have to add this catch here otherwise we have an unhandledPromiseRejection\n // because it's a new Promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * This will drain the whole queue, returns true if queue is empty or drained.\n * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n *\n * @param timeout Number in ms to wait until it resolves with false.\n */\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n void SyncPromise.all(_this._buffer)\n .then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, function () {\n resolve(true);\n });\n });\n };\n return PromiseBuffer;\n}());\nexport { PromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map","import { __values } from \"tslib\";\nimport { API } from '@sentry/core';\nimport { Status, } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, PromiseBuffer, SentryError } from '@sentry/utils';\nvar CATEGORY_MAPPING = {\n event: 'error',\n transaction: 'transaction',\n session: 'session',\n attachment: 'attachment',\n};\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = new PromiseBuffer(30);\n /** Locks transport after receiving rate limits in a response */\n this._rateLimits = {};\n this._api = new API(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n BaseTransport.prototype._handleResponse = function (_a) {\n var requestType = _a.requestType, response = _a.response, headers = _a.headers, resolve = _a.resolve, reject = _a.reject;\n var status = Status.fromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n var limited = this._handleRateLimit(headers);\n if (limited)\n logger.warn(\"Too many \" + requestType + \" requests, backing off until: \" + this._disabledUntil(requestType));\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n reject(response);\n };\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n BaseTransport.prototype._disabledUntil = function (requestType) {\n var category = CATEGORY_MAPPING[requestType];\n return this._rateLimits[category] || this._rateLimits.all;\n };\n /**\n * Checks if a category is rate limited\n */\n BaseTransport.prototype._isRateLimited = function (requestType) {\n return this._disabledUntil(requestType) > new Date(Date.now());\n };\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n BaseTransport.prototype._handleRateLimit = function (headers) {\n var e_1, _a, e_2, _b;\n var now = Date.now();\n var rlHeader = headers['x-sentry-rate-limits'];\n var raHeader = headers['retry-after'];\n if (rlHeader) {\n try {\n // rate limit headers are of the form\n //
,
,..\n // where each
is of the form\n // : : : \n // where\n // is a delay in ms\n // is the event type(s) (error, transaction, etc) being rate limited and is of the form\n // ;;...\n // is what's being limited (org, project, or key) - ignored by SDK\n // is an arbitrary string like \"org_quota\" - ignored by SDK\n for (var _c = __values(rlHeader.trim().split(',')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var limit = _d.value;\n var parameters = limit.split(':', 2);\n var headerDelay = parseInt(parameters[0], 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n try {\n for (var _e = (e_2 = void 0, __values(parameters[1].split(';'))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var category = _f.value;\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n }\n else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(now, raHeader));\n return true;\n }\n return false;\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { getGlobalObject, isNativeFetch, logger, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n /* eslint-disable @typescript-eslint/unbound-method */\n var _a, _b;\n // Fast path to avoid DOM I/O\n var global = getGlobalObject();\n if (isNativeFetch(global.fetch)) {\n return global.fetch.bind(global);\n }\n var document = global.document;\n var fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (typeof ((_a = document) === null || _a === void 0 ? void 0 : _a.createElement) === \"function\") {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n if ((_b = sandbox.contentWindow) === null || _b === void 0 ? void 0 : _b.fetch) {\n fetchImpl = sandbox.contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n return fetchImpl.bind(global);\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport(options, fetchImpl) {\n if (fetchImpl === void 0) { fetchImpl = getNativeFetchImplementation(); }\n var _this = _super.call(this, options) || this;\n _this._fetch = fetchImpl;\n return _this;\n }\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n FetchTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n var options = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n return this._buffer.add(function () {\n return new SyncPromise(function (resolve, reject) {\n void _this._fetch(sentryRequest.url, options)\n .then(function (response) {\n var headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: response,\n headers: headers,\n resolve: resolve,\n reject: reject,\n });\n })\n .catch(reject);\n });\n });\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n XHRTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer.add(function () {\n return new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n var headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n _this._handleResponse({ requestType: sentryRequest.type, response: request, headers: headers, resolve: resolve, reject: reject });\n }\n };\n request.open('POST', sentryRequest.url);\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n });\n });\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n __extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(this._options, exception, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n return eventFromMessage(this._options, message, level, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn, tunnel: this._options.tunnel, _metadata: this._options._metadata });\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n//# sourceMappingURL=backend.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseClient, SDK_VERSION } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n _this = _super.call(this, BrowserBackend, options) || this;\n return _this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n injectReportDialog(__assign(__assign({}, options), { dsn: options.dsn || this.getDsn() }));\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n _super.prototype._sendEvent.call(this, event);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { addInstrumentationHandler, getGlobalObject, logger, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new UserAgent(),\n];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n initAndBind(BrowserClient, options);\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n var client = getCurrentHub().getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn) {\n return internalWrap(fn)();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n if (typeof document === 'undefined') {\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n var hub = getCurrentHub();\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (typeof hub.startSession !== 'function' || typeof hub.captureSession !== 'function') {\n return;\n }\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n // We want to create a session for every navigation as well\n addInstrumentationHandler({\n callback: function (_a) {\n var from = _a.from, to = _a.to;\n // Don't create an additional session for the initial route or if the location did not change\n if (from === undefined || from === to) {\n return;\n }\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n },\n type: 'history',\n });\n}\n//# sourceMappingURL=sdk.js.map","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass, options) {\n var _a;\n if (options.debug === true) {\n logger.enable();\n }\n var hub = getCurrentHub();\n (_a = hub.getScope()) === null || _a === void 0 ? void 0 : _a.update(options.initialScope);\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n//# sourceMappingURL=sdk.js.map","import { getGlobalObject, logger } from '@sentry/utils';\nimport { SpanStatus } from '../spanstatus';\nimport { getActiveTransaction } from '../utils';\nvar global = getGlobalObject();\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection() {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', function () {\n var activeTransaction = getActiveTransaction();\n if (global.document.hidden && activeTransaction) {\n logger.log(\"[Tracing] Transaction: \" + SpanStatus.Cancelled + \" -> since tab moved to the background, op: \" + activeTransaction.op);\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(SpanStatus.Cancelled);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.finish();\n }\n });\n }\n else {\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n//# sourceMappingURL=backgroundtab.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { onHidden } from './onHidden';\nvar firstHiddenTime;\nexport var getFirstHidden = function () {\n if (firstHiddenTime === undefined) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = document.visibilityState === 'hidden' ? 0 : Infinity;\n // Update the time if/when the document becomes hidden.\n onHidden(function (_a) {\n var timeStamp = _a.timeStamp;\n return (firstHiddenTime = timeStamp);\n }, true);\n }\n return {\n get timeStamp() {\n return firstHiddenTime;\n },\n };\n};\n//# sourceMappingURL=getFirstHidden.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar inputPromise;\nexport var whenInput = function () {\n if (!inputPromise) {\n inputPromise = new Promise(function (r) {\n return ['scroll', 'keydown', 'pointerdown'].map(function (type) {\n addEventListener(type, r, {\n once: true,\n passive: true,\n capture: true,\n });\n });\n });\n }\n return inputPromise;\n};\n//# sourceMappingURL=whenInput.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var bindReporter = function (callback, metric, po, observeAllUpdates) {\n var prevValue;\n return function () {\n if (po && metric.isFinal) {\n po.disconnect();\n }\n if (metric.value >= 0) {\n if (observeAllUpdates || metric.isFinal || document.visibilityState === 'hidden') {\n metric.delta = metric.value - (prevValue || 0);\n // Report the metric if there's a non-zero delta, if the metric is\n // final, or if no previous value exists (which can happen in the case\n // of the document becoming hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (metric.delta || metric.isFinal || prevValue === undefined) {\n callback(metric);\n prevValue = metric.value;\n }\n }\n }\n };\n};\n//# sourceMappingURL=bindReporter.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { generateUniqueID } from './generateUniqueID';\nexport var initMetric = function (name, value) {\n if (value === void 0) { value = -1; }\n return {\n name: name,\n value: value,\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n isFinal: false,\n };\n};\n//# sourceMappingURL=initMetric.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Performantly generate a unique, 27-char string by combining the current\n * timestamp with a 13-digit random number.\n * @return {string}\n */\nexport var generateUniqueID = function () {\n return Date.now() + \"-\" + (Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n};\n//# sourceMappingURL=generateUniqueID.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport var observe = function (type, callback) {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n var po = new PerformanceObserver(function (l) { return l.getEntries().map(callback); });\n po.observe({ type: type, buffered: true });\n return po;\n }\n }\n catch (e) {\n // Do nothing.\n }\n return;\n};\n//# sourceMappingURL=observe.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar isUnloading = false;\nvar listenersAdded = false;\nvar onPageHide = function (event) {\n isUnloading = !event.persisted;\n};\nvar addListeners = function () {\n addEventListener('pagehide', onPageHide);\n // `beforeunload` is needed to fix this bug:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=987409\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n addEventListener('beforeunload', function () { });\n};\nexport var onHidden = function (cb, once) {\n if (once === void 0) { once = false; }\n if (!listenersAdded) {\n addListeners();\n listenersAdded = true;\n }\n addEventListener('visibilitychange', function (_a) {\n var timeStamp = _a.timeStamp;\n if (document.visibilityState === 'hidden') {\n cb({ timeStamp: timeStamp, isUnloading: isUnloading });\n }\n }, { capture: true, once: once });\n};\n//# sourceMappingURL=onHidden.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { getFirstHidden } from './lib/getFirstHidden';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { whenInput } from './lib/whenInput';\nexport var getLCP = function (onReport, reportAllChanges) {\n if (reportAllChanges === void 0) { reportAllChanges = false; }\n var metric = initMetric('LCP');\n var firstHidden = getFirstHidden();\n var report;\n var entryHandler = function (entry) {\n // The startTime attribute returns the value of the renderTime if it is not 0,\n // and the value of the loadTime otherwise.\n var value = entry.startTime;\n // If the page was hidden prior to paint time of the entry,\n // ignore it and mark the metric as final, otherwise add the entry.\n if (value < firstHidden.timeStamp) {\n metric.value = value;\n metric.entries.push(entry);\n }\n else {\n metric.isFinal = true;\n }\n report();\n };\n var po = observe('largest-contentful-paint', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, po, reportAllChanges);\n var onFinal = function () {\n if (!metric.isFinal) {\n po.takeRecords().map(entryHandler);\n metric.isFinal = true;\n report();\n }\n };\n void whenInput().then(onFinal);\n onHidden(onFinal, true);\n }\n};\n//# sourceMappingURL=getLCP.js.map","import { __assign, __rest } from \"tslib\";\nimport { browserPerformanceTimeOrigin, getGlobalObject, htmlTreeAsString, isNodeEnv, logger } from '@sentry/utils';\nimport { msToSec } from '../utils';\nimport { getCLS } from './web-vitals/getCLS';\nimport { getFID } from './web-vitals/getFID';\nimport { getLCP } from './web-vitals/getLCP';\nimport { getFirstHidden } from './web-vitals/lib/getFirstHidden';\nvar global = getGlobalObject();\n/** Class tracking metrics */\nvar MetricsInstrumentation = /** @class */ (function () {\n function MetricsInstrumentation() {\n var _a;\n this._measurements = {};\n this._performanceCursor = 0;\n if (!isNodeEnv() && ((_a = global) === null || _a === void 0 ? void 0 : _a.performance)) {\n if (global.performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n this._trackCLS();\n this._trackLCP();\n this._trackFID();\n }\n }\n /** Add performance related spans to a transaction */\n MetricsInstrumentation.prototype.addPerformanceEntries = function (transaction) {\n var _this = this;\n if (!global || !global.performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n logger.log('[Tracing] Adding & adjusting spans using Performance API');\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var entryScriptSrc;\n if (global.document) {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < document.scripts.length; i++) {\n // We go through all scripts on the page and look for 'data-entry'\n // We remember the name and measure the time between this script finished loading and\n // our mark 'sentry-tracing-init'\n if (document.scripts[i].dataset.entry === 'true') {\n entryScriptSrc = document.scripts[i].src;\n break;\n }\n }\n }\n var entryScriptStartTimestamp;\n var tracingInitMarkStartTime;\n var responseStartTimestamp;\n var requestStartTimestamp;\n global.performance\n .getEntries()\n .slice(this._performanceCursor)\n .forEach(function (entry) {\n var startTime = msToSec(entry.startTime);\n var duration = msToSec(entry.duration);\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n switch (entry.entryType) {\n case 'navigation': {\n addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n var startTimestamp = addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n if (tracingInitMarkStartTime === undefined && entry.name === 'sentry-tracing-init') {\n tracingInitMarkStartTime = startTimestamp;\n }\n // capture web vitals\n var firstHidden = getFirstHidden();\n // Only report if the page wasn't hidden prior to the web vital.\n var shouldRecord = entry.startTime < firstHidden.timeStamp;\n if (entry.name === 'first-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FP');\n _this._measurements['fp'] = { value: entry.startTime };\n _this._measurements['mark.fp'] = { value: startTimestamp };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FCP');\n _this._measurements['fcp'] = { value: entry.startTime };\n _this._measurements['mark.fcp'] = { value: startTimestamp };\n }\n break;\n }\n case 'resource': {\n var resourceName = entry.name.replace(window.location.origin, '');\n var endTimestamp = addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n // We remember the entry script end time to calculate the difference to the first init mark\n if (entryScriptStartTimestamp === undefined && (entryScriptSrc || '').indexOf(resourceName) > -1) {\n entryScriptStartTimestamp = endTimestamp;\n }\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n if (entryScriptStartTimestamp !== undefined && tracingInitMarkStartTime !== undefined) {\n _startChild(transaction, {\n description: 'evaluation',\n endTimestamp: tracingInitMarkStartTime,\n op: 'script',\n startTimestamp: entryScriptStartTimestamp,\n });\n }\n this._performanceCursor = Math.max(performance.getEntries().length - 1, 0);\n this._trackNavigator(transaction);\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // normalize applicable web vital values to be relative to transaction.startTimestamp\n var timeOrigin_1 = msToSec(browserPerformanceTimeOrigin);\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n logger.log('[Measurements] Adding TTFB');\n this._measurements['ttfb'] = { value: (responseStartTimestamp - transaction.startTimestamp) * 1000 };\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n this._measurements['ttfb.requestTime'] = { value: (responseStartTimestamp - requestStartTimestamp) * 1000 };\n }\n }\n ['fcp', 'fp', 'lcp'].forEach(function (name) {\n if (!_this._measurements[name] || timeOrigin_1 >= transaction.startTimestamp) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n var oldValue = _this._measurements[name].value;\n var measurementTimestamp = timeOrigin_1 + msToSec(oldValue);\n // normalizedValue should be in milliseconds\n var normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n var delta = normalizedValue - oldValue;\n logger.log(\"[Measurements] Normalized \" + name + \" from \" + oldValue + \" to \" + normalizedValue + \" (\" + delta + \")\");\n _this._measurements[name].value = normalizedValue;\n });\n if (this._measurements['mark.fid'] && this._measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: this._measurements['mark.fid'].value + msToSec(this._measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: this._measurements['mark.fid'].value,\n });\n }\n transaction.setMeasurements(this._measurements);\n this._tagMetricInfo(transaction);\n }\n };\n /** Add LCP / CLS data to transaction to allow debugging */\n MetricsInstrumentation.prototype._tagMetricInfo = function (transaction) {\n if (this._lcpEntry) {\n logger.log('[Measurements] Adding LCP Data');\n // Capture Properties of the LCP element that contributes to the LCP.\n if (this._lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(this._lcpEntry.element));\n }\n if (this._lcpEntry.id) {\n transaction.setTag('lcp.id', this._lcpEntry.id);\n }\n if (this._lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', this._lcpEntry.url.trim().slice(0, 200));\n }\n transaction.setTag('lcp.size', this._lcpEntry.size);\n }\n if (this._clsEntry) {\n logger.log('[Measurements] Adding CLS Data');\n this._clsEntry.sources.map(function (source, index) {\n return transaction.setTag(\"cls.source.\" + (index + 1), htmlTreeAsString(source.node));\n });\n }\n };\n /** Starts tracking the Cumulative Layout Shift on the current page. */\n MetricsInstrumentation.prototype._trackCLS = function () {\n var _this = this;\n getCLS(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n logger.log('[Measurements] Adding CLS');\n _this._measurements['cls'] = { value: metric.value };\n _this._clsEntry = entry;\n });\n };\n /**\n * Capture the information of the user agent.\n */\n MetricsInstrumentation.prototype._trackNavigator = function (transaction) {\n var navigator = global.navigator;\n if (!navigator) {\n return;\n }\n // track network connectivity\n var connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n if (isMeasurementValue(connection.rtt)) {\n this._measurements['connection.rtt'] = { value: connection.rtt };\n }\n if (isMeasurementValue(connection.downlink)) {\n this._measurements['connection.downlink'] = { value: connection.downlink };\n }\n }\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', String(navigator.deviceMemory));\n }\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n };\n /** Starts tracking the Largest Contentful Paint on the current page. */\n MetricsInstrumentation.prototype._trackLCP = function () {\n var _this = this;\n getLCP(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n logger.log('[Measurements] Adding LCP');\n _this._measurements['lcp'] = { value: metric.value };\n _this._measurements['mark.lcp'] = { value: timeOrigin + startTime };\n _this._lcpEntry = entry;\n });\n };\n /** Starts tracking the First Input Delay on the current page. */\n MetricsInstrumentation.prototype._trackFID = function () {\n var _this = this;\n getFID(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n logger.log('[Measurements] Adding FID');\n _this._measurements['fid'] = { value: metric.value };\n _this._measurements['mark.fid'] = { value: timeOrigin + startTime };\n });\n };\n return MetricsInstrumentation;\n}());\nexport { MetricsInstrumentation };\n/** Instrument navigation entries */\nfunction addNavigationSpans(transaction, entry, timeOrigin) {\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'unloadEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'redirect', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'domContentLoadedEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'loadEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'connect', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({\n transaction: transaction,\n entry: entry,\n event: 'secureConnection',\n timeOrigin: timeOrigin,\n eventEnd: 'connectEnd',\n description: 'TLS/SSL',\n });\n addPerformanceNavigationTiming({\n transaction: transaction,\n entry: entry,\n event: 'fetch',\n timeOrigin: timeOrigin,\n eventEnd: 'domainLookupStart',\n description: 'cache',\n });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'domainLookup', timeOrigin: timeOrigin, description: 'DNS' });\n addRequest(transaction, entry, timeOrigin);\n}\n/** Create measure related spans */\nfunction addMeasureSpans(transaction, entry, startTime, duration, timeOrigin) {\n var measureStartTimestamp = timeOrigin + startTime;\n var measureEndTimestamp = measureStartTimestamp + duration;\n _startChild(transaction, {\n description: entry.name,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType,\n startTimestamp: measureStartTimestamp,\n });\n return measureStartTimestamp;\n}\n/** Create resource-related spans */\nexport function addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return undefined;\n }\n var data = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n var startTimestamp = timeOrigin + startTime;\n var endTimestamp = startTimestamp + duration;\n _startChild(transaction, {\n description: resourceName,\n endTimestamp: endTimestamp,\n op: entry.initiatorType ? \"resource.\" + entry.initiatorType : 'resource',\n startTimestamp: startTimestamp,\n data: data,\n });\n return endTimestamp;\n}\n/** Create performance navigation related spans */\nfunction addPerformanceNavigationTiming(props) {\n var transaction = props.transaction, entry = props.entry, event = props.event, timeOrigin = props.timeOrigin, eventEnd = props.eventEnd, description = props.description;\n var end = eventEnd ? entry[eventEnd] : entry[event + \"End\"];\n var start = entry[event + \"Start\"];\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: (description !== null && description !== void 0 ? description : event),\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n/** Create request and response related spans */\nfunction addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n });\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n });\n}\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nexport function _startChild(transaction, _a) {\n var startTimestamp = _a.startTimestamp, ctx = __rest(_a, [\"startTimestamp\"]);\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n return transaction.startChild(__assign({ startTimestamp: startTimestamp }, ctx));\n}\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n return typeof value === 'number' && isFinite(value);\n}\n//# sourceMappingURL=metrics.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nexport var getCLS = function (onReport, reportAllChanges) {\n if (reportAllChanges === void 0) { reportAllChanges = false; }\n var metric = initMetric('CLS', 0);\n var report;\n var entryHandler = function (entry) {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n metric.value += entry.value;\n metric.entries.push(entry);\n report();\n }\n };\n var po = observe('layout-shift', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, po, reportAllChanges);\n onHidden(function (_a) {\n var isUnloading = _a.isUnloading;\n po.takeRecords().map(entryHandler);\n if (isUnloading) {\n metric.isFinal = true;\n }\n report();\n });\n }\n};\n//# sourceMappingURL=getCLS.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { getFirstHidden } from './lib/getFirstHidden';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nexport var getFID = function (onReport) {\n var metric = initMetric('FID');\n var firstHidden = getFirstHidden();\n var entryHandler = function (entry) {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < firstHidden.timeStamp) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n metric.isFinal = true;\n report();\n }\n };\n var po = observe('first-input', entryHandler);\n var report = bindReporter(onReport, metric, po);\n if (po) {\n onHidden(function () {\n po.takeRecords().map(entryHandler);\n po.disconnect();\n }, true);\n }\n else {\n if (window.perfMetrics && window.perfMetrics.onFirstInputDelay) {\n window.perfMetrics.onFirstInputDelay(function (value, event) {\n // Only report if the page wasn't hidden prior to the first input.\n if (event.timeStamp < firstHidden.timeStamp) {\n metric.value = value;\n metric.isFinal = true;\n metric.entries = [\n {\n entryType: 'first-input',\n name: event.type,\n target: event.target,\n cancelable: event.cancelable,\n startTime: event.timeStamp,\n processingStart: event.timeStamp + value,\n },\n ];\n report();\n }\n });\n }\n }\n};\n//# sourceMappingURL=getFID.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils';\nimport { SpanStatus } from '../spanstatus';\nimport { getActiveTransaction, hasTracingEnabled } from '../utils';\nexport var DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\nexport var defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = __assign(__assign({}, defaultRequestInstrumentationOptions), _options), traceFetch = _a.traceFetch, traceXHR = _a.traceXHR, tracingOrigins = _a.tracingOrigins, shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n var urlMap = {};\n var defaultShouldCreateSpan = function (url) {\n if (urlMap[url]) {\n return urlMap[url];\n }\n var origins = tracingOrigins;\n urlMap[url] =\n origins.some(function (origin) { return isMatchingPattern(url, origin); }) &&\n !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n };\n // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n // That's why we filter out already unwanted Spans from tracingOrigins\n var shouldCreateSpan = defaultShouldCreateSpan;\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = function (url) {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n var spans = {};\n if (traceFetch) {\n addInstrumentationHandler({\n callback: function (handlerData) {\n fetchCallback(handlerData, shouldCreateSpan, spans);\n },\n type: 'fetch',\n });\n }\n if (traceXHR) {\n addInstrumentationHandler({\n callback: function (handlerData) {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n },\n type: 'xhr',\n });\n }\n}\n/**\n * Create and track fetch request spans\n */\nexport function fetchCallback(handlerData, shouldCreateSpan, spans) {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n if (handlerData.endTimestamp && handlerData.fetchData.__span) {\n var span = spans[handlerData.fetchData.__span];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n }\n else if (handlerData.error) {\n span.setStatus(SpanStatus.InternalError);\n }\n span.finish();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[handlerData.fetchData.__span];\n }\n return;\n }\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, handlerData.fetchData), { type: 'fetch' }),\n description: handlerData.fetchData.method + \" \" + handlerData.fetchData.url,\n op: 'http',\n });\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n var request = (handlerData.args[0] = handlerData.args[0]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var options = (handlerData.args[1] = handlerData.args[1] || {});\n var headers = options.headers;\n if (isInstanceOf(request, Request)) {\n headers = request.headers;\n }\n if (headers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (typeof headers.append === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n headers.append('sentry-trace', span.toTraceparent());\n }\n else if (Array.isArray(headers)) {\n headers = __spread(headers, [['sentry-trace', span.toTraceparent()]]);\n }\n else {\n headers = __assign(__assign({}, headers), { 'sentry-trace': span.toTraceparent() });\n }\n }\n else {\n headers = { 'sentry-trace': span.toTraceparent() };\n }\n options.headers = headers;\n }\n}\n/**\n * Create and track xhr request spans\n */\nexport function xhrCallback(handlerData, shouldCreateSpan, spans) {\n var _a, _b;\n if (!hasTracingEnabled() || ((_a = handlerData.xhr) === null || _a === void 0 ? void 0 : _a.__sentry_own_request__) ||\n !(((_b = handlerData.xhr) === null || _b === void 0 ? void 0 : _b.__sentry_xhr__) && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))) {\n return;\n }\n var xhr = handlerData.xhr.__sentry_xhr__;\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && handlerData.xhr.__sentry_xhr_span_id__) {\n var span = spans[handlerData.xhr.__sentry_xhr_span_id__];\n if (span) {\n span.setHttpStatus(xhr.status_code);\n span.finish();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[handlerData.xhr.__sentry_xhr_span_id__];\n }\n return;\n }\n // if not, create a new span to track it\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, xhr.data), { type: 'xhr', method: xhr.method, url: xhr.url }),\n description: xhr.method + \" \" + xhr.url,\n op: 'http',\n });\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n }\n catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n//# sourceMappingURL=request.js.map","import { addInstrumentationHandler, getGlobalObject, logger } from '@sentry/utils';\nvar global = getGlobalObject();\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(customStartTransaction, startTransactionOnPageLoad, startTransactionOnLocationChange) {\n if (startTransactionOnPageLoad === void 0) { startTransactionOnPageLoad = true; }\n if (startTransactionOnLocationChange === void 0) { startTransactionOnLocationChange = true; }\n if (!global || !global.location) {\n logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n var startingUrl = global.location.href;\n var activeTransaction;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'pageload' });\n }\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler({\n callback: function (_a) {\n var to = _a.to, from = _a.from;\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n logger.log(\"[Tracing] Finishing current transaction with op: \" + activeTransaction.op);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'navigation' });\n }\n },\n type: 'history',\n });\n }\n}\n//# sourceMappingURL=router.js.map","import { __assign } from \"tslib\";\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { startIdleTransaction } from '../hubextensions';\nimport { DEFAULT_IDLE_TIMEOUT } from '../idletransaction';\nimport { SpanStatus } from '../spanstatus';\nimport { extractTraceparentData, secToMs } from '../utils';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { MetricsInstrumentation } from './metrics';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests, } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nexport var DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600;\nvar DEFAULT_BROWSER_TRACING_OPTIONS = __assign({ idleTimeout: DEFAULT_IDLE_TIMEOUT, markBackgroundTransactions: true, maxTransactionDuration: DEFAULT_MAX_TRANSACTION_DURATION_SECONDS, routingInstrumentation: instrumentRoutingWithDefaults, startTransactionOnLocationChange: true, startTransactionOnPageLoad: true }, defaultRequestInstrumentationOptions);\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nvar BrowserTracing = /** @class */ (function () {\n function BrowserTracing(_options) {\n /**\n * @inheritDoc\n */\n this.name = BrowserTracing.id;\n this._metrics = new MetricsInstrumentation();\n this._emitOptionsWarning = false;\n var tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n if (_options &&\n _options.tracingOrigins &&\n Array.isArray(_options.tracingOrigins) &&\n _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n }\n else {\n this._emitOptionsWarning = true;\n }\n this.options = __assign(__assign(__assign({}, DEFAULT_BROWSER_TRACING_OPTIONS), _options), { tracingOrigins: tracingOrigins });\n }\n /**\n * @inheritDoc\n */\n BrowserTracing.prototype.setupOnce = function (_, getCurrentHub) {\n var _this = this;\n this._getCurrentHub = getCurrentHub;\n if (this._emitOptionsWarning) {\n logger.warn('[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.');\n logger.warn(\"[Tracing] We added a reasonable default for you: \" + defaultRequestInstrumentationOptions.tracingOrigins);\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.options, instrumentRouting = _a.routingInstrumentation, startTransactionOnLocationChange = _a.startTransactionOnLocationChange, startTransactionOnPageLoad = _a.startTransactionOnPageLoad, markBackgroundTransactions = _a.markBackgroundTransactions, traceFetch = _a.traceFetch, traceXHR = _a.traceXHR, tracingOrigins = _a.tracingOrigins, shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n instrumentRouting(function (context) { return _this._createRouteTransaction(context); }, startTransactionOnPageLoad, startTransactionOnLocationChange);\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n instrumentOutgoingRequests({ traceFetch: traceFetch, traceXHR: traceXHR, tracingOrigins: tracingOrigins, shouldCreateSpanForRequest: shouldCreateSpanForRequest });\n };\n /** Create routing idle transaction. */\n BrowserTracing.prototype._createRouteTransaction = function (context) {\n var _this = this;\n if (!this._getCurrentHub) {\n logger.warn(\"[Tracing] Did not create \" + context.op + \" transaction because _getCurrentHub is invalid.\");\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.options, beforeNavigate = _a.beforeNavigate, idleTimeout = _a.idleTimeout, maxTransactionDuration = _a.maxTransactionDuration;\n var parentContextFromHeader = context.op === 'pageload' ? getHeaderContext() : undefined;\n var expandedContext = __assign(__assign(__assign({}, context), parentContextFromHeader), { trimEnd: true });\n var modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n var finalContext = modifiedContext === undefined ? __assign(__assign({}, expandedContext), { sampled: false }) : modifiedContext;\n if (finalContext.sampled === false) {\n logger.log(\"[Tracing] Will not send \" + finalContext.op + \" transaction because of beforeNavigate.\");\n }\n logger.log(\"[Tracing] Starting \" + finalContext.op + \" transaction on scope\");\n var hub = this._getCurrentHub();\n var location = getGlobalObject().location;\n var idleTransaction = startIdleTransaction(hub, finalContext, idleTimeout, true, { location: location });\n idleTransaction.registerBeforeFinishCallback(function (transaction, endTimestamp) {\n _this._metrics.addPerformanceEntries(transaction);\n adjustTransactionDuration(secToMs(maxTransactionDuration), transaction, endTimestamp);\n });\n return idleTransaction;\n };\n /**\n * @inheritDoc\n */\n BrowserTracing.id = 'BrowserTracing';\n return BrowserTracing;\n}());\nexport { BrowserTracing };\n/**\n * Gets transaction context from a sentry-trace meta.\n *\n * @returns Transaction context data from the header or undefined if there's no header or the header is malformed\n */\nexport function getHeaderContext() {\n var header = getMetaContent('sentry-trace');\n if (header) {\n return extractTraceparentData(header);\n }\n return undefined;\n}\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName) {\n var el = document.querySelector(\"meta[name=\" + metaName + \"]\");\n return el ? el.getAttribute('content') : null;\n}\n/** Adjusts transaction value based on max transaction duration */\nfunction adjustTransactionDuration(maxDuration, transaction, endTimestamp) {\n var diff = endTimestamp - transaction.startTimestamp;\n var isOutdatedTransaction = endTimestamp && (diff > maxDuration || diff < 0);\n if (isOutdatedTransaction) {\n transaction.setStatus(SpanStatus.DeadlineExceeded);\n transaction.setTag('maxTransactionDurationExceeded', 'true');\n }\n}\n//# sourceMappingURL=browsertracing.js.map","import { __read, __spread } from \"tslib\";\nimport { logger } from '@sentry/utils';\n/**\n * Express integration\n *\n * Provides an request and error handler for Express framework as well as tracing capabilities\n */\nvar Express = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Express(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = Express.id;\n this._router = options.router || options.app;\n this._methods = (Array.isArray(options.methods) ? options.methods : []).concat('use');\n }\n /**\n * @inheritDoc\n */\n Express.prototype.setupOnce = function () {\n if (!this._router) {\n logger.error('ExpressIntegration is missing an Express instance');\n return;\n }\n instrumentMiddlewares(this._router, this._methods);\n };\n /**\n * @inheritDoc\n */\n Express.id = 'Express';\n return Express;\n}());\nexport { Express };\n/**\n * Wraps original middleware function in a tracing call, which stores the info about the call as a span,\n * and finishes it once the middleware is done invoking.\n *\n * Express middlewares have 3 various forms, thus we have to take care of all of them:\n * // sync\n * app.use(function (req, res) { ... })\n * // async\n * app.use(function (req, res, next) { ... })\n * // error handler\n * app.use(function (err, req, res, next) { ... })\n *\n * They all internally delegate to the `router[method]` of the given application instance.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any\nfunction wrap(fn, method) {\n var arity = fn.length;\n switch (arity) {\n case 2: {\n return function (req, res) {\n var transaction = res.__sentry_transaction;\n if (transaction) {\n var span_1 = transaction.startChild({\n description: fn.name,\n op: \"middleware.\" + method,\n });\n res.once('finish', function () {\n span_1.finish();\n });\n }\n return fn.call(this, req, res);\n };\n }\n case 3: {\n return function (req, res, next) {\n var _a;\n var transaction = res.__sentry_transaction;\n var span = (_a = transaction) === null || _a === void 0 ? void 0 : _a.startChild({\n description: fn.name,\n op: \"middleware.\" + method,\n });\n fn.call(this, req, res, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n next.call.apply(next, __spread([this], args));\n });\n };\n }\n case 4: {\n return function (err, req, res, next) {\n var _a;\n var transaction = res.__sentry_transaction;\n var span = (_a = transaction) === null || _a === void 0 ? void 0 : _a.startChild({\n description: fn.name,\n op: \"middleware.\" + method,\n });\n fn.call(this, err, req, res, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n next.call.apply(next, __spread([this], args));\n });\n };\n }\n default: {\n throw new Error(\"Express middleware takes 2-4 arguments. Got: \" + arity);\n }\n }\n}\n/**\n * Takes all the function arguments passed to the original `app` or `router` method, eg. `app.use` or `router.use`\n * and wraps every function, as well as array of functions with a call to our `wrap` method.\n * We have to take care of the arrays as well as iterate over all of the arguments,\n * as `app.use` can accept middlewares in few various forms.\n *\n * app.use([], )\n * app.use([], , ...)\n * app.use([], ...[])\n */\nfunction wrapMiddlewareArgs(args, method) {\n return args.map(function (arg) {\n if (typeof arg === 'function') {\n return wrap(arg, method);\n }\n if (Array.isArray(arg)) {\n return arg.map(function (a) {\n if (typeof a === 'function') {\n return wrap(a, method);\n }\n return a;\n });\n }\n return arg;\n });\n}\n/**\n * Patches original router to utilize our tracing functionality\n */\nfunction patchMiddleware(router, method) {\n var originalCallback = router[method];\n router[method] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return originalCallback.call.apply(originalCallback, __spread([this], wrapMiddlewareArgs(args, method)));\n };\n return router;\n}\n/**\n * Patches original router methods\n */\nfunction instrumentMiddlewares(router, methods) {\n if (methods === void 0) { methods = []; }\n methods.forEach(function (method) { return patchMiddleware(router, method); });\n}\n//# sourceMappingURL=express.js.map","import { fill, isThenable, loadModule, logger } from '@sentry/utils';\n/** Tracing integration for node-postgres package */\nvar Postgres = /** @class */ (function () {\n function Postgres() {\n /**\n * @inheritDoc\n */\n this.name = Postgres.id;\n }\n /**\n * @inheritDoc\n */\n Postgres.prototype.setupOnce = function (_, getCurrentHub) {\n var pkg = loadModule('pg');\n if (!pkg) {\n logger.error('Postgres Integration was unable to require `pg` package.');\n return;\n }\n /**\n * function (query, callback) => void\n * function (query, params, callback) => void\n * function (query) => Promise\n * function (query, params) => Promise\n * function (pg.Cursor) => pg.Cursor\n */\n fill(pkg.Client.prototype, 'query', function (orig) {\n return function (config, values, callback) {\n var _a, _b, _c;\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n var span = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild({\n description: typeof config === 'string' ? config : config.text,\n op: \"db\",\n });\n if (typeof callback === 'function') {\n return orig.call(this, config, values, function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n callback(err, result);\n });\n }\n if (typeof values === 'function') {\n return orig.call(this, config, function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n values(err, result);\n });\n }\n var rv = typeof values !== 'undefined' ? orig.call(this, config, values) : orig.call(this, config);\n if (isThenable(rv)) {\n return rv.then(function (res) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n return res;\n });\n }\n (_c = span) === null || _c === void 0 ? void 0 : _c.finish();\n return rv;\n };\n });\n };\n /**\n * @inheritDoc\n */\n Postgres.id = 'Postgres';\n return Postgres;\n}());\nexport { Postgres };\n//# sourceMappingURL=postgres.js.map","import { fill, loadModule, logger } from '@sentry/utils';\n/** Tracing integration for node-mysql package */\nvar Mysql = /** @class */ (function () {\n function Mysql() {\n /**\n * @inheritDoc\n */\n this.name = Mysql.id;\n }\n /**\n * @inheritDoc\n */\n Mysql.prototype.setupOnce = function (_, getCurrentHub) {\n var pkg = loadModule('mysql/lib/Connection.js');\n if (!pkg) {\n logger.error('Mysql Integration was unable to require `mysql` package.');\n return;\n }\n // The original function will have one of these signatures:\n // function (callback) => void\n // function (options, callback) => void\n // function (options, values, callback) => void\n fill(pkg, 'createQuery', function (orig) {\n return function (options, values, callback) {\n var _a, _b;\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n var span = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild({\n description: typeof options === 'string' ? options : options.sql,\n op: \"db\",\n });\n if (typeof callback === 'function') {\n return orig.call(this, options, values, function (err, result, fields) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n callback(err, result, fields);\n });\n }\n if (typeof values === 'function') {\n return orig.call(this, options, function (err, result, fields) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n values(err, result, fields);\n });\n }\n return orig.call(this, options, values, callback);\n };\n });\n };\n /**\n * @inheritDoc\n */\n Mysql.id = 'Mysql';\n return Mysql;\n}());\nexport { Mysql };\n//# sourceMappingURL=mysql.js.map","import { __read, __spread } from \"tslib\";\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\nvar OPERATIONS = [\n 'aggregate',\n 'bulkWrite',\n 'countDocuments',\n 'createIndex',\n 'createIndexes',\n 'deleteMany',\n 'deleteOne',\n 'distinct',\n 'drop',\n 'dropIndex',\n 'dropIndexes',\n 'estimatedDocumentCount',\n 'find',\n 'findOne',\n 'findOneAndDelete',\n 'findOneAndReplace',\n 'findOneAndUpdate',\n 'indexes',\n 'indexExists',\n 'indexInformation',\n 'initializeOrderedBulkOp',\n 'insertMany',\n 'insertOne',\n 'isCapped',\n 'mapReduce',\n 'options',\n 'parallelCollectionScan',\n 'rename',\n 'replaceOne',\n 'stats',\n 'updateMany',\n 'updateOne',\n];\n// All of the operations above take `options` and `callback` as their final parameters, but some of them\n// take additional parameters as well. For those operations, this is a map of\n// { : [] }, as a way to know what to call the operation's\n// positional arguments when we add them to the span's `data` object later\nvar OPERATION_SIGNATURES = {\n // aggregate intentionally not included because `pipeline` arguments are too complex to serialize well\n // see https://github.com/getsentry/sentry-javascript/pull/3102\n bulkWrite: ['operations'],\n countDocuments: ['query'],\n createIndex: ['fieldOrSpec'],\n createIndexes: ['indexSpecs'],\n deleteMany: ['filter'],\n deleteOne: ['filter'],\n distinct: ['key', 'query'],\n dropIndex: ['indexName'],\n find: ['query'],\n findOne: ['query'],\n findOneAndDelete: ['filter'],\n findOneAndReplace: ['filter', 'replacement'],\n findOneAndUpdate: ['filter', 'update'],\n indexExists: ['indexes'],\n insertMany: ['docs'],\n insertOne: ['doc'],\n mapReduce: ['map', 'reduce'],\n rename: ['newName'],\n replaceOne: ['filter', 'doc'],\n updateMany: ['filter', 'update'],\n updateOne: ['filter', 'update'],\n};\n/** Tracing integration for mongo package */\nvar Mongo = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Mongo(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = Mongo.id;\n this._operations = Array.isArray(options.operations)\n ? options.operations\n : OPERATIONS;\n this._describeOperations = 'describeOperations' in options ? options.describeOperations : true;\n this._useMongoose = !!options.useMongoose;\n }\n /**\n * @inheritDoc\n */\n Mongo.prototype.setupOnce = function (_, getCurrentHub) {\n var moduleName = this._useMongoose ? 'mongoose' : 'mongodb';\n var pkg = loadModule(moduleName);\n if (!pkg) {\n logger.error(\"Mongo Integration was unable to require `\" + moduleName + \"` package.\");\n return;\n }\n this._instrumentOperations(pkg.Collection, this._operations, getCurrentHub);\n };\n /**\n * Patches original collection methods\n */\n Mongo.prototype._instrumentOperations = function (collection, operations, getCurrentHub) {\n var _this = this;\n operations.forEach(function (operation) { return _this._patchOperation(collection, operation, getCurrentHub); });\n };\n /**\n * Patches original collection to utilize our tracing functionality\n */\n Mongo.prototype._patchOperation = function (collection, operation, getCurrentHub) {\n if (!(operation in collection.prototype))\n return;\n var getSpanContext = this._getSpanContextFromOperationArguments.bind(this);\n fill(collection.prototype, operation, function (orig) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a, _b, _c, _d;\n var lastArg = args[args.length - 1];\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n // Check if the operation was passed a callback. (mapReduce requires a different check, as\n // its (non-callback) arguments can also be functions.)\n if (typeof lastArg !== 'function' || (operation === 'mapReduce' && args.length === 2)) {\n var span_1 = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild(getSpanContext(this, operation, args));\n var maybePromise = orig.call.apply(orig, __spread([this], args));\n if (isThenable(maybePromise)) {\n return maybePromise.then(function (res) {\n var _a;\n (_a = span_1) === null || _a === void 0 ? void 0 : _a.finish();\n return res;\n });\n }\n else {\n (_c = span_1) === null || _c === void 0 ? void 0 : _c.finish();\n return maybePromise;\n }\n }\n var span = (_d = parentSpan) === null || _d === void 0 ? void 0 : _d.startChild(getSpanContext(this, operation, args.slice(0, -1)));\n return orig.call.apply(orig, __spread([this], args.slice(0, -1), [function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n lastArg(err, result);\n }]));\n };\n });\n };\n /**\n * Form a SpanContext based on the user input to a given operation.\n */\n Mongo.prototype._getSpanContextFromOperationArguments = function (collection, operation, args) {\n var data = {\n collectionName: collection.collectionName,\n dbName: collection.dbName,\n namespace: collection.namespace,\n };\n var spanContext = {\n op: \"db\",\n description: operation,\n data: data,\n };\n // If the operation takes no arguments besides `options` and `callback`, or if argument\n // collection is disabled for this operation, just return early.\n var signature = OPERATION_SIGNATURES[operation];\n var shouldDescribe = Array.isArray(this._describeOperations)\n ? this._describeOperations.includes(operation)\n : this._describeOperations;\n if (!signature || !shouldDescribe) {\n return spanContext;\n }\n try {\n // Special case for `mapReduce`, as the only one accepting functions as arguments.\n if (operation === 'mapReduce') {\n var _a = __read(args, 2), map = _a[0], reduce = _a[1];\n data[signature[0]] = typeof map === 'string' ? map : map.name || '';\n data[signature[1]] = typeof reduce === 'string' ? reduce : reduce.name || '';\n }\n else {\n for (var i = 0; i < signature.length; i++) {\n data[signature[i]] = JSON.stringify(args[i]);\n }\n }\n }\n catch (_oO) {\n // no-empty\n }\n return spanContext;\n };\n /**\n * @inheritDoc\n */\n Mongo.id = 'Mongo';\n return Mongo;\n}());\nexport { Mongo };\n//# sourceMappingURL=mongo.js.map","import { __assign } from \"tslib\";\nimport { BrowserTracing } from './browser';\nimport { addExtensionMethods } from './hubextensions';\nimport * as TracingIntegrations from './integrations';\nvar Integrations = __assign(__assign({}, TracingIntegrations), { BrowserTracing: BrowserTracing });\nexport { Integrations };\nexport { Span } from './span';\nexport { Transaction } from './transaction';\nexport { \n// TODO deprecate old name in v7\ninstrumentOutgoingRequests as registerRequestInstrumentation, defaultRequestInstrumentationOptions, } from './browser';\nexport { SpanStatus } from './spanstatus';\nexport { IdleTransaction } from './idletransaction';\nexport { startIdleTransaction } from './hubextensions';\n// We are patching the global object with our hub extension methods\naddExtensionMethods();\nexport { addExtensionMethods };\nexport { extractTraceparentData, getActiveTransaction, hasTracingEnabled, stripUrlQueryAndFragment, TRACEPARENT_REGEXP, } from './utils';\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { __assign, __read, __spread } from \"tslib\";\nimport { fill, getGlobalObject, stripUrlQueryAndFragment } from '@sentry/utils';\nimport { default as Router } from 'next/router';\nvar global = getGlobalObject();\nvar DEFAULT_TAGS = Object.freeze({\n 'routing.instrumentation': 'next-router',\n});\nvar activeTransaction = undefined;\nvar prevTransactionName = undefined;\nvar startTransaction = undefined;\n/**\n * Creates routing instrumention for Next Router. Only supported for\n * client side routing. Works for Next >= 10.\n *\n * Leverages the SingletonRouter from the `next/router` to\n * generate pageload/navigation transactions and parameterize\n * transaction names.\n */\nexport function nextRouterInstrumentation(startTransactionCb, startTransactionOnPageLoad, startTransactionOnLocationChange) {\n if (startTransactionOnPageLoad === void 0) { startTransactionOnPageLoad = true; }\n if (startTransactionOnLocationChange === void 0) { startTransactionOnLocationChange = true; }\n startTransaction = startTransactionCb;\n Router.ready(function () {\n // We can only start the pageload transaction when we have access to the parameterized\n // route name. Setting the transaction name after the transaction is started could lead\n // to possible race conditions with the router, so this approach was taken.\n if (startTransactionOnPageLoad) {\n prevTransactionName = Router.route !== null ? stripUrlQueryAndFragment(Router.route) : global.location.pathname;\n activeTransaction = startTransactionCb({\n name: prevTransactionName,\n op: 'pageload',\n tags: DEFAULT_TAGS,\n });\n }\n // Spans that aren't attached to any transaction are lost; so if transactions aren't\n // created (besides potentially the onpageload transaction), no need to wrap the router.\n if (!startTransactionOnLocationChange)\n return;\n // `withRouter` uses `useRouter` underneath:\n // https://github.com/vercel/next.js/blob/de42719619ae69fbd88e445100f15701f6e1e100/packages/next/client/with-router.tsx#L21\n // Router events also use the router:\n // https://github.com/vercel/next.js/blob/de42719619ae69fbd88e445100f15701f6e1e100/packages/next/client/router.ts#L92\n // `Router.changeState` handles the router state changes, so it may be enough to only wrap it\n // (instead of wrapping all of the Router's functions).\n var routerPrototype = Object.getPrototypeOf(Router.router);\n fill(routerPrototype, 'changeState', changeStateWrapper);\n });\n}\n/**\n * Wraps Router.changeState()\n * https://github.com/vercel/next.js/blob/da97a18dafc7799e63aa7985adc95f213c2bf5f3/packages/next/next-server/lib/router/router.ts#L1204\n * Start a navigation transaction every time the router changes state.\n */\nfunction changeStateWrapper(originalChangeStateWrapper) {\n var wrapper = function (method, \n // The parameterized url, ex. posts/[id]/[comment]\n url, \n // The actual url, ex. posts/85/my-comment\n as, options) {\n // At the moment there are no additional arguments (meaning the rest parameter is empty).\n // This is meant to protect from future additions to Next.js API, especially since this is an\n // internal API.\n var args = [];\n for (\n // At the moment there are no additional arguments (meaning the rest parameter is empty).\n // This is meant to protect from future additions to Next.js API, especially since this is an\n // internal API.\n var _i = 4; \n // At the moment there are no additional arguments (meaning the rest parameter is empty).\n // This is meant to protect from future additions to Next.js API, especially since this is an\n // internal API.\n _i < arguments.length; \n // At the moment there are no additional arguments (meaning the rest parameter is empty).\n // This is meant to protect from future additions to Next.js API, especially since this is an\n // internal API.\n _i++) {\n // At the moment there are no additional arguments (meaning the rest parameter is empty).\n // This is meant to protect from future additions to Next.js API, especially since this is an\n // internal API.\n args[_i - 4] = arguments[_i];\n }\n if (startTransaction !== undefined) {\n if (activeTransaction) {\n activeTransaction.finish();\n }\n var tags = __assign(__assign(__assign({}, DEFAULT_TAGS), { method: method }), options);\n if (prevTransactionName) {\n tags.from = prevTransactionName;\n }\n prevTransactionName = stripUrlQueryAndFragment(url);\n activeTransaction = startTransaction({\n name: prevTransactionName,\n op: 'navigation',\n tags: tags,\n });\n }\n return originalChangeStateWrapper.call.apply(originalChangeStateWrapper, __spread([this, method, url, as, options], args));\n };\n return wrapper;\n}\n//# sourceMappingURL=client.js.map","import { SDK_VERSION } from '@sentry/core';\nexport var SDK_NAME = 'sentry.javascript.nextjs';\nexport var PACKAGE_NAME_PREFIX = 'npm:@sentry/';\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n */\nvar MetadataBuilder = /** @class */ (function () {\n function MetadataBuilder(options, packages) {\n this._options = options;\n this._packageNames = packages;\n }\n MetadataBuilder.prototype.addSdkMetadata = function () {\n this._options._metadata = this._options._metadata || {};\n this._options._metadata.sdk = this._getSdkInfo();\n };\n MetadataBuilder.prototype._getSdkInfo = function () {\n return {\n name: SDK_NAME,\n version: SDK_VERSION,\n packages: this._getPackages(),\n };\n };\n MetadataBuilder.prototype._getPackages = function () {\n return this._packageNames.map(function (pkgName) {\n return {\n name: PACKAGE_NAME_PREFIX + pkgName,\n version: SDK_VERSION,\n };\n });\n };\n return MetadataBuilder;\n}());\nexport { MetadataBuilder };\n//# sourceMappingURL=metadataBuilder.js.map","import { __read, __spread } from \"tslib\";\n/**\n * Recursively traverses an object to update an existing nested key.\n * Note: The provided key path must include existing properties,\n * the function will not create objects while traversing.\n *\n * @param obj An object to update\n * @param value The value to update the nested key with\n * @param keyPath The path to the key to update ex. fizz.buzz.foo\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setNestedKey(obj, keyPath, value) {\n // Ex. foo.bar.zoop will extract foo and bar.zoop\n var match = keyPath.match(/([a-z]+)\\.(.*)/i);\n if (match === null) {\n obj[keyPath] = value;\n }\n else {\n setNestedKey(obj[match[1]], match[2], value);\n }\n}\n/**\n * Retrieves the patched integrations with the provided integration.\n *\n * The integration must be present in the final user integrations, and they are compared\n * by integration name. If the user has defined one, there's nothing to patch; if not,\n * the provided integration is added.\n *\n * @param integration The integration to patch, if necessary.\n * @param userIntegrations Integrations defined by the user.\n * @param options options to update for a particular integration\n * @returns Final integrations, patched if necessary.\n */\nexport function addIntegration(integration, userIntegrations, options) {\n if (options === void 0) { options = {}; }\n if (Array.isArray(userIntegrations)) {\n return addIntegrationToArray(integration, userIntegrations, options);\n }\n else {\n return addIntegrationToFunction(integration, userIntegrations, options);\n }\n}\nfunction addIntegrationToArray(integration, userIntegrations, options) {\n var includesName = false;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var x = 0; x < userIntegrations.length; x++) {\n if (userIntegrations[x].name === integration.name) {\n includesName = true;\n }\n var op = options[userIntegrations[x].name];\n if (op) {\n setNestedKey(userIntegrations[x], op.keyPath, op.value);\n }\n }\n if (includesName) {\n return userIntegrations;\n }\n return __spread(userIntegrations, [integration]);\n}\nfunction addIntegrationToFunction(integration, userIntegrationsFunc, options) {\n var wrapper = function (defaultIntegrations) {\n var userFinalIntegrations = userIntegrationsFunc(defaultIntegrations);\n return addIntegrationToArray(integration, userFinalIntegrations, options);\n };\n return wrapper;\n}\n//# sourceMappingURL=userIntegrations.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { configureScope, init as reactInit, Integrations as BrowserIntegrations } from '@sentry/react';\nimport { defaultRequestInstrumentationOptions, Integrations as TracingIntegrations } from '@sentry/tracing';\nimport { nextRouterInstrumentation } from './performance/client';\nimport { MetadataBuilder } from './utils/metadataBuilder';\nimport { addIntegration } from './utils/userIntegrations';\nexport * from '@sentry/react';\nexport { nextRouterInstrumentation } from './performance/client';\nvar BrowserTracing = TracingIntegrations.BrowserTracing;\nexport var Integrations = __assign(__assign({}, BrowserIntegrations), { BrowserTracing: BrowserTracing });\n/** Inits the Sentry NextJS SDK on the browser with the React SDK. */\nexport function init(options) {\n var metadataBuilder = new MetadataBuilder(options, ['nextjs', 'react']);\n metadataBuilder.addSdkMetadata();\n options.environment = options.environment || process.env.NODE_ENV;\n // Only add BrowserTracing if a tracesSampleRate or tracesSampler is set\n var integrations = options.tracesSampleRate === undefined && options.tracesSampler === undefined\n ? options.integrations\n : createClientIntegrations(options.integrations);\n reactInit(__assign(__assign({}, options), { integrations: integrations }));\n configureScope(function (scope) {\n scope.setTag('runtime', 'browser');\n });\n}\nvar defaultBrowserTracingIntegration = new BrowserTracing({\n tracingOrigins: __spread(defaultRequestInstrumentationOptions.tracingOrigins, [/^(api\\/)/]),\n routingInstrumentation: nextRouterInstrumentation,\n});\nfunction createClientIntegrations(integrations) {\n if (integrations) {\n return addIntegration(defaultBrowserTracingIntegration, integrations, {\n BrowserTracing: { keyPath: 'options.routingInstrumentation', value: nextRouterInstrumentation },\n });\n }\n else {\n return [defaultBrowserTracingIntegration];\n }\n}\n//# sourceMappingURL=index.client.js.map","import { init as browserInit, SDK_VERSION } from '@sentry/browser';\n/**\n * Inits the React SDK\n */\nexport function init(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.react',\n packages: [\n {\n name: 'npm:@sentry/react',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n browserInit(options);\n}\n//# sourceMappingURL=sdk.js.map","export var TransactionSamplingMethod;\n(function (TransactionSamplingMethod) {\n TransactionSamplingMethod[\"Explicit\"] = \"explicitly_set\";\n TransactionSamplingMethod[\"Sampler\"] = \"client_sampler\";\n TransactionSamplingMethod[\"Rate\"] = \"client_rate\";\n TransactionSamplingMethod[\"Inheritance\"] = \"inheritance\";\n})(TransactionSamplingMethod || (TransactionSamplingMethod = {}));\n//# sourceMappingURL=transaction.js.map","import { addInstrumentationHandler, logger } from '@sentry/utils';\nimport { SpanStatus } from './spanstatus';\nimport { getActiveTransaction } from './utils';\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation() {\n addInstrumentationHandler({\n callback: errorCallback,\n type: 'error',\n });\n addInstrumentationHandler({\n callback: errorCallback,\n type: 'unhandledrejection',\n });\n}\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback() {\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n logger.log(\"[Tracing] Transaction: \" + SpanStatus.InternalError + \" -> Global error occured\");\n activeTransaction.setStatus(SpanStatus.InternalError);\n }\n}\n//# sourceMappingURL=errors.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getMainCarrier } from '@sentry/hub';\nimport { TransactionSamplingMethod, } from '@sentry/types';\nimport { dynamicRequire, isNodeEnv, loadModule, logger } from '@sentry/utils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders() {\n var scope = this.getScope();\n if (scope) {\n var span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param hub: The hub off of which to read config options\n * @param transaction: The transaction needing a sampling decision\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(transaction, options, samplingContext) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled()) {\n transaction.sampled = false;\n return transaction;\n }\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: TransactionSamplingMethod.Explicit },\n });\n return transaction;\n }\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n var sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n transactionSampling: {\n method: TransactionSamplingMethod.Sampler,\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: TransactionSamplingMethod.Inheritance },\n });\n }\n else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: TransactionSamplingMethod.Rate,\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n logger.warn(\"[Tracing] Discarding transaction because of invalid sample rate.\");\n transaction.sampled = false;\n return transaction;\n }\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n logger.log(\"[Tracing] Discarding transaction because \" + (typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'));\n transaction.sampled = false;\n return transaction;\n }\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < sampleRate;\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n logger.log(\"[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = \" + Number(sampleRate) + \")\");\n return transaction;\n }\n logger.log(\"[Tracing] starting \" + transaction.op + \" transaction - \" + transaction.name);\n return transaction;\n}\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got \" + JSON.stringify(rate) + \" of type \" + JSON.stringify(typeof rate) + \".\");\n return false;\n }\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got \" + rate + \".\");\n return false;\n }\n return true;\n}\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(transactionContext, customSamplingContext) {\n var _a, _b;\n var options = ((_a = this.getClient()) === null || _a === void 0 ? void 0 : _a.getOptions()) || {};\n var transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder((_b = options._experiments) === null || _b === void 0 ? void 0 : _b.maxSpans);\n }\n return transaction;\n}\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(hub, transactionContext, idleTimeout, onScope, customSamplingContext) {\n var _a, _b;\n var options = ((_a = hub.getClient()) === null || _a === void 0 ? void 0 : _a.getOptions()) || {};\n var transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder((_b = options._experiments) === null || _b === void 0 ? void 0 : _b.maxSpans);\n }\n return transaction;\n}\n/**\n * @private\n */\nexport function _addTracingExtensions() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n var packageToIntegrationMapping = {\n mongodb: function () {\n var integration = dynamicRequire(module, './integrations/mongo');\n return new integration.Mongo();\n },\n mongoose: function () {\n var integration = dynamicRequire(module, './integrations/mongo');\n return new integration.Mongo({ mongoose: true });\n },\n mysql: function () {\n var integration = dynamicRequire(module, './integrations/mysql');\n return new integration.Mysql();\n },\n pg: function () {\n var integration = dynamicRequire(module, './integrations/postgres');\n return new integration.Postgres();\n },\n };\n var mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(function (moduleName) { return !!loadModule(moduleName); })\n .map(function (pkg) {\n try {\n return packageToIntegrationMapping[pkg]();\n }\n catch (e) {\n return undefined;\n }\n })\n .filter(function (p) { return p; });\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = __spread((carrier.__SENTRY__.integrations || []), mappedPackages);\n }\n}\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods() {\n _addTracingExtensions();\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n//# sourceMappingURL=hubextensions.js.map","import { __extends, __values } from \"tslib\";\nimport { logger, timestampWithMs } from '@sentry/utils';\nimport { SpanRecorder } from './span';\nimport { SpanStatus } from './spanstatus';\nimport { Transaction } from './transaction';\nexport var DEFAULT_IDLE_TIMEOUT = 1000;\n/**\n * @inheritDoc\n */\nvar IdleTransactionSpanRecorder = /** @class */ (function (_super) {\n __extends(IdleTransactionSpanRecorder, _super);\n function IdleTransactionSpanRecorder(_pushActivity, _popActivity, transactionSpanId, maxlen) {\n if (transactionSpanId === void 0) { transactionSpanId = ''; }\n var _this = _super.call(this, maxlen) || this;\n _this._pushActivity = _pushActivity;\n _this._popActivity = _popActivity;\n _this.transactionSpanId = transactionSpanId;\n return _this;\n }\n /**\n * @inheritDoc\n */\n IdleTransactionSpanRecorder.prototype.add = function (span) {\n var _this = this;\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = function (endTimestamp) {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n _this._popActivity(span.spanId);\n };\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n _super.prototype.add.call(this, span);\n };\n return IdleTransactionSpanRecorder;\n}(SpanRecorder));\nexport { IdleTransactionSpanRecorder };\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nvar IdleTransaction = /** @class */ (function (_super) {\n __extends(IdleTransaction, _super);\n function IdleTransaction(transactionContext, _idleHub, \n // The time to wait in ms until the idle transaction will be finished. Default: 1000\n _idleTimeout, \n // If an idle transaction should be put itself on and off the scope automatically.\n _onScope) {\n if (_idleTimeout === void 0) { _idleTimeout = DEFAULT_IDLE_TIMEOUT; }\n if (_onScope === void 0) { _onScope = false; }\n var _this = _super.call(this, transactionContext, _idleHub) || this;\n _this._idleHub = _idleHub;\n _this._idleTimeout = _idleTimeout;\n _this._onScope = _onScope;\n // Activities store a list of active spans\n _this.activities = {};\n // Stores reference to the timeout that calls _beat().\n _this._heartbeatTimer = 0;\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n _this._heartbeatCounter = 0;\n // We should not use heartbeat if we finished a transaction\n _this._finished = false;\n _this._beforeFinishCallbacks = [];\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n logger.log(\"Setting idle transaction on scope. Span ID: \" + _this.spanId);\n _idleHub.configureScope(function (scope) { return scope.setSpan(_this); });\n }\n _this._initTimeout = setTimeout(function () {\n if (!_this._finished) {\n _this.finish();\n }\n }, _this._idleTimeout);\n return _this;\n }\n /** {@inheritDoc} */\n IdleTransaction.prototype.finish = function (endTimestamp) {\n var e_1, _a;\n var _this = this;\n if (endTimestamp === void 0) { endTimestamp = timestampWithMs(); }\n this._finished = true;\n this.activities = {};\n if (this.spanRecorder) {\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n try {\n for (var _b = __values(this._beforeFinishCallbacks), _c = _b.next(); !_c.done; _c = _b.next()) {\n var callback = _c.value;\n callback(this, endTimestamp);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.spanRecorder.spans = this.spanRecorder.spans.filter(function (span) {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === _this.spanId) {\n return true;\n }\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus(SpanStatus.Cancelled);\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));\n }\n return keepSpan;\n });\n logger.log('[Tracing] flushing IdleTransaction');\n }\n else {\n logger.log('[Tracing] No active IdleTransaction');\n }\n // this._onScope is true if the transaction was previously on the scope.\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n return _super.prototype.finish.call(this, endTimestamp);\n };\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n IdleTransaction.prototype.registerBeforeFinishCallback = function (callback) {\n this._beforeFinishCallbacks.push(callback);\n };\n /**\n * @inheritDoc\n */\n IdleTransaction.prototype.initSpanRecorder = function (maxlen) {\n var _this = this;\n if (!this.spanRecorder) {\n var pushActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._pushActivity(id);\n };\n var popActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._popActivity(id);\n };\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n // Start heartbeat so that transactions do not run forever.\n logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n };\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._pushActivity = function (spanId) {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n logger.log(\"[Tracing] pushActivity: \" + spanId);\n this.activities[spanId] = true;\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n };\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._popActivity = function (spanId) {\n var _this = this;\n if (this.activities[spanId]) {\n logger.log(\"[Tracing] popActivity \" + spanId);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n if (Object.keys(this.activities).length === 0) {\n var timeout = this._idleTimeout;\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n var end_1 = timestampWithMs() + timeout / 1000;\n setTimeout(function () {\n if (!_this._finished) {\n _this.finish(end_1);\n }\n }, timeout);\n }\n };\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n IdleTransaction.prototype._beat = function () {\n clearTimeout(this._heartbeatTimer);\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n var keys = Object.keys(this.activities);\n var heartbeatString = keys.length ? keys.reduce(function (prev, current) { return prev + current; }) : '';\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n }\n else {\n this._heartbeatCounter = 1;\n }\n this._prevHeartbeatString = heartbeatString;\n if (this._heartbeatCounter >= 3) {\n logger.log(\"[Tracing] Transaction finished because of no change for 3 heart beats\");\n this.setStatus(SpanStatus.DeadlineExceeded);\n this.setTag('heartbeat', 'failed');\n this.finish();\n }\n else {\n this._pingHeartbeat();\n }\n };\n /**\n * Pings the heartbeat\n */\n IdleTransaction.prototype._pingHeartbeat = function () {\n var _this = this;\n logger.log(\"pinging Heartbeat -> current counter: \" + this._heartbeatCounter);\n this._heartbeatTimer = setTimeout(function () {\n _this._beat();\n }, 5000);\n };\n return IdleTransaction;\n}(Transaction));\nexport { IdleTransaction };\n/**\n * Reset active transaction on scope\n */\nfunction clearActiveTransaction(hub) {\n if (hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n//# sourceMappingURL=idletransaction.js.map","import { __assign } from \"tslib\";\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\nimport { SpanStatus } from './spanstatus';\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nvar SpanRecorder = /** @class */ (function () {\n function SpanRecorder(maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n this.spans = [];\n this._maxlen = maxlen;\n }\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n SpanRecorder.prototype.add = function (span) {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n }\n else {\n this.spans.push(span);\n }\n };\n return SpanRecorder;\n}());\nexport { SpanRecorder };\n/**\n * Span contains all data about a span\n */\nvar Span = /** @class */ (function () {\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Span(spanContext) {\n /**\n * @inheritDoc\n */\n this.traceId = uuid4();\n /**\n * @inheritDoc\n */\n this.spanId = uuid4().substring(16);\n /**\n * Timestamp in seconds when the span was created.\n */\n this.startTimestamp = timestampWithMs();\n /**\n * @inheritDoc\n */\n this.tags = {};\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.data = {};\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n /**\n * @inheritDoc\n * @deprecated\n */\n Span.prototype.child = function (spanContext) {\n return this.startChild(spanContext);\n };\n /**\n * @inheritDoc\n */\n Span.prototype.startChild = function (spanContext) {\n var childSpan = new Span(__assign(__assign({}, spanContext), { parentSpanId: this.spanId, sampled: this.sampled, traceId: this.traceId }));\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n childSpan.transaction = this.transaction;\n return childSpan;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setTag = function (key, value) {\n var _a;\n this.tags = __assign(__assign({}, this.tags), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Span.prototype.setData = function (key, value) {\n var _a;\n this.data = __assign(__assign({}, this.data), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setStatus = function (value) {\n this.status = value;\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setHttpStatus = function (httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n var spanStatus = SpanStatus.fromHttpCode(httpStatus);\n if (spanStatus !== SpanStatus.UnknownError) {\n this.setStatus(spanStatus);\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.isSuccess = function () {\n return this.status === SpanStatus.Ok;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.finish = function (endTimestamp) {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toTraceparent = function () {\n var sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return this.traceId + \"-\" + this.spanId + sampledString;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toContext = function () {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.updateWithContext = function (spanContext) {\n var _a, _b, _c, _d, _e;\n this.data = (_a = spanContext.data, (_a !== null && _a !== void 0 ? _a : {}));\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = (_b = spanContext.spanId, (_b !== null && _b !== void 0 ? _b : this.spanId));\n this.startTimestamp = (_c = spanContext.startTimestamp, (_c !== null && _c !== void 0 ? _c : this.startTimestamp));\n this.status = spanContext.status;\n this.tags = (_d = spanContext.tags, (_d !== null && _d !== void 0 ? _d : {}));\n this.traceId = (_e = spanContext.traceId, (_e !== null && _e !== void 0 ? _e : this.traceId));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.getTraceContext = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toJSON = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n };\n return Span;\n}());\nexport { Span };\n//# sourceMappingURL=span.js.map","/** The status of an Span. */\n// eslint-disable-next-line import/export\nexport var SpanStatus;\n(function (SpanStatus) {\n /** The operation completed successfully. */\n SpanStatus[\"Ok\"] = \"ok\";\n /** Deadline expired before operation could complete. */\n SpanStatus[\"DeadlineExceeded\"] = \"deadline_exceeded\";\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n SpanStatus[\"Unauthenticated\"] = \"unauthenticated\";\n /** 403 Forbidden */\n SpanStatus[\"PermissionDenied\"] = \"permission_denied\";\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n SpanStatus[\"NotFound\"] = \"not_found\";\n /** 429 Too Many Requests */\n SpanStatus[\"ResourceExhausted\"] = \"resource_exhausted\";\n /** Client specified an invalid argument. 4xx. */\n SpanStatus[\"InvalidArgument\"] = \"invalid_argument\";\n /** 501 Not Implemented */\n SpanStatus[\"Unimplemented\"] = \"unimplemented\";\n /** 503 Service Unavailable */\n SpanStatus[\"Unavailable\"] = \"unavailable\";\n /** Other/generic 5xx. */\n SpanStatus[\"InternalError\"] = \"internal_error\";\n /** Unknown. Any non-standard HTTP status code. */\n SpanStatus[\"UnknownError\"] = \"unknown_error\";\n /** The operation was cancelled (typically by the user). */\n SpanStatus[\"Cancelled\"] = \"cancelled\";\n /** Already exists (409) */\n SpanStatus[\"AlreadyExists\"] = \"already_exists\";\n /** Operation was rejected because the system is not in a state required for the operation's */\n SpanStatus[\"FailedPrecondition\"] = \"failed_precondition\";\n /** The operation was aborted, typically due to a concurrency issue. */\n SpanStatus[\"Aborted\"] = \"aborted\";\n /** Operation was attempted past the valid range. */\n SpanStatus[\"OutOfRange\"] = \"out_of_range\";\n /** Unrecoverable data loss or corruption */\n SpanStatus[\"DataLoss\"] = \"data_loss\";\n})(SpanStatus || (SpanStatus = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (SpanStatus) {\n /**\n * Converts a HTTP status code into a {@link SpanStatus}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or {@link SpanStatus.UnknownError}.\n */\n function fromHttpCode(httpStatus) {\n if (httpStatus < 400) {\n return SpanStatus.Ok;\n }\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return SpanStatus.Unauthenticated;\n case 403:\n return SpanStatus.PermissionDenied;\n case 404:\n return SpanStatus.NotFound;\n case 409:\n return SpanStatus.AlreadyExists;\n case 413:\n return SpanStatus.FailedPrecondition;\n case 429:\n return SpanStatus.ResourceExhausted;\n default:\n return SpanStatus.InvalidArgument;\n }\n }\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return SpanStatus.Unimplemented;\n case 503:\n return SpanStatus.Unavailable;\n case 504:\n return SpanStatus.DeadlineExceeded;\n default:\n return SpanStatus.InternalError;\n }\n }\n return SpanStatus.UnknownError;\n }\n SpanStatus.fromHttpCode = fromHttpCode;\n})(SpanStatus || (SpanStatus = {}));\n//# sourceMappingURL=spanstatus.js.map","import { __assign, __extends } from \"tslib\";\nimport { getCurrentHub, Hub } from '@sentry/hub';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\nimport { Span as SpanClass, SpanRecorder } from './span';\n/** JSDoc */\nvar Transaction = /** @class */ (function (_super) {\n __extends(Transaction, _super);\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Transaction(transactionContext, hub) {\n var _this = _super.call(this, transactionContext) || this;\n _this._measurements = {};\n /**\n * The reference to the current hub.\n */\n _this._hub = getCurrentHub();\n if (isInstanceOf(hub, Hub)) {\n _this._hub = hub;\n }\n _this.name = transactionContext.name || '';\n _this.metadata = transactionContext.metadata || {};\n _this._trimEnd = transactionContext.trimEnd;\n // this is because transactions are also spans, and spans have a transaction pointer\n _this.transaction = _this;\n return _this;\n }\n /**\n * JSDoc\n */\n Transaction.prototype.setName = function (name) {\n this.name = name;\n };\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n Transaction.prototype.initSpanRecorder = function (maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n };\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n Transaction.prototype.setMeasurements = function (measurements) {\n this._measurements = __assign({}, measurements);\n };\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n Transaction.prototype.setMetadata = function (newMetadata) {\n this.metadata = __assign(__assign({}, this.metadata), newMetadata);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.finish = function (endTimestamp) {\n var _this = this;\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n if (!this.name) {\n logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n // just sets the end timestamp\n _super.prototype.finish.call(this, endTimestamp);\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n return undefined;\n }\n var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(function (s) { return s !== _this && s.endTimestamp; }) : [];\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce(function (prev, current) {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n var transaction = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n debug_meta: this.metadata,\n };\n var hasMeasurements = Object.keys(this._measurements).length > 0;\n if (hasMeasurements) {\n logger.log('[Measurements] Adding measurements to transaction', JSON.stringify(this._measurements, undefined, 2));\n transaction.measurements = this._measurements;\n }\n logger.log(\"[Tracing] Finishing \" + this.op + \" transaction: \" + this.name + \".\");\n return this._hub.captureEvent(transaction);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.toContext = function () {\n var spanContext = _super.prototype.toContext.call(this);\n return dropUndefinedKeys(__assign(__assign({}, spanContext), { name: this.name, trimEnd: this._trimEnd }));\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.updateWithContext = function (transactionContext) {\n var _a;\n _super.prototype.updateWithContext.call(this, transactionContext);\n this.name = (_a = transactionContext.name, (_a !== null && _a !== void 0 ? _a : ''));\n this._trimEnd = transactionContext.trimEnd;\n return this;\n };\n return Transaction;\n}(SpanClass));\nexport { Transaction };\n//# sourceMappingURL=transaction.js.map","import { getCurrentHub } from '@sentry/hub';\nexport var TRACEPARENT_REGEXP = new RegExp('^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$');\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(options) {\n if (options === void 0) { options = (_a = getCurrentHub()\n .getClient()) === null || _a === void 0 ? void 0 : _a.getOptions(); }\n var _a;\n if (!options) {\n return false;\n }\n return 'tracesSampleRate' in options || 'tracesSampler' in options;\n}\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent) {\n var matches = traceparent.match(TRACEPARENT_REGEXP);\n if (matches) {\n var parentSampled = void 0;\n if (matches[3] === '1') {\n parentSampled = true;\n }\n else if (matches[3] === '0') {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled: parentSampled,\n parentSpanId: matches[2],\n };\n }\n return undefined;\n}\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(hub) {\n if (hub === void 0) { hub = getCurrentHub(); }\n var _a, _b;\n return (_b = (_a = hub) === null || _a === void 0 ? void 0 : _a.getScope()) === null || _b === void 0 ? void 0 : _b.getTransaction();\n}\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time) {\n return time / 1000;\n}\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nexport function secToMs(time) {\n return time * 1000;\n}\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n//# sourceMappingURL=utils.js.map","/**\n * Session Status\n */\nexport var SessionStatus;\n(function (SessionStatus) {\n /** JSDoc */\n SessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n SessionStatus[\"Exited\"] = \"exited\";\n /** JSDoc */\n SessionStatus[\"Crashed\"] = \"crashed\";\n /** JSDoc */\n SessionStatus[\"Abnormal\"] = \"abnormal\";\n})(SessionStatus || (SessionStatus = {}));\nexport var RequestSessionStatus;\n(function (RequestSessionStatus) {\n /** JSDoc */\n RequestSessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n RequestSessionStatus[\"Errored\"] = \"errored\";\n /** JSDoc */\n RequestSessionStatus[\"Crashed\"] = \"crashed\";\n})(RequestSessionStatus || (RequestSessionStatus = {}));\n//# sourceMappingURL=session.js.map","import { isString } from './is';\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem, keyAttrs) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var _a, _b;\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs = ((_a = keyAttrs) === null || _a === void 0 ? void 0 : _a.length) ? keyAttrs.filter(function (keyAttr) { return elem.getAttribute(keyAttr); }).map(function (keyAttr) { return [keyAttr, elem.getAttribute(keyAttr)]; })\n : null;\n if ((_b = keyAttrPairs) === null || _b === void 0 ? void 0 : _b.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\" + keyAttrPair[0] + \"=\\\"\" + keyAttrPair[1] + \"\\\"]\");\n });\n }\n else {\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n//# sourceMappingURL=browser.js.map","import { __assign, __values } from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(handler) {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', __assign({}, handlerData));\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), error: error }));\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.\n var requestKeys = [];\n var requestValues = [];\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n };\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n }\n catch (e) {\n /* do nothing */\n }\n try {\n var requestPos = requestKeys.indexOf(xhr);\n if (requestPos !== -1) {\n // Make sure to pop both key and value to keep it in sync.\n requestKeys.splice(requestPos);\n var args_1 = requestValues.splice(requestPos)[0];\n if (xhr.__sentry_xhr__ && args_1[0] !== undefined) {\n xhr.__sentry_xhr__.body = args_1[0];\n }\n }\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr,\n });\n }\n };\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n requestKeys.push(this);\n requestValues.push(args);\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n }\n catch (_oO) {\n // no-empty\n }\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\nvar debounceDuration = 1000;\nvar debounceTimerID;\nvar lastCapturedEvent;\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n try {\n var target = event.target;\n if (!target || !target.tagName) {\n return true;\n }\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n return true;\n}\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener) {\n if (globalListener === void 0) { globalListener = false; }\n return function (event) {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n var name = event.type === 'keypress' ? 'input' : event.type;\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(function () {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach(function (target) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_1 = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers_1[type] = handlers_1[type] || { refCount: 0 });\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n handlerForType.refCount += 1;\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_2 = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers_2[type];\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers_2[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers_2).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\nvar _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url,\n });\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n}\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n}\n//# sourceMappingURL=instrument.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' '));\n });\n };\n return Logger;\n}());\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };\n//# sourceMappingURL=logger.js.map","import { isNodeEnv } from './node';\nimport { snipLine } from './string';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n return exception.type || exception.value || event.event_id || '';\n }\n return event.event_id || '';\n}\n/** JSDoc */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n if (!('console' in global)) {\n return callback();\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n levels.forEach(function (level) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n });\n // Perform callback manipulations\n var result = callback();\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) { mechanism = {}; }\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined'\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism = event.exception.values[0].mechanism || {};\n Object.keys(mechanism).forEach(function (key) {\n // @ts-ignore Mechanism has no index signature\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism[key] = mechanism[key];\n });\n }\n catch (_oO) {\n // no-empty\n }\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n try {\n return document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return defaultRetryAfter;\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n//# sourceMappingURL=misc.js.map","/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName) {\n var mod;\n try {\n mod = dynamicRequire(module, moduleName);\n }\n catch (e) {\n // no-empty\n }\n try {\n var cwd = dynamicRequire(module, 'process').cwd;\n mod = dynamicRequire(module, cwd() + \"/node_modules/\" + moduleName);\n }\n catch (e) {\n // no-empty\n }\n return mod;\n}\n//# sourceMappingURL=node.js.map","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo = /** @class */ (function () {\n function Memo() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n }\n else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n };\n return Memo;\n}());\nexport { Memo };\n//# sourceMappingURL=memo.js.map","import { __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n return err;\n }\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n source.type = event_1.type;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n source.target = isElement(event_1.target)\n ? htmlTreeAsString(event_1.target)\n : Object.prototype.toString.call(event_1.target);\n }\n catch (_oO) {\n source.target = '';\n }\n try {\n source.currentTarget = isElement(event_1.currentTarget)\n ? htmlTreeAsString(event_1.currentTarget)\n : Object.prototype.toString.call(event_1.currentTarget);\n }\n catch (_oO) {\n source.currentTarget = '';\n }\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n for (var i in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, i)) {\n source[i] = event_1;\n }\n }\n return source;\n }\n return value;\n}\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var serialized = normalize(object, depth);\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return serialized;\n}\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value);\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n if (typeof value === 'symbol') {\n return \"[\" + String(value) + \"]\";\n }\n if (typeof value === 'bigint') {\n return \"[BigInt: \" + String(value) + \"]\";\n }\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (memo === void 0) { memo = new Memo(); }\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n var normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n var source = getWalkSource(value);\n // Create an accumulator that will act as a parent for all future itterations of that branch\n var acc = Array.isArray(value) ? [] : {};\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n // Walk all keys of the source\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n // Return accumulated values\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input, depth) {\n try {\n return JSON.parse(JSON.stringify(input, function (key, value) { return walk(key, value, depth); }));\n }\n catch (_oO) {\n return '**non-serializable**';\n }\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(getWalkSource(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var obj = val;\n var rv = {};\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n//# sourceMappingURL=object.js.map","var defaultFunctionName = '';\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n//# sourceMappingURL=stacktrace.js.map","import { isRegExp, isString } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n//# sourceMappingURL=string.js.map","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n var result = false;\n var doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof doc.createElement === \"function\") {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n }\n catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n//# sourceMappingURL=supports.js.map","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/** SyncPromise internal states */\nvar States;\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n if (isThenable(value)) {\n void value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n // TODO: FIXME\n /** JSDoc */\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler.done) {\n return;\n }\n if (_this._state === States.RESOLVED) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled(_this._value);\n }\n }\n if (_this._state === States.REJECTED) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n }\n handler.done = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n void SyncPromise.resolve(item)\n .then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n done: false,\n onfulfilled: function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function (reason) {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","import { getGlobalObject } from './misc';\nimport { dynamicRequire, isNodeEnv } from './node';\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: function () { return Date.now() / 1000; },\n};\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n return undefined;\n }\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function () { return performance.now(); },\n timeOrigin: timeOrigin,\n };\n}\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n }\n catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: function () { return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000; },\n };\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n// Re-exported with an old name for backwards-compatibility.\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport var usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport var _browserPerformanceTimeOriginMode;\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport var browserPerformanceTimeOrigin = (function () {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n }\n else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n//# sourceMappingURL=time.js.map","(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}).SENTRY_RELEASE={id:\"_0uAHbuPIKnB3snp4aKL1\"};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = initHeadManager;\nexports.DOMAttributeNames = void 0;\nconst DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule'\n};\nexports.DOMAttributeNames = DOMAttributeNames;\nfunction reactElementToDOM({ type , props }) {\n const el = document.createElement(type);\n for(const p in props){\n if (!props.hasOwnProperty(p)) continue;\n if (p === 'children' || p === 'dangerouslySetInnerHTML') continue;\n // we don't render undefined props to the DOM\n if (props[p] === undefined) continue;\n const attr = DOMAttributeNames[p] || p.toLowerCase();\n if (type === 'script' && (attr === 'async' || attr === 'defer' || attr === 'noModule')) {\n el[attr] = !!props[p];\n } else {\n el.setAttribute(attr, props[p]);\n }\n }\n const { children , dangerouslySetInnerHTML } = props;\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n return el;\n}\nfunction updateElements(type, components) {\n const headEl = document.getElementsByTagName('head')[0];\n const headCountEl = headEl.querySelector('meta[name=next-head-count]');\n if (process.env.NODE_ENV !== 'production') {\n if (!headCountEl) {\n console.error('Warning: next-head-count is missing. https://nextjs.org/docs/messages/next-head-count-missing');\n return;\n }\n }\n const headCount = Number(headCountEl.content);\n const oldTags = [];\n for(let i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = j.previousElementSibling){\n if (j.tagName.toLowerCase() === type) {\n oldTags.push(j);\n }\n }\n const newTags = components.map(reactElementToDOM).filter((newTag)=>{\n for(let k = 0, len = oldTags.length; k < len; k++){\n const oldTag = oldTags[k];\n if (oldTag.isEqualNode(newTag)) {\n oldTags.splice(k, 1);\n return false;\n }\n }\n return true;\n });\n oldTags.forEach((t)=>t.parentNode.removeChild(t)\n );\n newTags.forEach((t)=>headEl.insertBefore(t, headCountEl)\n );\n headCountEl.content = (headCount - oldTags.length + newTags.length).toString();\n}\nfunction initHeadManager() {\n let updatePromise = null;\n return {\n mountedInstances: new Set(),\n updateHead: (head)=>{\n const promise = updatePromise = Promise.resolve().then(()=>{\n if (promise !== updatePromise) return;\n updatePromise = null;\n const tags = {\n };\n head.forEach((h)=>{\n if (// If the font tag is loaded only on client navigation\n // it won't be inlined. In this case revert to the original behavior\n h.type === 'link' && h.props['data-optimized-fonts'] && !document.querySelector(`style[data-href=\"${h.props['data-href']}\"]`)) {\n h.props.href = h.props['data-href'];\n h.props['data-href'] = undefined;\n }\n const components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n const titleComponent = tags.title ? tags.title[0] : null;\n let title = '';\n if (titleComponent) {\n const { children } = titleComponent.props;\n title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n if (title !== document.title) document.title = title;\n [\n 'meta',\n 'base',\n 'link',\n 'style',\n 'script'\n ].forEach((type)=>{\n updateElements(type, tags[type] || []);\n });\n });\n }\n };\n}\n\n//# sourceMappingURL=head-manager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.initNext = initNext;\nexports.render = render;\nexports.renderError = renderError;\nexports.emitter = exports.version = exports.router = void 0;\nrequire(\"@next/polyfill-module\");\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _headManagerContext = require(\"../shared/lib/head-manager-context\");\nvar _mitt = _interopRequireDefault(require(\"../shared/lib/mitt\"));\nvar _routerContext = require(\"../shared/lib/router-context\");\nvar _router = require(\"../shared/lib/router/router\");\nvar _isDynamic = require(\"../shared/lib/router/utils/is-dynamic\");\nvar _querystring = require(\"../shared/lib/router/utils/querystring\");\nvar _runtimeConfig = require(\"../shared/lib/runtime-config\");\nvar _utils = require(\"../shared/lib/utils\");\nvar _portal = require(\"./portal\");\nvar _headManager = _interopRequireDefault(require(\"./head-manager\"));\nvar _pageLoader = _interopRequireDefault(require(\"./page-loader\"));\nvar _performanceRelayer = _interopRequireDefault(require(\"./performance-relayer\"));\nvar _routeAnnouncer = require(\"./route-announcer\");\nvar _router1 = require(\"./router\");\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {\n };\n if (obj != null) {\n for(var key in obj){\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {\n };\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {\n };\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nconst data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\nwindow.__NEXT_DATA__ = data;\nconst version = \"11.1.4\";\nexports.version = version;\nconst looseToArray = (input)=>[].slice.call(input)\n;\nconst { props: hydrateProps , err: hydrateErr , page , query , buildId , assetPrefix , runtimeConfig , dynamicIds , isFallback , locale , locales , domainLocales , isPreview , } = data;\nlet { defaultLocale } = data;\nconst prefix = assetPrefix || '';\n// With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time\n// So, this is how we do it in the client side at runtime\n__webpack_public_path__ = `${prefix}/_next/` //eslint-disable-line\n;\n// Initialize next/config with the environment configuration\n(0, _runtimeConfig).setConfig({\n serverRuntimeConfig: {\n },\n publicRuntimeConfig: runtimeConfig || {\n }\n});\nlet asPath = (0, _utils).getURL();\n// make sure not to attempt stripping basePath for 404s\nif ((0, _router).hasBasePath(asPath)) {\n asPath = (0, _router).delBasePath(asPath);\n}\nif (process.env.__NEXT_I18N_SUPPORT) {\n const { normalizeLocalePath } = require('../shared/lib/i18n/normalize-locale-path');\n const { detectDomainLocale } = require('../shared/lib/i18n/detect-domain-locale');\n const { parseRelativeUrl } = require('../shared/lib/router/utils/parse-relative-url');\n const { formatUrl } = require('../shared/lib/router/utils/format-url');\n if (locales) {\n const parsedAs = parseRelativeUrl(asPath);\n const localePathResult = normalizeLocalePath(parsedAs.pathname, locales);\n if (localePathResult.detectedLocale) {\n parsedAs.pathname = localePathResult.pathname;\n asPath = formatUrl(parsedAs);\n } else {\n // derive the default locale if it wasn't detected in the asPath\n // since we don't prerender static pages with all possible default\n // locales\n defaultLocale = locale;\n }\n // attempt detecting default locale based on hostname\n const detectedDomain = detectDomainLocale(process.env.__NEXT_I18N_DOMAINS, window.location.hostname);\n // TODO: investigate if defaultLocale needs to be populated after\n // hydration to prevent mismatched renders\n if (detectedDomain) {\n defaultLocale = detectedDomain.defaultLocale;\n }\n }\n}\nif (data.scriptLoader) {\n const { initScriptLoader } = require('./script');\n initScriptLoader(data.scriptLoader);\n}\nconst pageLoader = new _pageLoader.default(buildId, prefix);\nconst register = ([r, f])=>pageLoader.routeLoader.onEntrypoint(r, f)\n;\nif (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map((p)=>setTimeout(()=>register(p)\n , 0)\n );\n}\nwindow.__NEXT_P = [];\nwindow.__NEXT_P.push = register;\nconst headManager = (0, _headManager).default();\nconst appElement = document.getElementById('__next');\nlet lastRenderReject;\nlet webpackHMR;\nlet router;\nexports.router = router;\nlet CachedApp, onPerfEntry;\nheadManager.getIsSsr = ()=>{\n return router.isSsr;\n};\nclass Container extends _react.default.Component {\n componentDidCatch(componentErr, info) {\n this.props.fn(componentErr, info);\n }\n componentDidMount() {\n this.scrollToHash();\n // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n if (router.isSsr && // We don't update for 404 requests as this can modify\n // the asPath unexpectedly e.g. adding basePath when\n // it wasn't originally present\n page !== '/404' && page !== '/_error' && (isFallback || data.nextExport && ((0, _isDynamic).isDynamicRoute(router.pathname) || location.search || process.env.__NEXT_HAS_REWRITES) || hydrateProps && hydrateProps.__N_SSG && (location.search || process.env.__NEXT_HAS_REWRITES))) {\n // update query on mount for exported pages\n router.replace(router.pathname + '?' + String((0, _querystring).assign((0, _querystring).urlQueryToSearchParams(router.query), new URLSearchParams(location.search))), asPath, {\n // @ts-ignore\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !isFallback\n });\n }\n }\n componentDidUpdate() {\n this.scrollToHash();\n }\n scrollToHash() {\n let { hash } = location;\n hash = hash && hash.substring(1);\n if (!hash) return;\n const el = document.getElementById(hash);\n if (!el) return;\n // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n setTimeout(()=>el.scrollIntoView()\n , 0);\n }\n render() {\n if (process.env.NODE_ENV === 'production') {\n return this.props.children;\n } else {\n const { ReactDevOverlay } = require('@next/react-dev-overlay/lib/client');\n return(/*#__PURE__*/ _react.default.createElement(ReactDevOverlay, null, this.props.children));\n }\n }\n}\nconst emitter = (0, _mitt).default();\nexports.emitter = emitter;\nlet CachedComponent;\nfunction _initNext() {\n _initNext = _asyncToGenerator(function*(opts = {\n }) {\n // This makes sure this specific lines are removed in production\n if (process.env.NODE_ENV === 'development') {\n webpackHMR = opts.webpackHMR;\n }\n let initialErr = hydrateErr;\n try {\n const appEntrypoint = yield pageLoader.routeLoader.whenEntrypoint('/_app');\n if ('error' in appEntrypoint) {\n throw appEntrypoint.error;\n }\n const { component: app , exports: mod } = appEntrypoint;\n CachedApp = app;\n if (mod && mod.reportWebVitals) {\n onPerfEntry = ({ id , name , startTime , value , duration , entryType , entries , })=>{\n // Combines timestamp with random number for unique ID\n const uniqueID = `${Date.now()}-${Math.floor(Math.random() * (9000000000000 - 1)) + 1000000000000}`;\n let perfStartEntry;\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime;\n }\n mod.reportWebVitals({\n id: id || uniqueID,\n name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label: entryType === 'mark' || entryType === 'measure' ? 'custom' : 'web-vital'\n });\n };\n }\n const pageEntrypoint = // The dev server fails to serve script assets when there's a hydration\n // error, so we need to skip waiting for the entrypoint.\n process.env.NODE_ENV === 'development' && hydrateErr ? {\n error: hydrateErr\n } : yield pageLoader.routeLoader.whenEntrypoint(page);\n if ('error' in pageEntrypoint) {\n throw pageEntrypoint.error;\n }\n CachedComponent = pageEntrypoint.component;\n if (process.env.NODE_ENV !== 'production') {\n const { isValidElementType } = require('react-is');\n if (!isValidElementType(CachedComponent)) {\n throw new Error(`The default export is not a React Component in page: \"${page}\"`);\n }\n }\n } catch (error) {\n // This catches errors like throwing in the top level of a module\n initialErr = error;\n }\n if (process.env.NODE_ENV === 'development') {\n const { getNodeError } = require('@next/react-dev-overlay/lib/client');\n // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n if (initialErr) {\n if (initialErr === hydrateErr) {\n setTimeout(()=>{\n let error;\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw new Error(initialErr.message);\n } catch (e) {\n error = e;\n }\n error.name = initialErr.name;\n error.stack = initialErr.stack;\n const node = getNodeError(error);\n throw node;\n });\n } else {\n setTimeout(()=>{\n throw initialErr;\n });\n }\n }\n }\n if (window.__NEXT_PRELOADREADY) {\n yield window.__NEXT_PRELOADREADY(dynamicIds);\n }\n exports.router = router = (0, _router1).createRouter(page, query, asPath, {\n initialProps: hydrateProps,\n pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n wrapApp,\n err: initialErr,\n isFallback: Boolean(isFallback),\n subscription: (info, App, scroll)=>render(Object.assign({\n }, info, {\n App,\n scroll\n }))\n ,\n locale,\n locales,\n defaultLocale,\n domainLocales,\n isPreview\n });\n const renderCtx = {\n App: CachedApp,\n initial: true,\n Component: CachedComponent,\n props: hydrateProps,\n err: initialErr\n };\n if (process.env.NODE_ENV === 'production') {\n render(renderCtx);\n return emitter;\n } else {\n return {\n emitter,\n renderCtx\n };\n }\n });\n return _initNext.apply(this, arguments);\n}\nfunction initNext() {\n return _initNext.apply(this, arguments);\n}\nfunction _render() {\n _render = _asyncToGenerator(function*(renderingProps) {\n if (renderingProps.err) {\n yield renderError(renderingProps);\n return;\n }\n try {\n yield doRender(renderingProps);\n } catch (renderErr) {\n // bubble up cancelation errors\n if (renderErr.cancelled) {\n throw renderErr;\n }\n if (process.env.NODE_ENV === 'development') {\n // Ensure this error is displayed in the overlay in development\n setTimeout(()=>{\n throw renderErr;\n });\n }\n yield renderError(_objectSpread({\n }, renderingProps, {\n err: renderErr\n }));\n }\n });\n return _render.apply(this, arguments);\n}\nfunction render(renderingProps) {\n return _render.apply(this, arguments);\n}\nfunction renderError(renderErrorProps) {\n const { App , err } = renderErrorProps;\n // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n if (process.env.NODE_ENV !== 'production') {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n webpackHMR.onUnrecoverableError();\n // We need to render an empty so that the `` can\n // render itself.\n return doRender({\n App: ()=>null\n ,\n props: {\n },\n Component: ()=>null\n ,\n styleSheets: []\n });\n }\n // Make sure we log the error to the console, otherwise users can't track down issues.\n console.error(err);\n console.error(`A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred`);\n return pageLoader.loadPage('/_error').then(({ page: ErrorComponent , styleSheets })=>{\n return (lastAppProps === null || lastAppProps === void 0 ? void 0 : lastAppProps.Component) === ErrorComponent ? Promise.resolve().then(function() {\n return _interopRequireWildcard(require('../pages/_error'));\n }).then((m)=>({\n ErrorComponent: m.default,\n styleSheets: []\n })\n ) : {\n ErrorComponent,\n styleSheets\n };\n }).then(({ ErrorComponent , styleSheets })=>{\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n const AppTree = wrapApp(App);\n const appCtx = {\n Component: ErrorComponent,\n AppTree,\n router,\n ctx: {\n err,\n pathname: page,\n query,\n asPath,\n AppTree\n }\n };\n return Promise.resolve(renderErrorProps.props ? renderErrorProps.props : (0, _utils).loadGetInitialProps(App, appCtx)).then((initProps)=>doRender(_objectSpread({\n }, renderErrorProps, {\n err,\n Component: ErrorComponent,\n styleSheets,\n props: initProps\n }))\n );\n });\n}\nlet reactRoot = null;\n// On initial render a hydrate should always happen\nlet shouldHydrate = true;\nfunction renderReactElement(domEl, fn) {\n // mark start of hydrate/render\n if (_utils.ST) {\n performance.mark('beforeRender');\n }\n const reactEl = fn(shouldHydrate ? markHydrateComplete : markRenderComplete);\n if (process.env.__NEXT_REACT_ROOT) {\n if (!reactRoot) {\n // Unlike with createRoot, you don't need a separate root.render() call here\n reactRoot = _reactDom.default.hydrateRoot(domEl, reactEl);\n // TODO: Remove shouldHydrate variable when React 18 is stable as it can depend on `reactRoot` existing\n shouldHydrate = false;\n } else {\n reactRoot.render(reactEl);\n }\n } else {\n // The check for `.hydrate` is there to support React alternatives like preact\n if (shouldHydrate) {\n _reactDom.default.hydrate(reactEl, domEl);\n shouldHydrate = false;\n } else {\n _reactDom.default.render(reactEl, domEl);\n }\n }\n}\nfunction markHydrateComplete() {\n if (!_utils.ST) return;\n performance.mark('afterHydrate') // mark end of hydration\n ;\n performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');\n performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);\n }\n clearMarks();\n}\nfunction markRenderComplete() {\n if (!_utils.ST) return;\n performance.mark('afterRender') // mark end of render\n ;\n const navStartEntries = performance.getEntriesByName('routeChange', 'mark');\n if (!navStartEntries.length) return;\n performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');\n performance.measure('Next.js-render', 'beforeRender', 'afterRender');\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);\n performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);\n }\n clearMarks();\n [\n 'Next.js-route-change-to-render',\n 'Next.js-render'\n ].forEach((measure)=>performance.clearMeasures(measure)\n );\n}\nfunction clearMarks() {\n [\n 'beforeRender',\n 'afterHydrate',\n 'afterRender',\n 'routeChange'\n ].forEach((mark)=>performance.clearMarks(mark)\n );\n}\nfunction AppContainer({ children }) {\n return(/*#__PURE__*/ _react.default.createElement(Container, {\n fn: (error)=>renderError({\n App: CachedApp,\n err: error\n }).catch((err)=>console.error('Error rendering page: ', err)\n )\n }, /*#__PURE__*/ _react.default.createElement(_routerContext.RouterContext.Provider, {\n value: (0, _router1).makePublicRouterInstance(router)\n }, /*#__PURE__*/ _react.default.createElement(_headManagerContext.HeadManagerContext.Provider, {\n value: headManager\n }, children))));\n}\nconst wrapApp = (App)=>(wrappedAppProps)=>{\n const appProps = _objectSpread({\n }, wrappedAppProps, {\n Component: CachedComponent,\n err: hydrateErr,\n router\n });\n return(/*#__PURE__*/ _react.default.createElement(AppContainer, null, /*#__PURE__*/ _react.default.createElement(App, Object.assign({\n }, appProps))));\n }\n;\nlet lastAppProps;\nfunction doRender(input) {\n let { App , Component , props , err } = input;\n let styleSheets = 'initial' in input ? undefined : input.styleSheets;\n Component = Component || lastAppProps.Component;\n props = props || lastAppProps.props;\n const appProps = _objectSpread({\n }, props, {\n Component,\n err,\n router\n });\n // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n lastAppProps = appProps;\n let canceled = false;\n let resolvePromise;\n const renderPromise = new Promise((resolve, reject)=>{\n if (lastRenderReject) {\n lastRenderReject();\n }\n resolvePromise = ()=>{\n lastRenderReject = null;\n resolve();\n };\n lastRenderReject = ()=>{\n canceled = true;\n lastRenderReject = null;\n const error = new Error('Cancel rendering route');\n error.cancelled = true;\n reject(error);\n };\n });\n // This function has a return type to ensure it doesn't start returning a\n // Promise. It should remain synchronous.\n function onStart() {\n if (!styleSheets || // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n process.env.NODE_ENV !== 'production') {\n return false;\n }\n const currentStyleTags = looseToArray(document.querySelectorAll('style[data-n-href]'));\n const currentHrefs = new Set(currentStyleTags.map((tag)=>tag.getAttribute('data-n-href')\n ));\n const noscript = document.querySelector('noscript[data-n-css]');\n const nonce = noscript === null || noscript === void 0 ? void 0 : noscript.getAttribute('data-n-css');\n styleSheets.forEach(({ href , text })=>{\n if (!currentHrefs.has(href)) {\n const styleTag = document.createElement('style');\n styleTag.setAttribute('data-n-href', href);\n styleTag.setAttribute('media', 'x');\n if (nonce) {\n styleTag.setAttribute('nonce', nonce);\n }\n document.head.appendChild(styleTag);\n styleTag.appendChild(document.createTextNode(text));\n }\n });\n return true;\n }\n function onHeadCommit() {\n if (// We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n process.env.NODE_ENV === 'production' && // We can skip this during hydration. Running it wont cause any harm, but\n // we may as well save the CPU cycles:\n styleSheets && // Ensure this render was not canceled\n !canceled) {\n const desiredHrefs = new Set(styleSheets.map((s)=>s.href\n ));\n const currentStyleTags = looseToArray(document.querySelectorAll('style[data-n-href]'));\n const currentHrefs = currentStyleTags.map((tag)=>tag.getAttribute('data-n-href')\n );\n // Toggle `