mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
1 line
42 KiB
JSON
1 line
42 KiB
JSON
{"ast":null,"code":"import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { getGlobalObject, browserPerformanceTimeOrigin, logger, htmlTreeAsString } from '@sentry/utils';\nimport { getActiveTransaction, msToSec } from '../../utils.js';\nimport { getCLS } from '../web-vitals/getCLS.js';\nimport { getFID } from '../web-vitals/getFID.js';\nimport { getLCP } from '../web-vitals/getLCP.js';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher.js';\nimport { observe } from '../web-vitals/lib/observe.js';\nimport { _startChild, isMeasurementValue } from './utils.js';\nvar global = getGlobalObject();\nfunction getBrowserPerformanceAPI() {\n return global && global.addEventListener && global.performance;\n}\nlet _performanceCursor = 0;\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\n\n/**\n * Start tracking web vitals\n */\nfunction startTrackingWebVitals(reportAllChanges = false) {\n var performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n if (performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n _trackCLS();\n _trackLCP(reportAllChanges);\n _trackFID();\n }\n}\n\n/**\n * Start tracking long tasks.\n */\nfunction startTrackingLongTasks() {\n var entryHandler = entry => {\n var transaction = getActiveTransaction();\n if (!transaction) {\n return;\n }\n var startTime = msToSec(browserPerformanceTimeOrigin + entry.startTime);\n var duration = msToSec(entry.duration);\n transaction.startChild({\n description: 'Main UI thread blocked',\n op: 'ui.long-task',\n startTimestamp: startTime,\n endTimestamp: startTime + duration\n });\n };\n observe('longtask', entryHandler);\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS() {\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = {\n value: metric.value,\n unit: ''\n };\n _clsEntry = entry;\n });\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(reportAllChanges) {\n getLCP(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = {\n value: metric.value,\n unit: 'millisecond'\n };\n _lcpEntry = entry;\n }, reportAllChanges);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID() {\n getFID(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = {\n value: metric.value,\n unit: 'millisecond'\n };\n _measurements['mark.fid'] = {\n value: timeOrigin + startTime,\n unit: 'second'\n };\n });\n}\n\n/** Add performance related spans to a transaction */\nfunction addPerformanceEntries(transaction) {\n var performance = getBrowserPerformanceAPI();\n if (!performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var performanceEntries = performance.getEntries();\n let responseStartTimestamp;\n let requestStartTimestamp;\n performanceEntries.slice(_performanceCursor).forEach(entry => {\n var startTime = msToSec(entry.startTime);\n var duration = msToSec(entry.duration);\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n switch (entry.entryType) {\n case 'navigation':\n {\n _addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure':\n {\n _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n var firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n var shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n if (entry.name === 'first-paint' && shouldRecord) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = {\n value: entry.startTime,\n unit: 'millisecond'\n };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = {\n value: entry.startTime,\n unit: 'millisecond'\n };\n }\n break;\n }\n case 'resource':\n {\n var resourceName = entry.name.replace(global.location.origin, '');\n _addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n _trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = {\n value: (responseStartTimestamp - transaction.startTimestamp) * 1000,\n unit: 'millisecond'\n };\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n _measurements['ttfb.requestTime'] = {\n value: (responseStartTimestamp - requestStartTimestamp) * 1000,\n unit: 'millisecond'\n };\n }\n }\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || timeOrigin >= transaction.startTimestamp) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n var oldValue = _measurements[name].value;\n var measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n var normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n var delta = normalizedValue - oldValue;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n var fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: fidMark.value + msToSec(_measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: fidMark.value\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 if (!('fcp' in _measurements)) {\n delete _measurements.cls;\n }\n Object.keys(_measurements).forEach(measurementName => {\n transaction.setMeasurement(measurementName, _measurements[measurementName].value, _measurements[measurementName].unit);\n });\n _tagMetricInfo(transaction);\n }\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nfunction _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin) {\n var measureStartTimestamp = timeOrigin + startTime;\n var measureEndTimestamp = measureStartTimestamp + duration;\n _startChild(transaction, {\n description: entry.name,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType,\n startTimestamp: measureStartTimestamp\n });\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\nfunction _addNavigationSpans(transaction, entry, timeOrigin) {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin, description, eventEnd) {\n var end = eventEnd ? entry[eventEnd] : entry[`${event}End`];\n var start = entry[`${event}Start`];\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: _nullishCoalesce(description, () => event),\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end)\n });\n}\n\n/** Create request and response related spans */\nfunction _addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd)\n });\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd)\n });\n}\n\n/** Create resource-related spans */\nfunction _addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n var data = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n var startTimestamp = timeOrigin + startTime;\n var endTimestamp = startTimestamp + duration;\n _startChild(transaction, {\n description: resourceName,\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource',\n startTimestamp,\n data\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction) {\n var navigator = global.navigator;\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n var connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = {\n value: connection.rtt,\n unit: 'millisecond'\n };\n }\n if (isMeasurementValue(connection.downlink)) {\n _measurements['connection.downlink'] = {\n value: connection.downlink,\n unit: ''\n }; // unit is empty string for now, while relay doesn't support download speed units\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction) {\n if (_lcpEntry) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n if (_lcpEntry.id) {\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n transaction.setTag('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) => transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)));\n }\n}\nexport { _addMeasureSpans, _addResourceSpans, addPerformanceEntries, startTrackingLongTasks, startTrackingWebVitals };","map":{"version":3,"names":["_nullishCoalesce","getGlobalObject","browserPerformanceTimeOrigin","logger","htmlTreeAsString","getActiveTransaction","msToSec","getCLS","getFID","getLCP","getVisibilityWatcher","observe","_startChild","isMeasurementValue","global","getBrowserPerformanceAPI","addEventListener","performance","_performanceCursor","_measurements","_lcpEntry","_clsEntry","startTrackingWebVitals","reportAllChanges","mark","_trackCLS","_trackLCP","_trackFID","startTrackingLongTasks","entryHandler","entry","transaction","startTime","duration","startChild","description","op","startTimestamp","endTimestamp","metric","entries","pop","__SENTRY_DEBUG__","log","value","unit","timeOrigin","addPerformanceEntries","getEntries","performanceEntries","responseStartTimestamp","requestStartTimestamp","slice","forEach","entryType","_addNavigationSpans","responseStart","requestStart","_addMeasureSpans","firstHidden","shouldRecord","firstHiddenTime","name","resourceName","replace","location","origin","_addResourceSpans","Math","max","length","_trackNavigator","oldValue","measurementTimestamp","normalizedValue","abs","delta","fidMark","cls","Object","keys","measurementName","setMeasurement","_tagMetricInfo","undefined","measureStartTimestamp","measureEndTimestamp","event","_addPerformanceNavigationTiming","_addRequest","eventEnd","end","start","responseEnd","initiatorType","data","transferSize","encodedBodySize","decodedBodySize","navigator","connection","effectiveType","setTag","type","rtt","downlink","deviceMemory","hardwareConcurrency","String","element","id","url","trim","size","sources","source","index","node"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@sentry/tracing/esm/browser/metrics/index.js"],"sourcesContent":["import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { getGlobalObject, browserPerformanceTimeOrigin, logger, htmlTreeAsString } from '@sentry/utils';\nimport { getActiveTransaction, msToSec } from '../../utils.js';\nimport { getCLS } from '../web-vitals/getCLS.js';\nimport { getFID } from '../web-vitals/getFID.js';\nimport { getLCP } from '../web-vitals/getLCP.js';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher.js';\nimport { observe } from '../web-vitals/lib/observe.js';\nimport { _startChild, isMeasurementValue } from './utils.js';\n\nvar global = getGlobalObject();\n\nfunction getBrowserPerformanceAPI() {\n return global && global.addEventListener && global.performance;\n}\n\nlet _performanceCursor = 0;\n\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\n\n/**\n * Start tracking web vitals\n */\nfunction startTrackingWebVitals(reportAllChanges = false) {\n var performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n if (performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n _trackCLS();\n _trackLCP(reportAllChanges);\n _trackFID();\n }\n}\n\n/**\n * Start tracking long tasks.\n */\nfunction startTrackingLongTasks() {\n var entryHandler = (entry) => {\n var transaction = getActiveTransaction() ;\n if (!transaction) {\n return;\n }\n var startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n var duration = msToSec(entry.duration);\n transaction.startChild({\n description: 'Main UI thread blocked',\n op: 'ui.long-task',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n };\n\n observe('longtask', entryHandler);\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS() {\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry ;\n });\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(reportAllChanges) {\n getLCP(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry ;\n }, reportAllChanges);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID() {\n getFID(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n var timeOrigin = msToSec(browserPerformanceTimeOrigin );\n var startTime = msToSec(entry.startTime);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\n/** Add performance related spans to a transaction */\nfunction addPerformanceEntries(transaction) {\n var performance = getBrowserPerformanceAPI();\n if (!performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n var performanceEntries = performance.getEntries();\n\n let responseStartTimestamp;\n let requestStartTimestamp;\n\n performanceEntries.slice(_performanceCursor).forEach((entry) => {\n var startTime = msToSec(entry.startTime);\n var duration = msToSec(entry.duration);\n\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n var firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n var shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n var resourceName = (entry.name ).replace(global.location.origin, '');\n _addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = {\n value: (responseStartTimestamp - transaction.startTimestamp) * 1000,\n unit: 'millisecond',\n };\n\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n _measurements['ttfb.requestTime'] = {\n value: (responseStartTimestamp - requestStartTimestamp) * 1000,\n unit: 'millisecond',\n };\n }\n }\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || timeOrigin >= transaction.startTimestamp) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n var oldValue = _measurements[name].value;\n var measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n var normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n var delta = normalizedValue - oldValue;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n\n var fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: fidMark.value + msToSec(_measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: fidMark.value,\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 if (!('fcp' in _measurements)) {\n delete _measurements.cls;\n }\n\n Object.keys(_measurements).forEach(measurementName => {\n transaction.setMeasurement(\n measurementName,\n _measurements[measurementName].value,\n _measurements[measurementName].unit,\n );\n });\n\n _tagMetricInfo(transaction);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nfunction _addMeasureSpans(\n transaction,\n entry,\n startTime,\n duration,\n timeOrigin,\n) {\n var measureStartTimestamp = timeOrigin + startTime;\n var measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name ,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType ,\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\nfunction _addNavigationSpans(transaction, entry, timeOrigin) {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n transaction,\n entry,\n event,\n timeOrigin,\n description,\n eventEnd,\n) {\n var end = eventEnd ? (entry[eventEnd] ) : (entry[`${event}End`] );\n var start = entry[`${event}Start`] ;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: _nullishCoalesce(description, () => ( event)),\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\nfunction _addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart ),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n });\n\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart ),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n });\n}\n\n/** Create resource-related spans */\nfunction _addResourceSpans(\n transaction,\n entry,\n resourceName,\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 var data = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n\n var startTimestamp = timeOrigin + startTime;\n var endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceName,\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource',\n startTimestamp,\n data,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction) {\n var navigator = global.navigator ;\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n var connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n\n if (isMeasurementValue(connection.downlink)) {\n _measurements['connection.downlink'] = { value: connection.downlink, unit: '' }; // unit is empty string for now, while relay doesn't support download speed units\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction) {\n if (_lcpEntry) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n transaction.setTag('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nexport { _addMeasureSpans, _addResourceSpans, addPerformanceEntries, startTrackingLongTasks, startTrackingWebVitals };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |