{"version":3,"file":"vue-app-P630byjy.js","sources":["../../../node_modules/vuelidate/lib/vval.js","../../../node_modules/vuelidate/lib/params.js","../../../node_modules/vuelidate/lib/index.js","../../../node_modules/vue-screen/dist/vue-screen.esm.js","../../../app/frontend/plugins/custom.js","../../../node_modules/@sentry/utils/esm/is.js","../../../node_modules/@sentry/utils/esm/worldwide.js","../../../node_modules/@sentry/utils/esm/logger.js","../../../node_modules/@sentry/utils/esm/object.js","../../../node_modules/@sentry/utils/esm/misc.js","../../../node_modules/@sentry/utils/esm/env.js","../../../node_modules/@sentry/utils/esm/node.js","../../../node_modules/@sentry/utils/esm/syncpromise.js","../../../node_modules/@sentry/utils/esm/time.js","../../../node_modules/@sentry/core/esm/constants.js","../../../node_modules/@sentry/core/esm/session.js","../../../node_modules/@sentry/core/esm/scope.js","../../../node_modules/@sentry/core/esm/hub.js","../../../node_modules/@sentry/core/esm/exports.js","../../../app/frontend/plugins/sentry.js","../../../app/frontend/directives/click-outside.js","../../../app/frontend/entrypoints/vue-app.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.h = h;\nexports.patchChildren = patchChildren;\n\nfunction isUndef(v) {\n return v === null || v === undefined;\n}\n\nfunction isDef(v) {\n return v !== null && v !== undefined;\n}\n\nfunction sameVval(oldVval, vval) {\n return vval.tag === oldVval.tag && vval.key === oldVval.key;\n}\n\nfunction createVm(vval) {\n var Vm = vval.tag;\n vval.vm = new Vm({\n data: vval.args\n });\n}\n\nfunction updateVval(vval) {\n var keys = Object.keys(vval.args);\n\n for (var i = 0; i < keys.length; i++) {\n keys.forEach(function (k) {\n vval.vm[k] = vval.args[k];\n });\n }\n}\n\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) map[key] = i;\n }\n\n return map;\n}\n\nfunction updateChildren(oldCh, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVval = oldCh[0];\n var oldEndVval = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVval = newCh[0];\n var newEndVval = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, elmToMove;\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVval)) {\n oldStartVval = oldCh[++oldStartIdx];\n } else if (isUndef(oldEndVval)) {\n oldEndVval = oldCh[--oldEndIdx];\n } else if (sameVval(oldStartVval, newStartVval)) {\n patchVval(oldStartVval, newStartVval);\n oldStartVval = oldCh[++oldStartIdx];\n newStartVval = newCh[++newStartIdx];\n } else if (sameVval(oldEndVval, newEndVval)) {\n patchVval(oldEndVval, newEndVval);\n oldEndVval = oldCh[--oldEndIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldStartVval, newEndVval)) {\n patchVval(oldStartVval, newEndVval);\n oldStartVval = oldCh[++oldStartIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldEndVval, newStartVval)) {\n patchVval(oldEndVval, newStartVval);\n oldEndVval = oldCh[--oldEndIdx];\n newStartVval = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n idxInOld = isDef(newStartVval.key) ? oldKeyToIdx[newStartVval.key] : null;\n\n if (isUndef(idxInOld)) {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n } else {\n elmToMove = oldCh[idxInOld];\n\n if (sameVval(elmToMove, newStartVval)) {\n patchVval(elmToMove, newStartVval);\n oldCh[idxInOld] = undefined;\n newStartVval = newCh[++newStartIdx];\n } else {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n }\n }\n }\n }\n\n if (oldStartIdx > oldEndIdx) {\n addVvals(newCh, newStartIdx, newEndIdx);\n } else if (newStartIdx > newEndIdx) {\n removeVvals(oldCh, oldStartIdx, oldEndIdx);\n }\n}\n\nfunction addVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n createVm(vvals[startIdx]);\n }\n}\n\nfunction removeVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vvals[startIdx];\n\n if (isDef(ch)) {\n ch.vm.$destroy();\n ch.vm = null;\n }\n }\n}\n\nfunction patchVval(oldVval, vval) {\n if (oldVval === vval) {\n return;\n }\n\n vval.vm = oldVval.vm;\n updateVval(vval);\n}\n\nfunction patchChildren(oldCh, ch) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) updateChildren(oldCh, ch);\n } else if (isDef(ch)) {\n addVvals(ch, 0, ch.length - 1);\n } else if (isDef(oldCh)) {\n removeVvals(oldCh, 0, oldCh.length - 1);\n }\n}\n\nfunction h(tag, key, args) {\n return {\n tag: tag,\n key: key,\n args: args\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._setTarget = void 0;\nexports.popParams = popParams;\nexports.pushParams = pushParams;\nexports.target = void 0;\nexports.withParams = withParams;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar stack = [];\nvar target = null;\nexports.target = target;\n\nvar _setTarget = function _setTarget(x) {\n exports.target = target = x;\n};\n\nexports._setTarget = _setTarget;\n\nfunction pushParams() {\n if (target !== null) {\n stack.push(target);\n }\n\n exports.target = target = {};\n}\n\nfunction popParams() {\n var lastTarget = target;\n var newTarget = exports.target = target = stack.pop() || null;\n\n if (newTarget) {\n if (!Array.isArray(newTarget.$sub)) {\n newTarget.$sub = [];\n }\n\n newTarget.$sub.push(lastTarget);\n }\n\n return lastTarget;\n}\n\nfunction addParams(params) {\n if (_typeof(params) === 'object' && !Array.isArray(params)) {\n exports.target = target = _objectSpread(_objectSpread({}, target), params);\n } else {\n throw new Error('params must be an object');\n }\n}\n\nfunction withParamsDirect(params, validator) {\n return withParamsClosure(function (add) {\n return function () {\n add(params);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validator.apply(this, args);\n };\n });\n}\n\nfunction withParamsClosure(closure) {\n var validator = closure(addParams);\n return function () {\n pushParams();\n\n try {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validator.apply(this, args);\n } finally {\n popParams();\n }\n };\n}\n\nfunction withParams(paramsOrClosure, maybeValidator) {\n if (_typeof(paramsOrClosure) === 'object' && maybeValidator !== undefined) {\n return withParamsDirect(paramsOrClosure, maybeValidator);\n }\n\n return withParamsClosure(paramsOrClosure);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Vuelidate = Vuelidate;\nexports.validationMixin = exports.default = void 0;\nObject.defineProperty(exports, \"withParams\", {\n enumerable: true,\n get: function get() {\n return _params.withParams;\n }\n});\n\nvar _vval = require(\"./vval\");\n\nvar _params = require(\"./params\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar NIL = function NIL() {\n return null;\n};\n\nvar buildFromKeys = function buildFromKeys(keys, fn, keyFn) {\n return keys.reduce(function (build, key) {\n build[keyFn ? keyFn(key) : key] = fn(key);\n return build;\n }, {});\n};\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n\nfunction isObject(val) {\n return val !== null && (_typeof(val) === 'object' || isFunction(val));\n}\n\nfunction isPromise(object) {\n return isObject(object) && isFunction(object.then);\n}\n\nvar getPath = function getPath(ctx, obj, path, fallback) {\n if (typeof path === 'function') {\n return path.call(ctx, obj, fallback);\n }\n\n path = Array.isArray(path) ? path : path.split('.');\n\n for (var i = 0; i < path.length; i++) {\n if (obj && _typeof(obj) === 'object') {\n obj = obj[path[i]];\n } else {\n return fallback;\n }\n }\n\n return typeof obj === 'undefined' ? fallback : obj;\n};\n\nvar __isVuelidateAsyncVm = '__isVuelidateAsyncVm';\n\nfunction makePendingAsyncVm(Vue, promise) {\n var asyncVm = new Vue({\n data: {\n p: true,\n v: false\n }\n });\n promise.then(function (value) {\n asyncVm.p = false;\n asyncVm.v = value;\n }, function (error) {\n asyncVm.p = false;\n asyncVm.v = false;\n throw error;\n });\n asyncVm[__isVuelidateAsyncVm] = true;\n return asyncVm;\n}\n\nvar validationGetters = {\n $invalid: function $invalid() {\n var _this = this;\n\n var proxy = this.proxy;\n return this.nestedKeys.some(function (nested) {\n return _this.refProxy(nested).$invalid;\n }) || this.ruleKeys.some(function (rule) {\n return !proxy[rule];\n });\n },\n $dirty: function $dirty() {\n var _this2 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.every(function (key) {\n return _this2.refProxy(key).$dirty;\n });\n },\n $anyDirty: function $anyDirty() {\n var _this3 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.some(function (key) {\n return _this3.refProxy(key).$anyDirty;\n });\n },\n $error: function $error() {\n return this.$dirty && !this.$pending && this.$invalid;\n },\n $anyError: function $anyError() {\n var _this4 = this;\n\n if (this.$error) return true;\n return this.nestedKeys.some(function (key) {\n return _this4.refProxy(key).$anyError;\n });\n },\n $pending: function $pending() {\n var _this5 = this;\n\n return this.ruleKeys.some(function (key) {\n return _this5.getRef(key).$pending;\n }) || this.nestedKeys.some(function (key) {\n return _this5.refProxy(key).$pending;\n });\n },\n $params: function $params() {\n var _this6 = this;\n\n var vals = this.validations;\n return _objectSpread(_objectSpread({}, buildFromKeys(this.nestedKeys, function (key) {\n return vals[key] && vals[key].$params || null;\n })), buildFromKeys(this.ruleKeys, function (key) {\n return _this6.getRef(key).$params;\n }));\n }\n};\n\nfunction setDirtyRecursive(newState) {\n this.dirty = newState;\n var proxy = this.proxy;\n var method = newState ? '$touch' : '$reset';\n this.nestedKeys.forEach(function (key) {\n proxy[key][method]();\n });\n}\n\nvar validationMethods = {\n $touch: function $touch() {\n setDirtyRecursive.call(this, true);\n },\n $reset: function $reset() {\n setDirtyRecursive.call(this, false);\n },\n $flattenParams: function $flattenParams() {\n var proxy = this.proxy;\n var params = [];\n\n for (var key in this.$params) {\n if (this.isNested(key)) {\n var childParams = proxy[key].$flattenParams();\n\n for (var j = 0; j < childParams.length; j++) {\n childParams[j].path.unshift(key);\n }\n\n params = params.concat(childParams);\n } else {\n params.push({\n path: [],\n name: key,\n params: this.$params[key]\n });\n }\n }\n\n return params;\n }\n};\nvar getterNames = Object.keys(validationGetters);\nvar methodNames = Object.keys(validationMethods);\nvar _cachedComponent = null;\n\nvar getComponent = function getComponent(Vue) {\n if (_cachedComponent) {\n return _cachedComponent;\n }\n\n var VBase = Vue.extend({\n computed: {\n refs: function refs() {\n var oldVval = this._vval;\n this._vval = this.children;\n (0, _vval.patchChildren)(oldVval, this._vval);\n var refs = {};\n\n this._vval.forEach(function (c) {\n refs[c.key] = c.vm;\n });\n\n return refs;\n }\n },\n beforeCreate: function beforeCreate() {\n this._vval = null;\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vval) {\n (0, _vval.patchChildren)(this._vval);\n this._vval = null;\n }\n },\n methods: {\n getModel: function getModel() {\n return this.lazyModel ? this.lazyModel(this.prop) : this.model;\n },\n getModelKey: function getModelKey(key) {\n var model = this.getModel();\n\n if (model) {\n return model[key];\n }\n },\n hasIter: function hasIter() {\n return false;\n }\n }\n });\n var ValidationRule = VBase.extend({\n data: function data() {\n return {\n rule: null,\n lazyModel: null,\n model: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: {\n runRule: function runRule(parent) {\n var model = this.getModel();\n (0, _params.pushParams)();\n var rawOutput = this.rule.call(this.rootModel, model, parent);\n var output = isPromise(rawOutput) ? makePendingAsyncVm(Vue, rawOutput) : rawOutput;\n var rawParams = (0, _params.popParams)();\n var params = rawParams && rawParams.$sub ? rawParams.$sub.length > 1 ? rawParams : rawParams.$sub[0] : null;\n return {\n output: output,\n params: params\n };\n }\n },\n computed: {\n run: function run() {\n var _this7 = this;\n\n var parent = this.lazyParentModel();\n\n var isArrayDependant = Array.isArray(parent) && parent.__ob__;\n\n if (isArrayDependant) {\n var arrayDep = parent.__ob__.dep;\n arrayDep.depend();\n var target = arrayDep.constructor.target;\n\n if (!this._indirectWatcher) {\n var Watcher = target.constructor;\n this._indirectWatcher = new Watcher(this, function () {\n return _this7.runRule(parent);\n }, null, {\n lazy: true\n });\n }\n\n var model = this.getModel();\n\n if (!this._indirectWatcher.dirty && this._lastModel === model) {\n this._indirectWatcher.depend();\n\n return target.value;\n }\n\n this._lastModel = model;\n\n this._indirectWatcher.evaluate();\n\n this._indirectWatcher.depend();\n } else if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n\n return this._indirectWatcher ? this._indirectWatcher.value : this.runRule(parent);\n },\n $params: function $params() {\n return this.run.params;\n },\n proxy: function proxy() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return !!output.v;\n }\n\n return !!output;\n },\n $pending: function $pending() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return output.p;\n }\n\n return false;\n }\n },\n destroyed: function destroyed() {\n if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n }\n });\n var Validation = VBase.extend({\n data: function data() {\n return {\n dirty: false,\n validations: null,\n lazyModel: null,\n model: null,\n prop: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: _objectSpread(_objectSpread({}, validationMethods), {}, {\n refProxy: function refProxy(key) {\n return this.getRef(key).proxy;\n },\n getRef: function getRef(key) {\n return this.refs[key];\n },\n isNested: function isNested(key) {\n return typeof this.validations[key] !== 'function';\n }\n }),\n computed: _objectSpread(_objectSpread({}, validationGetters), {}, {\n nestedKeys: function nestedKeys() {\n return this.keys.filter(this.isNested);\n },\n ruleKeys: function ruleKeys() {\n var _this8 = this;\n\n return this.keys.filter(function (k) {\n return !_this8.isNested(k);\n });\n },\n keys: function keys() {\n return Object.keys(this.validations).filter(function (k) {\n return k !== '$params';\n });\n },\n proxy: function proxy() {\n var _this9 = this;\n\n var keyDefs = buildFromKeys(this.keys, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this9.refProxy(key);\n }\n };\n });\n var getterDefs = buildFromKeys(getterNames, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this9[key];\n }\n };\n });\n var methodDefs = buildFromKeys(methodNames, function (key) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return _this9[key];\n }\n };\n });\n var iterDefs = this.hasIter() ? {\n $iter: {\n enumerable: true,\n value: Object.defineProperties({}, _objectSpread({}, keyDefs))\n }\n } : {};\n return Object.defineProperties({}, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, keyDefs), iterDefs), {}, {\n $model: {\n enumerable: true,\n get: function get() {\n var parent = _this9.lazyParentModel();\n\n if (parent != null) {\n return parent[_this9.prop];\n } else {\n return null;\n }\n },\n set: function set(value) {\n var parent = _this9.lazyParentModel();\n\n if (parent != null) {\n parent[_this9.prop] = value;\n\n _this9.$touch();\n }\n }\n }\n }, getterDefs), methodDefs));\n },\n children: function children() {\n var _this10 = this;\n\n return [].concat(_toConsumableArray(this.nestedKeys.map(function (key) {\n return renderNested(_this10, key);\n })), _toConsumableArray(this.ruleKeys.map(function (key) {\n return renderRule(_this10, key);\n }))).filter(Boolean);\n }\n })\n });\n var GroupValidation = Validation.extend({\n methods: {\n isNested: function isNested(key) {\n return typeof this.validations[key]() !== 'undefined';\n },\n getRef: function getRef(key) {\n var vm = this;\n return {\n get proxy() {\n return vm.validations[key]() || false;\n }\n\n };\n }\n }\n });\n var EachValidation = Validation.extend({\n computed: {\n keys: function keys() {\n var model = this.getModel();\n\n if (isObject(model)) {\n return Object.keys(model);\n } else {\n return [];\n }\n },\n tracker: function tracker() {\n var _this11 = this;\n\n var trackBy = this.validations.$trackBy;\n return trackBy ? function (key) {\n return \"\".concat(getPath(_this11.rootModel, _this11.getModelKey(key), trackBy));\n } : function (x) {\n return \"\".concat(x);\n };\n },\n getModelLazy: function getModelLazy() {\n var _this12 = this;\n\n return function () {\n return _this12.getModel();\n };\n },\n children: function children() {\n var _this13 = this;\n\n var def = this.validations;\n var model = this.getModel();\n\n var validations = _objectSpread({}, def);\n\n delete validations['$trackBy'];\n var usedTracks = {};\n return this.keys.map(function (key) {\n var track = _this13.tracker(key);\n\n if (usedTracks.hasOwnProperty(track)) {\n return null;\n }\n\n usedTracks[track] = true;\n return (0, _vval.h)(Validation, track, {\n validations: validations,\n prop: key,\n lazyParentModel: _this13.getModelLazy,\n model: model[key],\n rootModel: _this13.rootModel\n });\n }).filter(Boolean);\n }\n },\n methods: {\n isNested: function isNested() {\n return true;\n },\n getRef: function getRef(key) {\n return this.refs[this.tracker(key)];\n },\n hasIter: function hasIter() {\n return true;\n }\n }\n });\n\n var renderNested = function renderNested(vm, key) {\n if (key === '$each') {\n return (0, _vval.h)(EachValidation, key, {\n validations: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n prop: key,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n }\n\n var validations = vm.validations[key];\n\n if (Array.isArray(validations)) {\n var root = vm.rootModel;\n var refVals = buildFromKeys(validations, function (path) {\n return function () {\n return getPath(root, root.$v, path);\n };\n }, function (v) {\n return Array.isArray(v) ? v.join('.') : v;\n });\n return (0, _vval.h)(GroupValidation, key, {\n validations: refVals,\n lazyParentModel: NIL,\n prop: key,\n lazyModel: NIL,\n rootModel: root\n });\n }\n\n return (0, _vval.h)(Validation, key, {\n validations: validations,\n lazyParentModel: vm.getModel,\n prop: key,\n lazyModel: vm.getModelKey,\n rootModel: vm.rootModel\n });\n };\n\n var renderRule = function renderRule(vm, key) {\n return (0, _vval.h)(ValidationRule, key, {\n rule: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n };\n\n _cachedComponent = {\n VBase: VBase,\n Validation: Validation\n };\n return _cachedComponent;\n};\n\nvar _cachedVue = null;\n\nfunction getVue(rootVm) {\n if (_cachedVue) return _cachedVue;\n var Vue = rootVm.constructor;\n\n while (Vue.super) {\n Vue = Vue.super;\n }\n\n _cachedVue = Vue;\n return Vue;\n}\n\nvar validateModel = function validateModel(model, validations) {\n var Vue = getVue(model);\n\n var _getComponent = getComponent(Vue),\n Validation = _getComponent.Validation,\n VBase = _getComponent.VBase;\n\n var root = new VBase({\n computed: {\n children: function children() {\n var vals = typeof validations === 'function' ? validations.call(model) : validations;\n return [(0, _vval.h)(Validation, '$v', {\n validations: vals,\n lazyParentModel: NIL,\n prop: '$v',\n model: model,\n rootModel: model\n })];\n }\n }\n });\n return root;\n};\n\nvar validationMixin = {\n data: function data() {\n var vals = this.$options.validations;\n\n if (vals) {\n this._vuelidate = validateModel(this, vals);\n }\n\n return {};\n },\n beforeCreate: function beforeCreate() {\n var options = this.$options;\n var vals = options.validations;\n if (!vals) return;\n if (!options.computed) options.computed = {};\n if (options.computed.$v) return;\n\n options.computed.$v = function () {\n return this._vuelidate ? this._vuelidate.refs.$v.proxy : null;\n };\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vuelidate) {\n this._vuelidate.$destroy();\n\n this._vuelidate = null;\n }\n }\n};\nexports.validationMixin = validationMixin;\n\nfunction Vuelidate(Vue) {\n Vue.mixin(validationMixin);\n}\n\nvar _default = Vuelidate;\nexports.default = _default;","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\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\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar inBrowser = typeof window !== 'undefined';\nvar debounce = function debounce(callback, wait) {\n var timeout; // eslint-disable-next-line func-names\n\n return function () {\n var context = this; // eslint-disable-next-line prefer-rest-params\n\n var args = arguments; // eslint-disable-next-line func-names\n\n var later = function later() {\n timeout = null;\n callback.apply(context, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n};\nvar parseSemver = function parseSemver(version) {\n var fragments = version.split('.');\n var major = parseInt(fragments[0], 10);\n return {\n major: typeof major === 'number' ? major : 1,\n minor: parseInt(fragments[1], 10) || 0,\n patch: parseInt(fragments[2], 10) || 0\n };\n};\nvar checkVersion = function checkVersion(current, required) {\n var currentVersion = parseSemver(current);\n var requiredVersion = parseSemver(required);\n return currentVersion.major > requiredVersion.major || currentVersion.major === requiredVersion.major && currentVersion.minor > requiredVersion.minor || currentVersion.major === requiredVersion.major && currentVersion.minor === requiredVersion.minor && currentVersion.patch >= requiredVersion.patch;\n};\n\nvar bootstrap = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nvar bulma = {\n mobile: 0,\n tablet: 769,\n desktop: 1024,\n widescreen: 1216,\n fullhd: 1408\n};\n\nvar foundation = {\n small: 0,\n medium: 640,\n large: 1024\n};\n\nvar materialize = {\n s: 0,\n m: 601,\n l: 993,\n xl: 1201\n};\n\nvar semantic = {\n mobile: 0,\n tablet: 768,\n computer: 992,\n large: 1201\n};\n\nvar tailwind = {\n xs: 0,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n};\n\nvar grids = {\n bootstrap: bootstrap,\n bulma: bulma,\n foundation: foundation,\n materialize: materialize,\n 'semantic-ui': semantic,\n tailwind: tailwind\n};\n\nvar Vue;\nvar MIN_VUE_VERSION = '2.6.0'; // GoogleBot default screen size\n\nvar DEFAULT_WIDTH = 410;\nvar DEFAULT_HEIGHT = 730;\nvar DEFAULT_FRAMEWORK = 'tailwind';\nvar DEBOUNCE_MS = 100;\nvar RESERVED_KEYS = ['width', 'height', 'touch', 'portrait', 'landscape', 'config'];\nvar CUSTOM_FRAMEWORK_NAME = '__CUSTOM__';\nvar DEFAULT_ORDERS = {\n bootstrap: ['xs', 'sm', 'md', 'lg', 'xl'],\n bulma: ['mobile', 'tablet', 'desktop', 'widescreen', 'fullhd'],\n foundation: ['small', 'medium', 'large'],\n materialize: ['s', 'm', 'l', 'xl'],\n 'semantic-ui': ['mobile', 'tablet', 'computer', 'large'],\n tailwind: ['xs', 'sm', 'md', 'lg', 'xl']\n};\nvar Plugin =\n/*#__PURE__*/\nfunction () {\n /**\n * Class constructor\n *\n * @param {object | string} breakpoints\n */\n function Plugin() {\n var breakpoints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n _classCallCheck(this, Plugin);\n\n this.callbacks = {};\n this.framework = '';\n this.config = Plugin.parseBreakpoints(breakpoints);\n this.createScreen();\n this.init();\n }\n /**\n * Parse the breakpoints parameter and return a Breakpoint object\n *\n * @param {object | string} breakpoints\n * @returns {object}\n */\n\n\n _createClass(Plugin, [{\n key: \"init\",\n\n /**\n * Init the reactive object\n */\n value: function init() {\n this.attachResize();\n this.checkTouch();\n this.setScreenSize();\n }\n /**\n * Attach a listener to the window resize event\n */\n\n }, {\n key: \"attachResize\",\n value: function attachResize() {\n if (inBrowser) {\n window.addEventListener('resize', debounce(this.setScreenSize.bind(this), DEBOUNCE_MS));\n }\n }\n /**\n * Set the screen size\n */\n\n }, {\n key: \"setScreenSize\",\n value: function setScreenSize() {\n if (inBrowser) {\n this.screen.width = window.innerWidth;\n this.screen.height = window.innerHeight;\n this.runCallbacks();\n this.findCurrentBreakpoint();\n }\n }\n /**\n * Run callbacks\n */\n\n }, {\n key: \"runCallbacks\",\n value: function runCallbacks() {\n var _this = this;\n\n Object.keys(this.callbacks).forEach(function (key) {\n _this.screen[key] = _this.callbacks[key].call(null, _this.screen);\n });\n }\n /**\n * Calculate the current breakpoint name based on \"order\" property\n */\n\n }, {\n key: \"findCurrentBreakpoint\",\n value: function findCurrentBreakpoint() {\n var _this2 = this;\n\n this.screen.breakpoint = this.config.breakpointsOrder.reduce(function (activeBreakpoint, currentBreakpoint) {\n if (_this2.screen[currentBreakpoint]) {\n return currentBreakpoint;\n }\n\n return activeBreakpoint;\n }, this.config.breakpointsOrder[0]);\n }\n /**\n * Check touch screen capability\n */\n\n }, {\n key: \"checkTouch\",\n value: function checkTouch() {\n if (inBrowser) {\n this.screen.touch = 'ontouchstart' in window;\n }\n }\n /**\n * Create the reactive object\n */\n\n }, {\n key: \"createScreen\",\n value: function createScreen() {\n var _this3 = this;\n\n var breakpointKeys = Object.keys(this.config).filter(function (key) {\n return key !== 'breakpointsOrder';\n });\n this.screen = Vue.observable({\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT,\n touch: true,\n portrait: true,\n landscape: false,\n breakpoint: this.config.breakpointsOrder[0],\n breakpointsOrder: this.config.breakpointsOrder,\n config: this.config\n });\n this.findCurrentBreakpoint();\n breakpointKeys.forEach(function (name) {\n if (RESERVED_KEYS.indexOf(name) >= 0) {\n throw new Error(\"Invalid breakpoint name: \\\"\".concat(name, \"\\\". This key is reserved.\"));\n }\n\n Vue.set(_this3.screen, name, false);\n });\n\n if (inBrowser) {\n this.initMediaQueries();\n }\n }\n /**\n * Initialize the media queries to test\n */\n\n }, {\n key: \"initMediaQueries\",\n value: function initMediaQueries() {\n var _this4 = this;\n\n Object.keys(this.config).filter(function (key) {\n return key !== 'breakpointsOrder';\n }).forEach(function (name) {\n var w = null;\n\n if (name !== 'breakpointsOrder') {\n var width = _this4.config[name];\n\n if (typeof width === 'function') {\n _this4.callbacks[name] = width;\n } else if (typeof width === 'number') {\n w = \"\".concat(width, \"px\");\n } else if (typeof width === 'string') {\n w = width;\n } else {\n _this4.screen[name] = width;\n }\n }\n\n if (w) {\n var _query = window.matchMedia(\"(min-width: \".concat(w, \")\"));\n\n if ('addEventListener' in _query) {\n _query.addEventListener('change', function (e) {\n return _this4.mediaStateChanged(name, e.matches);\n });\n } else {\n _query.addListener(function (e) {\n return _this4.mediaStateChanged(name, e.matches);\n });\n }\n\n _this4.mediaStateChanged(name, _query.matches);\n }\n });\n var query = window.matchMedia('(orientation: portrait)');\n\n if ('addEventListener' in query) {\n query.addEventListener('change', function (e) {\n _this4.mediaStateChanged('portrait', e.matches);\n\n _this4.mediaStateChanged('landscape', !e.matches);\n });\n } else {\n query.addListener(function (e) {\n _this4.mediaStateChanged('portrait', e.matches);\n\n _this4.mediaStateChanged('landscape', !e.matches);\n });\n }\n\n this.mediaStateChanged('portrait', query.matches);\n this.mediaStateChanged('landscape', !query.matches);\n }\n /**\n * Set the media query state on the reactive object\n *\n * @param {string} name\n * @param {boolean} matches\n */\n\n }, {\n key: \"mediaStateChanged\",\n value: function mediaStateChanged(name, matches) {\n Vue.set(this.screen, name, matches);\n }\n /**\n * Install the plugin\n *\n * @param {Vue} vue\n * @param {object} options\n */\n\n }], [{\n key: \"parseBreakpoints\",\n value: function parseBreakpoints(breakpoints) {\n if (_typeof(breakpoints) === 'object') {\n if (breakpoints.extend) {\n this.framework = breakpoints.extend.toString(); // eslint-disable-next-line no-param-reassign\n\n delete breakpoints.extend;\n return Object.assign({}, breakpoints, Plugin.getBreakpoints());\n }\n\n this.framework = CUSTOM_FRAMEWORK_NAME;\n return _objectSpread2({\n breakpointsOrder: Object.keys(breakpoints).filter(function (key) {\n return key !== 'breakpointsOrder';\n })\n }, breakpoints);\n }\n\n this.framework = breakpoints.toString();\n return Plugin.getBreakpoints();\n }\n /**\n * Get the breakpoints of one of the supported frameworks\n *\n * @param {string} framework\n * @returns {object}\n */\n\n }, {\n key: \"getBreakpoints\",\n value: function getBreakpoints() {\n if (!this.framework) {\n // eslint-disable-next-line no-param-reassign\n this.framework = DEFAULT_FRAMEWORK;\n }\n\n if (!grids[this.framework]) {\n throw new Error(\"Cannot find grid breakpoints for framework \\\"\".concat(this.framework, \"\\\"\"));\n }\n\n return _objectSpread2({}, grids[this.framework], {\n breakpointsOrder: DEFAULT_ORDERS[this.framework]\n });\n }\n }, {\n key: \"install\",\n value: function install(vue, options) {\n Vue = vue;\n\n if (!checkVersion(Vue.version, MIN_VUE_VERSION)) {\n throw Error(\"VueScreen requires at least Vue \".concat(MIN_VUE_VERSION));\n } // eslint-disable-next-line no-param-reassign\n\n\n Vue.prototype.$screen = new Plugin(options).screen;\n }\n }]);\n\n return Plugin;\n}();\n\nif (inBrowser && window.Vue) {\n window.Vue.use(Plugin);\n}\n\nexport default Plugin;\n","export default {\n install (Vue) {\n // Add $plugin instance method directly to Vue components\n Vue.prototype.$merge = (obj1, obj2) => recursiveMerge(obj1, obj2);\n Vue.prototype.$toCamel = (string) => toCamel(string);\n Vue.prototype.$toSnake = (string) => toSnake(string);\n Vue.prototype.$toTitleCase = (string) => toTitleCase(string);\n Vue.prototype.$ageDiff = (date, comparisonDate) => ageDiff(date, comparisonDate);\n Vue.prototype.$calculateAge = (string) => calculateAge(string);\n Vue.prototype.$localStorage = safeLocalStorage();\n },\n};\n\nconst toCamel = (string) => {\n return string.replace(/[_][a-z\\d]/ig, (k) => k.toUpperCase().replace('_', ''));\n};\n\nconst toSnake = (string) => {\n return string.replace(/[A-Z]|\\d+/g, (k) => `_${k.toLowerCase()}`);\n};\n\nconst recursiveMerge = (obj1, obj2) => {\n for (const key in obj1) {\n if (obj1[key] && obj2[key] && typeof obj1[key] === 'object' && !Array.isArray(obj1[key])) {\n recursiveMerge(obj1[key], obj2[key]);\n }\n else {\n obj1[key] = obj2[key] == null || obj2[key] === '' ? obj1[key] : obj2[key];\n }\n }\n};\n\nconst toTitleCase = (text) => {\n return text ? text.toLowerCase().split(' ').map((s) => s.charAt(0).toUpperCase() + s.substring(1)).join(' ') : null;\n};\n\nconst safeLocalStorage = () => {\n /* eslint-disable no-unused-vars */\n const voidLocalStorage = {\n clear: () => null,\n getItem: (_key) => null,\n key: (_index) => null,\n removeItem: (_key) => null,\n setItem: (_key, _value) => null,\n };\n\n try {\n return localStorage || voidLocalStorage;\n } catch (e) {\n return voidLocalStorage;\n }\n};\n\nconst ageDiff = (date, comparisonDate) => {\n if (!date || !comparisonDate) return null;\n\n const ageInMs = new Date(date) - new Date(comparisonDate);\n const msToYears = 365 * 24 * 60 * 60 * 1000;\n\n return (ageInMs / msToYears);\n};\n\nconst calculateAge = (date, fullYear = false) => {\n if (!date) return NaN;\n\n const today = new Date();\n const birthyear = new Date(date);\n return fullYear ? ageDiff(today, birthyear) : today.getFullYear() - birthyear.getFullYear();\n};\n\n","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\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 */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\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 */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\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 */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\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 */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\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 */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value 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 */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\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 */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\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 */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\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 */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\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 */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction 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/**\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 */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\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 */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n","/** Internal global with common properties and Sentry extensions */\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj) {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function () {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nfunction getGlobalObject() {\n return GLOBAL_OBJ ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { GLOBAL_OBJ, getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","import { getGlobalSingleton, GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console ;\n const wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\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 */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\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 markFunctionWrapped(wrapped, original);\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\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\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 */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(value)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\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 */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const 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\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n const getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\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 */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\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 */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(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/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const 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}\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 */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nfunction getSDKSource() {\n // @ts-ignore \"npm\" is injected by rollup during build process\n return \"npm\";\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\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\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\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 */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n\n constructor(\n executor,\n ) {SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { isNodeEnv, dynamicRequire } from './node.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\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 */\nconst dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\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 const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\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 const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\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 const perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nconst dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\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 */\nconst timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n/**\n * Re-exported with an old name for backwards-compatibility.\n * TODO (v8): Remove this\n *\n * @deprecated Use `timestampInSeconds` instead.\n */\nconst timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nconst usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\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 */\nconst browserPerformanceTimeOrigin = (() => {\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\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\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 const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\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\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { isPlainObject, dateTimestampInSeconds, SyncPromise, logger, isThenable, arrayify, getGlobalSingleton } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called after {@link applyToEvent}. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n\n /** Transaction Name */\n\n /** Span */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...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 = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n newScope._sdkProcessingMetadata = { ...scope._sdkProcessingMetadata };\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...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 } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...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\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\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 this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...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\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 relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transaction = this._span.transaction;\n if (transaction) {\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: transaction.getDynamicSamplingContext(),\n ...event.sdkProcessingMetadata,\n };\n const transactionName = transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\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(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\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 _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(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\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}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n","import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, GLOBAL_OBJ, getGlobalSingleton } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\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 */\nconst API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n\n /** Contains the last event id of a captured event. */\n\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 constructor(client, scope = new Scope(), _version = API_VERSION) {this._version = _version;\n this._stack = [{ scope }];\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n ) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this.getScope().setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this.getScope().setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this.getScope().setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this.getScope().setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this.getScope().setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setContext(name, context) {\n this.getScope().setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n const result = this._callExtensionMethod('startTransaction', context, customSamplingContext);\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && !result) {\n // eslint-disable-next-line no-console\n console.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n`);\n }\n\n return result;\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n const layer = this.getStackTop();\n const scope = layer.scope;\n const session = scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n scope.setSession();\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: scope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n\n const session = scope.getSession();\n if (session && 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 _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\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 _callExtensionMethod(method, ...args) {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\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 **/\nfunction getMainCarrier() {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\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 */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n const hub = registry.__SENTRY__.acs.getCurrentHub();\n\n if (hub) {\n return hub;\n }\n }\n\n // Return hub that lives on a global object\n return getGlobalHub(registry);\n}\n\nfunction getGlobalHub(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\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * If the carrier does not contain a hub, a new hub is created with the global hub client and scope.\n */\nfunction ensureHubOnCarrier(carrier, parent = getGlobalHub()) {\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(carrier) || getHubFromCarrier(carrier).isOlderThan(API_VERSION)) {\n const globalHubTopStack = parent.getStackTop();\n setHubOnCarrier(carrier, new Hub(globalHubTopStack.client, Scope.clone(globalHubTopStack.scope)));\n }\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n registry.__SENTRY__ = registry.__SENTRY__ || {};\n registry.__SENTRY__.acs = strategy;\n}\n\n/**\n * Runs the supplied callback in its own async context. Async Context strategies are defined per SDK.\n *\n * @param callback The callback to run in its own async context\n * @param options Options to pass to the async context strategy\n * @returns The result of the callback\n */\nfunction runWithAsyncContext(callback, options = {}) {\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n return registry.__SENTRY__.acs.runWithAsyncContext(callback, options);\n }\n\n // if there was no strategy, fallback to just calling the callback\n return callback();\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/**\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 */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\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 */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, ensureHubOnCarrier, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, runWithAsyncContext, setAsyncContextStrategy, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n","import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\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 Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\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 */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\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 */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\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\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\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 */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\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 */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\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 */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\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 */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\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 */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\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 */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\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 * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\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 */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n","import Vue from 'vue';\nimport * as Sentry from '@sentry/vue';\n\nconst isFetchError = (event) => {\n return !!event.breadcrumbs?.find((ev) => {\n return ev.category === 'fetch' &&\n (ev.data?.url || '').match(/(monitor\\.clickcease\\.com)|(chrome-extension)/) &&\n (ev.data?.status_code >= 400 || ev.level === 'error');\n });\n};\n\n// Disable sentry to check if it provides any value\nif (false && ['staging', 'production'].includes(process.env.NODE_ENV)) {\n Sentry.init({\n Vue,\n dsn: 'https://4eded25292b54397b61e16b15d890096@o61191.ingest.sentry.io/5547324',\n integrations: [\n new Sentry.BrowserTracing({\n shouldCreateSpanForRequest(currentUrl) {\n return ['https://staging.yago.be', 'https://www.yago.be'].some(\n (allowedUrl) => new URL(currentUrl).origin === new URL(allowedUrl).origin,\n );\n },\n }),\n ],\n tracesSampleRate: 0.1, // 10% of the transaction events will be forwarded to Sentry\n allowUrls: ['https://staging.yago.be', 'https://www.yago.be'],\n denyUrls: ['https://seraphin.be/cdn-cgi/'],\n environment: process.env.NODE_ENV,\n ignoreErrors: [\n 'Can\\'t find variable: fbq',\n 'Error: Network Error',\n 'Failed to execute \\'replaceState\\' on \\'History\\'',\n 'Non-Error promise rejection captured with value: Object Not Found',\n 'QuotaExceededError:',\n 'ResizeObserver loop limit exceeded',\n 'SecurityError: The operation is insecure.',\n 'TypeError: Illegal invocation',\n ],\n beforeSend(event) {\n try {\n if (isFetchError(event)) return null;\n } catch (e) {\n return event;\n }\n return event;\n },\n });\n} else {\n console.debug('Not using Sentry, environment is', process.env.NODE_ENV);\n}\n","import Vue from 'vue';\n\nVue.directive('clickoutside', {\n bind (el, binding) {\n el.__clickOutsideHandler = (event) => {\n if (path(event) && !path(event).includes(el)) {\n binding.value(event);\n }\n };\n\n const path = (e) => {\n try {\n return e.composedPath();\n } catch (error) {\n return composedPath(e.target);\n }\n };\n\n // Polyfill for IE and Edge\n const composedPath = (el) => {\n const path = [];\n while (el) {\n path.push(el);\n if (el.tagName === 'HTML') {\n path.push(document);\n path.push(window);\n return path;\n }\n el = el.parentElement;\n }\n };\n\n document.addEventListener('click', el.__clickOutsideHandler);\n },\n unbind (el) {\n document.removeEventListener('click', el.__clickOutsideHandler);\n },\n});\n","import Vue from 'vue';\nimport Vuelidate from 'vuelidate';\nimport Turbolinks from './turbolinks';\nimport VueScreen from 'vue-screen'; // https://github.com/reegodev/vue-screen\nimport i18n from './i18n';\nimport customPlugins from '../plugins/custom';\nimport './components';\nimport '../plugins/sentry';\nimport '../directives/click-outside';\nimport * as Sentry from '@sentry/vue';\n\nVue.use(VueScreen);\nVue.use(Vuelidate);\nVue.use(customPlugins);\n\nVue.config.productionTip = false;\n\nVue.prototype.$turbolinks = Turbolinks;\nVue.prototype.$googleMapsApiKey = 'AIzaSyBnmZ7R1iDg0_lrlqOiollVgVTfTRTKEDM';\n\nVue.directive('click-outside', {});\n\nwindow.gm_authFailure = function(e) {\n Sentry.captureException('Google Maps JavaScript API error');\n}\n\ndocument.addEventListener('turbolinks:load', () => {\n new Vue({\n el: '[data-behavior=\"vue\"]',\n i18n,\n mounted() {\n i18n.locale = this.$el.attributes.locale?.value;\n },\n });\n});\n\ndocument.addEventListener('turbolinks:before-render', function () {\n window.zEACLoaded = undefined;\n});\n"],"names":["vval","h","patchChildren","isUndef","v","isDef","sameVval","oldVval","createVm","Vm","updateVval","keys","i","k","createKeyToOldIdx","children","beginIdx","endIdx","key","map","updateChildren","oldCh","newCh","oldStartIdx","newStartIdx","oldEndIdx","oldStartVval","oldEndVval","newEndIdx","newStartVval","newEndVval","oldKeyToIdx","idxInOld","elmToMove","patchVval","addVvals","removeVvals","vvals","startIdx","ch","tag","args","params_1","popParams","pushParams","withParams","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread","target","source","_defineProperty","obj","value","_typeof","stack","_setTarget","x","lastTarget","newTarget","addParams","params","withParamsDirect","validator","withParamsClosure","add","_len","_key","closure","_len2","_key2","paramsOrClosure","maybeValidator","exports","Vuelidate","_params","_vval","require$$0","require$$1","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","iter","len","arr2","NIL","buildFromKeys","fn","keyFn","build","isFunction","val","isObject","isPromise","getPath","ctx","path","fallback","__isVuelidateAsyncVm","makePendingAsyncVm","Vue","promise","asyncVm","error","validationGetters","_this","proxy","nested","rule","_this2","_this3","_this4","_this5","_this6","vals","setDirtyRecursive","newState","method","validationMethods","childParams","j","getterNames","methodNames","_cachedComponent","getComponent","VBase","refs","c","model","ValidationRule","parent","rawOutput","output","rawParams","_this7","isArrayDependant","arrayDep","Watcher","Validation","_this8","_this9","keyDefs","getterDefs","methodDefs","iterDefs","_this10","renderNested","renderRule","GroupValidation","vm","EachValidation","_this11","trackBy","_this12","_this13","def","validations","usedTracks","track","root","refVals","_cachedVue","getVue","rootVm","validateModel","_getComponent","validationMixin","options","_default","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_objectSpread2","inBrowser","debounce","callback","wait","timeout","context","later","parseSemver","version","fragments","major","checkVersion","current","required","currentVersion","requiredVersion","bootstrap","bulma","foundation","materialize","semantic","tailwind","grids","MIN_VUE_VERSION","DEFAULT_WIDTH","DEFAULT_HEIGHT","DEFAULT_FRAMEWORK","DEBOUNCE_MS","RESERVED_KEYS","CUSTOM_FRAMEWORK_NAME","DEFAULT_ORDERS","Plugin","breakpoints","activeBreakpoint","currentBreakpoint","breakpointKeys","name","w","width","_query","e","query","matches","vue","customPlugins","obj1","obj2","recursiveMerge","string","toCamel","toSnake","toTitleCase","date","comparisonDate","ageDiff","calculateAge","safeLocalStorage","text","s","voidLocalStorage","_index","_value","ageInMs","msToYears","fullYear","today","birthyear","objectToString","isBuiltin","wat","className","isPlainObject","isThenable","isGlobalObj","GLOBAL_OBJ","getGlobalObject","getGlobalSingleton","creator","gbl","__SENTRY__","PREFIX","CONSOLE_LEVELS","consoleSandbox","originalConsole","wrappedLevels","level","originalWrappedFunc","makeLogger","enabled","logger","dropUndefinedKeys","inputValue","_dropUndefinedKeys","memoizationMap","memoVal","returnValue","item","uuid4","crypto","getRandomByte","arrayify","maybeArray","isBrowserBundle","isNodeEnv","dynamicRequire","mod","request","States","RESOLVED","REJECTED","SyncPromise","executor","onfulfilled","onrejected","resolve","reject","result","reason","onfinally","isRejected","state","cachedHandlers","handler","WINDOW","dateTimestampSource","getBrowserPerformance","performance","timeOrigin","getNodePerformance","module","platformPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","navigationStartDelta","navigationStartIsReliable","DEFAULT_ENVIRONMENT","makeSession","startingTime","session","sessionToJSON","updateSession","duration","closeSession","status","DEFAULT_MAX_BREADCRUMBS","Scope","scope","newScope","user","requestSession","tags","extras","extra","fingerprint","span","captureContext","updatedScope","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","attachment","event","hint","transaction","transactionName","getGlobalEventProcessors","newData","processors","index","processor","final","API_VERSION","DEFAULT_BREADCRUMBS","Hub","client","_version","top","exception","eventId","syntheticException","message","beforeBreadcrumb","finalBreadcrumb","oldHub","makeMain","integration","customSamplingContext","endSession","release","environment","userAgent","currentSession","sentry","getMainCarrier","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","getGlobalHub","hasHubOnCarrier","carrier","captureException","el","binding","composedPath","VueScreen","Turbolinks","Sentry.captureException","i18n","_a"],"mappings":"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","x_google_ignoreList":[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18]}