{"version":3,"file":"js/5046-27737a4229200da4598e.js","mappings":"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","sources":["webpack://artfully-walls/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://artfully-walls/./node_modules/scheduler/index.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/debug-build.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/getNativeImplementation.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/dom.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/history.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/xhr.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/cls.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/browserMetrics.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/inp.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/bindReporter.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/initMetric.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/generateUniqueID.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/observe.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/runOnce.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenActivated.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onFCP.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getCLS.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getFID.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/interactions.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenIdle.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getINP.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getLCP.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onTTFB.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/instrument.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/utils.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getActivationStart.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getNavigationEntry.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getVisibilityWatcher.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/onHidden.js","webpack://artfully-walls/./node_modules/@sentry-internal/browser-utils/build/esm/types.js","webpack://artfully-walls/./node_modules/@sentry-internal/feedback/build/npm/esm/index.js","webpack://artfully-walls/./node_modules/@sentry-internal/replay-canvas/build/npm/esm/index.js"],"sourcesContent":["/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { isNativeFunction, logger } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './types.js';\n\n/**\n * We generally want to use window.fetch / window.setTimeout.\n * However, in some cases this may be wrapped (e.g. by Zone.js for Angular),\n * so we try to get an unpatched version of this from a sandboxed iframe.\n */\n\nconst cachedImplementations = {};\n\n/**\n * Get the native implementation of a browser function.\n *\n * This can be used to ensure we get an unwrapped version of a function, in cases where a wrapped function can lead to problems.\n *\n * The following methods can be retrieved:\n * - `setTimeout`: This can be wrapped by e.g. Angular, causing change detection to be triggered.\n * - `fetch`: This can be wrapped by e.g. ad-blockers, causing an infinite loop when a request is blocked.\n */\nfunction getNativeImplementation(\n name,\n) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n\n let impl = WINDOW[name] ;\n\n // Fast path to avoid DOM I/O\n if (isNativeFunction(impl)) {\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n }\n\n const document = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl = contentWindow[name] ;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n // Could not create sandbox iframe, just use window.xxx\n DEBUG_BUILD && logger.warn(`Could not create sandbox iframe for ${name} check, bailing to window.${name}: `, e);\n }\n }\n\n // Sanity check: This _should_ not happen, but if it does, we just skip caching...\n // This can happen e.g. in tests where fetch may not be available in the env, or similar.\n if (!impl) {\n return impl;\n }\n\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n}\n\n/** Clear a cached implementation. */\nfunction clearCachedImplementation(name) {\n cachedImplementations[name] = undefined;\n}\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction fetch(...rest) {\n return getNativeImplementation('fetch')(...rest);\n}\n\n/**\n * Get an unwrapped `setTimeout` method.\n * This ensures that even if e.g. Angular wraps `setTimeout`, we get the native implementation,\n * avoiding triggering change detection.\n */\nfunction setTimeout(...rest) {\n return getNativeImplementation('setTimeout')(...rest);\n}\n\nexport { clearCachedImplementation, fetch, getNativeImplementation, setTimeout };\n//# sourceMappingURL=getNativeImplementation.js.map\n","import { addHandler, maybeInstrument, triggerHandlers, fill, addNonEnumerableProperty, uuid4 } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID;\nlet lastCapturedEventType;\nlet lastCapturedEventTargetId;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addClickKeypressInstrumentationHandler(handler) {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nfunction instrumentDOM() {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n const globalObject = WINDOW ;\n const targetObj = globalObject[target];\n const proto = targetObj && targetObj.prototype;\n\n // eslint-disable-next-line no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function ( type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n const handlers = (this.__sentry_instrumentation_handlers__ =\n this.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListeners` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function ( type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n const handlers = this.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete this.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListeners` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event) {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target )._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType, target) {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler,\n globalListener = false,\n) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event) {\n try {\n return event.target ;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n\nexport { addClickKeypressInstrumentationHandler, instrumentDOM };\n//# sourceMappingURL=dom.js.map\n","import { addHandler, maybeInstrument, supportsHistory, triggerHandlers, fill } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nlet lastHref;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addHistoryInstrumentationHandler(handler) {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function ( ...args) {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nexport { addHistoryInstrumentationHandler };\n//# sourceMappingURL=history.js.map\n","import { addHandler, maybeInstrument, timestampInSeconds, isString, triggerHandlers } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nconst SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addXhrInstrumentationHandler(handler) {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nfunction instrumentXHR() {\n if (!(WINDOW ).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.open = new Proxy(xhrproto.open, {\n apply(originalOpen, xhrOpenThisArg, xhrOpenArgArray) {\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your XHR call did not\n // have a stack trace. If you are using HttpClient integration,\n // this is the expected behavior, as we are using this virtual error to capture\n // the location of your XHR call, and group your HttpClient events accordingly.\n const virtualError = new Error();\n\n const startTimestamp = timestampInSeconds() * 1000;\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(xhrOpenArgArray[0]) ? xhrOpenArgArray[0].toUpperCase() : undefined;\n const url = parseUrl(xhrOpenArgArray[1]);\n\n if (!method || !url) {\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n }\n\n xhrOpenThisArg[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n xhrOpenThisArg.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = xhrOpenThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (xhrOpenThisArg.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhrOpenThisArg.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData = {\n endTimestamp: timestampInSeconds() * 1000,\n startTimestamp,\n xhr: xhrOpenThisArg,\n virtualError,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in xhrOpenThisArg && typeof xhrOpenThisArg.onreadystatechange === 'function') {\n xhrOpenThisArg.onreadystatechange = new Proxy(xhrOpenThisArg.onreadystatechange, {\n apply(originalOnreadystatechange, onreadystatechangeThisArg, onreadystatechangeArgArray) {\n onreadystatechangeHandler();\n return originalOnreadystatechange.apply(onreadystatechangeThisArg, onreadystatechangeArgArray);\n },\n });\n } else {\n xhrOpenThisArg.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n xhrOpenThisArg.setRequestHeader = new Proxy(xhrOpenThisArg.setRequestHeader, {\n apply(\n originalSetRequestHeader,\n setRequestHeaderThisArg,\n setRequestHeaderArgArray,\n ) {\n const [header, value] = setRequestHeaderArgArray;\n\n const xhrInfo = setRequestHeaderThisArg[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return originalSetRequestHeader.apply(setRequestHeaderThisArg, setRequestHeaderArgArray);\n },\n });\n\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.send = new Proxy(xhrproto.send, {\n apply(originalSend, sendThisArg, sendArgArray) {\n const sentryXhrData = sendThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(sendThisArg, sendArgArray);\n }\n\n if (sendArgArray[0] !== undefined) {\n sentryXhrData.body = sendArgArray[0];\n }\n\n const handlerData = {\n startTimestamp: timestampInSeconds() * 1000,\n xhr: sendThisArg,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(sendThisArg, sendArgArray);\n },\n });\n}\n\nfunction parseUrl(url) {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url ).toString();\n } catch (e2) {} // eslint-disable-line no-empty\n\n return undefined;\n}\n\nexport { SENTRY_XHR_DATA_KEY, addXhrInstrumentationHandler, instrumentXHR };\n//# sourceMappingURL=xhr.js.map\n","import { getClient, getActiveSpan, getRootSpan, spanToJSON, logger, browserPerformanceTimeOrigin, getCurrentScope, htmlTreeAsString, dropUndefinedKeys, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { addClsInstrumentationHandler } from './instrument.js';\nimport { msToSec, startStandaloneWebVitalSpan } from './utils.js';\nimport { onHidden } from './web-vitals/lib/onHidden.js';\n\n/**\n * Starts tracking the Cumulative Layout Shift on the current page and collects the value once\n *\n * - the page visibility is hidden\n * - a navigation span is started (to stop CLS measurement for SPA soft navigations)\n *\n * Once either of these events triggers, the CLS value is sent as a standalone span and we stop\n * measuring CLS.\n */\nfunction trackClsAsStandaloneSpan() {\n let standaloneCLsValue = 0;\n let standaloneClsEntry;\n let pageloadSpanId;\n\n if (!supportsLayoutShift()) {\n return;\n }\n\n let sentSpan = false;\n function _collectClsOnce() {\n if (sentSpan) {\n return;\n }\n sentSpan = true;\n if (pageloadSpanId) {\n sendStandaloneClsSpan(standaloneCLsValue, standaloneClsEntry, pageloadSpanId);\n }\n cleanupClsHandler();\n }\n\n const cleanupClsHandler = addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1] ;\n if (!entry) {\n return;\n }\n standaloneCLsValue = metric.value;\n standaloneClsEntry = entry;\n }, true);\n\n // use pagehide event from web-vitals\n onHidden(() => {\n _collectClsOnce();\n });\n\n // Since the call chain of this function is synchronous and evaluates before the SDK client is created,\n // we need to wait with subscribing to a client hook until the client is created. Therefore, we defer\n // to the next tick after the SDK setup.\n setTimeout(() => {\n const client = getClient();\n\n if (!client) {\n return;\n }\n\n const unsubscribeStartNavigation = client.on('startNavigationSpan', () => {\n _collectClsOnce();\n unsubscribeStartNavigation && unsubscribeStartNavigation();\n });\n\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n const spanJSON = rootSpan && spanToJSON(rootSpan);\n if (spanJSON && spanJSON.op === 'pageload') {\n pageloadSpanId = rootSpan.spanContext().spanId;\n }\n }, 0);\n}\n\nfunction sendStandaloneClsSpan(clsValue, entry, pageloadSpanId) {\n DEBUG_BUILD && logger.log(`Sending CLS span (${clsValue})`);\n\n const startTime = msToSec((browserPerformanceTimeOrigin || 0) + ((entry && entry.startTime) || 0));\n const routeName = getCurrentScope().getScopeData().transactionName;\n\n const name = entry ? htmlTreeAsString(entry.sources[0] && entry.sources[0].node) : 'Layout shift';\n\n const attributes = dropUndefinedKeys({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser.cls',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.webvital.cls',\n [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: (entry && entry.duration) || 0,\n // attach the pageload span id to the CLS span so that we can link them in the UI\n 'sentry.pageload.span_id': pageloadSpanId,\n });\n\n const span = startStandaloneWebVitalSpan({\n name,\n transaction: routeName,\n attributes,\n startTime,\n });\n\n if (span) {\n span.addEvent('cls', {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: '',\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: clsValue,\n });\n\n // LayoutShift performance entries always have a duration of 0, so we don't need to add `entry.duration` here\n // see: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/duration\n span.end(startTime);\n }\n}\n\nfunction supportsLayoutShift() {\n try {\n return PerformanceObserver.supportedEntryTypes.includes('layout-shift');\n } catch (e) {\n return false;\n }\n}\n\nexport { trackClsAsStandaloneSpan };\n//# sourceMappingURL=cls.js.map\n","import { browserPerformanceTimeOrigin, getActiveSpan, spanToJSON, setMeasurement, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, parseUrl, htmlTreeAsString, getComponentName } from '@sentry/core';\nimport { WINDOW } from '../types.js';\nimport { trackClsAsStandaloneSpan } from './cls.js';\nimport { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addLcpInstrumentationHandler, addFidInstrumentationHandler, addTtfbInstrumentationHandler } from './instrument.js';\nimport { getBrowserPerformanceAPI, msToSec, startAndEndSpan, isMeasurementValue } from './utils.js';\nimport { getActivationStart } from './web-vitals/lib/getActivationStart.js';\nimport { getNavigationEntry } from './web-vitals/lib/getNavigationEntry.js';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher.js';\n\nconst MAX_INT_AS_BYTES = 2147483647;\n\nlet _performanceCursor = 0;\n\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\n\n/**\n * Start tracking web vitals.\n * The callback returned by this function can be used to stop tracking & ensure all measurements are final & captured.\n *\n * @returns A function that forces web vitals collection\n */\nfunction startTrackingWebVitals({ recordClsStandaloneSpans }) {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n if (performance.mark) {\n WINDOW.performance.mark('sentry-tracing-init');\n }\n const fidCleanupCallback = _trackFID();\n const lcpCleanupCallback = _trackLCP();\n const ttfbCleanupCallback = _trackTtfb();\n const clsCleanupCallback = recordClsStandaloneSpans ? trackClsAsStandaloneSpan() : _trackCLS();\n\n return () => {\n fidCleanupCallback();\n lcpCleanupCallback();\n ttfbCleanupCallback();\n clsCleanupCallback && clsCleanupCallback();\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nfunction startTrackingLongTasks() {\n addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n const parent = getActiveSpan();\n if (!parent) {\n return;\n }\n\n const { op: parentOp, start_timestamp: parentStartTimestamp } = spanToJSON(parent);\n\n for (const entry of entries) {\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n if (parentOp === 'navigation' && parentStartTimestamp && startTime < parentStartTimestamp) {\n // Skip adding a span if the long task started before the navigation started.\n // `startAndEndSpan` will otherwise adjust the parent's start time to the span's start\n // time, potentially skewing the duration of the actual navigation as reported via our\n // routing instrumentations\n continue;\n }\n\n startAndEndSpan(parent, startTime, startTime + duration, {\n name: 'Main UI thread blocked',\n op: 'ui.long-task',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n }\n });\n}\n\n/**\n * Start tracking long animation frames.\n */\nfunction startTrackingLongAnimationFrames() {\n // NOTE: the current web-vitals version (3.5.2) does not support long-animation-frame, so\n // we directly observe `long-animation-frame` events instead of through the web-vitals\n // `observe` helper function.\n const observer = new PerformanceObserver(list => {\n const parent = getActiveSpan();\n if (!parent) {\n return;\n }\n for (const entry of list.getEntries() ) {\n if (!entry.scripts[0]) {\n continue;\n }\n\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n\n const { start_timestamp: parentStartTimestamp, op: parentOp } = spanToJSON(parent);\n\n if (parentOp === 'navigation' && parentStartTimestamp && startTime < parentStartTimestamp) {\n // Skip adding the span if the long animation frame started before the navigation started.\n // `startAndEndSpan` will otherwise adjust the parent's start time to the span's start\n // time, potentially skewing the duration of the actual navigation as reported via our\n // routing instrumentations\n continue;\n }\n\n const duration = msToSec(entry.duration);\n\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n };\n\n const initialScript = entry.scripts[0];\n const { invoker, invokerType, sourceURL, sourceFunctionName, sourceCharPosition } = initialScript;\n attributes['browser.script.invoker'] = invoker;\n attributes['browser.script.invoker_type'] = invokerType;\n if (sourceURL) {\n attributes['code.filepath'] = sourceURL;\n }\n if (sourceFunctionName) {\n attributes['code.function'] = sourceFunctionName;\n }\n if (sourceCharPosition !== -1) {\n attributes['browser.script.source_char_position'] = sourceCharPosition;\n }\n\n startAndEndSpan(parent, startTime, startTime + duration, {\n name: 'Main UI thread blocked',\n op: 'ui.long-animation-frame',\n attributes,\n });\n }\n });\n\n observer.observe({ type: 'long-animation-frame', buffered: true });\n}\n\n/**\n * Start tracking interaction events.\n */\nfunction startTrackingInteractions() {\n addPerformanceInstrumentationHandler('event', ({ entries }) => {\n const parent = getActiveSpan();\n if (!parent) {\n return;\n }\n for (const entry of entries) {\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const spanOptions = {\n name: htmlTreeAsString(entry.target),\n op: `ui.interaction.${entry.name}`,\n startTime: startTime,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n };\n\n const componentName = getComponentName(entry.target);\n if (componentName) {\n spanOptions.attributes['ui.component_name'] = componentName;\n }\n\n startAndEndSpan(parent, startTime, startTime + duration, spanOptions);\n }\n }\n });\n}\n\n/**\n * Starts tracking the Cumulative Layout Shift on the current page and collects the value and last entry\n * to the `_measurements` object which ultimately is applied to the pageload span's measurements.\n */\nfunction _trackCLS() {\n return addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1] ;\n if (!entry) {\n return;\n }\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry;\n }, true);\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP() {\n return addLcpInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry ;\n }, true);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID() {\n return addFidInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin );\n const startTime = msToSec(entry.startTime);\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\nfunction _trackTtfb() {\n return addTtfbInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n _measurements['ttfb'] = { value: metric.value, unit: 'millisecond' };\n });\n}\n\n/** Add performance related spans to a transaction */\nfunction addPerformanceEntries(span, options) {\n const performance = getBrowserPerformanceAPI();\n if (!performance || !performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n const performanceEntries = performance.getEntries();\n\n const { op, start_timestamp: transactionStartTime } = spanToJSON(span);\n\n performanceEntries.slice(_performanceCursor).forEach(entry => {\n const startTime = msToSec(entry.startTime);\n const duration = msToSec(\n // Inexplicably, Chrome sometimes emits a negative duration. We need to work around this.\n // There is a SO post attempting to explain this, but it leaves one with open questions: https://stackoverflow.com/questions/23191918/peformance-getentries-and-negative-duration-display\n // The way we clamp the value is probably not accurate, since we have observed this happen for things that may take a while to load, like for example the replay worker.\n // TODO: Investigate why this happens and how to properly mitigate. For now, this is a workaround to prevent transactions being dropped due to negative duration spans.\n Math.max(0, entry.duration),\n );\n\n if (op === 'navigation' && transactionStartTime && timeOrigin + startTime < transactionStartTime) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(span, entry , timeOrigin);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(span, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n _addResourceSpans(span, entry , entry.name, startTime, duration, timeOrigin);\n break;\n }\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(span);\n\n // Measurements are only available for pageload transactions\n if (op === 'pageload') {\n _addTtfbRequestTimeToMeasurements(_measurements);\n\n const fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n startAndEndSpan(span, fidMark.value, fidMark.value + msToSec(_measurements['fid'].value), {\n name: 'first input delay',\n op: 'ui.action',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n\n // Delete mark.fid as we don't want it to be part of final payload\n delete _measurements['mark.fid'];\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n // TODO: Check if the first condition is still necessary: `onCLS` already only fires once `onFCP` was called.\n if (!('fcp' in _measurements) || !options.recordClsOnPageloadSpan) {\n delete _measurements.cls;\n }\n\n Object.entries(_measurements).forEach(([measurementName, measurement]) => {\n setMeasurement(measurementName, measurement.value, measurement.unit);\n });\n\n // Set timeOrigin which denotes the timestamp which to base the LCP/FCP/FP/TTFB measurements on\n span.setAttribute('performance.timeOrigin', timeOrigin);\n\n // In prerendering scenarios, where a page might be prefetched and pre-rendered before the user clicks the link,\n // the navigation starts earlier than when the user clicks it. Web Vitals should always be based on the\n // user-perceived time, so they are not reported from the actual start of the navigation, but rather from the\n // time where the user actively started the navigation, for example by clicking a link.\n // This is user action is called \"activation\" and the time between navigation and activation is stored in\n // the `activationStart` attribute of the \"navigation\" PerformanceEntry.\n span.setAttribute('performance.activationStart', getActivationStart());\n\n _setWebVitalAttributes(span);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/**\n * Create measure related spans.\n * Exported only for tests.\n */\nfunction _addMeasureSpans(\n span,\n entry,\n startTime,\n duration,\n timeOrigin,\n) {\n const navEntry = getNavigationEntry(false);\n const requestTime = msToSec(navEntry ? navEntry.requestStart : 0);\n // Because performance.measure accepts arbitrary timestamps it can produce\n // spans that happen before the browser even makes a request for the page.\n //\n // An example of this is the automatically generated Next.js-before-hydration\n // spans created by the Next.js framework.\n //\n // To prevent this we will pin the start timestamp to the request start time\n // This does make duration inaccurate, so if this does happen, we will add\n // an attribute to the span\n const measureStartTimestamp = timeOrigin + Math.max(startTime, requestTime);\n const startTimeStamp = timeOrigin + startTime;\n const measureEndTimestamp = startTimeStamp + duration;\n\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.resource.browser.metrics',\n };\n\n if (measureStartTimestamp !== startTimeStamp) {\n attributes['sentry.browser.measure_happened_before_request'] = true;\n attributes['sentry.browser.measure_start_time'] = measureStartTimestamp;\n }\n\n startAndEndSpan(span, measureStartTimestamp, measureEndTimestamp, {\n name: entry.name ,\n op: entry.entryType ,\n attributes,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\nfunction _addNavigationSpans(span, entry, timeOrigin) {\n (['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'] ).forEach(event => {\n _addPerformanceNavigationTiming(span, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(span, entry, 'secureConnection', timeOrigin, 'TLS/SSL');\n _addPerformanceNavigationTiming(span, entry, 'fetch', timeOrigin, 'cache');\n _addPerformanceNavigationTiming(span, entry, 'domainLookup', timeOrigin, 'DNS');\n\n _addRequest(span, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n span,\n entry,\n event,\n timeOrigin,\n name = event,\n) {\n const eventEnd = _getEndPropertyNameForNavigationTiming(event) ;\n const end = entry[eventEnd];\n const start = entry[`${event}Start`];\n if (!start || !end) {\n return;\n }\n startAndEndSpan(span, timeOrigin + msToSec(start), timeOrigin + msToSec(end), {\n op: `browser.${name}`,\n name: entry.name,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n}\n\nfunction _getEndPropertyNameForNavigationTiming(event) {\n if (event === 'secureConnection') {\n return 'connectEnd';\n }\n if (event === 'fetch') {\n return 'domainLookupStart';\n }\n return `${event}End`;\n}\n\n/** Create request and response related spans */\nfunction _addRequest(span, entry, timeOrigin) {\n const requestStartTimestamp = timeOrigin + msToSec(entry.requestStart );\n const responseEndTimestamp = timeOrigin + msToSec(entry.responseEnd );\n const responseStartTimestamp = timeOrigin + msToSec(entry.responseStart );\n if (entry.responseEnd) {\n // It is possible that we are collecting these metrics when the page hasn't finished loading yet, for example when the HTML slowly streams in.\n // In this case, ie. when the document request hasn't finished yet, `entry.responseEnd` will be 0.\n // In order not to produce faulty spans, where the end timestamp is before the start timestamp, we will only collect\n // these spans when the responseEnd value is available. The backend (Relay) would drop the entire span if it contained faulty spans.\n startAndEndSpan(span, requestStartTimestamp, responseEndTimestamp, {\n op: 'browser.request',\n name: entry.name,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n\n startAndEndSpan(span, responseStartTimestamp, responseEndTimestamp, {\n op: 'browser.response',\n name: entry.name,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n },\n });\n }\n}\n\n/**\n * Create resource-related spans.\n * Exported only for tests.\n */\nfunction _addResourceSpans(\n span,\n entry,\n resourceUrl,\n startTime,\n duration,\n timeOrigin,\n) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const parsedUrl = parseUrl(resourceUrl);\n\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.resource.browser.metrics',\n };\n setResourceEntrySizeData(attributes, entry, 'transferSize', 'http.response_transfer_size');\n setResourceEntrySizeData(attributes, entry, 'encodedBodySize', 'http.response_content_length');\n setResourceEntrySizeData(attributes, entry, 'decodedBodySize', 'http.decoded_response_content_length');\n\n // `deliveryType` is experimental and does not exist everywhere\n const deliveryType = (entry ).deliveryType;\n if (deliveryType != null) {\n attributes['http.response_delivery_type'] = deliveryType;\n }\n\n // Types do not reflect this property yet\n const renderBlockingStatus = (entry )\n .renderBlockingStatus;\n if (renderBlockingStatus) {\n attributes['resource.render_blocking_status'] = renderBlockingStatus;\n }\n\n if (parsedUrl.protocol) {\n attributes['url.scheme'] = parsedUrl.protocol.split(':').pop(); // the protocol returned by parseUrl includes a :, but OTEL spec does not, so we remove it.\n }\n\n if (parsedUrl.host) {\n attributes['server.address'] = parsedUrl.host;\n }\n\n attributes['url.same_origin'] = resourceUrl.includes(WINDOW.location.origin);\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n startAndEndSpan(span, startTimestamp, endTimestamp, {\n name: resourceUrl.replace(WINDOW.location.origin, ''),\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',\n attributes,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(span) {\n const navigator = WINDOW.navigator ;\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n span.setAttribute('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n span.setAttribute('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n span.setAttribute('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n span.setAttribute('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to span to allow debugging */\nfunction _setWebVitalAttributes(span) {\n if (_lcpEntry) {\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n span.setAttribute('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n span.setAttribute('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n span.setAttribute('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n if (_lcpEntry.loadTime != null) {\n // loadTime is the time of LCP that's related to receiving the LCP element response..\n span.setAttribute('lcp.loadTime', _lcpEntry.loadTime);\n }\n\n if (_lcpEntry.renderTime != null) {\n // renderTime is loadTime + rendering time\n // it's 0 if the LCP element is loaded from a 3rd party origin that doesn't send the\n // `Timing-Allow-Origin` header.\n span.setAttribute('lcp.renderTime', _lcpEntry.renderTime);\n }\n\n span.setAttribute('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n _clsEntry.sources.forEach((source, index) =>\n span.setAttribute(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nfunction setResourceEntrySizeData(\n attributes,\n entry,\n key,\n dataKey,\n) {\n const entryVal = entry[key];\n if (entryVal != null && entryVal < MAX_INT_AS_BYTES) {\n attributes[dataKey] = entryVal;\n }\n}\n\n/**\n * Add ttfb request time information to measurements.\n *\n * ttfb information is added via vendored web vitals library.\n */\nfunction _addTtfbRequestTimeToMeasurements(_measurements) {\n const navEntry = getNavigationEntry(false);\n if (!navEntry) {\n return;\n }\n\n const { responseStart, requestStart } = navEntry;\n\n if (requestStart <= responseStart) {\n _measurements['ttfb.requestTime'] = {\n value: responseStart - requestStart,\n unit: 'millisecond',\n };\n }\n}\n\nexport { _addMeasureSpans, _addResourceSpans, addPerformanceEntries, startTrackingInteractions, startTrackingLongAnimationFrames, startTrackingLongTasks, startTrackingWebVitals };\n//# sourceMappingURL=browserMetrics.js.map\n","import { browserPerformanceTimeOrigin, getActiveSpan, getRootSpan, spanToJSON, getCurrentScope, htmlTreeAsString, dropUndefinedKeys, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '@sentry/core';\nimport { addInpInstrumentationHandler, addPerformanceInstrumentationHandler, isPerformanceEventTiming } from './instrument.js';\nimport { getBrowserPerformanceAPI, msToSec, startStandaloneWebVitalSpan } from './utils.js';\n\nconst LAST_INTERACTIONS = [];\nconst INTERACTIONS_SPAN_MAP = new Map();\n\n/**\n * Start tracking INP webvital events.\n */\nfunction startTrackingINP() {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n const inpCallback = _trackINP();\n\n return () => {\n inpCallback();\n };\n }\n\n return () => undefined;\n}\n\nconst INP_ENTRY_MAP = {\n click: 'click',\n pointerdown: 'click',\n pointerup: 'click',\n mousedown: 'click',\n mouseup: 'click',\n touchstart: 'click',\n touchend: 'click',\n mouseover: 'hover',\n mouseout: 'hover',\n mouseenter: 'hover',\n mouseleave: 'hover',\n pointerover: 'hover',\n pointerout: 'hover',\n pointerenter: 'hover',\n pointerleave: 'hover',\n dragstart: 'drag',\n dragend: 'drag',\n drag: 'drag',\n dragenter: 'drag',\n dragleave: 'drag',\n dragover: 'drag',\n drop: 'drag',\n keydown: 'press',\n keyup: 'press',\n keypress: 'press',\n input: 'press',\n};\n\n/** Starts tracking the Interaction to Next Paint on the current page. */\nfunction _trackINP() {\n return addInpInstrumentationHandler(({ metric }) => {\n if (metric.value == undefined) {\n return;\n }\n\n const entry = metric.entries.find(entry => entry.duration === metric.value && INP_ENTRY_MAP[entry.name]);\n\n if (!entry) {\n return;\n }\n\n const { interactionId } = entry;\n const interactionType = INP_ENTRY_MAP[entry.name];\n\n /** Build the INP span, create an envelope from the span, and then send the envelope */\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(metric.value);\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan ? getRootSpan(activeSpan) : undefined;\n\n // We first try to lookup the span from our INTERACTIONS_SPAN_MAP,\n // where we cache the route per interactionId\n const cachedSpan = interactionId != null ? INTERACTIONS_SPAN_MAP.get(interactionId) : undefined;\n\n const spanToUse = cachedSpan || rootSpan;\n\n // Else, we try to use the active span.\n // Finally, we fall back to look at the transactionName on the scope\n const routeName = spanToUse ? spanToJSON(spanToUse).description : getCurrentScope().getScopeData().transactionName;\n\n const name = htmlTreeAsString(entry.target);\n const attributes = dropUndefinedKeys({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser.inp',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `ui.interaction.${interactionType}`,\n [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: entry.duration,\n });\n\n const span = startStandaloneWebVitalSpan({\n name,\n transaction: routeName,\n attributes,\n startTime,\n });\n\n if (span) {\n span.addEvent('inp', {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: 'millisecond',\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: metric.value,\n });\n\n span.end(startTime + duration);\n }\n });\n}\n\n/**\n * Register a listener to cache route information for INP interactions.\n * TODO(v9): `latestRoute` no longer needs to be passed in and will be removed in v9.\n */\nfunction registerInpInteractionListener(_latestRoute) {\n const handleEntries = ({ entries }) => {\n const activeSpan = getActiveSpan();\n const activeRootSpan = activeSpan && getRootSpan(activeSpan);\n\n entries.forEach(entry => {\n if (!isPerformanceEventTiming(entry) || !activeRootSpan) {\n return;\n }\n\n const interactionId = entry.interactionId;\n if (interactionId == null) {\n return;\n }\n\n // If the interaction was already recorded before, nothing more to do\n if (INTERACTIONS_SPAN_MAP.has(interactionId)) {\n return;\n }\n\n // We keep max. 10 interactions in the list, then remove the oldest one & clean up\n if (LAST_INTERACTIONS.length > 10) {\n const last = LAST_INTERACTIONS.shift() ;\n INTERACTIONS_SPAN_MAP.delete(last);\n }\n\n // We add the interaction to the list of recorded interactions\n // and store the span for this interaction\n LAST_INTERACTIONS.push(interactionId);\n INTERACTIONS_SPAN_MAP.set(interactionId, activeRootSpan);\n });\n };\n\n addPerformanceInstrumentationHandler('event', handleEntries);\n addPerformanceInstrumentationHandler('first-input', handleEntries);\n}\n\nexport { registerInpInteractionListener, startTrackingINP };\n//# sourceMappingURL=inp.js.map\n","const getRating = (value, thresholds) => {\n if (value > thresholds[1]) {\n return 'poor';\n }\n if (value > thresholds[0]) {\n return 'needs-improvement';\n }\n return 'good';\n};\n\nconst bindReporter = (\n callback,\n metric,\n thresholds,\n reportAllChanges,\n) => {\n let prevValue;\n let delta;\n return (forceReport) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n metric.rating = getRating(metric.value, thresholds);\n callback(metric);\n }\n }\n }\n };\n};\n\nexport { bindReporter };\n//# sourceMappingURL=bindReporter.js.map\n","import { WINDOW } from '../../../types.js';\nimport { generateUniqueID } from './generateUniqueID.js';\nimport { getActivationStart } from './getActivationStart.js';\nimport { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nconst initMetric = (name, value) => {\n const navEntry = getNavigationEntry();\n let navigationType = 'navigate';\n\n if (navEntry) {\n if ((WINDOW.document && WINDOW.document.prerendering) || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else if (WINDOW.document && WINDOW.document.wasDiscarded) {\n navigationType = 'restore';\n } else if (navEntry.type) {\n navigationType = navEntry.type.replace(/_/g, '-') ;\n }\n }\n\n // Use `entries` type specific for the metric.\n const entries = [];\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good' , // If needed, will be updated when reported. `const` to keep the type from widening to `string`.\n delta: 0,\n entries,\n id: generateUniqueID(),\n navigationType,\n };\n};\n\nexport { initMetric };\n//# sourceMappingURL=initMetric.js.map\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nconst generateUniqueID = () => {\n return `v4-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n\nexport { generateUniqueID };\n//# sourceMappingURL=generateUniqueID.js.map\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nconst observe = (\n type,\n callback,\n opts,\n) => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n // Delay by a microtask to workaround a bug in Safari where the\n // callback is invoked immediately, rather than in a separate task.\n // See: https://github.com/GoogleChrome/web-vitals/issues/277\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => {\n callback(list.getEntries() );\n });\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) ,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n\nexport { observe };\n//# sourceMappingURL=observe.js.map\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst runOnce = (cb) => {\n let called = false;\n return () => {\n if (!called) {\n cb();\n called = true;\n }\n };\n};\n\nexport { runOnce };\n//# sourceMappingURL=runOnce.js.map\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nconst whenActivated = (callback) => {\n if (WINDOW.document && WINDOW.document.prerendering) {\n addEventListener('prerenderingchange', () => callback(), true);\n } else {\n callback();\n }\n};\n\nexport { whenActivated };\n//# sourceMappingURL=whenActivated.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for FCP. See https://web.dev/articles/fcp#what_is_a_good_fcp_score */\nconst FCPThresholds = [1800, 3000];\n\n/**\n * Calculates the [FCP](https://web.dev/articles/fcp) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `paint` performance entry used to determine the value. The reported\n * value is a `DOMHighResTimeStamp`.\n */\nconst onFCP = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FCP');\n let report;\n\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n if (entry.name === 'first-contentful-paint') {\n po.disconnect();\n\n // Only report if the page wasn't hidden prior to the first paint.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n // The activationStart reference is used because FCP should be\n // relative to page activation rather than navigation start if the\n // page was prerendered. But in cases where `activationStart` occurs\n // after the FCP, this time should be clamped at 0.\n metric.value = Math.max(entry.startTime - getActivationStart(), 0);\n metric.entries.push(entry);\n report(true);\n }\n }\n });\n };\n\n const po = observe('paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric, FCPThresholds, opts.reportAllChanges);\n }\n });\n};\n\nexport { FCPThresholds, onFCP };\n//# sourceMappingURL=onFCP.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { onFCP } from './onFCP.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for CLS. See https://web.dev/articles/cls#what_is_a_good_cls_score */\nconst CLSThresholds = [0.1, 0.25];\n\n/**\n * Calculates the [CLS](https://web.dev/articles/cls) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/articles/cls#layout_shift_score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onCLS = (onReport, opts = {}) => {\n // Start monitoring FCP so we can only report CLS if FCP is also reported.\n // Note: this is done to match the current behavior of CrUX.\n onFCP(\n runOnce(() => {\n const metric = initMetric('CLS', 0);\n let report;\n\n let sessionValue = 0;\n let sessionEntries = [];\n\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry\n // and less than 5 seconds after the first entry in the session,\n // include the entry in the current session. Otherwise, start a new\n // session.\n if (\n sessionValue &&\n firstSessionEntry &&\n lastSessionEntry &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n }\n });\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n report();\n }\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric, CLSThresholds, opts.reportAllChanges);\n\n onHidden(() => {\n handleEntries(po.takeRecords() );\n report(true);\n });\n\n // Queue a task to report (if nothing else triggers a report first).\n // This allows CLS to be reported as soon as FCP fires when\n // `reportAllChanges` is true.\n setTimeout(report, 0);\n }\n }),\n );\n};\n\nexport { CLSThresholds, onCLS };\n//# sourceMappingURL=getCLS.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for FID. See https://web.dev/articles/fid#what_is_a_good_fid_score */\nconst FIDThresholds = [100, 300];\n\n/**\n * Calculates the [FID](https://web.dev/articles/fid) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nconst onFID = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntry = (entry) => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries) => {\n (entries ).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n\n report = bindReporter(onReport, metric, FIDThresholds, opts.reportAllChanges);\n\n if (po) {\n onHidden(\n runOnce(() => {\n handleEntries(po.takeRecords() );\n po.disconnect();\n }),\n );\n }\n });\n};\n\nexport { FIDThresholds, onFID };\n//# sourceMappingURL=getFID.js.map\n","import { observe } from '../observe.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries) => {\n entries.forEach(e => {\n if (e.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n\n interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n }\n });\n};\n\nlet po;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nconst getInteractionCount = () => {\n return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nconst initInteractionCountPolyfill = () => {\n if ('interactionCount' in performance || po) return;\n\n po = observe('event', updateEstimate, {\n type: 'event',\n buffered: true,\n durationThreshold: 0,\n } );\n};\n\nexport { getInteractionCount, initInteractionCountPolyfill };\n//# sourceMappingURL=interactionCountPolyfill.js.map\n","import { getInteractionCount } from './polyfills/interactionCountPolyfill.js';\n\n/*\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n// A list of longest interactions on the page (by latency) sorted so the\n// longest one is first. The list is at most MAX_INTERACTIONS_TO_CONSIDER long.\nconst longestInteractionList = [];\n\n// A mapping of longest interactions by their interaction ID.\n// This is used for faster lookup.\nconst longestInteractionMap = new Map();\n\n// The default `durationThreshold` used across this library for observing\n// `event` entries via PerformanceObserver.\nconst DEFAULT_DURATION_THRESHOLD = 40;\n\n// Used to store the interaction count after a bfcache restore, since p98\n// interaction latencies should only consider the current navigation.\nlet prevInteractionCount = 0;\n\n/**\n * Returns the interaction count since the last bfcache restore (or for the\n * full page lifecycle if there were no bfcache restores).\n */\nconst getInteractionCountForNavigation = () => {\n return getInteractionCount() - prevInteractionCount;\n};\n\n/**\n * Returns the estimated p98 longest interaction based on the stored\n * interaction candidates and the interaction count for the current page.\n */\nconst estimateP98LongestInteraction = () => {\n const candidateInteractionIndex = Math.min(\n longestInteractionList.length - 1,\n Math.floor(getInteractionCountForNavigation() / 50),\n );\n\n return longestInteractionList[candidateInteractionIndex];\n};\n\n// To prevent unnecessary memory usage on pages with lots of interactions,\n// store at most 10 of the longest interactions to consider as INP candidates.\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\n\n/**\n * A list of callback functions to run before each entry is processed.\n * Exposing this list allows the attribution build to hook into the\n * entry processing pipeline.\n */\nconst entryPreProcessingCallbacks = [];\n\n/**\n * Takes a performance entry and adds it to the list of worst interactions\n * if its duration is long enough to make it among the worst. If the\n * entry is part of an existing interaction, it is merged and the latency\n * and entries list is updated as needed.\n */\nconst processInteractionEntry = (entry) => {\n entryPreProcessingCallbacks.forEach(cb => cb(entry));\n\n // Skip further processing for entries that cannot be INP candidates.\n if (!(entry.interactionId || entry.entryType === 'first-input')) return;\n\n // The least-long of the 10 longest interactions.\n const minLongestInteraction = longestInteractionList[longestInteractionList.length - 1];\n\n const existingInteraction = longestInteractionMap.get(entry.interactionId);\n\n // Only process the entry if it's possibly one of the ten longest,\n // or if it's part of an existing interaction.\n if (\n existingInteraction ||\n longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER ||\n (minLongestInteraction && entry.duration > minLongestInteraction.latency)\n ) {\n // If the interaction already exists, update it. Otherwise create one.\n if (existingInteraction) {\n // If the new entry has a longer duration, replace the old entries,\n // otherwise add to the array.\n if (entry.duration > existingInteraction.latency) {\n existingInteraction.entries = [entry];\n existingInteraction.latency = entry.duration;\n } else if (\n entry.duration === existingInteraction.latency &&\n entry.startTime === (existingInteraction.entries[0] && existingInteraction.entries[0].startTime)\n ) {\n existingInteraction.entries.push(entry);\n }\n } else {\n const interaction = {\n id: entry.interactionId,\n latency: entry.duration,\n entries: [entry],\n };\n longestInteractionMap.set(interaction.id, interaction);\n longestInteractionList.push(interaction);\n }\n\n // Sort the entries by latency (descending) and keep only the top ten.\n longestInteractionList.sort((a, b) => b.latency - a.latency);\n if (longestInteractionList.length > MAX_INTERACTIONS_TO_CONSIDER) {\n longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER).forEach(i => longestInteractionMap.delete(i.id));\n }\n }\n};\n\nexport { DEFAULT_DURATION_THRESHOLD, entryPreProcessingCallbacks, estimateP98LongestInteraction, longestInteractionList, longestInteractionMap, processInteractionEntry };\n//# sourceMappingURL=interactions.js.map\n","import { WINDOW } from '../../../types.js';\nimport { onHidden } from './onHidden.js';\nimport { runOnce } from './runOnce.js';\n\n/*\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * Runs the passed callback during the next idle period, or immediately\n * if the browser's visibility state is (or becomes) hidden.\n */\nconst whenIdle = (cb) => {\n const rIC = WINDOW.requestIdleCallback || WINDOW.setTimeout;\n\n let handle = -1;\n // eslint-disable-next-line no-param-reassign\n cb = runOnce(cb) ;\n // If the document is hidden, run the callback immediately, otherwise\n // race an idle callback with the next `visibilitychange` event.\n if (WINDOW.document && WINDOW.document.visibilityState === 'hidden') {\n cb();\n } else {\n handle = rIC(cb);\n onHidden(cb);\n }\n return handle;\n};\n\nexport { whenIdle };\n//# sourceMappingURL=whenIdle.js.map\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { DEFAULT_DURATION_THRESHOLD, processInteractionEntry, estimateP98LongestInteraction } from './lib/interactions.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { initInteractionCountPolyfill } from './lib/polyfills/interactionCountPolyfill.js';\nimport { whenActivated } from './lib/whenActivated.js';\nimport { whenIdle } from './lib/whenIdle.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for INP. See https://web.dev/articles/inp#what_is_a_good_inp_score */\nconst INPThresholds = [200, 500];\n\n/**\n * Calculates the [INP](https://web.dev/articles/inp) value for the current\n * page and calls the `callback` function once the value is ready, along with\n * the `event` performance entries reported for that interaction. The reported\n * value is a `DOMHighResTimeStamp`.\n *\n * A custom `durationThreshold` configuration option can optionally be passed to\n * control what `event-timing` entries are considered for INP reporting. The\n * default threshold is `40`, which means INP scores of less than 40 are\n * reported as 0. Note that this will not affect your 75th percentile INP value\n * unless that value is also less than 40 (well below the recommended\n * [good](https://web.dev/articles/inp#what_is_a_good_inp_score) threshold).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** INP should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onINP = (onReport, opts = {}) => {\n // Return if the browser doesn't support all APIs needed to measure INP.\n if (!('PerformanceEventTiming' in WINDOW && 'interactionId' in PerformanceEventTiming.prototype)) {\n return;\n }\n\n whenActivated(() => {\n // TODO(philipwalton): remove once the polyfill is no longer needed.\n initInteractionCountPolyfill();\n\n const metric = initMetric('INP');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntries = (entries) => {\n // Queue the `handleEntries()` callback in the next idle task.\n // This is needed to increase the chances that all event entries that\n // occurred between the user interaction and the next paint\n // have been dispatched. Note: there is currently an experiment\n // running in Chrome (EventTimingKeypressAndCompositionInteractionId)\n // 123+ that if rolled out fully may make this no longer necessary.\n whenIdle(() => {\n entries.forEach(processInteractionEntry);\n\n const inp = estimateP98LongestInteraction();\n\n if (inp && inp.latency !== metric.value) {\n metric.value = inp.latency;\n metric.entries = inp.entries;\n report();\n }\n });\n };\n\n const po = observe('event', handleEntries, {\n // Event Timing entries have their durations rounded to the nearest 8ms,\n // so a duration of 40ms would be any event that spans 2.5 or more frames\n // at 60Hz. This threshold is chosen to strike a balance between usefulness\n // and performance. Running this callback for any interaction that spans\n // just one or two frames is likely not worth the insight that could be\n // gained.\n durationThreshold: opts.durationThreshold != null ? opts.durationThreshold : DEFAULT_DURATION_THRESHOLD,\n });\n\n report = bindReporter(onReport, metric, INPThresholds, opts.reportAllChanges);\n\n if (po) {\n // Also observe entries of type `first-input`. This is useful in cases\n // where the first interaction is less than the `durationThreshold`.\n po.observe({ type: 'first-input', buffered: true });\n\n onHidden(() => {\n handleEntries(po.takeRecords() );\n report(true);\n });\n }\n });\n};\n\nexport { INPThresholds, onINP };\n//# sourceMappingURL=getINP.js.map\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { whenActivated } from './lib/whenActivated.js';\nimport { whenIdle } from './lib/whenIdle.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for LCP. See https://web.dev/articles/lcp#what_is_a_good_lcp_score */\nconst LCPThresholds = [2500, 4000];\n\nconst reportedMetricIDs = {};\n\n/**\n * Calculates the [LCP](https://web.dev/articles/lcp) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called any time a new `largest-contentful-paint`\n * performance entry is dispatched, or once the final value of the metric has\n * been determined.\n */\nconst onLCP = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report;\n\n const handleEntries = (entries) => {\n // If reportAllChanges is set then call this function for each entry,\n // otherwise only consider the last one.\n if (!opts.reportAllChanges) {\n // eslint-disable-next-line no-param-reassign\n entries = entries.slice(-1);\n }\n\n entries.forEach(entry => {\n // Only report if the page wasn't hidden prior to LCP.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was pre-rendered. But in cases\n // where `activationStart` occurs after the LCP, this time should be\n // clamped at 0.\n metric.value = Math.max(entry.startTime - getActivationStart(), 0);\n metric.entries = [entry];\n report();\n }\n });\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric, LCPThresholds, opts.reportAllChanges);\n\n const stopListening = runOnce(() => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() );\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n });\n\n // Stop listening after input. Note: while scrolling is an input that\n // stops LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n // Wrap in a setTimeout so the callback is run in a separate task\n // to avoid extending the keyboard/click handler to reduce INP impact\n // https://github.com/GoogleChrome/web-vitals/issues/383\n if (WINDOW.document) {\n addEventListener(type, () => whenIdle(stopListening ), {\n once: true,\n capture: true,\n });\n }\n });\n\n onHidden(stopListening);\n }\n });\n};\n\nexport { LCPThresholds, onLCP };\n//# sourceMappingURL=getLCP.js.map\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getNavigationEntry } from './lib/getNavigationEntry.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/** Thresholds for TTFB. See https://web.dev/articles/ttfb#what_is_a_good_ttfb_score */\nconst TTFBThresholds = [800, 1800];\n\n/**\n * Runs in the next task after the page is done loading and/or prerendering.\n * @param callback\n */\nconst whenReady = (callback) => {\n if (WINDOW.document && WINDOW.document.prerendering) {\n whenActivated(() => whenReady(callback));\n } else if (WINDOW.document && WINDOW.document.readyState !== 'complete') {\n addEventListener('load', () => whenReady(callback), true);\n } else {\n // Queue a task so the callback runs after `loadEventEnd`.\n setTimeout(callback, 0);\n }\n};\n\n/**\n * Calculates the [TTFB](https://web.dev/articles/ttfb) value for the\n * current page and calls the `callback` function once the page has loaded,\n * along with the relevant `navigation` performance entry used to determine the\n * value. The reported value is a `DOMHighResTimeStamp`.\n *\n * Note, this function waits until after the page is loaded to call `callback`\n * in order to ensure all properties of the `navigation` entry are populated.\n * This is useful if you want to report on other metrics exposed by the\n * [Navigation Timing API](https://w3c.github.io/navigation-timing/). For\n * example, the TTFB metric starts from the page's [time\n * origin](https://www.w3.org/TR/hr-time-2/#sec-time-origin), which means it\n * includes time spent on DNS lookup, connection negotiation, network latency,\n * and server processing time.\n */\nconst onTTFB = (onReport, opts = {}) => {\n const metric = initMetric('TTFB');\n const report = bindReporter(onReport, metric, TTFBThresholds, opts.reportAllChanges);\n\n whenReady(() => {\n const navigationEntry = getNavigationEntry();\n\n if (navigationEntry) {\n // The activationStart reference is used because TTFB should be\n // relative to page activation rather than navigation start if the\n // page was prerendered. But in cases where `activationStart` occurs\n // after the first byte is received, this time should be clamped at 0.\n metric.value = Math.max(navigationEntry.responseStart - getActivationStart(), 0);\n\n metric.entries = [navigationEntry];\n report(true);\n }\n });\n};\n\nexport { TTFBThresholds, onTTFB };\n//# sourceMappingURL=onTTFB.js.map\n","import { logger, getFunctionName } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { onCLS } from './web-vitals/getCLS.js';\nimport { onFID } from './web-vitals/getFID.js';\nimport { onINP } from './web-vitals/getINP.js';\nimport { onLCP } from './web-vitals/getLCP.js';\nimport { observe } from './web-vitals/lib/observe.js';\nimport { onTTFB } from './web-vitals/onTTFB.js';\n\nconst handlers = {};\nconst instrumented = {};\n\nlet _previousCls;\nlet _previousFid;\nlet _previousLcp;\nlet _previousTtfb;\nlet _previousInp;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for CLS when the cleanup callback is called.\n * This will lead to the CLS being finalized and frozen.\n */\nfunction addClsInstrumentationHandler(\n callback,\n stopOnCallback = false,\n) {\n return addMetricObserver('cls', callback, instrumentCls, _previousCls, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for LCP when the cleanup callback is called.\n * This will lead to the LCP being finalized and frozen.\n */\nfunction addLcpInstrumentationHandler(\n callback,\n stopOnCallback = false,\n) {\n return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addFidInstrumentationHandler(callback) {\n return addMetricObserver('fid', callback, instrumentFid, _previousFid);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n */\nfunction addTtfbInstrumentationHandler(callback) {\n return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb);\n}\n\n/**\n * Add a callback that will be triggered when a INP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addInpInstrumentationHandler(\n callback,\n) {\n return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addPerformanceInstrumentationHandler(\n type,\n callback,\n) {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentPerformanceObserver(type);\n instrumented[type] = true;\n }\n\n return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers || !typeHandlers.length) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nfunction instrumentCls() {\n return onCLS(\n metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n },\n // We want the callback to be called whenever the CLS value updates.\n // By default, the callback is only called when the tab goes to the background.\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentFid() {\n return onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp() {\n return onLCP(\n metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n },\n // We want the callback to be called whenever the LCP value updates.\n // By default, the callback is only called when the tab goes to the background.\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentTtfb() {\n return onTTFB(metric => {\n triggerHandlers('ttfb', {\n metric,\n });\n _previousTtfb = metric;\n });\n}\n\nfunction instrumentInp() {\n return onINP(metric => {\n triggerHandlers('inp', {\n metric,\n });\n _previousInp = metric;\n });\n}\n\nfunction addMetricObserver(\n type,\n callback,\n instrumentFn,\n previousValue,\n stopOnCallback = false,\n) {\n addHandler(type, callback);\n\n let stopListening;\n\n if (!instrumented[type]) {\n stopListening = instrumentFn();\n instrumented[type] = true;\n }\n\n if (previousValue) {\n callback({ metric: previousValue });\n }\n\n return getCleanupCallback(type, callback, stopOnCallback ? stopListening : undefined);\n}\n\nfunction instrumentPerformanceObserver(type) {\n const options = {};\n\n // Special per-type options we want to use\n if (type === 'event') {\n options.durationThreshold = 0;\n }\n\n observe(\n type,\n entries => {\n triggerHandlers(type, { entries });\n },\n options,\n );\n}\n\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n type,\n callback,\n stopListening,\n) {\n return () => {\n if (stopListening) {\n stopListening();\n }\n\n const typeHandlers = handlers[type];\n\n if (!typeHandlers) {\n return;\n }\n\n const index = typeHandlers.indexOf(callback);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n };\n}\n\n/**\n * Check if a PerformanceEntry is a PerformanceEventTiming by checking for the `duration` property.\n */\nfunction isPerformanceEventTiming(entry) {\n return 'duration' in entry;\n}\n\nexport { addClsInstrumentationHandler, addFidInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler, isPerformanceEventTiming };\n//# sourceMappingURL=instrument.js.map\n","import { spanToJSON, withActiveSpan, startInactiveSpan, getClient, getCurrentScope } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nfunction startAndEndSpan(\n parentSpan,\n startTimeInSeconds,\n endTime,\n { ...ctx },\n) {\n const parentStartTime = spanToJSON(parentSpan).start_timestamp;\n if (parentStartTime && parentStartTime > startTimeInSeconds) {\n // We can only do this for SentrySpans...\n if (typeof (parentSpan ).updateStartTime === 'function') {\n (parentSpan ).updateStartTime(startTimeInSeconds);\n }\n }\n\n // The return value only exists for tests\n return withActiveSpan(parentSpan, () => {\n const span = startInactiveSpan({\n startTime: startTimeInSeconds,\n ...ctx,\n });\n\n if (span) {\n span.end(endTime);\n }\n\n return span;\n });\n}\n\n/**\n * Starts an inactive, standalone span used to send web vital values to Sentry.\n * DO NOT use this for arbitrary spans, as these spans require special handling\n * during ingestion to extract metrics.\n *\n * This function adds a bunch of attributes and data to the span that's shared\n * by all web vital standalone spans. However, you need to take care of adding\n * the actual web vital value as an event to the span. Also, you need to assign\n * a transaction name and some other values that are specific to the web vital.\n *\n * Ultimately, you also need to take care of ending the span to send it off.\n *\n * @param options\n *\n * @returns an inactive, standalone and NOT YET ended span\n */\nfunction startStandaloneWebVitalSpan(options) {\n const client = getClient();\n if (!client) {\n return;\n }\n\n const { name, transaction, attributes: passedAttributes, startTime } = options;\n\n const { release, environment } = client.getOptions();\n // We need to get the replay, user, and activeTransaction from the current scope\n // so that we can associate replay id, profile id, and a user display to the span\n const replay = client.getIntegrationByName('Replay');\n const replayId = replay && replay.getReplayId();\n\n const scope = getCurrentScope();\n\n const user = scope.getUser();\n const userDisplay = user !== undefined ? user.email || user.id || user.ip_address : undefined;\n\n let profileId;\n try {\n // @ts-expect-error skip optional chaining to save bundle size with try catch\n profileId = scope.getScopeData().contexts.profile.profile_id;\n } catch (e) {\n // do nothing\n }\n\n const attributes = {\n release,\n environment,\n\n user: userDisplay || undefined,\n profile_id: profileId || undefined,\n replay_id: replayId || undefined,\n\n transaction,\n\n // Web vital score calculation relies on the user agent to account for different\n // browsers setting different thresholds for what is considered a good/meh/bad value.\n // For example: Chrome vs. Chrome Mobile\n 'user_agent.original': WINDOW.navigator && WINDOW.navigator.userAgent,\n\n ...passedAttributes,\n };\n\n return startInactiveSpan({\n name,\n attributes,\n startTime,\n experimental: {\n standalone: true,\n },\n });\n}\n\n/** Get the browser performance API. */\nfunction getBrowserPerformanceAPI() {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n return WINDOW && WINDOW.addEventListener && WINDOW.performance;\n}\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time) {\n return time / 1000;\n}\n\nexport { getBrowserPerformanceAPI, isMeasurementValue, msToSec, startAndEndSpan, startStandaloneWebVitalSpan };\n//# sourceMappingURL=utils.js.map\n","import { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nconst getActivationStart = () => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n\nexport { getActivationStart };\n//# sourceMappingURL=getActivationStart.js.map\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n// sentry-specific change:\n// add optional param to not check for responseStart (see comment below)\nconst getNavigationEntry = (checkResponseStart = true) => {\n const navigationEntry =\n WINDOW.performance && WINDOW.performance.getEntriesByType && WINDOW.performance.getEntriesByType('navigation')[0];\n // Check to ensure the `responseStart` property is present and valid.\n // In some cases no value is reported by the browser (for\n // privacy/security reasons), and in other cases (bugs) the value is\n // negative or is larger than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n // https://github.com/GoogleChrome/web-vitals/issues/275\n if (\n // sentry-specific change:\n // We don't want to check for responseStart for our own use of `getNavigationEntry`\n !checkResponseStart ||\n (navigationEntry && navigationEntry.responseStart > 0 && navigationEntry.responseStart < performance.now())\n ) {\n return navigationEntry;\n }\n};\n\nexport { getNavigationEntry };\n//# sourceMappingURL=getNavigationEntry.js.map\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = () => {\n // If the document is hidden when this code runs, assume it was always\n // hidden and the page was loaded in the background, with the one exception\n // that visibility state is always 'hidden' during prerendering, so we have\n // to ignore that case until prerendering finishes (see: `prerenderingchange`\n // event logic below).\n return WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;\n};\n\nconst onVisibilityUpdate = (event) => {\n // If the document is 'hidden' and no previous hidden timestamp has been\n // set, update it based on the current event data.\n if (WINDOW.document.visibilityState === 'hidden' && firstHiddenTime > -1) {\n // If the event is a 'visibilitychange' event, it means the page was\n // visible prior to this change, so the event timestamp is the first\n // hidden time.\n // However, if the event is not a 'visibilitychange' event, then it must\n // be a 'prerenderingchange' event, and the fact that the document is\n // still 'hidden' from the above check means the tab was activated\n // in a background state and so has always been hidden.\n firstHiddenTime = event.type === 'visibilitychange' ? event.timeStamp : 0;\n\n // Remove all listeners now that a `firstHiddenTime` value has been set.\n removeChangeListeners();\n }\n};\n\nconst addChangeListeners = () => {\n addEventListener('visibilitychange', onVisibilityUpdate, true);\n // IMPORTANT: when a page is prerendering, its `visibilityState` is\n // 'hidden', so in order to account for cases where this module checks for\n // visibility during prerendering, an additional check after prerendering\n // completes is also required.\n addEventListener('prerenderingchange', onVisibilityUpdate, true);\n};\n\nconst removeChangeListeners = () => {\n removeEventListener('visibilitychange', onVisibilityUpdate, true);\n removeEventListener('prerenderingchange', onVisibilityUpdate, true);\n};\n\nconst getVisibilityWatcher = () => {\n if (WINDOW.document && firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n addChangeListeners();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n\nexport { getVisibilityWatcher };\n//# sourceMappingURL=getVisibilityWatcher.js.map\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n// Sentry-specific change:\n// This function's logic was NOT updated to web-vitals 4.2.4 but we continue\n// to use the web-vitals 3.5.2 due to us having stricter browser support.\n// PR with context that made the changes: https://github.com/GoogleChrome/web-vitals/pull/442/files#r1530492402\n// The PR removed listening to the `pagehide` event, in favour of only listening to `visibilitychange` event.\n// This is \"more correct\" but some browsers we still support (Safari 12.1-14.0) don't fully support `visibilitychange`\n// or have known bugs w.r.t the `visibilitychange` event.\n// TODO (v9): If we decide to drop support for Safari 12.1-14.0, we can use the logic from web-vitals 4.2.4\n// In this case, we also need to update the integration tests that currently trigger the `pagehide` event to\n// simulate the page being hidden.\nconst onHidden = (cb) => {\n const onHiddenOrPageHide = (event) => {\n if (event.type === 'pagehide' || (WINDOW.document && WINDOW.document.visibilityState === 'hidden')) {\n cb(event);\n }\n };\n\n if (WINDOW.document) {\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n }\n};\n\nexport { onHidden };\n//# sourceMappingURL=onHidden.js.map\n","import { GLOBAL_OBJ } from '@sentry/core';\n\nconst WINDOW = GLOBAL_OBJ\n\n;\n\nexport { WINDOW };\n//# sourceMappingURL=types.js.map\n","import { GLOBAL_OBJ, getClient, getCurrentScope, captureFeedback, getLocationHref, isBrowser, logger, getIsolationScope, getGlobalScope } from '@sentry/core';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and feedback packages\nconst WINDOW = GLOBAL_OBJ ;\nconst DOCUMENT = WINDOW.document;\nconst NAVIGATOR = WINDOW.navigator;\n\nconst TRIGGER_LABEL = 'Report a Bug';\nconst CANCEL_BUTTON_LABEL = 'Cancel';\nconst SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nconst CONFIRM_BUTTON_LABEL = 'Confirm';\nconst FORM_TITLE = 'Report a Bug';\nconst EMAIL_PLACEHOLDER = 'your.email@example.org';\nconst EMAIL_LABEL = 'Email';\nconst MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nconst MESSAGE_LABEL = 'Description';\nconst NAME_PLACEHOLDER = 'Your Name';\nconst NAME_LABEL = 'Name';\nconst SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\nconst IS_REQUIRED_LABEL = '(required)';\nconst ADD_SCREENSHOT_LABEL = 'Add a screenshot';\nconst REMOVE_SCREENSHOT_LABEL = 'Remove screenshot';\n\nconst FEEDBACK_WIDGET_SOURCE = 'widget';\nconst FEEDBACK_API_SOURCE = 'api';\n\nconst SUCCESS_MESSAGE_TIMEOUT = 5000;\n\n/**\n * Public API to send a Feedback item to Sentry\n */\nconst sendFeedback = (\n params,\n hint = { includeReplay: true },\n) => {\n if (!params.message) {\n throw new Error('Unable to submit feedback with empty message');\n }\n\n // We want to wait for the feedback to be sent (or not)\n const client = getClient();\n\n if (!client) {\n throw new Error('No client setup, cannot send feedback.');\n }\n\n if (params.tags && Object.keys(params.tags).length) {\n getCurrentScope().setTags(params.tags);\n }\n const eventId = captureFeedback(\n {\n source: FEEDBACK_API_SOURCE,\n url: getLocationHref(),\n ...params,\n },\n hint,\n );\n\n // We want to wait for the feedback to be sent (or not)\n return new Promise((resolve, reject) => {\n // After 5s, we want to clear anyhow\n const timeout = setTimeout(() => reject('Unable to determine if Feedback was correctly sent.'), 5000);\n\n const cleanup = client.on('afterSendEvent', (event, response) => {\n if (event.event_id !== eventId) {\n return;\n }\n\n clearTimeout(timeout);\n cleanup();\n\n // Require valid status codes, otherwise can assume feedback was not sent successfully\n if (\n response &&\n typeof response.statusCode === 'number' &&\n response.statusCode >= 200 &&\n response.statusCode < 300\n ) {\n return resolve(eventId);\n }\n\n if (response && typeof response.statusCode === 'number' && response.statusCode === 0) {\n return reject(\n 'Unable to send Feedback. This is because of network issues, or because you are using an ad-blocker.',\n );\n }\n\n if (response && typeof response.statusCode === 'number' && response.statusCode === 403) {\n return reject(\n 'Unable to send Feedback. This could be because this domain is not in your list of allowed domains.',\n );\n }\n\n return reject(\n 'Unable to send Feedback. This could be because of network issues, or because you are using an ad-blocker',\n );\n });\n });\n};\n\n/*\n * For reference, the fully built event looks something like this:\n * {\n * \"type\": \"feedback\",\n * \"event_id\": \"d2132d31b39445f1938d7e21b6bf0ec4\",\n * \"timestamp\": 1597977777.6189718,\n * \"dist\": \"1.12\",\n * \"platform\": \"javascript\",\n * \"environment\": \"production\",\n * \"release\": 42,\n * \"tags\": {\"transaction\": \"/organizations/:orgId/performance/:eventSlug/\"},\n * \"sdk\": {\"name\": \"name\", \"version\": \"version\"},\n * \"user\": {\n * \"id\": \"123\",\n * \"username\": \"user\",\n * \"email\": \"user@site.com\",\n * \"ip_address\": \"192.168.11.12\",\n * },\n * \"request\": {\n * \"url\": None,\n * \"headers\": {\n * \"user-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15\"\n * },\n * },\n * \"contexts\": {\n * \"feedback\": {\n * \"message\": \"test message\",\n * \"contact_email\": \"test@example.com\",\n * \"type\": \"feedback\",\n * },\n * \"trace\": {\n * \"trace_id\": \"4C79F60C11214EB38604F4AE0781BFB2\",\n * \"span_id\": \"FA90FDEAD5F74052\",\n * \"type\": \"trace\",\n * },\n * \"replay\": {\n * \"replay_id\": \"e2d42047b1c5431c8cba85ee2a8ab25d\",\n * },\n * },\n * }\n */\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\n/**\n * Mobile browsers do not support `mediaDevices.getDisplayMedia` even though they have the api implemented\n * Instead they return things like `NotAllowedError` when called.\n *\n * It's simpler for us to browser sniff first, and avoid loading the integration if we can.\n *\n * https://stackoverflow.com/a/58879212\n * https://stackoverflow.com/a/3540295\n *\n * `mediaDevices.getDisplayMedia` is also only supported in secure contexts, and return a `mediaDevices is not supported` error, so we should also avoid loading the integration if we can.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n */\nfunction isScreenshotSupported() {\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(NAVIGATOR.userAgent)) {\n return false;\n }\n /**\n * User agent on iPads show as Macintosh, so we need extra checks\n *\n * https://forums.developer.apple.com/forums/thread/119186\n * https://stackoverflow.com/questions/60482650/how-to-detect-ipad-useragent-on-safari-browser\n */\n if (/Macintosh/i.test(NAVIGATOR.userAgent) && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 1) {\n return false;\n }\n if (!isSecureContext) {\n return false;\n }\n return true;\n}\n\n/**\n * Quick and dirty deep merge for the Feedback integration options\n */\nfunction mergeOptions(\n defaultOptions,\n optionOverrides,\n) {\n return {\n ...defaultOptions,\n ...optionOverrides,\n tags: {\n ...defaultOptions.tags,\n ...optionOverrides.tags,\n },\n onFormOpen: () => {\n optionOverrides.onFormOpen && optionOverrides.onFormOpen();\n defaultOptions.onFormOpen && defaultOptions.onFormOpen();\n },\n onFormClose: () => {\n optionOverrides.onFormClose && optionOverrides.onFormClose();\n defaultOptions.onFormClose && defaultOptions.onFormClose();\n },\n onSubmitSuccess: (data) => {\n optionOverrides.onSubmitSuccess && optionOverrides.onSubmitSuccess(data);\n defaultOptions.onSubmitSuccess && defaultOptions.onSubmitSuccess(data);\n },\n onSubmitError: (error) => {\n optionOverrides.onSubmitError && optionOverrides.onSubmitError(error);\n defaultOptions.onSubmitError && defaultOptions.onSubmitError(error);\n },\n onFormSubmitted: () => {\n optionOverrides.onFormSubmitted && optionOverrides.onFormSubmitted();\n defaultOptions.onFormSubmitted && defaultOptions.onFormSubmitted();\n },\n themeDark: {\n ...defaultOptions.themeDark,\n ...optionOverrides.themeDark,\n },\n themeLight: {\n ...defaultOptions.themeLight,\n ...optionOverrides.themeLight,\n },\n };\n}\n\n/**\n * Creates