{"version":3,"file":"static/chunks/3710-5122c8135788b381.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/display.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/boot/init.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/timer.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/observable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/heavyCustomerDataWarning.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/storedContextManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/tracekit/computeStackTrace.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/matchOption.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/configuration.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/performanceCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciTestContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewContexts.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/getSelectorFromElement.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/tracekit/tracekit.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestTiming.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/foregroundContexts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInput.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/batch.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/types/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/constants.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/privacy.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/moveObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/scrollObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mouseInteractionObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/inputObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/styleSheetObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mediaInteractionObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/frustrationObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/viewportResizeObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mutationObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/focusObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/recordIds.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/observers.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/record.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/replayStats.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/startRecording.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/deflate/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/entries/main.js","webpack://_N_E/"],"sourcesContent":["/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport var ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\nexport var display = function (api) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!Object.prototype.hasOwnProperty.call(ConsoleApiName, api)) {\n api = ConsoleApiName.log;\n }\n display[api].apply(display, args);\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport var globalConsole = console;\nvar PREFIX = 'Datadog Browser SDK:';\ndisplay.debug = globalConsole.debug.bind(globalConsole, PREFIX);\ndisplay.log = globalConsole.log.bind(globalConsole, PREFIX);\ndisplay.info = globalConsole.info.bind(globalConsole, PREFIX);\ndisplay.warn = globalConsole.warn.bind(globalConsole, PREFIX);\ndisplay.error = globalConsole.error.bind(globalConsole, PREFIX);\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n return fn.apply(void 0, args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ConsoleApiName, display } from './display';\nvar onMonitorErrorCollected;\nvar debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n displayIfDebugEnabled(ConsoleApiName.error, e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(ConsoleApiName.error, e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled(api) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (debugMode) {\n display.apply(void 0, __spreadArray([api, '[MONITOR]'], args, false));\n }\n}\n//# sourceMappingURL=monitor.js.map","export function includes(candidate, search) {\n return candidate.indexOf(search) !== -1;\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike);\n }\n var array = [];\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) { return array.push(item); });\n }\n else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i]);\n }\n }\n return array;\n}\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i];\n if (predicate(item, i)) {\n return item;\n }\n }\n return undefined;\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\nexport function forEach(list, callback) {\n Array.prototype.forEach.call(list, callback);\n}\nexport function objectValues(object) {\n return Object.keys(object).map(function (key) { return object[key]; });\n}\nexport function objectEntries(object) {\n return Object.keys(object).map(function (key) { return [key, object[key]]; });\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search;\n}\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search;\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector);\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector);\n }\n return false;\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str);\n }\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD';\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return \"\".concat(ch.slice(0, -1), \"\\\\\").concat(ch.charCodeAt(ch.length - 1).toString(16), \" \");\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\".concat(ch);\n });\n}\nexport function assign(target) {\n var toAssign = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n toAssign[_i - 1] = arguments[_i];\n }\n toAssign.forEach(function (source) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n//# sourceMappingURL=polyfills.js.map","import { catchUserErrors } from '../tools/catchUserErrors';\nimport { setDebugMode } from '../tools/monitor';\nimport { assign } from '../tools/utils/polyfills';\nexport function makePublicApi(stub) {\n var publicApi = assign({\n version: \"4.50.0\",\n // This API method is intentionally not monitored, since the only thing executed is the\n // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and\n // we don't want to interfere with the user uncaught exceptions.\n onReady: function (callback) {\n callback();\n },\n }, stub);\n // Add a \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get: function () {\n return setDebugMode;\n },\n enumerable: false,\n });\n return publicApi;\n}\nexport function defineGlobal(global, name, api) {\n var existingGlobalVariable = global[name];\n global[name] = api;\n if (existingGlobalVariable && existingGlobalVariable.q) {\n existingGlobalVariable.q.forEach(function (fn) { return catchUserErrors(fn, 'onReady callback threw an error:')(); });\n }\n}\n//# sourceMappingURL=init.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n var globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","export var ONE_KIBI_BYTE = 1024;\nexport var ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n var length = buffers.reduce(function (total, buffer) { return total + buffer.length; }, 0);\n var result = new Uint8Array(length);\n var offset = 0;\n for (var _i = 0, buffers_1 = buffers; _i < buffers_1.length; _i++) {\n var buffer = buffers_1[_i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n var browserWindow = getGlobalObject();\n var original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';\nimport { monitor } from './monitor';\nimport { getGlobalObject } from './getGlobalObject';\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);\n}\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);\n}\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);\n}\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);\n}\n//# sourceMappingURL=timer.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n var needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n var needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n var inWaitPeriod = false;\n var pendingExecutionWithParameters;\n var pendingTimeoutId;\n return {\n throttled: function () {\n var parameters = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parameters[_i] = arguments[_i];\n }\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn.apply(void 0, parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(void 0, pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return 'array';\n }\n return typeof value;\n}\n//# sourceMappingURL=typeUtils.js.map","import { getType } from './utils/typeUtils';\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker) {\n if (circularReferenceChecker === void 0) { circularReferenceChecker = createCircularReferenceChecker(); }\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination;\n }\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source;\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof RegExp) {\n var flags = source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('');\n return new RegExp(source.source, flags);\n }\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined;\n }\n else if (Array.isArray(source)) {\n var merged_1 = Array.isArray(destination) ? destination : [];\n for (var i = 0; i < source.length; ++i) {\n merged_1[i] = mergeInto(merged_1[i], source[i], circularReferenceChecker);\n }\n return merged_1;\n }\n var merged = getType(destination) === 'object' ? destination : {};\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);\n }\n }\n return merged;\n}\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value);\n}\nexport function combine() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var destination;\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue;\n }\n destination = mergeInto(destination, source);\n }\n return destination;\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n var set_1 = new WeakSet();\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set_1.has(value);\n if (!has) {\n set_1.add(value);\n }\n return has;\n },\n };\n }\n var array = [];\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = array.indexOf(value) >= 0;\n if (!has) {\n array.push(value);\n }\n return has;\n },\n };\n}\n//# sourceMappingURL=mergeInto.js.map","import { noop } from '../utils/functionUtils';\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value);\n }\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n var restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n var restoreValueToJson = detachToJsonMethod(value);\n try {\n return JSON.stringify(value, replacer, space);\n }\n catch (_a) {\n return '';\n }\n finally {\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n restoreValuePrototypeToJson();\n restoreValueToJson();\n }\n}\nexport function detachToJsonMethod(value) {\n var object = value;\n var objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return function () {\n object.toJSON = objectToJson;\n };\n }\n return noop;\n}\n//# sourceMappingURL=jsonStringify.js.map","import { display } from '../display';\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { detachToJsonMethod } from './jsonStringify';\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nvar JSON_PATH_ROOT_ELEMENT = '$';\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nvar KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount) {\n var _a;\n if (maxCharacterCount === void 0) { maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT; }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = [];\n var visitedObjectsWithPath = new WeakMap();\n var sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n var accumulatedCharacterCount = ((_a = JSON.stringify(sanitizedData)) === null || _a === void 0 ? void 0 : _a.length) || 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n var containerToProcess = containerQueue.shift();\n var separatorLength = 0; // 0 for the first element, 1 for subsequent elements\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (var key = 0; key < containerToProcess.source.length; key++) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length;\n }\n else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4;\n }\n accumulatedCharacterCount += separatorLength;\n separatorLength = 1;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n else {\n for (var key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;\n separatorLength = 1;\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n }\n }\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n return sanitizedData;\n}\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {\n // Start by handling toJSON, as we want to sanitize its output\n var sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n var sanitizedSource = sanitizeObjects(sourceToSanitize);\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource;\n }\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n var sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return \"[Reference seen at \".concat(visitedObjectsWithPath.get(sourceAsObject), \"]\");\n }\n // Add processed source to queue\n var currentPath = key !== undefined ? \"\".concat(parentPath, \".\").concat(key) : parentPath;\n var target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target: target, path: currentPath });\n return target;\n}\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return \"[BigInt] \".concat(value.toString());\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return \"[Function] \".concat(value.name || 'unknown');\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return \"[Symbol] \".concat(value.description || value.toString());\n }\n return value;\n}\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return {\n isTrusted: value.isTrusted,\n };\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value);\n var match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return \"[\".concat(match[1], \"]\");\n }\n }\n catch (_a) {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]';\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var object = value;\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON();\n }\n catch (_a) {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n return value;\n}\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(\"The data provided has been \".concat(changeType, \" as it is over the limit of \").concat(maxCharacterCount, \" characters:\"), source);\n}\n//# sourceMappingURL=sanitize.js.map","var Observable = /** @class */ (function () {\n function Observable(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n Observable.prototype.subscribe = function (f) {\n var _this = this;\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined;\n }\n this.observers.push(f);\n return {\n unsubscribe: function () {\n _this.observers = _this.observers.filter(function (other) { return f !== other; });\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe();\n }\n },\n };\n };\n Observable.prototype.notify = function (data) {\n this.observers.forEach(function (observer) { return observer(data); });\n };\n return Observable;\n}());\nexport { Observable };\nexport function mergeObservables() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var globalObservable = new Observable(function () {\n var subscriptions = observables.map(function (observable) {\n return observable.subscribe(function (data) { return globalObservable.notify(data); });\n });\n return function () { return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); }); };\n });\n return globalObservable;\n}\n//# sourceMappingURL=observable.js.map","var _a;\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { display } from '../../tools/display';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\nvar CustomerDataLabel = (_a = {},\n _a[0 /* CustomerDataType.FeatureFlag */] = 'feature flag evaluation',\n _a[1 /* CustomerDataType.User */] = 'user',\n _a[2 /* CustomerDataType.GlobalContext */] = 'global context',\n _a[3 /* CustomerDataType.LoggerContext */] = 'logger context',\n _a);\nexport function warnIfCustomerDataLimitReached(bytesCount, customerDataType) {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\"The \".concat(CustomerDataLabel[customerDataType], \" data exceeds the recommended \").concat(CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE, \"KiB threshold. More details: https://docs.datadoghq.com/real_user_monitoring/browser/troubleshooting/#customer-data-exceeds-the-recommended-3kib-warning\"));\n return true;\n }\n return false;\n}\n//# sourceMappingURL=heavyCustomerDataWarning.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { deepClone } from '../../tools/mergeInto';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning';\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createContextManager(customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var context = {};\n var bytesCountCache;\n var alreadyWarned = false;\n var changeObservable = new Observable();\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var computeBytesCountThrottled = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, customerDataType);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY).throttled;\n var contextManager = {\n getBytesCount: function () { return bytesCountCache; },\n /** @deprecated use getContext instead */\n get: function () { return context; },\n /** @deprecated use setContextProperty instead */\n add: function (key, value) {\n context[key] = value;\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n /** @deprecated renamed to removeContextProperty */\n remove: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n /** @deprecated use setContext instead */\n set: function (newContext) {\n context = newContext;\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n getContext: function () { return deepClone(context); },\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n computeBytesCountThrottled(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: function (key, property) {\n context[key] = sanitize(property);\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n removeContextProperty: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n clearContext: function () {\n context = {};\n bytesCountCache = 0;\n changeObservable.notify();\n },\n changeObservable: changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","var BUFFER_LIMIT = 500;\nvar BoundedBuffer = /** @class */ (function () {\n function BoundedBuffer() {\n this.buffer = [];\n }\n BoundedBuffer.prototype.add = function (callback) {\n var length = this.buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n this.buffer.splice(0, 1);\n }\n };\n BoundedBuffer.prototype.drain = function () {\n this.buffer.forEach(function (callback) { return callback(); });\n this.buffer.length = 0;\n };\n return BoundedBuffer;\n}());\nexport { BoundedBuffer };\n//# sourceMappingURL=boundedBuffer.js.map","/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold;\n}\nexport function round(num, decimals) {\n return +num.toFixed(decimals);\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100;\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\n//# sourceMappingURL=numberUtils.js.map","import { isNumber, round } from './numberUtils';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = 60 * ONE_SECOND;\nexport var ONE_HOUR = 60 * ONE_MINUTE;\nexport var ONE_DAY = 24 * ONE_HOUR;\nexport var ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var correctedOrigin = (dateNow() - performance.now());\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime));\n }\n return getTimeStamp(relativeTime);\n}\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now()));\n}\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration;\n }\n return round(duration * 1e6, 0);\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime();\n}\nexport function timeStampNow() {\n return dateNow();\n}\nexport function relativeNow() {\n return performance.now();\n}\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() };\n}\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() };\n}\nexport function elapsed(start, end) {\n return (end - start);\n}\nexport function addDuration(a, b) {\n return a + b;\n}\n/**\n * Get the time since the navigation was started.\n *\n * Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual\n * time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.\n * Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926\n */\nexport function getRelativeTime(timestamp) {\n return (timestamp - getNavigationStart());\n}\nexport function getTimeStamp(relativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime));\n}\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR;\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nvar navigationStart;\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\nexport function resetNavigationStart() {\n navigationStart = undefined;\n}\n//# sourceMappingURL=timeUtils.js.map","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : \"\".concat(1e7, \"-\").concat(1e3, \"-\").concat(4e3, \"-\").concat(8e3, \"-\").concat(1e11).replace(/[018]/g, generateUUID);\n}\nexport function findCommaSeparatedValue(rawString, name) {\n var regex = new RegExp(\"(?:^|;)\\\\s*\".concat(name, \"\\\\s*=\\\\s*([^;]+)\"));\n var matches = regex.exec(rawString);\n return matches ? matches[1] : undefined;\n}\nexport function safeTruncate(candidate, length, suffix) {\n if (suffix === void 0) { suffix = ''; }\n var lastChar = candidate.charCodeAt(length - 1);\n var isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n var correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return \"\".concat(candidate.slice(0, correctedLength)).concat(suffix);\n}\n//# sourceMappingURL=stringUtils.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date();\n date.setTime(date.getTime() + expireDelay);\n var expires = \"expires=\".concat(date.toUTCString());\n var sameSite = options && options.crossSite ? 'none' : 'strict';\n var domain = options && options.domain ? \";domain=\".concat(options.domain) : '';\n var secure = options && options.secure ? ';secure' : '';\n document.cookie = \"\".concat(name, \"=\").concat(value, \";\").concat(expires, \";path=/;samesite=\").concat(sameSite).concat(domain).concat(secure);\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_cookie_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n var isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;\n deleteCookie(testCookieName, options);\n return isCookieCorrectlySet;\n }\n catch (error) {\n display.error(error);\n return false;\n }\n}\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache;\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_site_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n var domainLevels = window.location.hostname.split('.');\n var candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = \"\".concat(domainLevels.pop(), \".\").concat(candidateDomain);\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain });\n }\n deleteCookie(testCookieName, { domain: candidateDomain });\n getCurrentSiteCache = candidateDomain;\n }\n return getCurrentSiteCache;\n}\n//# sourceMappingURL=cookie.js.map","import { getCookie } from '../../browser/cookie';\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n var value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n var value = window._DATADOG_SYNTHETICS_RESULT_ID || getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","import { endsWith } from '../tools/utils/polyfills';\nimport { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n var eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getAllowedWebViewHosts: function () {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send: function (eventType, event) {\n eventBridgeGlobal.send(JSON.stringify({ eventType: eventType, event: event }));\n },\n };\n}\nexport function canUseEventBridge(currentHost) {\n var _a;\n if (currentHost === void 0) { currentHost = (_a = getGlobalObject().location) === null || _a === void 0 ? void 0 : _a.hostname; }\n var bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some(function (allowedHost) { return currentHost === allowedHost || endsWith(currentHost, \".\".concat(allowedHost)); }));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.js.map","import { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(_, eventTarget, eventNames, listener, _a) {\n var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;\n var listenerWithMonitor = monitor(once\n ? function (event) {\n stop();\n listener(event);\n }\n : listener);\n var options = passive ? { capture: capture, passive: passive } : capture;\n var add = getZoneJsOriginalValue(eventTarget, 'addEventListener');\n eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, listenerWithMonitor, options); });\n function stop() {\n var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener');\n eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, listenerWithMonitor, options); });\n }\n return {\n stop: stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { createContextManager } from './contextManager';\nvar CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nvar storageListeners = [];\nexport function createStoredContextManager(configuration, productKey, customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var storageKey = buildStorageKey(productKey, customerDataType);\n var contextManager = createContextManager(customerDataType, computeBytesCountImpl);\n synchronizeWithStorage();\n storageListeners.push(addEventListener(configuration, window, \"storage\" /* DOM_EVENT.STORAGE */, function (_a) {\n var key = _a.key;\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n return contextManager;\n function synchronizeWithStorage() {\n var rawContext = localStorage.getItem(storageKey);\n var context = rawContext !== null ? JSON.parse(rawContext) : {};\n contextManager.setContext(context);\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return \"\".concat(CONTEXT_STORE_KEY_PREFIX, \"_\").concat(productKey, \"_\").concat(customerDataType);\n}\nexport function removeStorageListeners() {\n storageListeners.map(function (listener) { return listener.stop(); });\n}\n//# sourceMappingURL=storedContextManager.js.map","import { startsWith } from '../../tools/utils/polyfills';\nvar UNKNOWN_FUNCTION = '?';\n/**\n * Computes a stack trace for an exception.\n */\nexport function computeStackTrace(ex) {\n var stack = [];\n var stackProperty = tryToGetString(ex, 'stack');\n var exString = String(ex);\n if (stackProperty && startsWith(stackProperty, exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach(function (line) {\n var stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION;\n }\n stack.push(stackFrame);\n }\n });\n }\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack: stack,\n };\n}\nvar fileUrl = '((?:file|https?|blob|chrome-extension|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nvar filePosition = '(?::(\\\\d+))';\nvar CHROME_LINE_RE = new RegExp(\"^\\\\s*at (.*?) ?\\\\(\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"?\\\\)?\\\\s*$\"), 'i');\nvar CHROME_EVAL_RE = new RegExp(\"\\\\((\\\\S*)\".concat(filePosition).concat(filePosition, \"\\\\)\"));\nfunction parseChromeLine(line) {\n var parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n var submatch = CHROME_EVAL_RE.exec(parts[2]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n };\n}\nvar CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(\"^\\\\s*at ?\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"??\\\\s*$\"), 'i');\nfunction parseChromeAnonymousLine(line) {\n var parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n };\n}\nvar WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n var parts = WINJS_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n };\n}\nvar GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n var parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = GECKO_EVAL_RE.exec(parts[3]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = undefined; // no column when eval\n }\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n };\n}\nfunction tryToGetString(candidate, property) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined;\n }\n var value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { computeStackTrace } from '../tracekit';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { noop } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nexport var NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError(_a) {\n var stackTrace = _a.stackTrace, originalError = _a.originalError, handlingStack = _a.handlingStack, startClocks = _a.startClocks, nonErrorPrefix = _a.nonErrorPrefix, source = _a.source, handling = _a.handling;\n var isErrorInstance = originalError instanceof Error;\n var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n var type = stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name;\n var fingerprint = tryToGetFingerprint(originalError);\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n handlingStack: handlingStack,\n originalError: originalError,\n type: type,\n message: message,\n stack: stack,\n causes: causes,\n fingerprint: fingerprint,\n };\n}\nfunction computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.message) && (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name)\n ? stackTrace.message\n : !isErrorInstance\n ? \"\".concat(nonErrorPrefix, \" \").concat(jsonStringify(sanitize(originalError)))\n : 'Empty message';\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false;\n }\n if (isErrorInstance) {\n return true;\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined);\n}\nexport function tryToGetFingerprint(originalError) {\n return originalError instanceof Error && 'dd_fingerprint' in originalError\n ? String(originalError.dd_fingerprint)\n : undefined;\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack);\n stack.stack.forEach(function (frame) {\n var func = frame.func === '?' ? '' : frame.func;\n var args = frame.args && frame.args.length > 0 ? \"(\".concat(frame.args.join(', '), \")\") : '';\n var line = frame.line ? \":\".concat(frame.line) : '';\n var column = frame.line && frame.column ? \":\".concat(frame.column) : '';\n result += \"\\n at \".concat(func).concat(args, \" @ \").concat(frame.url).concat(line).concat(column);\n });\n return result;\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function formatErrorMessage(stack) {\n return \"\".concat(stack.name || 'Error', \": \").concat(stack.message);\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2;\n var error = new Error();\n var formattedStack;\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error;\n }\n catch (e) {\n noop();\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error;\n var causes = [];\n while ((currentError === null || currentError === void 0 ? void 0 : currentError.cause) instanceof Error && causes.length < 10) {\n var stackTrace = computeStackTrace(currentError.cause);\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n });\n currentError = currentError.cause;\n }\n return causes.length ? causes : undefined;\n}\n//# sourceMappingURL=error.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { assign } from '../../tools/utils/polyfills';\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser);\n var keys = ['id', 'name', 'email'];\n keys.forEach(function (key) {\n if (key in user) {\n user[key] = String(user[key]);\n }\n });\n return user;\n}\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object';\n if (!isValid) {\n display.error('Unsupported user:', newUser);\n }\n return isValid;\n}\n//# sourceMappingURL=user.js.map","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"PAGEHIDE\"] = \"pagehide\";\n ExperimentalFeature[\"FEATURE_FLAGS\"] = \"feature_flags\";\n ExperimentalFeature[\"RESOURCE_PAGE_STATES\"] = \"resource_page_states\";\n ExperimentalFeature[\"PAGE_STATES\"] = \"page_states\";\n ExperimentalFeature[\"COLLECT_FLUSH_REASON\"] = \"collect_flush_reason\";\n ExperimentalFeature[\"NO_RESOURCE_DURATION_FROZEN_STATE\"] = \"no_resource_duration_frozen_state\";\n ExperimentalFeature[\"SCROLLMAP\"] = \"scrollmap\";\n ExperimentalFeature[\"INTERACTION_TO_NEXT_PAINT\"] = \"interaction_to_next_paint\";\n ExperimentalFeature[\"WEB_VITALS_ATTRIBUTION\"] = \"web_vitals_attribution\";\n ExperimentalFeature[\"DISABLE_REPLAY_INLINE_CSS\"] = \"disable_replay_inline_css\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nvar enabledExperimentalFeatures = new Set();\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach(function (flag) {\n enabledExperimentalFeatures.add(flag);\n });\n}\nexport function isExperimentalFeatureEnabled(featureName) {\n return enabledExperimentalFeatures.has(featureName);\n}\nexport function resetExperimentalFeatures() {\n enabledExperimentalFeatures.clear();\n}\nexport function getExperimentalFeatures() {\n return enabledExperimentalFeatures;\n}\n//# sourceMappingURL=experimentalFeatures.js.map","import { assign } from './polyfills';\nexport function shallowClone(object) {\n return assign({}, object);\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some(function (key) { return object[key] === value; });\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n var newObject = {};\n for (var _i = 0, _a = Object.keys(object); _i < _a.length; _i++) {\n var key = _a[_i];\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","import { ONE_HOUR, ONE_MINUTE } from '../../tools/utils/timeUtils';\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\n//# sourceMappingURL=sessionConstants.js.map","export function isIE() {\n return Boolean(document.documentMode);\n}\nexport function isChromium() {\n return !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent);\n}\n//# sourceMappingURL=browserDetection.js.map","export var SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants';\nvar SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/;\nvar SESSION_ENTRY_SEPARATOR = '&';\nexport function isSessionInExpiredState(session) {\n return isEmptyObject(session);\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return objectEntries(session)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value);\n })\n .join(SESSION_ENTRY_SEPARATOR);\n}\nexport function toSessionState(sessionString) {\n var session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n var key = matches[1], value = matches[2];\n session[key] = value;\n }\n });\n }\n return session;\n}\nfunction isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionState.js.map","import { getCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var OLD_SESSION_COOKIE_NAME = '_dd';\nexport var OLD_RUM_COOKIE_NAME = '_dd_r';\nexport var OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport var RUM_SESSION_KEY = 'rum';\nexport var LOGS_SESSION_KEY = 'logs';\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy) {\n var sessionString = getCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n var oldSessionId = getCookie(OLD_SESSION_COOKIE_NAME);\n var oldRumType = getCookie(OLD_RUM_COOKIE_NAME);\n var oldLogsType = getCookie(OLD_LOGS_COOKIE_NAME);\n var session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (!isSessionInExpiredState(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, deleteCookie, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_EXPIRATION_DELAY } from '../sessionConstants';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n var cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions: cookieOptions } : undefined;\n}\nexport function initCookieStrategy(cookieOptions) {\n var cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n clearSession: deleteSessionCookie(cookieOptions),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction retrieveSessionCookie() {\n var sessionString = getCookie(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction deleteSessionCookie(options) {\n return function () {\n deleteCookie(SESSION_STORE_KEY, options);\n };\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {};\n cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nvar LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n var id = generateUUID();\n var testKey = \"\".concat(LOCAL_STORAGE_TEST_KEY).concat(id);\n localStorage.setItem(testKey, id);\n var retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: 'LocalStorage' } : undefined;\n }\n catch (e) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy() {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n clearSession: clearSessionFromLocalStorage,\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n var sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction clearSessionFromLocalStorage() {\n localStorage.removeItem(SESSION_STORE_KEY);\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var LOCK_RETRY_DELAY = 10;\nexport var LOCK_MAX_TRIES = 100;\nvar bufferedOperations = [];\nvar ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries) {\n var _a;\n if (numberOfRetries === void 0) { numberOfRetries = 0; }\n var isLockEnabled = sessionStoreStrategy.isLockEnabled, retrieveSession = sessionStoreStrategy.retrieveSession, persistSession = sessionStoreStrategy.persistSession, clearSession = sessionStoreStrategy.clearSession;\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n var currentLock;\n var currentSession = retrieveSession();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n currentSession.lock = currentLock;\n persistSession(currentSession);\n // if lock is not acquired, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n var processedSession = operations.process(currentSession);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n clearSession();\n }\n else {\n expandSessionState(processedSession);\n persistSession(processedSession);\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n delete currentSession.lock;\n persistSession(currentSession);\n processedSession = currentSession;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentSession);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(function () {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n var nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport var STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n var sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, productKey, computeSessionState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\n var sessionStoreStrategy = sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy();\n var clearSession = sessionStoreStrategy.clearSession, retrieveSession = sessionStoreStrategy.retrieveSession;\n var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n var sessionCache = retrieveActiveSession();\n function expandOrRenewSession() {\n var isTracked;\n processSessionStoreOperations({\n process: function (sessionState) {\n var synchronizedSession = synchronizeSession(sessionState);\n isTracked = expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: function (sessionState) {\n if (isTracked && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (hasSessionInCache() ? synchronizeSession(sessionState) : undefined); },\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (!isActiveSession(sessionState) ? {} : undefined); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (!isActiveSession(sessionState)) {\n sessionState = {};\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function expandOrRenewSessionState(sessionState) {\n var _a = computeSessionState(sessionState[productKey]), trackingType = _a.trackingType, isTracked = _a.isTracked;\n sessionState[productKey] = trackingType;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n return isTracked;\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = {};\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function retrieveActiveSession() {\n var session = retrieveSession();\n if (isActiveSession(session)) {\n return session;\n }\n return {};\n }\n function isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n }\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, STORAGE_POLL_DELAY).throttled,\n expandSession: expandSession,\n getSession: function () { return sessionCache; },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: function () {\n clearSession();\n synchronizeSession({});\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId);\n },\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, getLocationOrigin()).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getOrigin(url) {\n return getLinkElementOrigin(buildUrl(url));\n}\nexport function getPathName(url) {\n var pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : \"/\".concat(pathname);\n}\nexport function getSearch(url) {\n return buildUrl(url).search;\n}\nexport function getHash(url) {\n return buildUrl(url).hash;\n}\nexport function buildUrl(url, base) {\n var supportedURL = getSupportedUrl();\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url);\n }\n catch (error) {\n throw new Error(\"Failed to construct URL: \".concat(String(error), \" \").concat(jsonStringify({ url: url, base: base })));\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(\"Invalid URL: '\".concat(url, \"'\"));\n }\n var doc = document;\n var anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n var baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n doc.body.appendChild(anchorElement);\n }\n anchorElement.href = url;\n return anchorElement;\n}\nvar originalURL = URL;\nvar isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n var url = new originalURL('http://test/path');\n isURLSupported = url.href === 'http://test/path';\n }\n catch (_a) {\n isURLSupported = false;\n }\n }\n return isURLSupported ? originalURL : undefined;\n}\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location);\n}\n/**\n * Fallback\n * On IE HTMLAnchorElement origin is not supported: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n * On Firefox window.location.origin is \"null\" for file: URIs: https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n */\nexport function getLinkElementOrigin(element) {\n if (element.origin && element.origin !== 'null') {\n return element.origin;\n }\n var sanitizedHost = element.host.replace(/(:80|:443)$/, '');\n return \"\".concat(element.protocol, \"//\").concat(sanitizedHost);\n}\n//# sourceMappingURL=urlPolyfill.js.map","export var INTAKE_SITE_STAGING = 'datad0g.com';\nexport var INTAKE_SITE_US1 = 'datadoghq.com';\nexport var INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport var INTAKE_SITE_AP1 = 'ap1.datadoghq.com';\nexport var INTAKE_SITE_US1_FED = 'ddog-gov.com';\n//# sourceMappingURL=intakeSites.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { ExperimentalFeature, isExperimentalFeatureEnabled } from '../../tools/experimentalFeatures';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_AP1, INTAKE_SITE_US1 } from './intakeSites';\nexport var ENDPOINTS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'session-replay',\n};\nvar INTAKE_TRACKS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'replay',\n};\nexport function createEndpointBuilder(initConfiguration, endpointType, configurationTags) {\n var buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, endpointType);\n return {\n build: function (api, payload) {\n var parameters = buildEndpointParameters(initConfiguration, endpointType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n endpointType: endpointType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, endpointType) {\n var path = \"/api/v2/\".concat(INTAKE_TRACKS[endpointType]);\n var proxy = initConfiguration.proxy, proxyUrl = initConfiguration.proxyUrl;\n if (proxy) {\n var normalizedProxyUrl_1 = normalizeUrl(proxy);\n return function (parameters) { return \"\".concat(normalizedProxyUrl_1, \"?ddforward=\").concat(encodeURIComponent(\"\".concat(path, \"?\").concat(parameters))); };\n }\n var host = buildEndpointHost(initConfiguration, endpointType);\n if (proxy === undefined && proxyUrl) {\n // TODO: remove this in a future major.\n var normalizedProxyUrl_2 = normalizeUrl(proxyUrl);\n return function (parameters) {\n return \"\".concat(normalizedProxyUrl_2, \"?ddforward=\").concat(encodeURIComponent(\"https://\".concat(host).concat(path, \"?\").concat(parameters)));\n };\n }\n return function (parameters) { return \"https://\".concat(host).concat(path, \"?\").concat(parameters); };\n}\nfunction buildEndpointHost(initConfiguration, endpointType) {\n var _a = initConfiguration.site, site = _a === void 0 ? INTAKE_SITE_US1 : _a, internalAnalyticsSubdomain = initConfiguration.internalAnalyticsSubdomain;\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return \"\".concat(internalAnalyticsSubdomain, \".\").concat(INTAKE_SITE_US1);\n }\n var domainParts = site.split('.');\n var extension = domainParts.pop();\n var subdomain = site !== INTAKE_SITE_AP1 ? \"\".concat(ENDPOINTS[endpointType], \".\") : '';\n return \"\".concat(subdomain, \"browser-intake-\").concat(domainParts.join('-'), \".\").concat(extension);\n}\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters(_a, endpointType, configurationTags, api, _b) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var retry = _b.retry, flushReason = _b.flushReason, encoding = _b.encoding;\n var tags = [\"sdk_version:\".concat(\"4.50.0\"), \"api:\".concat(api)].concat(configurationTags);\n if (flushReason && isExperimentalFeatureEnabled(ExperimentalFeature.COLLECT_FLUSH_REASON)) {\n tags.push(\"flush_reason:\".concat(flushReason));\n }\n if (retry) {\n tags.push(\"retry_count:\".concat(retry.count), \"retry_after:\".concat(retry.lastFailureStatus));\n }\n var parameters = [\n 'ddsource=browser',\n \"ddtags=\".concat(encodeURIComponent(tags.join(','))),\n \"dd-api-key=\".concat(clientToken),\n \"dd-evp-origin-version=\".concat(encodeURIComponent(\"4.50.0\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\n ];\n if (encoding) {\n parameters.push(\"dd-evp-encoding=\".concat(encoding));\n }\n if (endpointType === 'rum') {\n parameters.push(\"batch_time=\".concat(timeStampNow()));\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","import { display } from '../../tools/display';\nexport var TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n var env = configuration.env, service = configuration.service, version = configuration.version, datacenter = configuration.datacenter;\n var tags = [];\n if (env) {\n tags.push(buildTag('env', env));\n }\n if (service) {\n tags.push(buildTag('service', service));\n }\n if (version) {\n tags.push(buildTag('version', version));\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter));\n }\n return tags;\n}\nvar FORBIDDEN_CHARACTERS = /[^a-z0-9_:./-]/;\nexport function buildTag(key, rawValue) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n var valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || FORBIDDEN_CHARACTERS.test(rawValue)) {\n display.warn(\"\".concat(key, \" value doesn't meet tag requirements and will be sanitized\"));\n }\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n var sanitizedValue = rawValue.replace(/,/g, '_');\n return \"\".concat(key, \":\").concat(sanitizedValue);\n}\n//# sourceMappingURL=tags.js.map","import { objectValues, assign } from '../../tools/utils/polyfills';\nimport { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1 } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n var tags = buildTags(initConfiguration);\n var endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n var intakeUrlPrefixes = objectValues(endpointBuilders).map(function (builder) { return builder.urlPrefix; });\n var replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags);\n return assign({\n isIntakeUrl: function (url) { return intakeUrlPrefixes.some(function (intakeEndpoint) { return url.indexOf(intakeEndpoint) === 0; }); },\n replica: replicaConfiguration,\n site: initConfiguration.site || INTAKE_SITE_US1,\n }, endpointBuilders);\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'sessionReplay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n var replicaConfiguration = assign({}, initConfiguration, {\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n });\n var replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n intakeUrlPrefixes.push.apply(intakeUrlPrefixes, objectValues(replicaEndpointBuilders).map(function (builder) { return builder.urlPrefix; }));\n return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders);\n}\n//# sourceMappingURL=transportConfiguration.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { display } from '../../tools/display';\nimport { ExperimentalFeature, addExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { ONE_SECOND } from '../../tools/utils/timeUtils';\nimport { isPercentage } from '../../tools/utils/numberUtils';\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { objectHasValue } from '../../tools/utils/objectUtils';\nimport { assign } from '../../tools/utils/polyfills';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n var sessionSampleRate = (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.sampleRate;\n if (sessionSampleRate !== undefined && !isPercentage(sessionSampleRate)) {\n display.error('Session Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetrySampleRate !== undefined && !isPercentage(initConfiguration.telemetrySampleRate)) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetryConfigurationSampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetryConfigurationSampleRate)) {\n display.error('Telemetry Configuration Sample Rate should be a number between 0 and 100');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n if (Array.isArray(initConfiguration.enableExperimentalFeatures)) {\n addExperimentalFeatures(initConfiguration.enableExperimentalFeatures.filter(function (flag) {\n return objectHasValue(ExperimentalFeature, flag);\n }));\n }\n return assign({\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: sessionSampleRate !== null && sessionSampleRate !== void 0 ? sessionSampleRate : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n service: initConfiguration.service,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND),\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n }, computeTransportConfiguration(initConfiguration));\n}\nexport function serializeConfiguration(initConfiguration) {\n var _a, _b;\n var proxy = (_a = initConfiguration.proxy) !== null && _a !== void 0 ? _a : initConfiguration.proxyUrl;\n return {\n session_sample_rate: (_b = initConfiguration.sessionSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.sampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: proxy !== undefined ? !!proxy : undefined,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n track_resources: initConfiguration.trackResources,\n track_long_task: initConfiguration.trackLongTasks,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { startsWith } from './utils/polyfills';\nimport { display } from './display';\nimport { getType } from './utils/typeUtils';\nexport function isMatchOption(item) {\n var itemType = getType(item);\n return itemType === 'string' || itemType === 'function' || item instanceof RegExp;\n}\n/**\n * Returns true if value can be matched by at least one of the provided MatchOptions.\n * When comparing strings, setting useStartsWith to true will compare the value with the start of\n * the option, instead of requiring an exact match.\n */\nexport function matchList(list, value, useStartsWith) {\n if (useStartsWith === void 0) { useStartsWith = false; }\n return list.some(function (item) {\n try {\n if (typeof item === 'function') {\n return item(value);\n }\n else if (item instanceof RegExp) {\n return item.test(value);\n }\n else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value;\n }\n }\n catch (e) {\n display.error(e);\n }\n return false;\n });\n}\n//# sourceMappingURL=matchOption.js.map","import { objectEntries, shallowClone, performDraw, isNumber, assign, find, getType, isMatchOption, matchList, } from '@datadog/browser-core';\nexport function isTracingOption(item) {\n var expectedItem = item;\n return (getType(expectedItem) === 'object' &&\n isMatchOption(expectedItem.match) &&\n Array.isArray(expectedItem.propagatorTypes));\n}\n/**\n * Clear tracing information to avoid incomplete traces. Ideally, we should do it when the\n * request did not reach the server, but the browser does not expose this. So, we clear tracing\n * information if the request ended with status 0 without being aborted by the application.\n *\n * Reasoning:\n *\n * * Applications are usually aborting requests after a bit of time, for example when the user is\n * typing (autocompletion) or navigating away (in a SPA). With a performant device and good\n * network conditions, the request is likely to reach the server before being canceled.\n *\n * * Requests aborted otherwise (ex: lack of internet, CORS issue, blocked by a privacy extension)\n * are likely to finish quickly and without reaching the server.\n *\n * Of course, it might not be the case every time, but it should limit having incomplete traces a\n * bit.\n * */\nexport function clearTracingIfNeeded(context) {\n if (context.status === 0 && !context.isAborted) {\n context.traceId = undefined;\n context.spanId = undefined;\n context.traceSampled = undefined;\n }\n}\nexport function startTracer(configuration, sessionManager) {\n return {\n clearTracingIfNeeded: clearTracingIfNeeded,\n traceFetch: function (context) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n var _a;\n if (context.input instanceof Request && !((_a = context.init) === null || _a === void 0 ? void 0 : _a.headers)) {\n context.input = new Request(context.input);\n Object.keys(tracingHeaders).forEach(function (key) {\n ;\n context.input.headers.append(key, tracingHeaders[key]);\n });\n }\n else {\n context.init = shallowClone(context.init);\n var headers_1 = [];\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach(function (value, key) {\n headers_1.push([key, value]);\n });\n }\n else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach(function (header) {\n headers_1.push(header);\n });\n }\n else if (context.init.headers) {\n Object.keys(context.init.headers).forEach(function (key) {\n headers_1.push([key, context.init.headers[key]]);\n });\n }\n context.init.headers = headers_1.concat(objectEntries(tracingHeaders));\n }\n });\n },\n traceXhr: function (context, xhr) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n Object.keys(tracingHeaders).forEach(function (name) {\n xhr.setRequestHeader(name, tracingHeaders[name]);\n });\n });\n },\n };\n}\nfunction injectHeadersIfTracingAllowed(configuration, context, sessionManager, inject) {\n if (!isTracingSupported() || !sessionManager.findTrackedSession()) {\n return;\n }\n var tracingOption = find(configuration.allowedTracingUrls, function (tracingOption) {\n return matchList([tracingOption.match], context.url, true);\n });\n if (!tracingOption) {\n return;\n }\n context.traceId = new TraceIdentifier();\n context.spanId = new TraceIdentifier();\n context.traceSampled = !isNumber(configuration.traceSampleRate) || performDraw(configuration.traceSampleRate);\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes));\n}\nexport function isTracingSupported() {\n return getCrypto() !== undefined;\n}\nfunction getCrypto() {\n return window.crypto || window.msCrypto;\n}\n/**\n * When trace is not sampled, set priority to '0' instead of not adding the tracing headers\n * to prepare the implementation for sampling delegation.\n */\nfunction makeTracingHeaders(traceId, spanId, traceSampled, propagatorTypes) {\n var tracingHeaders = {};\n propagatorTypes.forEach(function (propagatorType) {\n switch (propagatorType) {\n case 'datadog': {\n assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toDecimalString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toDecimalString(),\n });\n break;\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n assign(tracingHeaders, {\n traceparent: \"00-0000000000000000\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-0\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n assign(tracingHeaders, {\n b3: \"\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n case 'b3multi': {\n assign(tracingHeaders, {\n 'X-B3-TraceId': traceId.toPaddedHexadecimalString(),\n 'X-B3-SpanId': spanId.toPaddedHexadecimalString(),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n });\n break;\n }\n }\n });\n return tracingHeaders;\n}\n/* eslint-disable no-bitwise */\nvar TraceIdentifier = /** @class */ (function () {\n function TraceIdentifier() {\n this.buffer = new Uint8Array(8);\n getCrypto().getRandomValues(this.buffer);\n this.buffer[0] = this.buffer[0] & 0x7f; // force 63-bit\n }\n TraceIdentifier.prototype.toString = function (radix) {\n var high = this.readInt32(0);\n var low = this.readInt32(4);\n var str = '';\n do {\n var mod = (high % radix) * 4294967296 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n } while (high || low);\n return str;\n };\n /**\n * Format used everywhere except the trace intake\n */\n TraceIdentifier.prototype.toDecimalString = function () {\n return this.toString(10);\n };\n /**\n * Format used by OTel headers\n */\n TraceIdentifier.prototype.toPaddedHexadecimalString = function () {\n var traceId = this.toString(16);\n return Array(17 - traceId.length).join('0') + traceId;\n };\n TraceIdentifier.prototype.readInt32 = function (offset) {\n return (this.buffer[offset] * 16777216 +\n (this.buffer[offset + 1] << 16) +\n (this.buffer[offset + 2] << 8) +\n this.buffer[offset + 3]);\n };\n return TraceIdentifier;\n}());\nexport { TraceIdentifier };\n/* eslint-enable no-bitwise */\n//# sourceMappingURL=tracer.js.map","import { getType, arrayFrom, getOrigin, isMatchOption, serializeConfiguration, assign, DefaultPrivacyLevel, display, isPercentage, objectHasValue, validateAndBuildConfiguration, } from '@datadog/browser-core';\nimport { isTracingOption } from './tracing/tracer';\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.');\n return;\n }\n if (initConfiguration.sessionReplaySampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionReplaySampleRate)) {\n display.error('Session Replay Sample Rate should be a number between 0 and 100');\n return;\n }\n // TODO remove fallback in next major\n var premiumSampleRate = (_a = initConfiguration.premiumSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.replaySampleRate;\n if (premiumSampleRate !== undefined && initConfiguration.sessionReplaySampleRate !== undefined) {\n display.warn('Ignoring Premium Sample Rate because Session Replay Sample Rate is set');\n premiumSampleRate = undefined;\n }\n if (premiumSampleRate !== undefined && !isPercentage(premiumSampleRate)) {\n display.error('Premium Sample Rate should be a number between 0 and 100');\n return;\n }\n var traceSampleRate = (_b = initConfiguration.traceSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.tracingSampleRate;\n if (traceSampleRate !== undefined && !isPercentage(traceSampleRate)) {\n display.error('Trace Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.excludedActivityUrls !== undefined && !Array.isArray(initConfiguration.excludedActivityUrls)) {\n display.error('Excluded Activity Urls should be an array');\n return;\n }\n var allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration);\n if (!allowedTracingUrls) {\n return;\n }\n var baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n if (!baseConfiguration) {\n return;\n }\n var trackUserInteractions = !!((_c = initConfiguration.trackUserInteractions) !== null && _c !== void 0 ? _c : initConfiguration.trackInteractions);\n var trackFrustrations = !!initConfiguration.trackFrustrations;\n return assign({\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate: (_e = (_d = initConfiguration.sessionReplaySampleRate) !== null && _d !== void 0 ? _d : premiumSampleRate) !== null && _e !== void 0 ? _e : 100,\n oldPlansBehavior: initConfiguration.sessionReplaySampleRate === undefined,\n traceSampleRate: traceSampleRate,\n allowedTracingUrls: allowedTracingUrls,\n excludedActivityUrls: (_f = initConfiguration.excludedActivityUrls) !== null && _f !== void 0 ? _f : [],\n workerUrl: initConfiguration.workerUrl,\n trackUserInteractions: trackUserInteractions || trackFrustrations,\n trackFrustrations: trackFrustrations,\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: initConfiguration.trackResources,\n trackLongTasks: initConfiguration.trackLongTasks,\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK_USER_INPUT,\n customerDataTelemetrySampleRate: 1,\n }, baseConfiguration);\n}\n/**\n * Handles allowedTracingUrls and processes legacy allowedTracingOrigins\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\n // Advise about parameters precedence.\n if (initConfiguration.allowedTracingUrls !== undefined && initConfiguration.allowedTracingOrigins !== undefined) {\n display.warn('Both allowedTracingUrls and allowedTracingOrigins (deprecated) have been defined. The parameter allowedTracingUrls will override allowedTracingOrigins.');\n }\n // Handle allowedTracingUrls first\n if (initConfiguration.allowedTracingUrls !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingUrls)) {\n display.error('Allowed Tracing URLs should be an array');\n return;\n }\n if (initConfiguration.allowedTracingUrls.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n // Convert from (MatchOption | TracingOption) to TracingOption, remove unknown properties\n var tracingOptions_1 = [];\n initConfiguration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n tracingOptions_1.push({ match: option, propagatorTypes: ['datadog'] });\n }\n else if (isTracingOption(option)) {\n tracingOptions_1.push(option);\n }\n else {\n display.warn('Allowed Tracing Urls parameters should be a string, RegExp, function, or an object. Ignoring parameter', option);\n }\n });\n return tracingOptions_1;\n }\n // Handle conversion of allowedTracingOrigins to allowedTracingUrls\n if (initConfiguration.allowedTracingOrigins !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingOrigins)) {\n display.error('Allowed Tracing Origins should be an array');\n return;\n }\n if (initConfiguration.allowedTracingOrigins.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n var tracingOptions_2 = [];\n initConfiguration.allowedTracingOrigins.forEach(function (legacyMatchOption) {\n var tracingOption = convertLegacyMatchOptionToTracingOption(legacyMatchOption);\n if (tracingOption) {\n tracingOptions_2.push(tracingOption);\n }\n });\n return tracingOptions_2;\n }\n return [];\n}\n/**\n * Converts parameters from the deprecated allowedTracingOrigins\n * to allowedTracingUrls. Handles the change from origin to full URLs.\n */\nfunction convertLegacyMatchOptionToTracingOption(item) {\n var match;\n if (typeof item === 'string') {\n match = item;\n }\n else if (item instanceof RegExp) {\n match = function (url) { return item.test(getOrigin(url)); };\n }\n else if (typeof item === 'function') {\n match = function (url) { return item(getOrigin(url)); };\n }\n if (match === undefined) {\n display.warn('Allowed Tracing Origins parameters should be a string, RegExp or function. Ignoring parameter', item);\n return undefined;\n }\n return { match: match, propagatorTypes: ['datadog'] };\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls,\n * and assumes 'datadog' has been selected when using allowedTracingOrigins\n */\nfunction getSelectedTracingPropagators(configuration) {\n var usedTracingPropagators = new Set();\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n usedTracingPropagators.add('datadog');\n }\n else if (getType(option) === 'object' && Array.isArray(option.propagatorTypes)) {\n // Ensure we have an array, as we cannot rely on types yet (configuration is provided by users)\n option.propagatorTypes.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\n }\n });\n }\n if (Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0) {\n usedTracingPropagators.add('datadog');\n }\n return arrayFrom(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var _a, _b;\n var baseSerializedConfiguration = serializeConfiguration(configuration);\n return assign({\n premium_sample_rate: configuration.premiumSampleRate,\n replay_sample_rate: configuration.replaySampleRate,\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n trace_sample_rate: (_a = configuration.traceSampleRate) !== null && _a !== void 0 ? _a : configuration.tracingSampleRate,\n action_name_attribute: configuration.actionNameAttribute,\n use_allowed_tracing_origins: Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0,\n use_allowed_tracing_urls: Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0,\n selected_tracing_propagators: getSelectedTracingPropagators(configuration),\n default_privacy_level: configuration.defaultPrivacyLevel,\n use_excluded_activity_urls: Array.isArray(configuration.excludedActivityUrls) && configuration.excludedActivityUrls.length > 0,\n use_worker_url: !!configuration.workerUrl,\n track_frustrations: configuration.trackFrustrations,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: (_b = configuration.trackUserInteractions) !== null && _b !== void 0 ? _b : configuration.trackInteractions,\n }, baseSerializedConfiguration);\n}\n//# sourceMappingURL=configuration.js.map","export function buildCommonContext(globalContextManager, userContextManager, recorderApi) {\n return {\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n hasReplay: recorderApi.isRecording() ? true : undefined,\n };\n}\n//# sourceMappingURL=commonContext.js.map","import { noop, willSyntheticsInjectRum, assign, BoundedBuffer, createContextManager, deepClone, makePublicApi, monitor, clocksNow, timeStampNow, display, callMonitored, createHandlingStack, canUseEventBridge, checkUser, sanitizeUser, sanitize, createStoredContextManager, combine, } from '@datadog/browser-core';\nimport { validateAndBuildRumConfiguration } from '../domain/configuration';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nvar RUM_STORAGE_KEY = 'rum';\nexport function makeRumPublicApi(startRumImpl, recorderApi, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.ignoreInitIfSyntheticsWillInjectRum, ignoreInitIfSyntheticsWillInjectRum = _c === void 0 ? true : _c;\n var isAlreadyInitialized = false;\n var globalContextManager = createContextManager(2 /* CustomerDataType.GlobalContext */);\n var userContextManager = createContextManager(1 /* CustomerDataType.User */);\n var getInternalContextStrategy = function () { return undefined; };\n var getInitConfigurationStrategy = function () { return undefined; };\n var stopSessionStrategy = noop;\n var getSessionReplayLinkStrategy = function () { return undefined; };\n var bufferApiCalls = new BoundedBuffer();\n var addTimingStrategy = function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n bufferApiCalls.add(function () { return addTimingStrategy(name, time); });\n };\n var startViewStrategy = function (options, startClocks) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n bufferApiCalls.add(function () { return startViewStrategy(options, startClocks); });\n };\n var addActionStrategy = function (action, commonContext) {\n if (commonContext === void 0) { commonContext = buildCommonContext(globalContextManager, userContextManager, recorderApi); }\n bufferApiCalls.add(function () { return addActionStrategy(action, commonContext); });\n };\n var addErrorStrategy = function (providedError, commonContext) {\n if (commonContext === void 0) { commonContext = buildCommonContext(globalContextManager, userContextManager, recorderApi); }\n bufferApiCalls.add(function () { return addErrorStrategy(providedError, commonContext); });\n };\n var addFeatureFlagEvaluationStrategy = function (key, value) {\n bufferApiCalls.add(function () { return addFeatureFlagEvaluationStrategy(key, value); });\n };\n function initRum(initConfiguration) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // This function should be available, regardless of initialization success.\n getInitConfigurationStrategy = function () { return deepClone(initConfiguration); };\n // If we are in a Synthetics test configured to automatically inject a RUM instance, we want to\n // completely discard the customer application RUM instance by ignoring their init() call. But,\n // we should not ignore the init() call from the Synthetics-injected RUM instance, so the\n // internal `ignoreInitIfSyntheticsWillInjectRum` option is here to bypass this condition.\n if (ignoreInitIfSyntheticsWillInjectRum && willSyntheticsInjectRum()) {\n return;\n }\n var eventBridgeAvailable = canUseEventBridge();\n if (eventBridgeAvailable) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n if (!canInitRum(initConfiguration)) {\n return;\n }\n var configuration = validateAndBuildRumConfiguration(initConfiguration);\n if (!configuration) {\n return;\n }\n if (!eventBridgeAvailable && !configuration.sessionStoreStrategyType) {\n display.warn('No storage available for session. We will not send any data.');\n return;\n }\n if (!configuration.trackViewsManually) {\n doStartRum(initConfiguration, configuration);\n }\n else {\n // drain beforeInitCalls by buffering them until we start RUM\n // if we get a startView, drain re-buffered calls before continuing to drain beforeInitCalls\n // in order to ensure that calls are processed in order\n var beforeInitCalls = bufferApiCalls;\n bufferApiCalls = new BoundedBuffer();\n startViewStrategy = function (options) {\n doStartRum(initConfiguration, configuration, options);\n };\n beforeInitCalls.drain();\n }\n isAlreadyInitialized = true;\n }\n function doStartRum(initConfiguration, configuration, initialViewOptions) {\n if (initConfiguration.storeContextsAcrossPages) {\n var beforeInitGlobalContext = globalContextManager.getContext();\n globalContextManager = createStoredContextManager(configuration, RUM_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n globalContextManager.setContext(combine(globalContextManager.getContext(), beforeInitGlobalContext));\n var beforeInitUserContext = userContextManager.getContext();\n userContextManager = createStoredContextManager(configuration, RUM_STORAGE_KEY, 1 /* CustomerDataType.User */);\n userContextManager.setContext(combine(userContextManager.getContext(), beforeInitUserContext));\n }\n var startRumResults = startRumImpl(initConfiguration, configuration, recorderApi, globalContextManager, userContextManager, initialViewOptions);\n getSessionReplayLinkStrategy = function () {\n return recorderApi.getSessionReplayLink(configuration, startRumResults.session, startRumResults.viewContexts);\n };\n (startViewStrategy = startRumResults.startView, addActionStrategy = startRumResults.addAction, addErrorStrategy = startRumResults.addError, addTimingStrategy = startRumResults.addTiming, addFeatureFlagEvaluationStrategy = startRumResults.addFeatureFlagEvaluation, getInternalContextStrategy = startRumResults.getInternalContext, stopSessionStrategy = startRumResults.stopSession);\n bufferApiCalls.drain();\n recorderApi.onRumStart(startRumResults.lifeCycle, configuration, startRumResults.session, startRumResults.viewContexts);\n }\n var startView = monitor(function (options) {\n var sanitizedOptions = typeof options === 'object' ? options : { name: options };\n startViewStrategy(sanitizedOptions);\n });\n var rumPublicApi = makePublicApi({\n init: monitor(initRum),\n /** @deprecated: use setGlobalContextProperty instead */\n addRumGlobalContext: monitor(function (key, value) { return globalContextManager.add(key, value); }),\n setGlobalContextProperty: monitor(function (key, value) { return globalContextManager.setContextProperty(key, value); }),\n /** @deprecated: use removeGlobalContextProperty instead */\n removeRumGlobalContext: monitor(function (key) { return globalContextManager.remove(key); }),\n removeGlobalContextProperty: monitor(function (key) { return globalContextManager.removeContextProperty(key); }),\n /** @deprecated: use getGlobalContext instead */\n getRumGlobalContext: monitor(function () { return globalContextManager.get(); }),\n getGlobalContext: monitor(function () { return globalContextManager.getContext(); }),\n /** @deprecated: use setGlobalContext instead */\n setRumGlobalContext: monitor(function (context) { return globalContextManager.set(context); }),\n setGlobalContext: monitor(function (context) { return globalContextManager.setContext(context); }),\n clearGlobalContext: monitor(function () { return globalContextManager.clearContext(); }),\n getInternalContext: monitor(function (startTime) { return getInternalContextStrategy(startTime); }),\n getInitConfiguration: monitor(function () { return getInitConfigurationStrategy(); }),\n addAction: monitor(function (name, context) {\n addActionStrategy({\n name: sanitize(name),\n context: sanitize(context),\n startClocks: clocksNow(),\n type: \"custom\" /* ActionType.CUSTOM */,\n });\n }),\n addError: function (error, context) {\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n addErrorStrategy({\n error: error,\n handlingStack: handlingStack,\n context: sanitize(context),\n startClocks: clocksNow(),\n });\n });\n },\n addTiming: monitor(function (name, time) {\n addTimingStrategy(sanitize(name), time);\n }),\n setUser: monitor(function (newUser) {\n if (checkUser(newUser)) {\n userContextManager.setContext(sanitizeUser(newUser));\n }\n }),\n getUser: monitor(function () { return userContextManager.getContext(); }),\n setUserProperty: monitor(function (key, property) {\n var _a;\n var sanitizedProperty = sanitizeUser((_a = {}, _a[key] = property, _a))[key];\n userContextManager.setContextProperty(key, sanitizedProperty);\n }),\n removeUserProperty: monitor(function (key) { return userContextManager.removeContextProperty(key); }),\n /** @deprecated: renamed to clearUser */\n removeUser: monitor(function () { return userContextManager.clearContext(); }),\n clearUser: monitor(function () { return userContextManager.clearContext(); }),\n startView: startView,\n stopSession: monitor(function () {\n stopSessionStrategy();\n }),\n startSessionReplayRecording: monitor(recorderApi.start),\n stopSessionReplayRecording: monitor(recorderApi.stop),\n /**\n * This feature is currently in beta. For more information see the full [feature flag tracking guide](https://docs.datadoghq.com/real_user_monitoring/feature_flag_tracking/).\n */\n addFeatureFlagEvaluation: monitor(function (key, value) {\n addFeatureFlagEvaluationStrategy(sanitize(key), sanitize(value));\n }),\n getSessionReplayLink: monitor(function () { return getSessionReplayLinkStrategy(); }),\n });\n return rumPublicApi;\n function canInitRum(initConfiguration) {\n if (isAlreadyInitialized) {\n if (!initConfiguration.silentMultipleInit) {\n display.error('DD_RUM is already initialized.');\n }\n return false;\n }\n return true;\n }\n function overrideInitConfigurationForBridge(initConfiguration) {\n return assign({}, initConfiguration, {\n applicationId: '00000000-aaaa-0000-aaaa-000000000000',\n clientToken: 'empty',\n sessionSampleRate: 100,\n });\n }\n}\n//# sourceMappingURL=rumPublicApi.js.map","export function sendToExtension(type, payload) {\n var callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type: type, payload: payload });\n }\n}\n//# sourceMappingURL=sendToExtension.js.map","export var TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { toStackTraceString, NO_ERROR_STACK_PRESENT_MESSAGE } from '../error/error';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { computeStackTrace } from '../tracekit';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { startsWith, arrayFrom, includes, assign } from '../../tools/utils/polyfills';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nvar ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '',\n];\nvar TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\nvar telemetryConfiguration = { maxEventsPerPage: 0, sentEventCount: 0, telemetryEnabled: false, telemetryConfigurationEnabled: false };\nvar onRawTelemetryEventCollected;\nexport function startTelemetry(telemetryService, configuration) {\n var contextProvider;\n var observable = new Observable();\n telemetryConfiguration.telemetryEnabled =\n !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate);\n telemetryConfiguration.telemetryConfigurationEnabled =\n telemetryConfiguration.telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate);\n var runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event_1 = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event_1);\n sendToExtension('telemetry', event_1);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0,\n });\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"4.50.0\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n }),\n experimental_features: arrayFrom(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: function (provider) {\n contextProvider = provider;\n },\n observable: observable,\n enabled: telemetryConfiguration.telemetryEnabled,\n };\n}\nfunction getRuntimeEnvInfo() {\n return {\n is_local_file: window.location.protocol === 'file:',\n is_worker: 'WorkerGlobalScope' in self,\n };\n}\nexport function startFakeTelemetry() {\n var events = [];\n assign(telemetryConfiguration, {\n maxEventsPerPage: Infinity,\n sentEventCount: 0,\n });\n onRawTelemetryEventCollected = function (event) {\n events.push(event);\n };\n return events;\n}\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined;\n}\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration) {\n return configuration.site === INTAKE_SITE_STAGING;\n}\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context);\n addTelemetry(assign({\n type: TelemetryType.log,\n message: message,\n status: \"debug\" /* StatusType.debug */,\n }, context));\n}\nexport function addTelemetryError(e, context) {\n addTelemetry(assign({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n }, formatError(e), context));\n}\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryConfigurationEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration,\n });\n }\n}\nfunction addTelemetry(event) {\n if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {\n telemetryConfiguration.sentEventCount += 1;\n onRawTelemetryEventCollected(event);\n }\n}\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e);\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message,\n };\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: \"\".concat(\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */, \" \").concat(jsonStringify(e)),\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(function (frame) { return !frame.url || ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) { return startsWith(frame.url, allowedFrameUrl); }); });\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature } from '../tools/experimentalFeatures';\nimport { Observable } from '../tools/observable';\nimport { objectValues, includes } from '../tools/utils/polyfills';\nimport { noop } from '../tools/utils/functionUtils';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n var observable = new Observable(function () {\n var pagehideEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGEHIDE);\n var stopListeners = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */, \"pagehide\" /* DOM_EVENT.PAGE_HIDE */], function (event) {\n if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */ && pagehideEnabled) {\n /**\n * Only event that detect page unload events while being compatible with the back/forward cache (bfcache)\n */\n observable.notify({ reason: PageExitReason.PAGEHIDE });\n }\n else if (event.type === \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN });\n }\n else if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN });\n }\n }, { capture: true }).stop;\n var stopBeforeUnloadListener = noop;\n if (!pagehideEnabled) {\n stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, function () {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n }\n return function () {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n return observable;\n}\nexport function isPageExitReason(reason) {\n return includes(objectValues(PageExitReason), reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core';\nexport function createDOMMutationObservable() {\n var MutationObserver = getMutationObserverConstructor();\n var observable = new Observable(function () {\n if (!MutationObserver) {\n return;\n }\n var observer = new MutationObserver(monitor(function () { return observable.notify(); }));\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n return function () { return observer.disconnect(); };\n });\n return observable;\n}\nexport function getMutationObserverConstructor() {\n var constructor;\n var browserWindow = window;\n // Angular uses Zone.js to provide a context persisting across async tasks. Zone.js replaces the\n // global MutationObserver constructor with a patched version to support the context propagation.\n // There is an ongoing issue[1][2] with this setup when using a MutationObserver within a Angular\n // component: on some occasions, the callback is being called in an infinite loop, causing the\n // page to freeze (even if the callback is completely empty).\n //\n // To work around this issue, we try to get the original MutationObserver constructor stored by\n // Zone.js.\n //\n // [1] https://github.com/angular/angular/issues/26948\n // [2] https://github.com/angular/angular/issues/31712\n if (browserWindow.Zone) {\n // Zone.js 0.8.6+ is storing original class constructors into the browser 'window' object[3].\n //\n // [3] https://github.com/angular/angular/blob/6375fa79875c0fe7b815efc45940a6e6f5c9c9eb/packages/zone.js/lib/common/utils.ts#L288\n constructor = getZoneJsOriginalValue(browserWindow, 'MutationObserver');\n if (browserWindow.MutationObserver && constructor === browserWindow.MutationObserver) {\n // Anterior Zone.js versions (used in Angular 2) does not expose the original MutationObserver\n // in the 'window' object. Luckily, the patched MutationObserver class is storing an original\n // instance in its properties[4]. Let's get the original MutationObserver constructor from\n // there.\n //\n // [4] https://github.com/angular/zone.js/blob/v0.8.5/lib/common/utils.ts#L412\n var patchedInstance = new browserWindow.MutationObserver(noop);\n var originalInstance = getZoneJsOriginalValue(patchedInstance, 'originalInstance');\n constructor = originalInstance && originalInstance.constructor;\n }\n }\n if (!constructor) {\n constructor = browserWindow.MutationObserver;\n }\n return constructor;\n}\n//# sourceMappingURL=domMutationObservable.js.map","import { addEventListener } from './addEventListener';\nexport function runOnReadyState(configuration, expectedReadyState, callback) {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback();\n }\n else {\n var eventName = expectedReadyState === 'complete' ? \"load\" /* DOM_EVENT.LOAD */ : \"DOMContentLoaded\" /* DOM_EVENT.DOM_CONTENT_LOADED */;\n addEventListener(configuration, window, eventName, callback, { once: true });\n }\n}\n//# sourceMappingURL=runOnReadyState.js.map","import { assign, addTelemetryDebug, elapsed, getPathName, includes, isValidUrl, toServerDuration, } from '@datadog/browser-core';\nexport var FAKE_INITIAL_DOCUMENT = 'initial_document';\nvar RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, function (initiatorType) { return FAKE_INITIAL_DOCUMENT === initiatorType; }],\n [\"xhr\" /* ResourceType.XHR */, function (initiatorType) { return 'xmlhttprequest' === initiatorType; }],\n [\"fetch\" /* ResourceType.FETCH */, function (initiatorType) { return 'fetch' === initiatorType; }],\n [\"beacon\" /* ResourceType.BEACON */, function (initiatorType) { return 'beacon' === initiatorType; }],\n [\"css\" /* ResourceType.CSS */, function (_, path) { return /\\.css$/i.test(path); }],\n [\"js\" /* ResourceType.JS */, function (_, path) { return /\\.js$/i.test(path); }],\n [\n \"image\" /* ResourceType.IMAGE */,\n function (initiatorType, path) {\n return includes(['image', 'img', 'icon'], initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null;\n },\n ],\n [\"font\" /* ResourceType.FONT */, function (_, path) { return /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null; }],\n [\n \"media\" /* ResourceType.MEDIA */,\n function (initiatorType, path) {\n return includes(['audio', 'video'], initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null;\n },\n ],\n];\nexport function computeResourceKind(timing) {\n var url = timing.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(\"Failed to construct URL for \\\"\".concat(timing.name, \"\\\"\"));\n return \"other\" /* ResourceType.OTHER */;\n }\n var path = getPathName(url);\n for (var _i = 0, RESOURCE_TYPES_1 = RESOURCE_TYPES; _i < RESOURCE_TYPES_1.length; _i++) {\n var _a = RESOURCE_TYPES_1[_i], type = _a[0], isType = _a[1];\n if (isType(timing.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder() {\n var numbers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n numbers[_i] = arguments[_i];\n }\n for (var i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isRequestKind(timing) {\n return timing.initiatorType === 'xmlhttprequest' || timing.initiatorType === 'fetch';\n}\nexport function computePerformanceResourceDuration(entry) {\n var duration = entry.duration, startTime = entry.startTime, responseEnd = entry.responseEnd;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return toServerDuration(elapsed(startTime, responseEnd));\n }\n return toServerDuration(duration);\n}\nexport function computePerformanceResourceDetails(entry) {\n var validEntry = toValidEntry(entry);\n if (!validEntry) {\n return undefined;\n }\n var startTime = validEntry.startTime, fetchStart = validEntry.fetchStart, redirectStart = validEntry.redirectStart, redirectEnd = validEntry.redirectEnd, domainLookupStart = validEntry.domainLookupStart, domainLookupEnd = validEntry.domainLookupEnd, connectStart = validEntry.connectStart, secureConnectionStart = validEntry.secureConnectionStart, connectEnd = validEntry.connectEnd, requestStart = validEntry.requestStart, responseStart = validEntry.responseStart, responseEnd = validEntry.responseEnd;\n var details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a connection occurred\n if (connectEnd !== fetchStart) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (domainLookupEnd !== fetchStart) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n if (hasRedirection(entry)) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\nexport function toValidEntry(entry) {\n // Ensure timings are in the right order. On top of filtering out potential invalid\n // RumPerformanceResourceTiming, it will ignore entries from requests where timings cannot be\n // collected, for example cross origin requests without a \"Timing-Allow-Origin\" header allowing\n // it.\n if (!areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd)) {\n return undefined;\n }\n if (!hasRedirection(entry)) {\n return entry;\n }\n var redirectStart = entry.redirectStart, redirectEnd = entry.redirectEnd;\n // Firefox doesn't provide redirect timings on cross origin requests.\n // Provide a default for those.\n if (redirectStart < entry.startTime) {\n redirectStart = entry.startTime;\n }\n if (redirectEnd < entry.startTime) {\n redirectEnd = entry.fetchStart;\n }\n // Make sure redirect timings are in order\n if (!areInOrder(entry.startTime, redirectStart, redirectEnd, entry.fetchStart)) {\n return undefined;\n }\n return assign({}, entry, {\n redirectEnd: redirectEnd,\n redirectStart: redirectStart,\n });\n}\nfunction hasRedirection(entry) {\n // The only time fetchStart is different than startTime is if a redirection occurred.\n return entry.fetchStart !== entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n}\nexport function computeSize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n return entry.decodedBodySize;\n }\n return undefined;\n}\nexport function isAllowedRequestUrl(configuration, url) {\n return url && !configuration.isIntakeUrl(url);\n}\n//# sourceMappingURL=resourceUtils.js.map","export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE;\n}\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot);\n}\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node;\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);\n}\nexport function getChildNodes(node) {\n return isNodeShadowHost(node) ? node.shadowRoot.childNodes : node.childNodes;\n}\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode;\n}\n//# sourceMappingURL=htmlDomUtils.js.map","import { dateNow, findCommaSeparatedValue, ONE_MINUTE } from '@datadog/browser-core';\nimport { isCommentNode, isTextNode } from '../../browser/htmlDomUtils';\nexport var INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * ONE_MINUTE;\nexport function getDocumentTraceId(document) {\n var data = getDocumentTraceDataFromMeta(document) || getDocumentTraceDataFromComment(document);\n if (!data || data.traceTime <= dateNow() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD) {\n return undefined;\n }\n return data.traceId;\n}\nexport function getDocumentTraceDataFromMeta(document) {\n var traceIdMeta = document.querySelector('meta[name=dd-trace-id]');\n var traceTimeMeta = document.querySelector('meta[name=dd-trace-time]');\n return createDocumentTraceData(traceIdMeta && traceIdMeta.content, traceTimeMeta && traceTimeMeta.content);\n}\nexport function getDocumentTraceDataFromComment(document) {\n var comment = findTraceComment(document);\n if (!comment) {\n return undefined;\n }\n return createDocumentTraceData(findCommaSeparatedValue(comment, 'trace-id'), findCommaSeparatedValue(comment, 'trace-time'));\n}\nexport function createDocumentTraceData(traceId, rawTraceTime) {\n var traceTime = rawTraceTime && Number(rawTraceTime);\n if (!traceId || !traceTime) {\n return undefined;\n }\n return {\n traceId: traceId,\n traceTime: traceTime,\n };\n}\nexport function findTraceComment(document) {\n // 1. Try to find the comment as a direct child of the document\n // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated\n // value is not an array or string (here, a NodeList).\n for (var i = 0; i < document.childNodes.length; i += 1) {\n var comment = getTraceCommentFromNode(document.childNodes[i]);\n if (comment) {\n return comment;\n }\n }\n // 2. If the comment is placed after the tag, but have some space or new lines before or\n // after, the DOM parser will lift it (and the surrounding text) at the end of the tag.\n // Try to look for the comment at the end of the by by iterating over its child nodes in\n // reverse order, stopping if we come across a non-text node.\n if (document.body) {\n for (var i = document.body.childNodes.length - 1; i >= 0; i -= 1) {\n var node = document.body.childNodes[i];\n var comment = getTraceCommentFromNode(node);\n if (comment) {\n return comment;\n }\n if (!isTextNode(node)) {\n break;\n }\n }\n }\n}\nfunction getTraceCommentFromNode(node) {\n if (node && isCommentNode(node)) {\n var match = /^\\s*DATADOG;(.*?)\\s*$/.exec(node.data);\n if (match) {\n return match[1];\n }\n }\n}\n//# sourceMappingURL=getDocumentTraceId.js.map","import { dateNow, assign, addEventListeners, getRelativeTime, isNumber, monitor, setTimeout, relativeNow, runOnReadyState, addEventListener, objectHasValue, } from '@datadog/browser-core';\nimport { FAKE_INITIAL_DOCUMENT, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\nimport { getDocumentTraceId } from '../domain/tracing/getDocumentTraceId';\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected performance entry\n// eslint-disable-next-line no-restricted-syntax\nexport var RumPerformanceEntryType;\n(function (RumPerformanceEntryType) {\n RumPerformanceEntryType[\"EVENT\"] = \"event\";\n RumPerformanceEntryType[\"FIRST_INPUT\"] = \"first-input\";\n RumPerformanceEntryType[\"LARGEST_CONTENTFUL_PAINT\"] = \"largest-contentful-paint\";\n RumPerformanceEntryType[\"LAYOUT_SHIFT\"] = \"layout-shift\";\n RumPerformanceEntryType[\"LONG_TASK\"] = \"longtask\";\n RumPerformanceEntryType[\"NAVIGATION\"] = \"navigation\";\n RumPerformanceEntryType[\"PAINT\"] = \"paint\";\n RumPerformanceEntryType[\"RESOURCE\"] = \"resource\";\n})(RumPerformanceEntryType || (RumPerformanceEntryType = {}));\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance;\n}\nexport function supportPerformanceTimingEvent(entryType) {\n return (window.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes !== undefined &&\n PerformanceObserver.supportedEntryTypes.includes(entryType));\n}\nexport function startPerformanceCollection(lifeCycle, configuration) {\n retrieveInitialDocumentResourceTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n if (supportPerformanceObject()) {\n var performanceEntries_1 = performance.getEntries();\n // Because the performance entry list can be quite large\n // delay the computation to prevent the SDK from blocking the main thread on init\n setTimeout(function () { return handleRumPerformanceEntries(lifeCycle, configuration, performanceEntries_1); });\n }\n if (window.PerformanceObserver) {\n var handlePerformanceEntryList_1 = monitor(function (entries) {\n return handleRumPerformanceEntries(lifeCycle, configuration, entries.getEntries());\n });\n var mainEntries = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ];\n var experimentalEntries = [\n RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT,\n RumPerformanceEntryType.FIRST_INPUT,\n RumPerformanceEntryType.LAYOUT_SHIFT,\n RumPerformanceEntryType.EVENT,\n ];\n try {\n // Experimental entries are not retrieved by performance.getEntries()\n // use a single PerformanceObserver with buffered flag by type\n // to get values that could happen before SDK init\n experimentalEntries.forEach(function (type) {\n var observer = new window.PerformanceObserver(handlePerformanceEntryList_1);\n observer.observe({\n type: type,\n buffered: true,\n // durationThreshold only impact PerformanceEventTiming entries used for INP computation which requires a threshold at 40 (default is 104ms)\n // cf: https://github.com/GoogleChrome/web-vitals/blob/3806160ffbc93c3c4abf210a167b81228172b31c/src/onINP.ts#L209\n durationThreshold: 40,\n });\n });\n }\n catch (e) {\n // Some old browser versions (ex: chrome 67) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to PerformanceObserver with entryTypes\n mainEntries.push.apply(mainEntries, experimentalEntries);\n }\n var mainObserver = new PerformanceObserver(handlePerformanceEntryList_1);\n mainObserver.observe({ entryTypes: mainEntries });\n if (supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n addEventListener(configuration, performance, 'resourcetimingbufferfull', function () {\n performance.clearResourceTimings();\n });\n }\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION)) {\n retrieveNavigationTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT)) {\n retrieveFirstInputTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n}\nexport function retrieveInitialDocumentResourceTiming(configuration, callback) {\n runOnReadyState(configuration, 'interactive', function () {\n var timing;\n var forcedAttributes = {\n entryType: RumPerformanceEntryType.RESOURCE,\n initiatorType: FAKE_INITIAL_DOCUMENT,\n traceId: getDocumentTraceId(document),\n toJSON: function () { return assign({}, timing, { toJSON: undefined }); },\n };\n if (supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION) &&\n performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION).length > 0) {\n var navigationEntry = performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION)[0];\n timing = assign(navigationEntry.toJSON(), forcedAttributes);\n }\n else {\n var relativePerformanceTiming = computeRelativePerformanceTiming();\n timing = assign(relativePerformanceTiming, {\n decodedBodySize: 0,\n duration: relativePerformanceTiming.responseEnd,\n name: window.location.href,\n startTime: 0,\n }, forcedAttributes);\n }\n callback(timing);\n });\n}\nfunction retrieveNavigationTiming(configuration, callback) {\n function sendFakeTiming() {\n callback(assign(computeRelativePerformanceTiming(), {\n entryType: RumPerformanceEntryType.NAVIGATION,\n }));\n }\n runOnReadyState(configuration, 'complete', function () {\n // Send it a bit after the actual load event, so the \"loadEventEnd\" timing is accurate\n setTimeout(sendFakeTiming);\n });\n}\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nfunction retrieveFirstInputTiming(configuration, callback) {\n var startTimeStamp = dateNow();\n var timingSent = false;\n var removeEventListeners = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"mousedown\" /* DOM_EVENT.MOUSE_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */], function (evt) {\n // Only count cancelable events, which should trigger behavior important to the user.\n if (!evt.cancelable) {\n return;\n }\n // This timing will be used to compute the \"first Input delay\", which is the delta between\n // when the system received the event (e.g. evt.timeStamp) and when it could run the callback\n // (e.g. performance.now()).\n var timing = {\n entryType: RumPerformanceEntryType.FIRST_INPUT,\n processingStart: relativeNow(),\n startTime: evt.timeStamp,\n duration: 0, // arbitrary value to avoid nullable duration and simplify INP logic\n };\n if (evt.type === \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */) {\n sendTimingIfPointerIsNotCancelled(configuration, timing);\n }\n else {\n sendTiming(timing);\n }\n }, { passive: true, capture: true }).stop;\n /**\n * Pointer events are a special case, because they can trigger main or compositor thread behavior.\n * We differentiate these cases based on whether or not we see a pointercancel event, which are\n * fired when we scroll. If we're scrolling we don't need to report input delay since FID excludes\n * scrolling and pinch/zooming.\n */\n function sendTimingIfPointerIsNotCancelled(configuration, timing) {\n addEventListeners(configuration, window, [\"pointerup\" /* DOM_EVENT.POINTER_UP */, \"pointercancel\" /* DOM_EVENT.POINTER_CANCEL */], function (event) {\n if (event.type === \"pointerup\" /* DOM_EVENT.POINTER_UP */) {\n sendTiming(timing);\n }\n }, { once: true });\n }\n function sendTiming(timing) {\n if (!timingSent) {\n timingSent = true;\n removeEventListeners();\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n var delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\nfunction computeRelativePerformanceTiming() {\n var result = {};\n var timing = performance.timing;\n for (var key in timing) {\n if (isNumber(timing[key])) {\n var numberKey = key;\n var timingElement = timing[numberKey];\n result[numberKey] = timingElement === 0 ? 0 : getRelativeTime(timingElement);\n }\n }\n return result;\n}\nfunction handleRumPerformanceEntries(lifeCycle, configuration, entries) {\n var rumPerformanceEntries = entries.filter(function (entry) {\n return objectHasValue(RumPerformanceEntryType, entry.entryType);\n });\n var rumAllowedPerformanceEntries = rumPerformanceEntries.filter(function (entry) { return !isIncompleteNavigation(entry) && !isForbiddenResource(configuration, entry); });\n if (rumAllowedPerformanceEntries.length) {\n lifeCycle.notify(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, rumAllowedPerformanceEntries);\n }\n}\nfunction isIncompleteNavigation(entry) {\n return entry.entryType === RumPerformanceEntryType.NAVIGATION && entry.loadEventEnd <= 0;\n}\nfunction isForbiddenResource(configuration, entry) {\n return entry.entryType === RumPerformanceEntryType.RESOURCE && !isAllowedRequestUrl(configuration, entry.name);\n}\n//# sourceMappingURL=performanceCollection.js.map","export var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n var eventCount = 0;\n var allowNextEvent = false;\n return {\n isLimitReached: function () {\n if (eventCount === 0) {\n setTimeout(function () {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: \"Reached max number of \".concat(eventType, \"s by minute: \").concat(limit),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { getSyntheticsResultId, getSyntheticsTestId, willSyntheticsInjectRum } from '@datadog/browser-core';\nexport function getSyntheticsContext() {\n var testId = getSyntheticsTestId();\n var resultId = getSyntheticsResultId();\n if (testId && resultId) {\n return {\n test_id: testId,\n result_id: resultId,\n injected: willSyntheticsInjectRum(),\n };\n }\n}\n//# sourceMappingURL=syntheticsContext.js.map","export function getCiTestContext() {\n var _a;\n var testExecutionId = (_a = window.Cypress) === null || _a === void 0 ? void 0 : _a.env('traceId');\n if (typeof testExecutionId === 'string') {\n return {\n test_execution_id: testExecutionId,\n };\n }\n}\n//# sourceMappingURL=ciTestContext.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Current limitation:\n * - field path do not support array, 'a.b.c' only\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n var clone = deepClone(object);\n var result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(function (_a) {\n var fieldPath = _a[0], fieldType = _a[1];\n var newValue = get(clone, fieldPath);\n var newType = getType(newValue);\n if (newType === fieldType) {\n set(object, fieldPath, sanitize(newValue));\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n set(object, fieldPath, {});\n }\n });\n return result;\n}\nfunction get(object, path) {\n var current = object;\n for (var _i = 0, _a = path.split('.'); _i < _a.length; _i++) {\n var field = _a[_i];\n if (!isValidObjectContaining(current, field)) {\n return;\n }\n current = current[field];\n }\n return current;\n}\nfunction set(object, path, value) {\n var current = object;\n var fields = path.split('.');\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i];\n if (!isValidObject(current)) {\n return;\n }\n if (i !== fields.length - 1) {\n current = current[field];\n }\n else {\n current[field] = value;\n }\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\nfunction isValidObjectContaining(object, field) {\n return isValidObject(object) && Object.prototype.hasOwnProperty.call(object, field);\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, assign, round, } from '@datadog/browser-core';\nimport { getSyntheticsContext } from './contexts/syntheticsContext';\nimport { getCiTestContext } from './contexts/ciTestContext';\nimport { limitModification } from './limitModification';\nvar VIEW_MODIFIABLE_FIELD_PATHS = {\n 'view.name': 'string',\n 'view.url': 'string',\n 'view.referrer': 'string',\n};\nvar USER_CUSTOMIZABLE_FIELD_PATHS = {\n context: 'object',\n};\nvar modifiableFieldPathsByEvent;\nexport function startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, displayContext, buildCommonContext, reportError) {\n var _a, _b;\n modifiableFieldPathsByEvent = (_a = {},\n _a[\"view\" /* RumEventType.VIEW */] = VIEW_MODIFIABLE_FIELD_PATHS,\n _a[\"error\" /* RumEventType.ERROR */] = assign({\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"resource\" /* RumEventType.RESOURCE */] = assign({\n 'resource.url': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"action\" /* RumEventType.ACTION */] = assign({\n 'action.target.name': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"long_task\" /* RumEventType.LONG_TASK */] = assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a);\n var eventRateLimiters = (_b = {},\n _b[\"error\" /* RumEventType.ERROR */] = createEventRateLimiter(\"error\" /* RumEventType.ERROR */, configuration.eventRateLimiterThreshold, reportError),\n _b[\"action\" /* RumEventType.ACTION */] = createEventRateLimiter(\"action\" /* RumEventType.ACTION */, configuration.eventRateLimiterThreshold, reportError),\n _b);\n var syntheticsContext = getSyntheticsContext();\n var ciTestContext = getCiTestContext();\n lifeCycle.subscribe(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, function (_a) {\n var startTime = _a.startTime, rawRumEvent = _a.rawRumEvent, domainContext = _a.domainContext, savedCommonContext = _a.savedCommonContext, customerContext = _a.customerContext;\n var viewContext = viewContexts.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n var commonContext = savedCommonContext || buildCommonContext();\n var actionId = actionContexts.findActionId(startTime);\n var rumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\n session: {\n plan: session.plan,\n },\n configuration: {\n session_sample_rate: round(configuration.sessionSampleRate, 3),\n session_replay_sample_rate: round(configuration.sessionReplaySampleRate, 3),\n },\n browser_sdk_version: canUseEventBridge() ? \"4.50.0\" : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n service: viewContext.service || configuration.service,\n version: viewContext.version || configuration.version,\n source: 'browser',\n session: {\n id: session.id,\n type: syntheticsContext ? \"synthetics\" /* SessionType.SYNTHETICS */ : ciTestContext ? \"ci_test\" /* SessionType.CI_TEST */ : \"user\" /* SessionType.USER */,\n },\n view: {\n id: viewContext.id,\n name: viewContext.name,\n url: urlContext.url,\n referrer: urlContext.referrer,\n },\n action: needToAssembleWithAction(rawRumEvent) && actionId ? { id: actionId } : undefined,\n synthetics: syntheticsContext,\n ci_test: ciTestContext,\n display: displayContext.get(),\n };\n var serverRumEvent = combine(rumContext, rawRumEvent);\n serverRumEvent.context = combine(commonContext.context, customerContext);\n if (!('has_replay' in serverRumEvent.session)) {\n ;\n serverRumEvent.session.has_replay = commonContext.hasReplay;\n }\n if (!isEmptyObject(commonContext.user)) {\n ;\n serverRumEvent.usr = commonContext.user;\n }\n if (shouldSend(serverRumEvent, configuration.beforeSend, domainContext, eventRateLimiters)) {\n if (isEmptyObject(serverRumEvent.context)) {\n delete serverRumEvent.context;\n }\n lifeCycle.notify(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, serverRumEvent);\n }\n }\n });\n}\nfunction shouldSend(event, beforeSend, domainContext, eventRateLimiters) {\n var _a;\n if (beforeSend) {\n var result = limitModification(event, modifiableFieldPathsByEvent[event.type], function (event) {\n return beforeSend(event, domainContext);\n });\n if (result === false && event.type !== \"view\" /* RumEventType.VIEW */) {\n return false;\n }\n if (result === false) {\n display.warn(\"Can't dismiss view events using beforeSend!\");\n }\n }\n var rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\n}\nfunction needToAssembleWithAction(event) {\n return [\"error\" /* RumEventType.ERROR */, \"resource\" /* RumEventType.RESOURCE */, \"long_task\" /* RumEventType.LONG_TASK */].indexOf(event.type) !== -1;\n}\n//# sourceMappingURL=assembly.js.map","/**\n * Internal context keep returning v1 format\n * to not break compatibility with logs data format\n */\nexport function startInternalContext(applicationId, sessionManager, viewContexts, actionContexts, urlContexts) {\n return {\n get: function (startTime) {\n var viewContext = viewContexts.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n var actionId = actionContexts.findActionId(startTime);\n return {\n application_id: applicationId,\n session_id: session.id,\n user_action: actionId ? { id: actionId } : undefined,\n view: { id: viewContext.id, name: viewContext.name, referrer: urlContext.referrer, url: urlContext.url },\n };\n }\n },\n };\n}\n//# sourceMappingURL=internalContext.js.map","var AbstractLifeCycle = /** @class */ (function () {\n function AbstractLifeCycle() {\n this.callbacks = {};\n }\n AbstractLifeCycle.prototype.notify = function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach(function (callback) { return callback(data); });\n }\n };\n AbstractLifeCycle.prototype.subscribe = function (eventType, callback) {\n var _this = this;\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = _this.callbacks[eventType].filter(function (other) { return callback !== other; });\n },\n };\n };\n return AbstractLifeCycle;\n}());\nexport { AbstractLifeCycle };\n//# sourceMappingURL=abstractLifeCycle.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport var LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { setInterval, clearInterval } from './timer';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nvar END_OF_TIMES = Infinity;\nexport var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\n/**\n * Store and keep track of values spans. This whole class assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nvar ValueHistory = /** @class */ (function () {\n function ValueHistory(expireDelay, maxEntries) {\n var _this = this;\n this.expireDelay = expireDelay;\n this.maxEntries = maxEntries;\n this.entries = [];\n this.clearOldValuesInterval = setInterval(function () { return _this.clearOldValues(); }, CLEAR_OLD_VALUES_INTERVAL);\n }\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n ValueHistory.prototype.add = function (value, startTime) {\n var _this = this;\n var entry = {\n value: value,\n startTime: startTime,\n endTime: END_OF_TIMES,\n remove: function () {\n var index = _this.entries.indexOf(entry);\n if (index >= 0) {\n _this.entries.splice(index, 1);\n }\n },\n close: function (endTime) {\n entry.endTime = endTime;\n },\n };\n if (this.maxEntries && this.entries.length >= this.maxEntries) {\n this.entries.pop();\n }\n this.entries.unshift(entry);\n return entry;\n };\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n */\n ValueHistory.prototype.find = function (startTime) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n for (var _i = 0, _a = this.entries; _i < _a.length; _i++) {\n var entry = _a[_i];\n if (entry.startTime <= startTime) {\n if (startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n };\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n ValueHistory.prototype.closeActive = function (endTime) {\n var latestEntry = this.entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n };\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n ValueHistory.prototype.findAll = function (startTime, duration) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (duration === void 0) { duration = 0; }\n var endTime = addDuration(startTime, duration);\n return this.entries\n .filter(function (entry) { return entry.startTime <= endTime && startTime <= entry.endTime; })\n .map(function (entry) { return entry.value; });\n };\n /**\n * Remove all entries from this collection.\n */\n ValueHistory.prototype.reset = function () {\n this.entries = [];\n };\n /**\n * Stop internal garbage collection of past entries.\n */\n ValueHistory.prototype.stop = function () {\n clearInterval(this.clearOldValuesInterval);\n };\n ValueHistory.prototype.clearOldValues = function () {\n var oldTimeThreshold = relativeNow() - this.expireDelay;\n while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {\n this.entries.pop();\n }\n };\n return ValueHistory;\n}());\nexport { ValueHistory };\n//# sourceMappingURL=valueHistory.js.map","import { SESSION_TIME_OUT_DELAY, ValueHistory } from '@datadog/browser-core';\nexport var VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startViewContexts(lifeCycle) {\n var viewContextHistory = new ValueHistory(VIEW_CONTEXT_TIME_OUT_DELAY);\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (view) {\n viewContextHistory.add(buildViewContext(view), view.startClocks.relative);\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n viewContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n viewContextHistory.reset();\n });\n function buildViewContext(view) {\n return {\n service: view.service,\n version: view.version,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n };\n }\n return {\n findView: function (startTime) { return viewContextHistory.find(startTime); },\n stop: function () {\n viewContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=viewContexts.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nexport function instrumentMethod(object, method, instrumentationFactory) {\n var original = object[method];\n var instrumentation = instrumentationFactory(original);\n var instrumentationWrapper = function () {\n if (typeof instrumentation !== 'function') {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return instrumentation.apply(this, arguments);\n };\n object[method] = instrumentationWrapper;\n return {\n stop: function () {\n if (object[method] === instrumentationWrapper) {\n object[method] = original;\n }\n else {\n instrumentation = original;\n }\n },\n };\n}\nexport function instrumentMethodAndCallOriginal(object, method, _a) {\n var before = _a.before, after = _a.after;\n return instrumentMethod(object, method, function (original) {\n return function () {\n var args = arguments;\n var result;\n if (before) {\n callMonitored(before, this, args);\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, args);\n }\n if (after) {\n callMonitored(after, this, args);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n });\n}\nexport function instrumentSetter(object, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(object, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n var instrumentation = function (thisObject, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n after(thisObject, value);\n }, 0);\n };\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(object, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: function () {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(object, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(object, property, originalDescriptor);\n }\n else {\n instrumentation = noop;\n }\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { instrumentMethodAndCallOriginal } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, relativeNow, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nvar xhrObservable;\nvar xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n var observable = new Observable(function () {\n var stopInstrumentingStart = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {\n before: openXhr,\n }).stop;\n var stopInstrumentingSend = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'send', {\n before: function () {\n sendXhr.call(this, configuration, observable);\n },\n }).stop;\n var stopInstrumentingAbort = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'abort', {\n before: abortXhr,\n }).stop;\n return function () {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n return observable;\n}\nfunction openXhr(method, url) {\n xhrContexts.set(this, {\n state: 'open',\n method: method,\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr(configuration, observable) {\n var _this = this;\n var context = xhrContexts.get(this);\n if (!context) {\n return;\n }\n var startContext = context;\n startContext.state = 'start';\n startContext.startTime = relativeNow();\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = this;\n var hasBeenReported = false;\n var stopInstrumentingOnReadyStateChange = instrumentMethodAndCallOriginal(this, 'onreadystatechange', {\n before: function () {\n if (this.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during a onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n },\n }).stop;\n var onEnd = function () {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n var completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = _this.status;\n observable.notify(shallowClone(completeContext));\n };\n var unsubscribeLoadEndListener = addEventListener(configuration, this, 'loadend', onEnd).stop;\n observable.notify(startContext);\n}\nfunction abortXhr() {\n var context = xhrContexts.get(this);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { callMonitored, monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nvar fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nfunction createFetchObservable() {\n var observable = new Observable(function () {\n if (!window.fetch) {\n return;\n }\n var stop = instrumentMethod(window, 'fetch', function (originalFetch) {\n return function (input, init) {\n var responsePromise;\n var context = callMonitored(beforeSend, null, [observable, input, init]);\n if (context) {\n responsePromise = originalFetch.call(this, context.input, context.init);\n callMonitored(afterSend, null, [observable, responsePromise, context]);\n }\n else {\n responsePromise = originalFetch.call(this, input, init);\n }\n return responsePromise;\n };\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction beforeSend(observable, input, init) {\n var method = (init && init.method) || (input instanceof Request && input.method) || 'GET';\n var url = input instanceof Request ? input.url : normalizeUrl(String(input));\n var startClocks = clocksNow();\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url,\n };\n observable.notify(context);\n return context;\n}\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext;\n context.state = 'resolve';\n if ('stack' in response || response instanceof Error) {\n context.status = 0;\n context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;\n context.error = response;\n }\n else if ('status' in response) {\n context.response = response;\n context.responseType = response.type;\n context.status = response.status;\n context.isAborted = false;\n }\n observable.notify(context);\n };\n responsePromise.then(monitor(reportFetch), monitor(reportFetch));\n}\n//# sourceMappingURL=fetchObservable.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n var reader = stream.getReader();\n var chunks = [];\n var readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor(function (result) {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor(function (error) { return callback(error); }));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n var bytes;\n var limitExceeded;\n if (options.collectStreamBody) {\n var completeBuffer_1;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer_1 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer_1 = new Uint8Array(readBytesCount);\n var offset_1 = 0;\n chunks.forEach(function (chunk) {\n completeBuffer_1.set(chunk, offset_1);\n offset_1 += chunk.length;\n });\n }\n bytes = completeBuffer_1.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer_1.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nvar nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n var tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, configuration, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n var subscription = initXhrObservable(configuration).subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceXhr(context, context.xhr);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'complete':\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: context.duration,\n method: context.method,\n requestIndex: context.requestIndex,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"xhr\" /* RequestType.XHR */,\n url: context.url,\n xhr: context.xhr,\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nexport function trackFetch(lifeCycle, configuration, tracer) {\n var subscription = initFetchObservable().subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceFetch(context);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'resolve':\n waitForResponseToComplete(context, function (duration) {\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: duration,\n method: context.method,\n requestIndex: context.requestIndex,\n responseType: context.responseType,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"fetch\" /* RequestType.FETCH */,\n url: context.url,\n response: context.response,\n init: context.init,\n input: context.input,\n });\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nfunction getNextRequestIndex() {\n var result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n var clonedResponse = context.response && tryToClone(context.response);\n if (!clonedResponse || !clonedResponse.body) {\n // do not try to wait for the response if the clone failed, fetch error or null body\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }\n else {\n readBytesFromStream(clonedResponse.body, function () {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }, {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n });\n }\n}\n//# sourceMappingURL=requestCollection.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts(_a) {\n var lifeCycle = _a.lifeCycle, isChildEvent = _a.isChildEvent, _b = _a.onChange, callback = _b === void 0 ? noop : _b;\n var eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n var subscription = lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n var _a;\n if (event.type === 'view' || !isChildEvent(event)) {\n return;\n }\n switch (event.type) {\n case \"error\" /* RumEventType.ERROR */:\n eventCounts.errorCount += 1;\n callback();\n break;\n case \"action\" /* RumEventType.ACTION */:\n eventCounts.actionCount += 1;\n if (event.action.frustration) {\n eventCounts.frustrationCount += event.action.frustration.type.length;\n }\n callback();\n break;\n case \"long_task\" /* RumEventType.LONG_TASK */:\n eventCounts.longTaskCount += 1;\n callback();\n break;\n case \"resource\" /* RumEventType.RESOURCE */:\n if (!((_a = event._dd) === null || _a === void 0 ? void 0 : _a.discarded)) {\n eventCounts.resourceCount += 1;\n callback();\n }\n break;\n }\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackEventCounts.js.map","import { instrumentMethodAndCallOriginal, matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../browser/performanceCollection';\n// Delay to wait for a page activity to validate the tracking process\nexport var PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport var PAGE_ACTIVITY_END_DELAY = 100;\n/**\n * Wait for the page activity end\n *\n * Detection lifecycle:\n * ```\n * Wait page activity end\n * .-------------------'--------------------.\n * v v\n * [Wait for a page activity ] [Wait for a maximum duration]\n * [timeout: VALIDATION_DELAY] [ timeout: maxDuration ]\n * / \\ |\n * v v |\n * [No page activity] [Page activity] |\n * | |,----------------------. |\n * v v | |\n * (Discard) [Wait for a page activity] | |\n * [ timeout: END_DELAY ] | |\n * / \\ | |\n * v v | |\n * [No page activity] [Page activity] | |\n * | | | |\n * | '------------' |\n * '-----------. ,--------------------'\n * v\n * (End)\n * ```\n *\n * Note: by assuming that maxDuration is greater than VALIDATION_DELAY, we are sure that if the\n * process is still alive after maxDuration, it has been validated.\n */\nexport function waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, pageActivityEndCallback, maxDuration) {\n var pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n var pageActivityEndTimeoutId;\n var hasCompleted = false;\n var validationTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: false }); }), PAGE_ACTIVITY_VALIDATION_DELAY);\n var maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(function () { return complete({ hadActivity: true, end: timeStampNow() }); }), maxDuration)\n : undefined;\n var pageActivitySubscription = pageActivityObservable.subscribe(function (_a) {\n var isBusy = _a.isBusy;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n var lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: true, end: lastChangeTime }); }), PAGE_ACTIVITY_END_DELAY);\n }\n });\n var stop = function () {\n hasCompleted = true;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n clearTimeout(maxDurationTimeoutId);\n pageActivitySubscription.unsubscribe();\n };\n function complete(event) {\n if (hasCompleted) {\n return;\n }\n stop();\n pageActivityEndCallback(event);\n }\n return { stop: stop };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, configuration) {\n var observable = new Observable(function () {\n var subscriptions = [];\n var firstRequestIndex;\n var pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n if (entries.some(function (entry) { return entry.entryType === RumPerformanceEntryType.RESOURCE && !isExcludedUrl(configuration, entry.name); })) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(5 /* LifeCycleEventType.REQUEST_STARTED */, function (startEvent) {\n if (isExcludedUrl(configuration, startEvent.url)) {\n return;\n }\n if (firstRequestIndex === undefined) {\n firstRequestIndex = startEvent.requestIndex;\n }\n pendingRequestsCount += 1;\n notifyPageActivity();\n }), lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n if (isExcludedUrl(configuration, request.url) ||\n firstRequestIndex === undefined ||\n // If the request started before the tracking start, ignore it\n request.requestIndex < firstRequestIndex) {\n return;\n }\n pendingRequestsCount -= 1;\n notifyPageActivity();\n }));\n var stopTrackingWindowOpen = trackWindowOpen(notifyPageActivity).stop;\n return function () {\n stopTrackingWindowOpen();\n subscriptions.forEach(function (s) { return s.unsubscribe(); });\n };\n function notifyPageActivity() {\n observable.notify({ isBusy: pendingRequestsCount > 0 });\n }\n });\n return observable;\n}\nfunction isExcludedUrl(configuration, requestUrl) {\n return matchList(configuration.excludedActivityUrls, requestUrl);\n}\nfunction trackWindowOpen(callback) {\n return instrumentMethodAndCallOriginal(window, 'open', { before: callback });\n}\n//# sourceMappingURL=waitPageActivityEnd.js.map","import { safeTruncate, isIE, find } from '@datadog/browser-core';\n/**\n * Get the action name from the attribute 'data-dd-action-name' on the element or any of its parent.\n * It can also be retrieved from a user defined attribute.\n */\nexport var DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = 'data-dd-action-name';\nexport function getActionNameFromElement(element, userProgrammaticAttribute) {\n // Proceed to get the action name in two steps:\n // * first, get the name programmatically, explicitly defined by the user.\n // * then, use strategies that are known to return good results. Those strategies will be used on\n // the element and a few parents, but it's likely that they won't succeed at all.\n // * if no name is found this way, use strategies returning less accurate names as a fallback.\n // Those are much likely to succeed.\n return (getActionNameFromElementProgrammatically(element, DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE) ||\n (userProgrammaticAttribute && getActionNameFromElementProgrammatically(element, userProgrammaticAttribute)) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, priorityStrategies) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, fallbackStrategies) ||\n '');\n}\nfunction getActionNameFromElementProgrammatically(targetElement, programmaticAttribute) {\n var elementWithAttribute;\n // We don't use getActionNameFromElementForStrategies here, because we want to consider all parents,\n // without limit. It is up to the user to declare a relevant naming strategy.\n // If available, use element.closest() to match get the attribute from the element or any of its\n // parent. Else fallback to a more traditional implementation.\n if (supportsElementClosest()) {\n elementWithAttribute = targetElement.closest(\"[\".concat(programmaticAttribute, \"]\"));\n }\n else {\n var element = targetElement;\n while (element) {\n if (element.hasAttribute(programmaticAttribute)) {\n elementWithAttribute = element;\n break;\n }\n element = element.parentElement;\n }\n }\n if (!elementWithAttribute) {\n return;\n }\n var name = elementWithAttribute.getAttribute(programmaticAttribute);\n return truncate(normalizeWhitespace(name.trim()));\n}\nvar priorityStrategies = [\n // associated LABEL text\n function (element, userProgrammaticAttribute) {\n // IE does not support element.labels, so we fallback to a CSS selector based on the element id\n // instead\n if (supportsLabelProperty()) {\n if ('labels' in element && element.labels && element.labels.length > 0) {\n return getTextualContent(element.labels[0], userProgrammaticAttribute);\n }\n }\n else if (element.id) {\n var label = element.ownerDocument &&\n find(element.ownerDocument.querySelectorAll('label'), function (label) { return label.htmlFor === element.id; });\n return label && getTextualContent(label, userProgrammaticAttribute);\n }\n },\n // INPUT button (and associated) value\n function (element) {\n if (element.nodeName === 'INPUT') {\n var input = element;\n var type = input.getAttribute('type');\n if (type === 'button' || type === 'submit' || type === 'reset') {\n return input.value;\n }\n }\n },\n // BUTTON, LABEL or button-like element text\n function (element, userProgrammaticAttribute) {\n if (element.nodeName === 'BUTTON' || element.nodeName === 'LABEL' || element.getAttribute('role') === 'button') {\n return getTextualContent(element, userProgrammaticAttribute);\n }\n },\n function (element) { return element.getAttribute('aria-label'); },\n // associated element text designated by the aria-labelledby attribute\n function (element, userProgrammaticAttribute) {\n var labelledByAttribute = element.getAttribute('aria-labelledby');\n if (labelledByAttribute) {\n return labelledByAttribute\n .split(/\\s+/)\n .map(function (id) { return getElementById(element, id); })\n .filter(function (label) { return Boolean(label); })\n .map(function (element) { return getTextualContent(element, userProgrammaticAttribute); })\n .join(' ');\n }\n },\n function (element) { return element.getAttribute('alt'); },\n function (element) { return element.getAttribute('name'); },\n function (element) { return element.getAttribute('title'); },\n function (element) { return element.getAttribute('placeholder'); },\n // SELECT first OPTION text\n function (element, userProgrammaticAttribute) {\n if ('options' in element && element.options.length > 0) {\n return getTextualContent(element.options[0], userProgrammaticAttribute);\n }\n },\n];\nvar fallbackStrategies = [\n function (element, userProgrammaticAttribute) { return getTextualContent(element, userProgrammaticAttribute); },\n];\n/**\n * Iterates over the target element and its parent, using the strategies list to get an action name.\n * Each strategies are applied on each element, stopping as soon as a non-empty value is returned.\n */\nvar MAX_PARENTS_TO_CONSIDER = 10;\nfunction getActionNameFromElementForStrategies(targetElement, userProgrammaticAttribute, strategies) {\n var element = targetElement;\n var recursionCounter = 0;\n while (recursionCounter <= MAX_PARENTS_TO_CONSIDER &&\n element &&\n element.nodeName !== 'BODY' &&\n element.nodeName !== 'HTML' &&\n element.nodeName !== 'HEAD') {\n for (var _i = 0, strategies_1 = strategies; _i < strategies_1.length; _i++) {\n var strategy = strategies_1[_i];\n var name_1 = strategy(element, userProgrammaticAttribute);\n if (typeof name_1 === 'string') {\n var trimmedName = name_1.trim();\n if (trimmedName) {\n return truncate(normalizeWhitespace(trimmedName));\n }\n }\n }\n // Consider a FORM as a contextual limit to get the action name. This is experimental and may\n // be reconsidered in the future.\n if (element.nodeName === 'FORM') {\n break;\n }\n element = element.parentElement;\n recursionCounter += 1;\n }\n}\nfunction normalizeWhitespace(s) {\n return s.replace(/\\s+/g, ' ');\n}\nfunction truncate(s) {\n return s.length > 100 ? \"\".concat(safeTruncate(s, 100), \" [...]\") : s;\n}\nfunction getElementById(refElement, id) {\n // Use the element ownerDocument here, because tests are executed in an iframe, so\n // document.getElementById won't work.\n return refElement.ownerDocument ? refElement.ownerDocument.getElementById(id) : null;\n}\nfunction getTextualContent(element, userProgrammaticAttribute) {\n if (element.isContentEditable) {\n return;\n }\n if ('innerText' in element) {\n var text_1 = element.innerText;\n var removeTextFromElements = function (query) {\n var list = element.querySelectorAll(query);\n for (var index = 0; index < list.length; index += 1) {\n var element_1 = list[index];\n if ('innerText' in element_1) {\n var textToReplace = element_1.innerText;\n if (textToReplace && textToReplace.trim().length > 0) {\n text_1 = text_1.replace(textToReplace, '');\n }\n }\n }\n };\n if (!supportsInnerTextScriptAndStyleRemoval()) {\n // remove the inner text of SCRIPT and STYLES from the result. This is a bit dirty, but should\n // be relatively fast and work in most cases.\n removeTextFromElements('script, style');\n }\n // remove the text of elements with programmatic attribute value\n removeTextFromElements(\"[\".concat(DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE, \"]\"));\n if (userProgrammaticAttribute) {\n removeTextFromElements(\"[\".concat(userProgrammaticAttribute, \"]\"));\n }\n return text_1;\n }\n return element.textContent;\n}\n/**\n * Returns true if element.innerText excludes the text from inline SCRIPT and STYLE element. This\n * should be the case everywhere except on Internet Explorer 10 and 11 (see [1])\n *\n * The innerText property relies on what is actually rendered to compute its output, so to check if\n * it actually excludes SCRIPT and STYLE content, a solution would be to create a style element, set\n * its content to '*', inject it in the document body, and check if the style element innerText\n * property returns '*'. Using a new `document` instance won't work as it is not rendered.\n *\n * This solution requires specific CSP rules (see [2]) to be set by the customer. We want to avoid\n * this, so instead we rely on browser detection. In case of false negative, the impact should be\n * low, since we rely on this result to remove the SCRIPT and STYLE innerText (which will be empty)\n * from a parent element innerText.\n *\n * [1]: https://web.archive.org/web/20210602165716/http://perfectionkills.com/the-poor-misunderstood-innerText/#diff-with-textContent\n * [2]: https://github.com/DataDog/browser-sdk/issues/1084\n */\nfunction supportsInnerTextScriptAndStyleRemoval() {\n return !isIE();\n}\n/**\n * Returns true if the browser supports the element.labels property. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsLabelPropertyResult;\nfunction supportsLabelProperty() {\n if (supportsLabelPropertyResult === undefined) {\n supportsLabelPropertyResult = 'labels' in HTMLInputElement.prototype;\n }\n return supportsLabelPropertyResult;\n}\n/**\n * Returns true if the browser supports the element.closest method. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsElementClosestResult;\nfunction supportsElementClosest() {\n if (supportsElementClosestResult === undefined) {\n supportsElementClosestResult = 'closest' in HTMLElement.prototype;\n }\n return supportsElementClosestResult;\n}\n//# sourceMappingURL=getActionNameFromElement.js.map","import { cssEscape } from '@datadog/browser-core';\nimport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './action/getActionNameFromElement';\n/**\n * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:\n * component). Those attribute values should not be generated randomly (hardcoded most of the time)\n * and stay the same across deploys. They are not necessarily unique across the document.\n */\nexport var STABLE_ATTRIBUTES = [\n DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE,\n // Common test attributes (list provided by google recorder)\n 'data-testid',\n 'data-test',\n 'data-qa',\n 'data-cy',\n 'data-test-id',\n 'data-qa-id',\n 'data-testing',\n // FullStory decorator attributes:\n 'data-component',\n 'data-element',\n 'data-source-file',\n];\n// Selectors to use if they target a single element on the whole document. Those selectors are\n// considered as \"stable\" and uniquely identify an element regardless of the page state. If we find\n// one, we should consider the selector \"complete\" and stop iterating over ancestors.\nvar GLOBALLY_UNIQUE_SELECTOR_GETTERS = [getStableAttributeSelector, getIDSelector];\n// Selectors to use if they target a single element among an element descendants. Those selectors\n// are more brittle than \"globally unique\" selectors and should be combined with ancestor selectors\n// to improve specificity.\nvar UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS = [\n getStableAttributeSelector,\n getClassSelector,\n getTagNameSelector,\n];\nexport function getSelectorFromElement(targetElement, actionNameAttribute) {\n var targetElementSelector = '';\n var element = targetElement;\n while (element && element.nodeName !== 'HTML') {\n var globallyUniqueSelector = findSelector(element, GLOBALLY_UNIQUE_SELECTOR_GETTERS, isSelectorUniqueGlobally, actionNameAttribute, targetElementSelector);\n if (globallyUniqueSelector) {\n return globallyUniqueSelector;\n }\n var uniqueSelectorAmongChildren = findSelector(element, UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS, isSelectorUniqueAmongSiblings, actionNameAttribute, targetElementSelector);\n targetElementSelector =\n uniqueSelectorAmongChildren || combineSelector(getPositionSelector(element), targetElementSelector);\n element = element.parentElement;\n }\n return targetElementSelector;\n}\nfunction isGeneratedValue(value) {\n // To compute the \"URL path group\", the backend replaces every URL path parts as a question mark\n // if it thinks the part is an identifier. The condition it uses is to checks whether a digit is\n // present.\n //\n // Here, we use the same strategy: if a the value contains a digit, we consider it generated. This\n // strategy might be a bit naive and fail in some cases, but there are many fallbacks to generate\n // CSS selectors so it should be fine most of the time. We might want to allow customers to\n // provide their own `isGeneratedValue` at some point.\n return /[0-9]/.test(value);\n}\nfunction getIDSelector(element) {\n if (element.id && !isGeneratedValue(element.id)) {\n return \"#\".concat(cssEscape(element.id));\n }\n}\nfunction getClassSelector(element) {\n if (element.tagName === 'BODY') {\n return;\n }\n if (element.classList.length > 0) {\n for (var i = 0; i < element.classList.length; i += 1) {\n var className = element.classList[i];\n if (isGeneratedValue(className)) {\n continue;\n }\n return \"\".concat(cssEscape(element.tagName), \".\").concat(cssEscape(className));\n }\n }\n}\nfunction getTagNameSelector(element) {\n return cssEscape(element.tagName);\n}\nfunction getStableAttributeSelector(element, actionNameAttribute) {\n if (actionNameAttribute) {\n var selector = getAttributeSelector(actionNameAttribute);\n if (selector) {\n return selector;\n }\n }\n for (var _i = 0, STABLE_ATTRIBUTES_1 = STABLE_ATTRIBUTES; _i < STABLE_ATTRIBUTES_1.length; _i++) {\n var attributeName = STABLE_ATTRIBUTES_1[_i];\n var selector = getAttributeSelector(attributeName);\n if (selector) {\n return selector;\n }\n }\n function getAttributeSelector(attributeName) {\n if (element.hasAttribute(attributeName)) {\n return \"\".concat(cssEscape(element.tagName), \"[\").concat(attributeName, \"=\\\"\").concat(cssEscape(element.getAttribute(attributeName)), \"\\\"]\");\n }\n }\n}\nfunction getPositionSelector(element) {\n var sibling = element.parentElement.firstElementChild;\n var elementIndex = 1;\n while (sibling && sibling !== element) {\n if (sibling.tagName === element.tagName) {\n elementIndex += 1;\n }\n sibling = sibling.nextElementSibling;\n }\n return \"\".concat(cssEscape(element.tagName), \":nth-of-type(\").concat(elementIndex, \")\");\n}\nfunction findSelector(element, selectorGetters, predicate, actionNameAttribute, childSelector) {\n for (var _i = 0, selectorGetters_1 = selectorGetters; _i < selectorGetters_1.length; _i++) {\n var selectorGetter = selectorGetters_1[_i];\n var elementSelector = selectorGetter(element, actionNameAttribute);\n if (!elementSelector) {\n continue;\n }\n var fullSelector = combineSelector(elementSelector, childSelector);\n if (predicate(element, fullSelector)) {\n return fullSelector;\n }\n }\n}\n/**\n * Check whether the selector is unique among the whole document.\n */\nfunction isSelectorUniqueGlobally(element, selector) {\n return element.ownerDocument.querySelectorAll(selector).length === 1;\n}\n/**\n * Check whether the selector is unique among the element siblings. In other words, it returns true\n * if \"ELEMENT_PARENT > SELECTOR\" returns a single element.\n *\n * The result will be less accurate on browsers that don't support :scope (i. e. IE): it will check\n * for any element matching the selector contained in the parent (in other words,\n * \"ELEMENT_PARENT SELECTOR\" returns a single element), regardless of whether the selector is a\n * direct descendent of the element parent. This should not impact results too much: if it\n * inaccurately returns false, we'll just fall back to another strategy.\n */\nfunction isSelectorUniqueAmongSiblings(element, selector) {\n return (element.parentElement.querySelectorAll(supportScopeSelector() ? combineSelector(':scope', selector) : selector)\n .length === 1);\n}\nfunction combineSelector(parent, child) {\n return child ? \"\".concat(parent, \">\").concat(child) : parent;\n}\nvar supportScopeSelectorCache;\nexport function supportScopeSelector() {\n if (supportScopeSelectorCache === undefined) {\n try {\n document.querySelector(':scope');\n supportScopeSelectorCache = true;\n }\n catch (_a) {\n supportScopeSelectorCache = false;\n }\n }\n return supportScopeSelectorCache;\n}\n//# sourceMappingURL=getSelectorFromElement.js.map","import { ONE_SECOND, clearTimeout, setTimeout } from '@datadog/browser-core';\nexport var MAX_DURATION_BETWEEN_CLICKS = ONE_SECOND;\nexport var MAX_DISTANCE_BETWEEN_CLICKS = 100;\nexport function createClickChain(firstClick, onFinalize) {\n var bufferedClicks = [];\n var status = 0 /* ClickChainStatus.WaitingForMoreClicks */;\n var maxDurationBetweenClicksTimeoutId;\n appendClick(firstClick);\n function appendClick(click) {\n click.stopObservable.subscribe(tryFinalize);\n bufferedClicks.push(click);\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n maxDurationBetweenClicksTimeoutId = setTimeout(dontAcceptMoreClick, MAX_DURATION_BETWEEN_CLICKS);\n }\n function tryFinalize() {\n if (status === 1 /* ClickChainStatus.WaitingForClicksToStop */ && bufferedClicks.every(function (click) { return click.isStopped(); })) {\n status = 2 /* ClickChainStatus.Finalized */;\n onFinalize(bufferedClicks);\n }\n }\n function dontAcceptMoreClick() {\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n if (status === 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n status = 1 /* ClickChainStatus.WaitingForClicksToStop */;\n tryFinalize();\n }\n }\n return {\n tryAppend: function (click) {\n if (status !== 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n return false;\n }\n if (bufferedClicks.length > 0 &&\n !areEventsSimilar(bufferedClicks[bufferedClicks.length - 1].event, click.event)) {\n dontAcceptMoreClick();\n return false;\n }\n appendClick(click);\n return true;\n },\n stop: function () {\n dontAcceptMoreClick();\n },\n };\n}\n/**\n * Checks whether two events are similar by comparing their target, position and timestamp\n */\nfunction areEventsSimilar(first, second) {\n return (first.target === second.target &&\n mouseEventDistance(first, second) <= MAX_DISTANCE_BETWEEN_CLICKS &&\n first.timeStamp - second.timeStamp <= MAX_DURATION_BETWEEN_CLICKS);\n}\nfunction mouseEventDistance(origin, other) {\n return Math.sqrt(Math.pow(origin.clientX - other.clientX, 2) + Math.pow(origin.clientY - other.clientY, 2));\n}\n//# sourceMappingURL=clickChain.js.map","import { addEventListener } from '@datadog/browser-core';\nexport function listenActionEvents(configuration, _a) {\n var onPointerDown = _a.onPointerDown, onPointerUp = _a.onPointerUp;\n var selectionEmptyAtPointerDown;\n var userActivity = {\n selection: false,\n input: false,\n };\n var clickContext;\n var listeners = [\n addEventListener(configuration, window, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */, function (event) {\n if (isValidPointerEvent(event)) {\n selectionEmptyAtPointerDown = isSelectionEmpty();\n userActivity = {\n selection: false,\n input: false,\n };\n clickContext = onPointerDown(event);\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"selectionchange\" /* DOM_EVENT.SELECTION_CHANGE */, function () {\n if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {\n userActivity.selection = true;\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"pointerup\" /* DOM_EVENT.POINTER_UP */, function (event) {\n if (isValidPointerEvent(event) && clickContext) {\n // Use a scoped variable to make sure the value is not changed by other clicks\n var localUserActivity_1 = userActivity;\n onPointerUp(clickContext, event, function () { return localUserActivity_1; });\n clickContext = undefined;\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"input\" /* DOM_EVENT.INPUT */, function () {\n userActivity.input = true;\n }, { capture: true }),\n ];\n return {\n stop: function () {\n listeners.forEach(function (listener) { return listener.stop(); });\n },\n };\n}\nfunction isSelectionEmpty() {\n var selection = window.getSelection();\n return !selection || selection.isCollapsed;\n}\nfunction isValidPointerEvent(event) {\n return (event.target instanceof Element &&\n // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in\n // the future.\n event.isPrimary !== false);\n}\n//# sourceMappingURL=listenActionEvents.js.map","import { elementMatches, ONE_SECOND } from '@datadog/browser-core';\nvar MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE = 3;\nexport function computeFrustration(clicks, rageClick) {\n if (isRage(clicks)) {\n rageClick.addFrustration(\"rage_click\" /* FrustrationType.RAGE_CLICK */);\n if (clicks.some(isDead)) {\n rageClick.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n if (rageClick.hasError) {\n rageClick.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n return { isRage: true };\n }\n var hasSelectionChanged = clicks.some(function (click) { return click.getUserActivity().selection; });\n clicks.forEach(function (click) {\n if (click.hasError) {\n click.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n if (isDead(click) &&\n // Avoid considering clicks part of a double-click or triple-click selections as dead clicks\n !hasSelectionChanged) {\n click.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n });\n return { isRage: false };\n}\nexport function isRage(clicks) {\n if (clicks.some(function (click) { return click.getUserActivity().selection; })) {\n return false;\n }\n for (var i = 0; i < clicks.length - (MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1); i += 1) {\n if (clicks[i + MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1].event.timeStamp - clicks[i].event.timeStamp <=\n ONE_SECOND) {\n return true;\n }\n }\n return false;\n}\nvar DEAD_CLICK_EXCLUDE_SELECTOR = \n// inputs that don't trigger a meaningful event like \"input\" when clicked, including textual\n// inputs (using a negative selector is shorter here)\n'input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]):not([type=\"range\"]),' +\n 'textarea,' +\n 'select,' +\n // contenteditable and their descendants don't always trigger meaningful changes when manipulated\n '[contenteditable],' +\n '[contenteditable] *,' +\n // canvas, as there is no good way to detect activity occurring on them\n 'canvas,' +\n // links that are interactive (have an href attribute) or any of their descendants, as they can\n // open a new tab or navigate to a hash without triggering a meaningful event\n 'a[href],' +\n 'a[href] *';\nexport function isDead(click) {\n if (click.hasPageActivity || click.getUserActivity().input) {\n return false;\n }\n return !elementMatches(click.event.target, DEAD_CLICK_EXCLUDE_SELECTOR);\n}\n//# sourceMappingURL=computeFrustration.js.map","import { includes, timeStampNow, Observable, assign, getRelativeTime, ONE_MINUTE, ValueHistory, generateUUID, clocksNow, ONE_SECOND, elapsed, } from '@datadog/browser-core';\nimport { trackEventCounts } from '../trackEventCounts';\nimport { PAGE_ACTIVITY_VALIDATION_DELAY, waitPageActivityEnd } from '../waitPageActivityEnd';\nimport { getSelectorFromElement } from '../getSelectorFromElement';\nimport { createClickChain } from './clickChain';\nimport { getActionNameFromElement } from './getActionNameFromElement';\nimport { listenActionEvents } from './listenActionEvents';\nimport { computeFrustration } from './computeFrustration';\n// Maximum duration for click actions\nexport var CLICK_ACTION_MAX_DURATION = 10 * ONE_SECOND;\nexport var ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE; // arbitrary\nexport function trackClickActions(lifeCycle, domMutationObservable, configuration) {\n var history = new ValueHistory(ACTION_CONTEXT_TIME_OUT_DELAY);\n var stopObservable = new Observable();\n var currentClickChain;\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n history.reset();\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, stopClickChain);\n var stopActionEventsListener = listenActionEvents(configuration, {\n onPointerDown: function (pointerDownEvent) {\n return processPointerDown(configuration, lifeCycle, domMutationObservable, history, pointerDownEvent);\n },\n onPointerUp: function (_a, startEvent, getUserActivity) {\n var clickActionBase = _a.clickActionBase, hadActivityOnPointerDown = _a.hadActivityOnPointerDown;\n return startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown);\n },\n }).stop;\n var actionContexts = {\n findActionId: function (startTime) {\n return configuration.trackFrustrations ? history.findAll(startTime) : history.find(startTime);\n },\n };\n return {\n stop: function () {\n stopClickChain();\n stopObservable.notify();\n stopActionEventsListener();\n },\n actionContexts: actionContexts,\n };\n function appendClickToClickChain(click) {\n if (!currentClickChain || !currentClickChain.tryAppend(click)) {\n var rageClick_1 = click.clone();\n currentClickChain = createClickChain(click, function (clicks) {\n finalizeClicks(clicks, rageClick_1);\n });\n }\n }\n function stopClickChain() {\n if (currentClickChain) {\n currentClickChain.stop();\n }\n }\n}\nfunction processPointerDown(configuration, lifeCycle, domMutationObservable, history, pointerDownEvent) {\n if (!configuration.trackFrustrations && history.find()) {\n // TODO: remove this in a future major version. To keep retrocompatibility, ignore any new\n // action if another one is already occurring.\n return;\n }\n var clickActionBase = computeClickActionBase(pointerDownEvent, configuration.actionNameAttribute);\n if (!configuration.trackFrustrations && !clickActionBase.name) {\n // TODO: remove this in a future major version. To keep retrocompatibility, ignore any action\n // with a blank name\n return;\n }\n var hadActivityOnPointerDown = false;\n waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n hadActivityOnPointerDown = pageActivityEndEvent.hadActivity;\n }, \n // We don't care about the activity duration, we just want to know whether an activity did happen\n // within the \"validation delay\" or not. Limit the duration so the callback is called sooner.\n PAGE_ACTIVITY_VALIDATION_DELAY);\n return { clickActionBase: clickActionBase, hadActivityOnPointerDown: function () { return hadActivityOnPointerDown; } };\n}\nfunction startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown) {\n var click = newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent);\n if (configuration.trackFrustrations) {\n appendClickToClickChain(click);\n }\n var stopWaitPageActivityEnd = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n if (pageActivityEndEvent.hadActivity && pageActivityEndEvent.end < click.startClocks.timeStamp) {\n // If the clock is looking weird, just discard the click\n click.discard();\n }\n else {\n if (pageActivityEndEvent.hadActivity) {\n click.stop(pageActivityEndEvent.end);\n }\n else if (hadActivityOnPointerDown()) {\n click.stop(\n // using the click start as activity end, so the click will have some activity but its\n // duration will be 0 (as the activity started before the click start)\n click.startClocks.timeStamp);\n }\n else {\n click.stop();\n }\n // Validate or discard the click only if we don't track frustrations. It'll be done when\n // the click chain is finalized.\n if (!configuration.trackFrustrations) {\n if (!pageActivityEndEvent.hadActivity) {\n // If we are not tracking frustrations, we should discard the click to keep backward\n // compatibility.\n click.discard();\n }\n else {\n click.validate();\n }\n }\n }\n }, CLICK_ACTION_MAX_DURATION).stop;\n var viewEndedSubscription = lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n click.stop(endClocks.timeStamp);\n });\n var stopSubscription = stopObservable.subscribe(function () {\n click.stop();\n });\n click.stopObservable.subscribe(function () {\n viewEndedSubscription.unsubscribe();\n stopWaitPageActivityEnd();\n stopSubscription.unsubscribe();\n });\n}\nfunction computeClickActionBase(event, actionNameAttribute) {\n var rect = event.target.getBoundingClientRect();\n return {\n type: \"click\" /* ActionType.CLICK */,\n target: {\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n selector: getSelectorFromElement(event.target, actionNameAttribute),\n },\n position: {\n // Use clientX and Y because for SVG element offsetX and Y are relatives to the element\n x: Math.round(event.clientX - rect.left),\n y: Math.round(event.clientY - rect.top),\n },\n name: getActionNameFromElement(event.target, actionNameAttribute),\n };\n}\nfunction newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent) {\n var id = generateUUID();\n var startClocks = clocksNow();\n var historyEntry = history.add(id, startClocks.relative);\n var eventCountsSubscription = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) {\n return event.action !== undefined &&\n (Array.isArray(event.action.id) ? includes(event.action.id, id) : event.action.id === id);\n },\n });\n var status = 0 /* ClickStatus.ONGOING */;\n var activityEndTime;\n var frustrationTypes = [];\n var stopObservable = new Observable();\n function stop(newActivityEndTime) {\n if (status !== 0 /* ClickStatus.ONGOING */) {\n return;\n }\n activityEndTime = newActivityEndTime;\n status = 1 /* ClickStatus.STOPPED */;\n if (activityEndTime) {\n historyEntry.close(getRelativeTime(activityEndTime));\n }\n else {\n historyEntry.remove();\n }\n eventCountsSubscription.stop();\n stopObservable.notify();\n }\n return {\n event: startEvent,\n stop: stop,\n stopObservable: stopObservable,\n get hasError() {\n return eventCountsSubscription.eventCounts.errorCount > 0;\n },\n get hasPageActivity() {\n return activityEndTime !== undefined;\n },\n getUserActivity: getUserActivity,\n addFrustration: function (frustrationType) {\n frustrationTypes.push(frustrationType);\n },\n startClocks: startClocks,\n isStopped: function () { return status === 1 /* ClickStatus.STOPPED */ || status === 2 /* ClickStatus.FINALIZED */; },\n clone: function () { return newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent); },\n validate: function (domEvents) {\n stop();\n if (status !== 1 /* ClickStatus.STOPPED */) {\n return;\n }\n var _a = eventCountsSubscription.eventCounts, resourceCount = _a.resourceCount, errorCount = _a.errorCount, longTaskCount = _a.longTaskCount;\n var clickAction = assign({\n type: \"click\" /* ActionType.CLICK */,\n duration: activityEndTime && elapsed(startClocks.timeStamp, activityEndTime),\n startClocks: startClocks,\n id: id,\n frustrationTypes: frustrationTypes,\n counts: {\n resourceCount: resourceCount,\n errorCount: errorCount,\n longTaskCount: longTaskCount,\n },\n events: domEvents !== null && domEvents !== void 0 ? domEvents : [startEvent],\n event: startEvent,\n }, clickActionBase);\n lifeCycle.notify(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, clickAction);\n status = 2 /* ClickStatus.FINALIZED */;\n },\n discard: function () {\n stop();\n status = 2 /* ClickStatus.FINALIZED */;\n },\n };\n}\nexport function finalizeClicks(clicks, rageClick) {\n var isRage = computeFrustration(clicks, rageClick).isRage;\n if (isRage) {\n clicks.forEach(function (click) { return click.discard(); });\n rageClick.stop(timeStampNow());\n rageClick.validate(clicks.map(function (click) { return click.event; }));\n }\n else {\n rageClick.discard();\n clicks.forEach(function (click) { return click.validate(); });\n }\n}\n//# sourceMappingURL=trackClickActions.js.map","import { noop, assign, combine, toServerDuration, generateUUID } from '@datadog/browser-core';\nimport { trackClickActions } from './trackClickActions';\nexport function startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory) {\n lifeCycle.subscribe(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, function (action) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processAction(action, pageStateHistory));\n });\n var actionContexts = { findActionId: noop };\n if (configuration.trackUserInteractions) {\n actionContexts = trackClickActions(lifeCycle, domMutationObservable, configuration).actionContexts;\n }\n return {\n addAction: function (action, savedCommonContext) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n savedCommonContext: savedCommonContext,\n }, processAction(action, pageStateHistory)));\n },\n actionContexts: actionContexts,\n };\n}\nfunction processAction(action, pageStateHistory) {\n var autoActionProperties = isAutoAction(action)\n ? {\n action: {\n id: action.id,\n loading_time: toServerDuration(action.duration),\n frustration: {\n type: action.frustrationTypes,\n },\n error: {\n count: action.counts.errorCount,\n },\n long_task: {\n count: action.counts.longTaskCount,\n },\n resource: {\n count: action.counts.resourceCount,\n },\n },\n _dd: {\n action: {\n target: action.target,\n position: action.position,\n },\n },\n }\n : undefined;\n var customerContext = !isAutoAction(action) ? action.context : undefined;\n var actionEvent = combine({\n action: {\n id: generateUUID(),\n target: {\n name: action.name,\n },\n type: action.type,\n },\n date: action.startClocks.timeStamp,\n type: \"action\" /* RumEventType.ACTION */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(action.startClocks.relative) },\n }, autoActionProperties);\n return {\n customerContext: customerContext,\n rawRumEvent: actionEvent,\n startTime: action.startClocks.relative,\n domainContext: isAutoAction(action) ? { event: action.event, events: action.events } : {},\n };\n}\nfunction isAutoAction(action) {\n return action.type !== \"custom\" /* ActionType.CUSTOM */;\n}\n//# sourceMappingURL=actionCollection.js.map","import { instrumentMethodAndCallOriginal } from '../../tools/instrumentMethod';\nimport { computeStackTrace } from './computeStackTrace';\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\n/**\n * Cross-browser collection of unhandled errors\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Tries to catch all unhandled errors and report them to the\n * callback.\n *\n * Callbacks receive a StackTrace object as described in the\n * computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\nexport function startUnhandledErrorCollection(callback) {\n var stopInstrumentingOnError = instrumentOnError(callback).stop;\n var stopInstrumentingOnUnhandledRejection = instrumentUnhandledRejection(callback).stop;\n return {\n stop: function () {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\n/**\n * Install a global onerror handler\n */\nfunction instrumentOnError(callback) {\n return instrumentMethodAndCallOriginal(window, 'onerror', {\n before: function (messageObj, url, line, column, errorObj) {\n var stackTrace;\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n var stack = [{ url: url, column: column, line: line }];\n var _a = tryToParseMessage(messageObj), name_1 = _a.name, message = _a.message;\n stackTrace = {\n name: name_1,\n message: message,\n stack: stack,\n };\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n },\n });\n}\nfunction tryToParseMessage(messageObj) {\n var _a;\n var name;\n var message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n _a = ERROR_TYPES_RE.exec(messageObj), name = _a[1], message = _a[2];\n }\n return { name: name, message: message };\n}\n/**\n * Install a global onunhandledrejection handler\n */\nfunction instrumentUnhandledRejection(callback) {\n return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {\n before: function (e) {\n var reason = e.reason || 'Empty reason';\n var stack = computeStackTrace(reason);\n callback(stack, reason);\n },\n });\n}\n//# sourceMappingURL=tracekit.js.map","import { clocksNow } from '../../tools/utils/timeUtils';\nimport { startUnhandledErrorCollection } from '../tracekit';\nimport { computeRawError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n return startUnhandledErrorCollection(function (stackTrace, originalError) {\n errorObservable.notify(computeRawError({\n stackTrace: stackTrace,\n originalError: originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n }));\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { computeStackTrace } from '../tracekit';\nimport { createHandlingStack, formatErrorMessage, toStackTraceString, tryToGetFingerprint } from '../error/error';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { ConsoleApiName, globalConsole } from '../../tools/display';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { find } from '../../tools/utils/polyfills';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nvar consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n var consoleObservables = apis.map(function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api);\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables.apply(void 0, consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n var observable = new Observable(function () {\n var originalConsoleApi = globalConsole[api];\n globalConsole[api] = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n originalConsoleApi.apply(console, params);\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return function () {\n globalConsole[api] = originalConsoleApi;\n };\n });\n return observable;\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n // Todo: remove console error prefix in the next major version\n var message = params.map(function (param) { return formatConsoleParameters(param); }).join(' ');\n var stack;\n var fingerprint;\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) { return param instanceof Error; });\n stack = firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined;\n fingerprint = tryToGetFingerprint(firstErrorParam);\n message = \"console error: \".concat(message);\n }\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n fingerprint: fingerprint,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { clocksNow, initConsoleObservable, ErrorSource, ConsoleApiName } from '@datadog/browser-core';\nexport function trackConsoleError(errorObservable) {\n var subscription = initConsoleObservable([ConsoleApiName.error]).subscribe(function (consoleError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: consoleError.message,\n stack: consoleError.stack,\n fingerprint: consoleError.fingerprint,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack: consoleError.handlingStack,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackConsoleError.js.map","import { toStackTraceString } from '../error/error';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { includes } from '../../tools/utils/polyfills';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n var observables = [];\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n var reportTypes = apis.filter(function (api) { return api !== RawReportType.cspViolation; });\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables.apply(void 0, observables);\n}\nfunction createReportObservable(reportTypes) {\n var observable = new Observable(function () {\n if (!window.ReportingObserver) {\n return;\n }\n var handleReports = monitor(function (reports, _) {\n return reports.forEach(function (report) {\n observable.notify(buildRawReportFromReport(report));\n });\n });\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return function () {\n observer.disconnect();\n };\n });\n return observable;\n}\nfunction createCspViolationReportObservable(configuration) {\n var observable = new Observable(function () {\n var stop = addEventListener(configuration, document, \"securitypolicyviolation\" /* DOM_EVENT.SECURITY_POLICY_VIOLATION */, function (event) {\n observable.notify(buildRawReportFromCspViolation(event));\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction buildRawReportFromReport(_a) {\n var type = _a.type, body = _a.body;\n return {\n type: type,\n subtype: body.id,\n message: \"\".concat(type, \": \").concat(body.message),\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n };\n}\nfunction buildRawReportFromCspViolation(event) {\n var type = RawReportType.cspViolation;\n var message = \"'\".concat(event.blockedURI, \"' blocked by '\").concat(event.effectiveDirective, \"' directive\");\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: \"\".concat(type, \": \").concat(message),\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? \"\".concat(message, \" of the policy \\\"\").concat(safeTruncate(event.originalPolicy, 100, '...'), \"\\\"\")\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber !== null && lineNumber !== void 0 ? lineNumber : undefined,\n column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : undefined,\n },\n ],\n })\n : undefined;\n}\n//# sourceMappingURL=reportObservable.js.map","import { clocksNow, ErrorSource, initReportObservable, RawReportType } from '@datadog/browser-core';\nexport function trackReportError(configuration, errorObservable) {\n var subscription = initReportObservable(configuration, [\n RawReportType.cspViolation,\n RawReportType.intervention,\n ]).subscribe(function (reportError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: reportError.message,\n stack: reportError.stack,\n type: reportError.subtype,\n source: ErrorSource.REPORT,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackReportError.js.map","import { isEmptyObject, assign, ErrorSource, generateUUID, computeRawError, computeStackTrace, Observable, trackRuntimeError, } from '@datadog/browser-core';\nimport { trackConsoleError } from './trackConsoleError';\nimport { trackReportError } from './trackReportError';\nexport function startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts) {\n var errorObservable = new Observable();\n trackConsoleError(errorObservable);\n trackRuntimeError(errorObservable);\n trackReportError(configuration, errorObservable);\n errorObservable.subscribe(function (error) { return lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error }); });\n return doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts);\n}\nexport function doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts) {\n lifeCycle.subscribe(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, function (_a) {\n var error = _a.error, customerContext = _a.customerContext, savedCommonContext = _a.savedCommonContext;\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n }, processError(error, pageStateHistory, featureFlagContexts)));\n });\n return {\n addError: function (_a, savedCommonContext) {\n var error = _a.error, handlingStack = _a.handlingStack, startClocks = _a.startClocks, customerContext = _a.context;\n var stackTrace = error instanceof Error ? computeStackTrace(error) : undefined;\n var rawError = computeRawError({\n stackTrace: stackTrace,\n originalError: error,\n handlingStack: handlingStack,\n startClocks: startClocks,\n nonErrorPrefix: \"Provided\" /* NonErrorPrefix.PROVIDED */,\n source: ErrorSource.CUSTOM,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n });\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, {\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n error: rawError,\n });\n },\n };\n}\nfunction processError(error, pageStateHistory, featureFlagContexts) {\n var rawRumEvent = {\n date: error.startClocks.timeStamp,\n error: {\n id: generateUUID(),\n message: error.message,\n source: error.source,\n stack: error.stack,\n handling_stack: error.handlingStack,\n type: error.type,\n handling: error.handling,\n causes: error.causes,\n source_type: 'browser',\n fingerprint: error.fingerprint,\n },\n type: \"error\" /* RumEventType.ERROR */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(error.startClocks.relative) },\n };\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(error.startClocks.relative);\n if (featureFlagContext && !isEmptyObject(featureFlagContext)) {\n rawRumEvent.feature_flags = featureFlagContext;\n }\n return {\n rawRumEvent: rawRumEvent,\n startTime: error.startClocks.relative,\n domainContext: {\n error: error.originalError,\n },\n };\n}\n//# sourceMappingURL=errorCollection.js.map","import { toServerDuration, relativeToClocks, generateUUID } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection';\nexport function startLongTaskCollection(lifeCycle, sessionManager) {\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType !== RumPerformanceEntryType.LONG_TASK) {\n break;\n }\n var session = sessionManager.findTrackedSession(entry.startTime);\n if (!session || !session.longTaskAllowed) {\n break;\n }\n var startClocks = relativeToClocks(entry.startTime);\n var rawRumEvent = {\n date: startClocks.timeStamp,\n long_task: {\n id: generateUUID(),\n duration: toServerDuration(entry.duration),\n },\n type: \"long_task\" /* RumEventType.LONG_TASK */,\n _dd: {\n discarded: false,\n },\n };\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, {\n rawRumEvent: rawRumEvent,\n startTime: startClocks.relative,\n domainContext: { performanceEntry: entry.toJSON() },\n });\n }\n });\n}\n//# sourceMappingURL=longTaskCollection.js.map","import { addDuration } from '@datadog/browser-core';\nimport { toValidEntry } from './resourceUtils';\n/**\n * Look for corresponding timing in resource timing buffer\n *\n * Observations:\n * - Timing (start, end) are nested inside the request (start, end)\n * - Some timing can be not exactly nested, being off by < 1 ms\n *\n * Strategy:\n * - from valid nested entries (with 1 ms error margin)\n * - if a single timing match, return the timing\n * - otherwise we can't decide, return undefined\n */\nexport function matchRequestTiming(request) {\n if (!performance || !('getEntriesByName' in performance)) {\n return;\n }\n var sameNameEntries = performance.getEntriesByName(request.url, 'resource');\n if (!sameNameEntries.length || !('toJSON' in sameNameEntries[0])) {\n return;\n }\n var candidates = sameNameEntries\n .map(function (entry) { return entry.toJSON(); })\n .filter(toValidEntry)\n .filter(function (entry) {\n return isBetween(entry, request.startClocks.relative, endTime({ startTime: request.startClocks.relative, duration: request.duration }));\n });\n if (candidates.length === 1) {\n return candidates[0];\n }\n return;\n}\nfunction endTime(timing) {\n return addDuration(timing.startTime, timing.duration);\n}\nfunction isBetween(timing, start, end) {\n var errorMargin = 1;\n return timing.startTime >= start - errorMargin && endTime(timing) <= addDuration(end, errorMargin);\n}\n//# sourceMappingURL=matchRequestTiming.js.map","import { combine, generateUUID, toServerDuration, relativeToClocks, assign, isNumber, isExperimentalFeatureEnabled, ExperimentalFeature, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection';\nimport { matchRequestTiming } from './matchRequestTiming';\nimport { computePerformanceResourceDetails, computePerformanceResourceDuration, computeResourceKind, computeSize, isRequestKind, } from './resourceUtils';\nexport function startResourceCollection(lifeCycle, configuration, sessionManager, pageStateHistory) {\n lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processRequest(request, configuration, sessionManager, pageStateHistory));\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.RESOURCE && !isRequestKind(entry)) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processResourceEntry(entry, configuration, sessionManager, pageStateHistory));\n }\n }\n });\n}\nfunction processRequest(request, configuration, sessionManager, pageStateHistory) {\n var _a;\n var type = request.type === \"xhr\" /* RequestType.XHR */ ? \"xhr\" /* ResourceType.XHR */ : \"fetch\" /* ResourceType.FETCH */;\n var matchingTiming = matchRequestTiming(request);\n var startClocks = matchingTiming ? relativeToClocks(matchingTiming.startTime) : request.startClocks;\n var correspondingTimingOverrides = matchingTiming ? computePerformanceEntryMetrics(matchingTiming) : undefined;\n var tracingInfo = computeRequestTracingInfo(request, configuration);\n var indexingInfo = computeIndexingInfo(sessionManager, startClocks);\n var duration = computeRequestDuration(pageStateHistory, startClocks, request.duration);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, (_a = matchingTiming === null || matchingTiming === void 0 ? void 0 : matchingTiming.duration) !== null && _a !== void 0 ? _a : request.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n duration: duration,\n method: request.method,\n status_code: request.status,\n url: request.url,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n }, tracingInfo, correspondingTimingOverrides, indexingInfo, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: matchingTiming && toPerformanceEntryRepresentation(matchingTiming),\n xhr: request.xhr,\n response: request.response,\n requestInput: request.input,\n requestInit: request.init,\n error: request.error,\n },\n };\n}\nfunction processResourceEntry(entry, configuration, sessionManager, pageStateHistory) {\n var type = computeResourceKind(entry);\n var entryMetrics = computePerformanceEntryMetrics(entry);\n var startClocks = relativeToClocks(entry.startTime);\n var tracingInfo = computeEntryTracingInfo(entry, configuration);\n var indexingInfo = computeIndexingInfo(sessionManager, startClocks);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, entry.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n url: entry.name,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n }, tracingInfo, entryMetrics, indexingInfo, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: toPerformanceEntryRepresentation(entry),\n },\n };\n}\nfunction computePerformanceEntryMetrics(timing) {\n return {\n resource: assign({\n duration: computePerformanceResourceDuration(timing),\n size: computeSize(timing),\n }, computePerformanceResourceDetails(timing)),\n };\n}\nfunction computeRequestTracingInfo(request, configuration) {\n var hasBeenTraced = request.traceSampled && request.traceId && request.spanId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n span_id: request.spanId.toDecimalString(),\n trace_id: request.traceId.toDecimalString(),\n rule_psr: getRulePsr(configuration),\n },\n };\n}\nfunction computeEntryTracingInfo(entry, configuration) {\n var hasBeenTraced = entry.traceId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n trace_id: entry.traceId,\n rule_psr: getRulePsr(configuration),\n },\n };\n}\n// TODO next major: use directly PerformanceEntry type in domain context\nfunction toPerformanceEntryRepresentation(entry) {\n return entry;\n}\n/**\n * @returns number between 0 and 1 which represents trace sample rate\n */\nfunction getRulePsr(configuration) {\n return isNumber(configuration.traceSampleRate) ? configuration.traceSampleRate / 100 : undefined;\n}\nfunction computeIndexingInfo(sessionManager, resourceStart) {\n var session = sessionManager.findTrackedSession(resourceStart.relative);\n return {\n _dd: {\n discarded: !session || !session.resourceAllowed,\n },\n };\n}\nfunction computePageStateInfo(pageStateHistory, startClocks, duration) {\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.RESOURCE_PAGE_STATES)) {\n return;\n }\n return {\n _dd: {\n page_states: pageStateHistory.findAll(startClocks.relative, duration),\n page_was_discarded: String(document.wasDiscarded),\n },\n };\n}\nfunction computeRequestDuration(pageStateHistory, startClocks, duration) {\n var _a;\n // TODO remove FF in next major\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.NO_RESOURCE_DURATION_FROZEN_STATE)) {\n return toServerDuration(duration);\n }\n var requestCrossedFrozenState = (_a = pageStateHistory\n .findAll(startClocks.relative, duration)) === null || _a === void 0 ? void 0 : _a.some(function (pageState) { return pageState.state === \"frozen\" /* PageState.FROZEN */; });\n return !requestCrossedFrozenState ? toServerDuration(duration) : undefined;\n}\n//# sourceMappingURL=resourceCollection.js.map","import { toServerDuration } from '@datadog/browser-core';\n// Todo: Remove in the next major release\nexport function mapToForegroundPeriods(pageStateServerEntries, duration) {\n var foregroundPeriods = [];\n for (var i = 0; i < pageStateServerEntries.length; i++) {\n var current = pageStateServerEntries[i];\n var next = pageStateServerEntries[i + 1];\n if (current.state === \"active\" /* PageState.ACTIVE */) {\n var start = current.start >= 0 ? current.start : 0;\n var end = next ? next.start : toServerDuration(duration);\n foregroundPeriods.push({\n start: start,\n duration: (end - start),\n });\n }\n }\n return foregroundPeriods;\n}\n//# sourceMappingURL=foregroundContexts.js.map","import { trackEventCounts } from '../trackEventCounts';\nexport function trackViewEventCounts(lifeCycle, viewId, onChange) {\n var _a = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) { return event.view.id === viewId; },\n onChange: onChange,\n }), stop = _a.stop, eventCounts = _a.eventCounts;\n return {\n stop: stop,\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackViewEventCounts.js.map","import { ONE_MINUTE, find } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\n// Discard FCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var FCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\nexport function trackFirstContentfulPaint(lifeCycle, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var fcpEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.PAINT &&\n entry.name === 'first-contentful-paint' &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < FCP_MAXIMUM_DELAY;\n });\n if (fcpEntry) {\n callback(fcpEntry.startTime);\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstContentfulPaint.js.map","import { elapsed, find, ExperimentalFeature, isExperimentalFeatureEnabled } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the first input occurring during the initial View to return:\n * - First Input Delay\n * - First Input Time\n * Callback is called at most one time.\n * Documentation: https://web.dev/fid/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getFID.ts\n */\nexport function trackFirstInput(lifeCycle, configuration, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var firstInputEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.FIRST_INPUT && entry.startTime < firstHidden.timeStamp;\n });\n if (firstInputEntry) {\n var firstInputDelay = elapsed(firstInputEntry.startTime, firstInputEntry.processingStart);\n var firstInputTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n firstInputEntry.target &&\n isElementNode(firstInputEntry.target)) {\n firstInputTargetSelector = getSelectorFromElement(firstInputEntry.target, configuration.actionNameAttribute);\n }\n callback({\n // Ensure firstInputDelay to be positive, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1185815\n delay: firstInputDelay >= 0 ? firstInputDelay : 0,\n time: firstInputEntry.startTime,\n targetSelector: firstInputTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstInput.js.map","import { relativeNow } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nexport function trackNavigationTimings(lifeCycle, callback) {\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.NAVIGATION) {\n callback({\n domComplete: entry.domComplete,\n domContentLoaded: entry.domContentLoadedEventEnd,\n domInteractive: entry.domInteractive,\n loadEvent: entry.loadEventEnd,\n // In some cases the value reported is negative or is larger\n // 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 firstByte: entry.responseStart >= 0 && entry.responseStart <= relativeNow() ? entry.responseStart : undefined,\n });\n }\n }\n }).unsubscribe;\n return { stop: stop };\n}\n//# sourceMappingURL=trackNavigationTimings.js.map","import { ExperimentalFeature, ONE_MINUTE, addEventListeners, findLast, isExperimentalFeatureEnabled, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n// Discard LCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var LCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\n/**\n * Track the largest contentful paint (LCP) occurring during the initial View. This can yield\n * multiple values, only the most recent one should be used.\n * Documentation: https://web.dev/lcp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/onLCP.ts\n */\nexport function trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, eventTarget, callback) {\n // Ignore entries that come after the first user interaction. According to the documentation, the\n // browser should not send largest-contentful-paint entries after a user interact with the page,\n // but the web-vitals reference implementation uses this as a safeguard.\n var firstInteractionTimestamp = Infinity;\n var stopEventListener = addEventListeners(configuration, eventTarget, [\"pointerdown\" /* DOM_EVENT.POINTER_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */], function (event) {\n firstInteractionTimestamp = event.timeStamp;\n }, { capture: true, once: true }).stop;\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var lcpEntry = findLast(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT &&\n entry.startTime < firstInteractionTimestamp &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < LCP_MAXIMUM_DELAY;\n });\n if (lcpEntry) {\n var lcpTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) && lcpEntry.element) {\n lcpTargetSelector = getSelectorFromElement(lcpEntry.element, configuration.actionNameAttribute);\n }\n callback({\n value: lcpEntry.startTime,\n targetSelector: lcpTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: function () {\n stopEventListener();\n unsubscribeLifeCycle();\n },\n };\n}\n//# sourceMappingURL=trackLargestContentfulPaint.js.map","import { addEventListeners } from '@datadog/browser-core';\nexport function trackFirstHidden(configuration, eventTarget) {\n if (eventTarget === void 0) { eventTarget = window; }\n var timeStamp;\n var stopListeners;\n if (document.visibilityState === 'hidden') {\n timeStamp = 0;\n }\n else {\n timeStamp = Infinity;\n (stopListeners = addEventListeners(configuration, eventTarget, [\"pagehide\" /* DOM_EVENT.PAGE_HIDE */, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */], function (event) {\n if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */ || document.visibilityState === 'hidden') {\n timeStamp = event.timeStamp;\n stopListeners();\n }\n }, { capture: true }).stop);\n }\n return {\n get timeStamp() {\n return timeStamp;\n },\n stop: function () {\n stopListeners === null || stopListeners === void 0 ? void 0 : stopListeners();\n },\n };\n}\n//# sourceMappingURL=trackFirstHidden.js.map","import { trackFirstContentfulPaint } from './trackFirstContentfulPaint';\nimport { trackFirstInput } from './trackFirstInput';\nimport { trackNavigationTimings } from './trackNavigationTimings';\nimport { trackLargestContentfulPaint } from './trackLargestContentfulPaint';\nimport { trackFirstHidden } from './trackFirstHidden';\nexport function trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate) {\n var initialViewMetrics = {};\n var stopNavigationTracking = trackNavigationTimings(lifeCycle, function (navigationTimings) {\n setLoadEvent(navigationTimings.loadEvent);\n initialViewMetrics.navigationTimings = navigationTimings;\n scheduleViewUpdate();\n }).stop;\n var firstHidden = trackFirstHidden(configuration);\n var stopFCPTracking = trackFirstContentfulPaint(lifeCycle, firstHidden, function (firstContentfulPaint) {\n initialViewMetrics.firstContentfulPaint = firstContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopLCPTracking = trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, window, function (largestContentfulPaint) {\n initialViewMetrics.largestContentfulPaint = largestContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopFIDTracking = trackFirstInput(lifeCycle, configuration, firstHidden, function (firstInput) {\n initialViewMetrics.firstInput = firstInput;\n scheduleViewUpdate();\n }).stop;\n function stop() {\n stopNavigationTracking();\n stopFCPTracking();\n stopLCPTracking();\n stopFIDTracking();\n firstHidden.stop();\n }\n return {\n stop: stop,\n initialViewMetrics: initialViewMetrics,\n };\n}\n//# sourceMappingURL=trackInitialViewMetrics.js.map","import { round, find, ONE_SECOND, isExperimentalFeatureEnabled, ExperimentalFeature, noop, } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { supportPerformanceTimingEvent, RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the cumulative layout shifts (CLS).\n * Layout shifts are grouped into session windows.\n * The minimum gap between session windows is 1 second.\n * The maximum duration of a session window is 5 second.\n * The session window layout shift value is the sum of layout shifts inside it.\n * The CLS value is the max of session windows values.\n *\n * This yields a new value whenever the CLS value is updated (a higher session window value is computed).\n *\n * See isLayoutShiftSupported to check for browser support.\n *\n * Documentation:\n * https://web.dev/cls/\n * https://web.dev/evolving-cls/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts\n */\nexport function trackCumulativeLayoutShift(configuration, lifeCycle, callback) {\n if (!isLayoutShiftSupported()) {\n return {\n stop: noop,\n };\n }\n var maxClsValue = 0;\n // if no layout shift happen the value should be reported as 0\n callback({\n value: 0,\n });\n var window = slidingSessionWindow();\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.LAYOUT_SHIFT && !entry.hadRecentInput) {\n window.update(entry);\n if (window.value() > maxClsValue) {\n maxClsValue = window.value();\n var cls = round(maxClsValue, 4);\n var clsTarget = window.largestLayoutShiftTarget();\n var cslTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) && clsTarget) {\n cslTargetSelector = getSelectorFromElement(clsTarget, configuration.actionNameAttribute);\n }\n callback({\n value: cls,\n targetSelector: cslTargetSelector,\n });\n }\n }\n }\n }).unsubscribe;\n return {\n stop: stop,\n };\n}\nfunction slidingSessionWindow() {\n var value = 0;\n var startTime;\n var endTime;\n var largestLayoutShift = 0;\n var largestLayoutShiftTarget;\n var largestLayoutShiftTime;\n return {\n update: function (entry) {\n var _a, _b;\n var shouldCreateNewWindow = startTime === undefined ||\n entry.startTime - endTime >= ONE_SECOND ||\n entry.startTime - startTime >= 5 * ONE_SECOND;\n if (shouldCreateNewWindow) {\n startTime = endTime = entry.startTime;\n value = entry.value;\n largestLayoutShift = 0;\n largestLayoutShiftTarget = undefined;\n }\n else {\n value += entry.value;\n endTime = entry.startTime;\n }\n if (entry.value > largestLayoutShift) {\n largestLayoutShift = entry.value;\n largestLayoutShiftTime = entry.startTime;\n if ((_a = entry.sources) === null || _a === void 0 ? void 0 : _a.length) {\n largestLayoutShiftTarget = (_b = find(entry.sources, function (s) { return !!s.node && isElementNode(s.node); })) === null || _b === void 0 ? void 0 : _b.node;\n }\n else {\n largestLayoutShiftTarget = undefined;\n }\n }\n },\n value: function () { return value; },\n largestLayoutShiftTarget: function () { return largestLayoutShiftTarget; },\n largestLayoutShiftTime: function () { return largestLayoutShiftTime; },\n };\n}\n/**\n * Check whether `layout-shift` is supported by the browser.\n */\nexport function isLayoutShiftSupported() {\n return supportPerformanceTimingEvent(RumPerformanceEntryType.LAYOUT_SHIFT);\n}\n//# sourceMappingURL=trackCumulativeLayoutShift.js.map","/**\n * performance.interactionCount polyfill\n *\n * The interactionCount is an integer which counts the total number of distinct user interactions,\n * for which there was a unique interactionId.\n *\n * The interactionCount polyfill is an estimate based on a convention specific to Chrome. Cf: https://github.com/GoogleChrome/web-vitals/pull/213\n * This is currently not an issue as the polyfill is only used for INP which is currently only supported on Chrome.\n * Hopefully when/if other browsers will support INP, they will also implement performance.interactionCount at the same time, so we won't need that polyfill.\n *\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/polyfills/interactionCountPolyfill.ts\n */\nimport { monitor } from '@datadog/browser-core';\nvar observer;\nvar interactionCountEstimate = 0;\nvar minKnownInteractionId = Infinity;\nvar maxKnownInteractionId = 0;\nexport function initInteractionCountPolyfill() {\n if ('interactionCount' in performance || observer) {\n return;\n }\n observer = new window.PerformanceObserver(monitor(function (entries) {\n entries.getEntries().forEach(function (e) {\n var entry = e;\n if (entry.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, entry.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, entry.interactionId);\n interactionCountEstimate = (maxKnownInteractionId - minKnownInteractionId) / 7 + 1;\n }\n });\n }));\n observer.observe({ type: 'event', buffered: true, durationThreshold: 0 });\n}\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport var getInteractionCount = function () {\n return observer ? interactionCountEstimate : window.performance.interactionCount || 0;\n};\n//# sourceMappingURL=interactionCountPolyfill.js.map","import { noop, isExperimentalFeatureEnabled, ExperimentalFeature } from '@datadog/browser-core';\nimport { RumPerformanceEntryType, supportPerformanceTimingEvent } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { getInteractionCount, initInteractionCountPolyfill } from './interactionCountPolyfill';\n// Arbitrary value to prevent unnecessary memory usage on views with lots of interactions.\nvar MAX_INTERACTION_ENTRIES = 10;\n/**\n * Track the interaction to next paint (INP).\n * To avoid outliers, return the p98 worst interaction of the view.\n * Documentation: https://web.dev/inp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/onINP.ts\n */\nexport function trackInteractionToNextPaint(configuration, viewLoadingType, lifeCycle) {\n if (!isInteractionToNextPaintSupported() ||\n !isExperimentalFeatureEnabled(ExperimentalFeature.INTERACTION_TO_NEXT_PAINT)) {\n return {\n getInteractionToNextPaint: function () { return undefined; },\n stop: noop,\n };\n }\n var getViewInteractionCount = trackViewInteractionCount(viewLoadingType).getViewInteractionCount;\n var longestInteractions = trackLongestInteractions(getViewInteractionCount);\n var interactionToNextPaint = -1;\n var interactionToNextPaintTargetSelector;\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if ((entry.entryType === RumPerformanceEntryType.EVENT ||\n entry.entryType === RumPerformanceEntryType.FIRST_INPUT) &&\n entry.interactionId) {\n longestInteractions.process(entry);\n }\n }\n var newInteraction = longestInteractions.estimateP98Interaction();\n if (newInteraction) {\n interactionToNextPaint = newInteraction.duration;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n newInteraction.target &&\n isElementNode(newInteraction.target)) {\n interactionToNextPaintTargetSelector = getSelectorFromElement(newInteraction.target, configuration.actionNameAttribute);\n }\n else {\n interactionToNextPaintTargetSelector = undefined;\n }\n }\n }).unsubscribe;\n return {\n getInteractionToNextPaint: function () {\n // If no INP duration where captured because of the performanceObserver 40ms threshold\n // but the view interaction count > 0 then report 0\n if (interactionToNextPaint >= 0) {\n return {\n value: interactionToNextPaint,\n targetSelector: interactionToNextPaintTargetSelector,\n };\n }\n else if (getViewInteractionCount()) {\n return {\n value: 0,\n };\n }\n },\n stop: stop,\n };\n}\nfunction trackLongestInteractions(getViewInteractionCount) {\n var longestInteractions = [];\n function sortAndTrimLongestInteractions() {\n longestInteractions.sort(function (a, b) { return b.duration - a.duration; }).splice(MAX_INTERACTION_ENTRIES);\n }\n return {\n /**\n * Process the performance entry:\n * - if its duration is long enough, add the performance entry to the list of worst interactions\n * - if an entry with the same interaction id exists and its duration is lower than the new one, then replace it in the list of worst interactions\n */\n process: function (entry) {\n var interactionIndex = longestInteractions.findIndex(function (interaction) { return entry.interactionId === interaction.interactionId; });\n var minLongestInteraction = longestInteractions[longestInteractions.length - 1];\n if (interactionIndex !== -1) {\n if (entry.duration > longestInteractions[interactionIndex].duration) {\n longestInteractions[interactionIndex] = entry;\n sortAndTrimLongestInteractions();\n }\n }\n else if (longestInteractions.length < MAX_INTERACTION_ENTRIES ||\n entry.duration > minLongestInteraction.duration) {\n longestInteractions.push(entry);\n sortAndTrimLongestInteractions();\n }\n },\n /**\n * Compute the p98 longest interaction.\n * For better performance the computation is based on 10 longest interactions and the interaction count of the current view.\n */\n estimateP98Interaction: function () {\n var interactionIndex = Math.min(longestInteractions.length - 1, Math.floor(getViewInteractionCount() / 50));\n return longestInteractions[interactionIndex];\n },\n };\n}\nexport function trackViewInteractionCount(viewLoadingType) {\n initInteractionCountPolyfill();\n var previousInteractionCount = viewLoadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */ ? 0 : getInteractionCount();\n return {\n getViewInteractionCount: function () { return getInteractionCount() - previousInteractionCount; },\n };\n}\nexport function isInteractionToNextPaintSupported() {\n return (supportPerformanceTimingEvent(RumPerformanceEntryType.EVENT) &&\n window.PerformanceEventTiming &&\n 'interactionId' in PerformanceEventTiming.prototype);\n}\n//# sourceMappingURL=trackInteractionToNextPaint.js.map","import { elapsed } from '@datadog/browser-core';\nimport { waitPageActivityEnd } from '../../waitPageActivityEnd';\nexport function trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadType, viewStart, callback) {\n var isWaitingForLoadEvent = loadType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */;\n var isWaitingForActivityLoadingTime = true;\n var loadingTimeCandidates = [];\n function invokeCallbackIfAllCandidatesAreReceived() {\n if (!isWaitingForActivityLoadingTime && !isWaitingForLoadEvent && loadingTimeCandidates.length > 0) {\n callback(Math.max.apply(Math, loadingTimeCandidates));\n }\n }\n var stop = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (event) {\n if (isWaitingForActivityLoadingTime) {\n isWaitingForActivityLoadingTime = false;\n if (event.hadActivity) {\n loadingTimeCandidates.push(elapsed(viewStart.timeStamp, event.end));\n }\n invokeCallbackIfAllCandidatesAreReceived();\n }\n }).stop;\n return {\n stop: stop,\n setLoadEvent: function (loadEvent) {\n if (isWaitingForLoadEvent) {\n isWaitingForLoadEvent = false;\n loadingTimeCandidates.push(loadEvent);\n invokeCallbackIfAllCandidatesAreReceived();\n }\n },\n };\n}\n//# sourceMappingURL=trackLoadingTime.js.map","export function getScrollX() {\n var scrollX;\n var visual = window.visualViewport;\n if (visual) {\n scrollX = visual.pageLeft - visual.offsetLeft;\n }\n else if (window.scrollX !== undefined) {\n scrollX = window.scrollX;\n }\n else {\n scrollX = window.pageXOffset || 0;\n }\n return Math.round(scrollX);\n}\nexport function getScrollY() {\n var scrollY;\n var visual = window.visualViewport;\n if (visual) {\n scrollY = visual.pageTop - visual.offsetTop;\n }\n else if (window.scrollY !== undefined) {\n scrollY = window.scrollY;\n }\n else {\n scrollY = window.pageYOffset || 0;\n }\n return Math.round(scrollY);\n}\n//# sourceMappingURL=scroll.js.map","import { Observable, throttle, addEventListener } from '@datadog/browser-core';\nvar viewportObservable;\nexport function initViewportObservable(configuration) {\n if (!viewportObservable) {\n viewportObservable = createViewportObservable(configuration);\n }\n return viewportObservable;\n}\nexport function createViewportObservable(configuration) {\n var observable = new Observable(function () {\n var updateDimension = throttle(function () {\n observable.notify(getViewportDimension());\n }, 200).throttled;\n return addEventListener(configuration, window, \"resize\" /* DOM_EVENT.RESIZE */, updateDimension, { capture: true, passive: true })\n .stop;\n });\n return observable;\n}\n// excludes the width and height of any rendered classic scrollbar that is fixed to the visual viewport\nexport function getViewportDimension() {\n var visual = window.visualViewport;\n if (visual) {\n return {\n width: Number(visual.width * visual.scale),\n height: Number(visual.height * visual.scale),\n };\n }\n return {\n width: Number(window.innerWidth || 0),\n height: Number(window.innerHeight || 0),\n };\n}\n//# sourceMappingURL=viewportObservable.js.map","import { Observable, ONE_SECOND, elapsed, relativeNow, throttle, addEventListener, monitor, } from '@datadog/browser-core';\nimport { getScrollY } from '../../../browser/scroll';\nimport { getViewportDimension } from '../../../browser/viewportObservable';\n/** Arbitrary scroll throttle duration */\nexport var THROTTLE_SCROLL_DURATION = ONE_SECOND;\nexport function trackScrollMetrics(configuration, viewStart, callback, scrollValues) {\n if (scrollValues === void 0) { scrollValues = createScrollValuesObservable(configuration); }\n var maxScrollDepth = 0;\n var maxScrollHeight = 0;\n var maxScrollHeightTime = 0;\n var subscription = scrollValues.subscribe(function (_a) {\n var scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight;\n var shouldUpdate = false;\n if (scrollDepth > maxScrollDepth) {\n maxScrollDepth = scrollDepth;\n shouldUpdate = true;\n }\n if (scrollHeight > maxScrollHeight) {\n maxScrollHeight = scrollHeight;\n var now = relativeNow();\n maxScrollHeightTime = elapsed(viewStart.relative, now);\n shouldUpdate = true;\n }\n if (shouldUpdate) {\n callback({\n maxDepth: Math.min(maxScrollDepth, maxScrollHeight),\n maxDepthScrollTop: scrollTop,\n maxScrollHeight: maxScrollHeight,\n maxScrollHeightTime: maxScrollHeightTime,\n });\n }\n });\n return {\n stop: function () { return subscription.unsubscribe(); },\n };\n}\nexport function computeScrollValues() {\n var scrollTop = getScrollY();\n var height = getViewportDimension().height;\n var scrollHeight = Math.round((document.scrollingElement || document.documentElement).scrollHeight);\n var scrollDepth = Math.round(height + scrollTop);\n return {\n scrollHeight: scrollHeight,\n scrollDepth: scrollDepth,\n scrollTop: scrollTop,\n };\n}\nexport function createScrollValuesObservable(configuration, throttleDuration) {\n if (throttleDuration === void 0) { throttleDuration = THROTTLE_SCROLL_DURATION; }\n var observable = new Observable(function () {\n function notify() {\n observable.notify(computeScrollValues());\n }\n if (window.ResizeObserver) {\n var throttledNotify_1 = throttle(notify, throttleDuration, {\n leading: false,\n trailing: true,\n });\n var observerTarget_1 = document.scrollingElement || document.documentElement;\n var resizeObserver_1 = new ResizeObserver(monitor(throttledNotify_1.throttled));\n resizeObserver_1.observe(observerTarget_1);\n var eventListener_1 = addEventListener(configuration, window, \"scroll\" /* DOM_EVENT.SCROLL */, throttledNotify_1.throttled, {\n passive: true,\n });\n return function () {\n throttledNotify_1.cancel();\n resizeObserver_1.unobserve(observerTarget_1);\n eventListener_1.stop();\n };\n }\n });\n return observable;\n}\n//# sourceMappingURL=trackScrollMetrics.js.map","import { trackCumulativeLayoutShift } from './trackCumulativeLayoutShift';\nimport { trackInteractionToNextPaint } from './trackInteractionToNextPaint';\nimport { trackLoadingTime } from './trackLoadingTime';\nimport { trackScrollMetrics } from './trackScrollMetrics';\nexport function trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, viewStart) {\n var commonViewMetrics = {};\n var _a = trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadingType, viewStart, function (newLoadingTime) {\n commonViewMetrics.loadingTime = newLoadingTime;\n scheduleViewUpdate();\n }), stopLoadingTimeTracking = _a.stop, setLoadEvent = _a.setLoadEvent;\n var stopScrollMetricsTracking = trackScrollMetrics(configuration, viewStart, function (newScrollMetrics) {\n commonViewMetrics.scroll = newScrollMetrics;\n }).stop;\n var stopCLSTracking = trackCumulativeLayoutShift(configuration, lifeCycle, function (cumulativeLayoutShift) {\n commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift;\n scheduleViewUpdate();\n }).stop;\n var _b = trackInteractionToNextPaint(configuration, loadingType, lifeCycle), stopINPTracking = _b.stop, getInteractionToNextPaint = _b.getInteractionToNextPaint;\n return {\n stop: function () {\n stopLoadingTimeTracking();\n stopCLSTracking();\n stopScrollMetricsTracking();\n stopINPTracking();\n },\n setLoadEvent: setLoadEvent,\n getCommonViewMetrics: function () {\n commonViewMetrics.interactionToNextPaint = getInteractionToNextPaint();\n return commonViewMetrics;\n },\n };\n}\n//# sourceMappingURL=trackCommonViewMetrics.js.map","import { noop, PageExitReason, shallowClone, elapsed, generateUUID, ONE_MINUTE, throttle, clocksNow, clocksOrigin, timeStampNow, display, looksLikeRelativeTime, setInterval, clearInterval, setTimeout, Observable, } from '@datadog/browser-core';\nimport { trackViewEventCounts } from './trackViewEventCounts';\nimport { trackInitialViewMetrics } from './viewMetrics/trackInitialViewMetrics';\nimport { trackCommonViewMetrics } from './viewMetrics/trackCommonViewMetrics';\nexport var THROTTLE_VIEW_UPDATE_PERIOD = 3000;\nexport var SESSION_KEEP_ALIVE_INTERVAL = 5 * ONE_MINUTE;\n// Some events or metrics can be captured after the end of the view. To avoid missing those;\n// an arbitrary delay is added for stopping their tracking after the view ends.\n//\n// Ideally, we would not stop and keep tracking events or metrics until the end of the session.\n// But this might have a small performance impact if there are many many views.\n// So let's have a fairly short delay improving the situation in most cases and avoid impacting performances too much.\nexport var KEEP_TRACKING_AFTER_VIEW_DELAY = 5 * ONE_MINUTE;\nexport function trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, areViewsTrackedAutomatically, initialViewOptions) {\n var activeViews = new Set();\n var currentView = startNewView(\"initial_load\" /* ViewLoadingType.INITIAL_LOAD */, clocksOrigin(), initialViewOptions);\n startViewLifeCycle();\n var locationChangeSubscription;\n if (areViewsTrackedAutomatically) {\n locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable);\n }\n function startNewView(loadingType, startClocks, viewOptions) {\n var newlyCreatedView = newView(lifeCycle, domMutationObservable, configuration, location, loadingType, startClocks, viewOptions);\n activeViews.add(newlyCreatedView);\n newlyCreatedView.stopObservable.subscribe(function () {\n activeViews.delete(newlyCreatedView);\n });\n return newlyCreatedView;\n }\n function startViewLifeCycle() {\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n // Renew view on session renewal\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, undefined, {\n name: currentView.name,\n service: currentView.service,\n version: currentView.version,\n });\n });\n lifeCycle.subscribe(7 /* LifeCycleEventType.SESSION_EXPIRED */, function () {\n currentView.end({ sessionIsActive: false });\n });\n // End the current view on page unload\n lifeCycle.subscribe(9 /* LifeCycleEventType.PAGE_EXITED */, function (pageExitEvent) {\n if (pageExitEvent.reason === PageExitReason.UNLOADING || pageExitEvent.reason === PageExitReason.PAGEHIDE) {\n currentView.end();\n }\n });\n }\n function renewViewOnLocationChange(locationChangeObservable) {\n return locationChangeObservable.subscribe(function (_a) {\n var oldLocation = _a.oldLocation, newLocation = _a.newLocation;\n if (areDifferentLocation(oldLocation, newLocation)) {\n currentView.end();\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */);\n }\n });\n }\n return {\n addTiming: function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n currentView.addTiming(name, time);\n },\n startView: function (options, startClocks) {\n currentView.end({ endClocks: startClocks });\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, startClocks, options);\n },\n stop: function () {\n locationChangeSubscription === null || locationChangeSubscription === void 0 ? void 0 : locationChangeSubscription.unsubscribe();\n currentView.end();\n activeViews.forEach(function (view) { return view.stop(); });\n },\n };\n}\nfunction newView(lifeCycle, domMutationObservable, configuration, initialLocation, loadingType, startClocks, viewOptions) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n // Setup initial values\n var id = generateUUID();\n var stopObservable = new Observable();\n var customTimings = {};\n var documentVersion = 0;\n var endClocks;\n var location = shallowClone(initialLocation);\n var sessionIsActive = true;\n var name;\n var service;\n var version;\n if (viewOptions) {\n name = viewOptions.name;\n service = viewOptions.service;\n version = viewOptions.version;\n }\n lifeCycle.notify(2 /* LifeCycleEventType.VIEW_CREATED */, {\n id: id,\n name: name,\n startClocks: startClocks,\n service: service,\n version: version,\n });\n // Update the view every time the measures are changing\n var _a = throttle(triggerViewUpdate, THROTTLE_VIEW_UPDATE_PERIOD, {\n leading: false,\n }), scheduleViewUpdate = _a.throttled, cancelScheduleViewUpdate = _a.cancel;\n var _b = trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, startClocks), setLoadEvent = _b.setLoadEvent, stopCommonViewMetricsTracking = _b.stop, getCommonViewMetrics = _b.getCommonViewMetrics;\n var _c = loadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */\n ? trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate)\n : { stop: noop, initialViewMetrics: {} }, stopInitialViewMetricsTracking = _c.stop, initialViewMetrics = _c.initialViewMetrics;\n var _d = trackViewEventCounts(lifeCycle, id, scheduleViewUpdate), stopEventCountsTracking = _d.stop, eventCounts = _d.eventCounts;\n // Session keep alive\n var keepAliveIntervalId = setInterval(triggerViewUpdate, SESSION_KEEP_ALIVE_INTERVAL);\n // Initial view update\n triggerViewUpdate();\n function triggerViewUpdate() {\n cancelScheduleViewUpdate();\n documentVersion += 1;\n var currentEnd = endClocks === undefined ? timeStampNow() : endClocks.timeStamp;\n lifeCycle.notify(3 /* LifeCycleEventType.VIEW_UPDATED */, {\n customTimings: customTimings,\n documentVersion: documentVersion,\n id: id,\n name: name,\n service: service,\n version: version,\n loadingType: loadingType,\n location: location,\n startClocks: startClocks,\n commonViewMetrics: getCommonViewMetrics(),\n initialViewMetrics: initialViewMetrics,\n duration: elapsed(startClocks.timeStamp, currentEnd),\n isActive: endClocks === undefined,\n sessionIsActive: sessionIsActive,\n eventCounts: eventCounts,\n });\n }\n return {\n name: name,\n service: service,\n version: version,\n stopObservable: stopObservable,\n end: function (options) {\n var _this = this;\n var _a, _b;\n if (options === void 0) { options = {}; }\n if (endClocks) {\n // view already ended\n return;\n }\n endClocks = (_a = options.endClocks) !== null && _a !== void 0 ? _a : clocksNow();\n sessionIsActive = (_b = options.sessionIsActive) !== null && _b !== void 0 ? _b : true;\n lifeCycle.notify(4 /* LifeCycleEventType.VIEW_ENDED */, { endClocks: endClocks });\n clearInterval(keepAliveIntervalId);\n stopCommonViewMetricsTracking();\n triggerViewUpdate();\n setTimeout(function () {\n _this.stop();\n }, KEEP_TRACKING_AFTER_VIEW_DELAY);\n },\n stop: function () {\n stopInitialViewMetricsTracking();\n stopEventCountsTracking();\n stopObservable.notify();\n },\n addTiming: function (name, time) {\n if (endClocks) {\n return;\n }\n var relativeTime = looksLikeRelativeTime(time) ? time : elapsed(startClocks.timeStamp, time);\n customTimings[sanitizeTiming(name)] = relativeTime;\n scheduleViewUpdate();\n },\n };\n}\n/**\n * Timing name is used as facet path that must contain only letters, digits, or the characters - _ . @ $\n */\nfunction sanitizeTiming(name) {\n var sanitized = name.replace(/[^a-zA-Z0-9-_.@$]/g, '_');\n if (sanitized !== name) {\n display.warn(\"Invalid timing name: \".concat(name, \", sanitized to: \").concat(sanitized));\n }\n return sanitized;\n}\nfunction areDifferentLocation(currentLocation, otherLocation) {\n return (currentLocation.pathname !== otherLocation.pathname ||\n (!isHashAnAnchor(otherLocation.hash) &&\n getPathFromHash(otherLocation.hash) !== getPathFromHash(currentLocation.hash)));\n}\nfunction isHashAnAnchor(hash) {\n var correspondingId = hash.substr(1);\n return !!document.getElementById(correspondingId);\n}\nfunction getPathFromHash(hash) {\n var index = hash.indexOf('?');\n return index < 0 ? hash : hash.slice(0, index);\n}\n//# sourceMappingURL=trackViews.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature, isEmptyObject, mapValues, toServerDuration, isNumber, } from '@datadog/browser-core';\nimport { mapToForegroundPeriods } from '../contexts/foregroundContexts';\nimport { trackViews } from './trackViews';\nexport function startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, initialViewOptions) {\n lifeCycle.subscribe(3 /* LifeCycleEventType.VIEW_UPDATED */, function (view) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory));\n });\n return trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, !configuration.trackViewsManually, initialViewOptions);\n}\nfunction processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var replayStats = recorderApi.getReplayStats(view.id);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(view.startClocks.relative);\n var pageStatesEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGE_STATES);\n var pageStates = pageStateHistory.findAll(view.startClocks.relative, view.duration);\n var viewEvent = {\n _dd: {\n document_version: view.documentVersion,\n replay_stats: replayStats,\n page_states: pageStatesEnabled ? pageStates : undefined,\n },\n date: view.startClocks.timeStamp,\n type: \"view\" /* RumEventType.VIEW */,\n view: {\n action: {\n count: view.eventCounts.actionCount,\n },\n frustration: {\n count: view.eventCounts.frustrationCount,\n },\n cumulative_layout_shift: (_a = view.commonViewMetrics.cumulativeLayoutShift) === null || _a === void 0 ? void 0 : _a.value,\n cumulative_layout_shift_target_selector: (_b = view.commonViewMetrics.cumulativeLayoutShift) === null || _b === void 0 ? void 0 : _b.targetSelector,\n first_byte: toServerDuration((_c = view.initialViewMetrics.navigationTimings) === null || _c === void 0 ? void 0 : _c.firstByte),\n dom_complete: toServerDuration((_d = view.initialViewMetrics.navigationTimings) === null || _d === void 0 ? void 0 : _d.domComplete),\n dom_content_loaded: toServerDuration((_e = view.initialViewMetrics.navigationTimings) === null || _e === void 0 ? void 0 : _e.domContentLoaded),\n dom_interactive: toServerDuration((_f = view.initialViewMetrics.navigationTimings) === null || _f === void 0 ? void 0 : _f.domInteractive),\n error: {\n count: view.eventCounts.errorCount,\n },\n first_contentful_paint: toServerDuration(view.initialViewMetrics.firstContentfulPaint),\n first_input_delay: toServerDuration((_g = view.initialViewMetrics.firstInput) === null || _g === void 0 ? void 0 : _g.delay),\n first_input_time: toServerDuration((_h = view.initialViewMetrics.firstInput) === null || _h === void 0 ? void 0 : _h.time),\n first_input_target_selector: (_j = view.initialViewMetrics.firstInput) === null || _j === void 0 ? void 0 : _j.targetSelector,\n interaction_to_next_paint: toServerDuration((_k = view.commonViewMetrics.interactionToNextPaint) === null || _k === void 0 ? void 0 : _k.value),\n interaction_to_next_paint_target_selector: (_l = view.commonViewMetrics.interactionToNextPaint) === null || _l === void 0 ? void 0 : _l.targetSelector,\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration((_m = view.initialViewMetrics.largestContentfulPaint) === null || _m === void 0 ? void 0 : _m.value),\n largest_contentful_paint_target_selector: (_o = view.initialViewMetrics.largestContentfulPaint) === null || _o === void 0 ? void 0 : _o.targetSelector,\n load_event: toServerDuration((_p = view.initialViewMetrics.navigationTimings) === null || _p === void 0 ? void 0 : _p.loadEvent),\n loading_time: discardNegativeDuration(toServerDuration(view.commonViewMetrics.loadingTime)),\n loading_type: view.loadingType,\n long_task: {\n count: view.eventCounts.longTaskCount,\n },\n resource: {\n count: view.eventCounts.resourceCount,\n },\n time_spent: toServerDuration(view.duration),\n in_foreground_periods: !pageStatesEnabled && pageStates ? mapToForegroundPeriods(pageStates, view.duration) : undefined, // Todo: Remove in the next major release\n },\n feature_flags: featureFlagContext && !isEmptyObject(featureFlagContext) ? featureFlagContext : undefined,\n display: view.commonViewMetrics.scroll\n ? {\n scroll: {\n max_depth: view.commonViewMetrics.scroll.maxDepth,\n max_depth_scroll_top: view.commonViewMetrics.scroll.maxDepthScrollTop,\n max_scroll_height: view.commonViewMetrics.scroll.maxScrollHeight,\n max_scroll_height_time: toServerDuration(view.commonViewMetrics.scroll.maxScrollHeightTime),\n },\n }\n : undefined,\n session: {\n has_replay: replayStats ? true : undefined,\n is_active: view.sessionIsActive ? undefined : false,\n },\n privacy: {\n replay_level: configuration.defaultPrivacyLevel,\n },\n };\n if (!isEmptyObject(view.customTimings)) {\n viewEvent.view.custom_timings = mapValues(view.customTimings, toServerDuration);\n }\n return {\n rawRumEvent: viewEvent,\n startTime: view.startClocks.relative,\n domainContext: {\n location: view.location,\n },\n };\n}\nfunction discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=viewCollection.js.map","import { ValueHistory } from '../../tools/valueHistory';\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { addEventListener, addEventListeners } from '../../browser/addEventListener';\nimport { clearInterval, setInterval } from '../../tools/timer';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { startSessionStore } from './sessionStore';\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nvar stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState) {\n // TODO - Improve configuration type and remove assertion\n var sessionStore = startSessionStore(configuration.sessionStoreStrategyType, productKey, computeSessionState);\n stopCallbacks.push(function () { return sessionStore.stop(); });\n var sessionContextHistory = new ValueHistory(SESSION_CONTEXT_TIMEOUT_DELAY);\n stopCallbacks.push(function () { return sessionContextHistory.stop(); });\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n });\n sessionStore.expireObservable.subscribe(function () {\n sessionContextHistory.closeActive(relativeNow());\n });\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackActivity(configuration, function () { return sessionStore.expandOrRenewSession(); });\n trackVisibility(configuration, function () { return sessionStore.expandSession(); });\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n };\n }\n return {\n findActiveSession: function (startTime) { return sessionContextHistory.find(startTime); },\n renewObservable: sessionStore.renewObservable,\n expireObservable: sessionStore.expireObservable,\n expire: sessionStore.expire,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach(function (e) { return e(); });\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n var stop = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"scroll\" /* DOM_EVENT.SCROLL */], expandOrRenewSession, { capture: true, passive: true }).stop;\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n var stop = addEventListener(configuration, document, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, expandSessionWhenVisible).stop;\n stopCallbacks.push(stop);\n var visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval);\n });\n}\n//# sourceMappingURL=sessionManager.js.map","import { Observable, noop, performDraw, startSessionManager } from '@datadog/browser-core';\nexport var RUM_SESSION_KEY = 'rum';\nexport function startRumSessionManager(configuration, lifeCycle) {\n var sessionManager = startSessionManager(configuration, RUM_SESSION_KEY, function (rawTrackingType) {\n return computeSessionState(configuration, rawTrackingType);\n });\n sessionManager.expireObservable.subscribe(function () {\n lifeCycle.notify(7 /* LifeCycleEventType.SESSION_EXPIRED */);\n });\n sessionManager.renewObservable.subscribe(function () {\n lifeCycle.notify(8 /* LifeCycleEventType.SESSION_RENEWED */);\n });\n return {\n findTrackedSession: function (startTime) {\n var session = sessionManager.findActiveSession(startTime);\n if (!session || !isTypeTracked(session.trackingType)) {\n return;\n }\n var plan = session.trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */\n ? 2 /* RumSessionPlan.WITH_SESSION_REPLAY */\n : 1 /* RumSessionPlan.WITHOUT_SESSION_REPLAY */;\n return {\n id: session.id,\n plan: plan,\n sessionReplayAllowed: plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n longTaskAllowed: configuration.trackLongTasks !== undefined\n ? configuration.trackLongTasks\n : configuration.oldPlansBehavior && plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n resourceAllowed: configuration.trackResources !== undefined\n ? configuration.trackResources\n : configuration.oldPlansBehavior && plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n };\n },\n expire: sessionManager.expire,\n expireObservable: sessionManager.expireObservable,\n };\n}\n/**\n * Start a tracked replay session stub\n */\nexport function startRumSessionManagerStub() {\n var session = {\n id: '00000000-aaaa-0000-aaaa-000000000000',\n plan: 1 /* RumSessionPlan.WITHOUT_SESSION_REPLAY */,\n sessionReplayAllowed: false,\n longTaskAllowed: true,\n resourceAllowed: true,\n };\n return {\n findTrackedSession: function () { return session; },\n expire: noop,\n expireObservable: new Observable(),\n };\n}\nfunction computeSessionState(configuration, rawTrackingType) {\n var trackingType;\n if (hasValidRumSession(rawTrackingType)) {\n trackingType = rawTrackingType;\n }\n else if (!performDraw(configuration.sessionSampleRate)) {\n trackingType = \"0\" /* RumTrackingType.NOT_TRACKED */;\n }\n else if (!performDraw(configuration.sessionReplaySampleRate)) {\n trackingType = \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */;\n }\n else {\n trackingType = \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */;\n }\n return {\n trackingType: trackingType,\n isTracked: isTypeTracked(trackingType),\n };\n}\nfunction hasValidRumSession(trackingType) {\n return (trackingType === \"0\" /* RumTrackingType.NOT_TRACKED */ ||\n trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */ ||\n trackingType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */);\n}\nfunction isTypeTracked(rumSessionType) {\n return (rumSessionType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */ ||\n rumSessionType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */);\n}\n//# sourceMappingURL=rumSessionManager.js.map","import { display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nvar Batch = /** @class */ (function () {\n function Batch(request, flushController, messageBytesLimit) {\n var _this = this;\n this.request = request;\n this.flushController = flushController;\n this.messageBytesLimit = messageBytesLimit;\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n this.flushSubscription = this.flushController.flushObservable.subscribe(function (event) { return _this.flush(event); });\n }\n Batch.prototype.add = function (message) {\n this.addOrUpdate(message);\n };\n Batch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key);\n };\n Batch.prototype.stop = function () {\n this.flushSubscription.unsubscribe();\n };\n Batch.prototype.flush = function (event) {\n var messages = this.pushOnlyBuffer.concat(objectValues(this.upsertBuffer));\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n var payload = { data: messages.join('\\n'), bytesCount: event.bytesCount, flushReason: event.reason };\n if (isPageExitReason(event.reason)) {\n this.request.sendOnExit(payload);\n }\n else {\n this.request.send(payload);\n }\n };\n Batch.prototype.addOrUpdate = function (message, key) {\n var _a = this.process(message), processedMessage = _a.processedMessage, messageBytesCount = _a.messageBytesCount;\n if (messageBytesCount >= this.messageBytesLimit) {\n display.warn(\"Discarded a message whose size was bigger than the maximum allowed size \".concat(this.messageBytesLimit, \"KB.\"));\n return;\n }\n if (this.hasMessageFor(key)) {\n this.remove(key);\n }\n this.push(processedMessage, messageBytesCount, key);\n };\n Batch.prototype.process = function (message) {\n var processedMessage = jsonStringify(message);\n var messageBytesCount = computeBytesCount(processedMessage);\n return { processedMessage: processedMessage, messageBytesCount: messageBytesCount };\n };\n Batch.prototype.push = function (processedMessage, messageBytesCount, key) {\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 0 ? 1 : 0;\n this.flushController.notifyBeforeAddMessage(messageBytesCount + separatorBytesCount);\n if (key !== undefined) {\n this.upsertBuffer[key] = processedMessage;\n }\n else {\n this.pushOnlyBuffer.push(processedMessage);\n }\n this.flushController.notifyAfterAddMessage();\n };\n Batch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key];\n delete this.upsertBuffer[key];\n var messageBytesCount = computeBytesCount(removedMessage);\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 1 ? 1 : 0;\n this.flushController.notifyAfterRemoveMessage(messageBytesCount + separatorBytesCount);\n };\n Batch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined;\n };\n return Batch;\n}());\nexport { Batch };\n//# sourceMappingURL=batch.js.map","import { setTimeout } from '../tools/timer';\nimport { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils';\nimport { isServerError } from '../tools/utils/responseUtils';\nimport { ErrorSource } from '../domain/error/error.types';\nexport var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport var MAX_ONGOING_REQUESTS = 32;\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport var MAX_BACKOFF_TIME = ONE_MINUTE;\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus === 0 /* TransportStatus.UP */ &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)) {\n send(payload, state, sendStrategy, {\n onSuccess: function () { return retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, endpointType, reportError); },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, endpointType, reportError);\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, _a) {\n var onSuccess = _a.onSuccess, onFailure = _a.onFailure;\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, function (response) {\n state.bandwidthMonitor.remove(payload);\n if (!shouldRetryRequest(response)) {\n state.transportStatus = 0 /* TransportStatus.UP */;\n onSuccess();\n }\n else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0 ? 1 /* TransportStatus.FAILURE_DETECTED */ : 2 /* TransportStatus.DOWN */;\n payload.retry = {\n count: payload.retry ? payload.retry.count + 1 : 1,\n lastFailureStatus: response.status,\n };\n onFailure();\n }\n });\n}\nfunction retryQueuedPayloads(reason, state, sendStrategy, endpointType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: \"Reached max \".concat(endpointType, \" events size queued for upload: \").concat(MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE, \"MiB\"),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n var previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, endpointType, reportError);\n }\n}\nfunction shouldRetryRequest(response) {\n return (response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status)));\n}\nexport function newRetryState() {\n return {\n transportStatus: 0 /* TransportStatus.UP */,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n };\n}\nfunction newPayloadQueue() {\n var queue = [];\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first: function () {\n return queue[0];\n },\n dequeue: function () {\n var payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size: function () {\n return queue.length;\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add: function (payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove: function (payload) {\n this.ongoingRequestCount -= 1;\n this.ongoingByteCount -= payload.bytesCount;\n },\n };\n}\n//# sourceMappingURL=sendWithRetryStrategy.js.map","import { addTelemetryError } from '../domain/telemetry';\nimport { monitor } from '../tools/monitor';\nimport { addEventListener } from '../browser/addEventListener';\nimport { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy';\nexport function createHttpRequest(configuration, endpointBuilder, bytesLimit, reportError) {\n var retryState = newRetryState();\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse);\n };\n return {\n send: function (payload) {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.endpointType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload) {\n var canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n var beaconUrl = endpointBuilder.build('beacon', payload);\n var isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data);\n}\nvar hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse) {\n var canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n var fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor(function (response) { return onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type }); }), monitor(function () {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }\n}\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a');\n }\n catch (_a) {\n return false;\n }\n}\nexport function sendXHR(configuration, url, data, onResponse) {\n var request = new XMLHttpRequest();\n request.open('POST', url, true);\n addEventListener(configuration, request, 'loadend', function () {\n onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: request.status });\n }, {\n // prevent multiple onResponse callbacks\n // if the xhr instance is reused by a third party\n once: true,\n });\n request.send(data);\n}\n//# sourceMappingURL=httpRequest.js.map","import { Observable } from '../tools/observable';\nimport { clearTimeout, setTimeout } from '../tools/timer';\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController(_a) {\n var messagesLimit = _a.messagesLimit, bytesLimit = _a.bytesLimit, durationLimit = _a.durationLimit, pageExitObservable = _a.pageExitObservable, sessionExpireObservable = _a.sessionExpireObservable;\n var pageExitSubscription = pageExitObservable.subscribe(function (event) { return flush(event.reason); });\n var sessionExpireSubscription = sessionExpireObservable.subscribe(function () { return flush('session_expire'); });\n var flushObservable = new Observable(function () { return function () {\n pageExitSubscription.unsubscribe();\n sessionExpireSubscription.unsubscribe();\n }; });\n var currentBytesCount = 0;\n var currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n var messagesCount = currentMessagesCount;\n var bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount,\n });\n }\n var durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n flushObservable: flushObservable,\n get messagesCount() {\n return currentMessagesCount;\n },\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n */\n notifyBeforeAddMessage: function (messageBytesCount) {\n if (currentBytesCount + messageBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1;\n currentBytesCount += messageBytesCount;\n scheduleDurationLimitTimeout();\n },\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n */\n notifyAfterAddMessage: function () {\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit');\n }\n else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n },\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { Batch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable) {\n var primaryBatch = createBatch(configuration, primary.endpoint);\n var replicaBatch = replica && createBatch(configuration, replica.endpoint);\n function createBatch(configuration, endpointBuilder) {\n return new Batch(createHttpRequest(configuration, endpointBuilder, configuration.batchBytesLimit, reportError), createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable,\n }), configuration.messageBytesLimit);\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add: function (message, replicated) {\n if (replicated === void 0) { replicated = true; }\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: function (message, key) {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: function () {\n primaryBatch.stop();\n replicaBatch === null || replicaBatch === void 0 ? void 0 : replicaBatch.stop();\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","import { combine, isTelemetryReplicationAllowed, startBatchWithReplica } from '@datadog/browser-core';\nexport function startRumBatch(configuration, lifeCycle, telemetryEventObservable, reportError, pageExitObservable, sessionExpireObservable) {\n var replica = configuration.replica;\n var batch = startBatchWithReplica(configuration, {\n endpoint: configuration.rumEndpointBuilder,\n }, replica && {\n endpoint: replica.rumEndpointBuilder,\n transformMessage: function (message) { return combine(message, { application: { id: replica.applicationId } }); },\n }, reportError, pageExitObservable, sessionExpireObservable);\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n if (serverRumEvent.type === \"view\" /* RumEventType.VIEW */) {\n batch.upsert(serverRumEvent, serverRumEvent.view.id);\n }\n else {\n batch.add(serverRumEvent);\n }\n });\n telemetryEventObservable.subscribe(function (event) { return batch.add(event, isTelemetryReplicationAllowed(configuration)); });\n return batch;\n}\n//# sourceMappingURL=startRumBatch.js.map","import { getEventBridge } from '@datadog/browser-core';\nexport function startRumEventBridge(lifeCycle) {\n var bridge = getEventBridge();\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n bridge.send('rum', serverRumEvent);\n });\n}\n//# sourceMappingURL=startRumEventBridge.js.map","import { SESSION_TIME_OUT_DELAY, relativeNow, ValueHistory } from '@datadog/browser-core';\n/**\n * We want to attach to an event:\n * - the url corresponding to its start\n * - the referrer corresponding to the previous view url (or document referrer for initial view)\n */\nexport var URL_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startUrlContexts(lifeCycle, locationChangeObservable, location) {\n var urlContextHistory = new ValueHistory(URL_CONTEXT_TIME_OUT_DELAY);\n var previousViewUrl;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n urlContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n var viewUrl = location.href;\n urlContextHistory.add(buildUrlContext({\n url: viewUrl,\n referrer: !previousViewUrl ? document.referrer : previousViewUrl,\n }), startClocks.relative);\n previousViewUrl = viewUrl;\n });\n var locationChangeSubscription = locationChangeObservable.subscribe(function (_a) {\n var newLocation = _a.newLocation;\n var current = urlContextHistory.find();\n if (current) {\n var changeTime = relativeNow();\n urlContextHistory.closeActive(changeTime);\n urlContextHistory.add(buildUrlContext({\n url: newLocation.href,\n referrer: current.referrer,\n }), changeTime);\n }\n });\n function buildUrlContext(_a) {\n var url = _a.url, referrer = _a.referrer;\n return {\n url: url,\n referrer: referrer,\n };\n }\n return {\n findUrl: function (startTime) { return urlContextHistory.find(startTime); },\n stop: function () {\n locationChangeSubscription.unsubscribe();\n urlContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=urlContexts.js.map","import { addEventListener, instrumentMethodAndCallOriginal, Observable, shallowClone, } from '@datadog/browser-core';\nexport function createLocationChangeObservable(configuration, location) {\n var currentLocation = shallowClone(location);\n var observable = new Observable(function () {\n var stopHistoryTracking = trackHistory(configuration, onLocationChange).stop;\n var stopHashTracking = trackHash(configuration, onLocationChange).stop;\n return function () {\n stopHistoryTracking();\n stopHashTracking();\n };\n });\n function onLocationChange() {\n if (currentLocation.href === location.href) {\n return;\n }\n var newLocation = shallowClone(location);\n observable.notify({\n newLocation: newLocation,\n oldLocation: currentLocation,\n });\n currentLocation = newLocation;\n }\n return observable;\n}\nfunction trackHistory(configuration, onHistoryChange) {\n var stopInstrumentingPushState = instrumentMethodAndCallOriginal(history, 'pushState', {\n after: onHistoryChange,\n }).stop;\n var stopInstrumentingReplaceState = instrumentMethodAndCallOriginal(history, 'replaceState', {\n after: onHistoryChange,\n }).stop;\n var removeListener = addEventListener(configuration, window, \"popstate\" /* DOM_EVENT.POP_STATE */, onHistoryChange).stop;\n return {\n stop: function () {\n stopInstrumentingPushState();\n stopInstrumentingReplaceState();\n removeListener();\n },\n };\n}\nfunction trackHash(configuration, onHashChange) {\n return addEventListener(configuration, window, \"hashchange\" /* DOM_EVENT.HASH_CHANGE */, onHashChange);\n}\n//# sourceMappingURL=locationChangeObservable.js.map","import { warnIfCustomerDataLimitReached, throttle, jsonStringify, computeBytesCount, noop, isExperimentalFeatureEnabled, SESSION_TIME_OUT_DELAY, ValueHistory, ExperimentalFeature, } from '@datadog/browser-core';\nexport var FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\n/**\n * Start feature flag contexts\n *\n * Feature flag contexts follow the life of views.\n * A new context is added when a view is created and ended when the view is ended\n *\n * Note: we choose not to add a new context at each evaluation to save memory\n */\nexport function startFeatureFlagContexts(lifeCycle, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.FEATURE_FLAGS)) {\n return {\n findFeatureFlagEvaluations: function () { return undefined; },\n getFeatureFlagBytesCount: function () { return 0; },\n addFeatureFlagEvaluation: noop,\n stop: noop,\n };\n }\n var featureFlagContexts = new ValueHistory(FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY);\n var bytesCountCache = 0;\n var alreadyWarned = false;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n featureFlagContexts.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n featureFlagContexts.add({}, startClocks.relative);\n bytesCountCache = 0;\n });\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call addFeatureFlagEvaluation API synchronously multiple times in a row\n var _a = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, 0 /* CustomerDataType.FeatureFlag */);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY), computeBytesCountThrottled = _a.throttled, cancelPendingComputation = _a.cancel;\n return {\n findFeatureFlagEvaluations: function (startTime) { return featureFlagContexts.find(startTime); },\n getFeatureFlagBytesCount: function () {\n var currentContext = featureFlagContexts.find();\n if (!currentContext) {\n return 0;\n }\n return bytesCountCache;\n },\n addFeatureFlagEvaluation: function (key, value) {\n var currentContext = featureFlagContexts.find();\n if (currentContext) {\n currentContext[key] = value;\n computeBytesCountThrottled(currentContext);\n }\n },\n stop: cancelPendingComputation,\n };\n}\n//# sourceMappingURL=featureFlagContext.js.map","import { isEmptyObject, includes, performDraw, ONE_SECOND, addTelemetryDebug, setInterval } from '@datadog/browser-core';\nexport var MEASURES_PERIOD_DURATION = 10 * ONE_SECOND;\nvar currentPeriodMeasures;\nvar currentBatchMeasures;\nvar batchHasRumEvent;\nexport function startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batchFlushObservable) {\n var customerDataTelemetryEnabled = telemetry.enabled && performDraw(configuration.customerDataTelemetrySampleRate);\n if (!customerDataTelemetryEnabled) {\n return;\n }\n initCurrentPeriodMeasures();\n initCurrentBatchMeasures();\n // We measure the data of every view updates even if there could only be one per batch due to the upsert\n // It means that contexts bytes count sums can be higher than it really is\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n batchHasRumEvent = true;\n updateMeasure(currentBatchMeasures.globalContextBytes, !isEmptyObject(globalContextManager.get()) ? globalContextManager.getBytesCount() : 0);\n updateMeasure(currentBatchMeasures.userContextBytes, !isEmptyObject(userContextManager.get()) ? userContextManager.getBytesCount() : 0);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations();\n var hasFeatureFlagContext = includes([\"view\" /* RumEventType.VIEW */, \"error\" /* RumEventType.ERROR */], event.type) &&\n featureFlagContext &&\n !isEmptyObject(featureFlagContext);\n updateMeasure(currentBatchMeasures.featureFlagBytes, hasFeatureFlagContext ? featureFlagContexts.getFeatureFlagBytesCount() : 0);\n });\n batchFlushObservable.subscribe(function (_a) {\n var bytesCount = _a.bytesCount, messagesCount = _a.messagesCount;\n // Don't measure batch that only contains telemetry events to avoid batch sending loop\n // It could happen because after each batch we are adding a customer data measures telemetry event to the next one\n if (!batchHasRumEvent) {\n return;\n }\n currentPeriodMeasures.batchCount += 1;\n updateMeasure(currentPeriodMeasures.batchBytesCount, bytesCount);\n updateMeasure(currentPeriodMeasures.batchMessagesCount, messagesCount);\n mergeMeasure(currentPeriodMeasures.globalContextBytes, currentBatchMeasures.globalContextBytes);\n mergeMeasure(currentPeriodMeasures.userContextBytes, currentBatchMeasures.userContextBytes);\n mergeMeasure(currentPeriodMeasures.featureFlagBytes, currentBatchMeasures.featureFlagBytes);\n initCurrentBatchMeasures();\n });\n setInterval(sendCurrentPeriodMeasures, MEASURES_PERIOD_DURATION);\n}\nfunction sendCurrentPeriodMeasures() {\n if (currentPeriodMeasures.batchCount === 0) {\n return;\n }\n addTelemetryDebug('Customer data measures', currentPeriodMeasures);\n initCurrentPeriodMeasures();\n}\nfunction createMeasure() {\n return { min: Infinity, max: 0, sum: 0 };\n}\nfunction updateMeasure(measure, value) {\n measure.sum += value;\n measure.min = Math.min(measure.min, value);\n measure.max = Math.max(measure.max, value);\n}\nfunction mergeMeasure(target, source) {\n target.sum += source.sum;\n target.min = Math.min(target.min, source.min);\n target.max = Math.max(target.max, source.max);\n}\nfunction initCurrentPeriodMeasures() {\n currentPeriodMeasures = {\n batchCount: 0,\n batchBytesCount: createMeasure(),\n batchMessagesCount: createMeasure(),\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\nfunction initCurrentBatchMeasures() {\n batchHasRumEvent = false;\n currentBatchMeasures = {\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\n//# sourceMappingURL=startCustomerDataTelemetry.js.map","import { elapsed, ValueHistory, SESSION_TIME_OUT_DELAY, toServerDuration, addEventListeners, relativeNow, } from '@datadog/browser-core';\n// Arbitrary value to cap number of element for memory consumption in the browser\nexport var MAX_PAGE_STATE_ENTRIES = 4000;\n// Arbitrary value to cap number of element for backend & to save bandwidth\nexport var MAX_PAGE_STATE_ENTRIES_SELECTABLE = 500;\nexport var PAGE_STATE_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startPageStateHistory(configuration, maxPageStateEntriesSelectable) {\n if (maxPageStateEntriesSelectable === void 0) { maxPageStateEntriesSelectable = MAX_PAGE_STATE_ENTRIES_SELECTABLE; }\n var pageStateHistory = new ValueHistory(PAGE_STATE_CONTEXT_TIME_OUT_DELAY, MAX_PAGE_STATE_ENTRIES);\n var currentPageState;\n addPageState(getPageState(), relativeNow());\n var stopEventListeners = addEventListeners(configuration, window, [\n \"pageshow\" /* DOM_EVENT.PAGE_SHOW */,\n \"focus\" /* DOM_EVENT.FOCUS */,\n \"blur\" /* DOM_EVENT.BLUR */,\n \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */,\n \"resume\" /* DOM_EVENT.RESUME */,\n \"freeze\" /* DOM_EVENT.FREEZE */,\n \"pagehide\" /* DOM_EVENT.PAGE_HIDE */,\n ], function (event) {\n // Only get events fired by the browser to avoid false currentPageState changes done with custom events\n // cf: developer extension auto flush: https://github.com/DataDog/browser-sdk/blob/2f72bf05a672794c9e33965351964382a94c72ba/developer-extension/src/panel/flushEvents.ts#L11-L12\n if (event.isTrusted) {\n addPageState(computePageState(event), event.timeStamp);\n }\n }, { capture: true }).stop;\n function addPageState(nextPageState, startTime) {\n if (startTime === void 0) { startTime = relativeNow(); }\n if (nextPageState === currentPageState) {\n return;\n }\n currentPageState = nextPageState;\n pageStateHistory.closeActive(startTime);\n pageStateHistory.add({ state: currentPageState, startTime: startTime }, startTime);\n }\n return {\n findAll: function (eventStartTime, duration) {\n var pageStateEntries = pageStateHistory.findAll(eventStartTime, duration);\n if (pageStateEntries.length === 0) {\n return;\n }\n var pageStateServerEntries = [];\n // limit the number of entries to return\n var limit = Math.max(0, pageStateEntries.length - maxPageStateEntriesSelectable);\n // loop page state entries backward to return the selected ones in desc order\n for (var index = pageStateEntries.length - 1; index >= limit; index--) {\n var pageState = pageStateEntries[index];\n // compute the start time relative to the event start time (ex: to be relative to the view start time)\n var relativeStartTime = elapsed(eventStartTime, pageState.startTime);\n pageStateServerEntries.push({\n state: pageState.state,\n start: toServerDuration(relativeStartTime),\n });\n }\n return pageStateServerEntries;\n },\n isInActivePageStateAt: function (startTime) {\n var pageStateEntry = pageStateHistory.find(startTime);\n return pageStateEntry !== undefined && pageStateEntry.state === \"active\" /* PageState.ACTIVE */;\n },\n addPageState: addPageState,\n stop: function () {\n stopEventListeners();\n pageStateHistory.stop();\n },\n };\n}\nfunction computePageState(event) {\n if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n return \"frozen\" /* PageState.FROZEN */;\n }\n else if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */) {\n return event.persisted ? \"frozen\" /* PageState.FROZEN */ : \"terminated\" /* PageState.TERMINATED */;\n }\n return getPageState();\n}\nfunction getPageState() {\n if (document.visibilityState === 'hidden') {\n return \"hidden\" /* PageState.HIDDEN */;\n }\n if (document.hasFocus()) {\n return \"active\" /* PageState.ACTIVE */;\n }\n return \"passive\" /* PageState.PASSIVE */;\n}\n//# sourceMappingURL=pageStateHistory.js.map","import { getViewportDimension, initViewportObservable } from '../../browser/viewportObservable';\nexport function startDisplayContext(configuration) {\n var viewport = getViewportDimension();\n var unsubscribeViewport = initViewportObservable(configuration).subscribe(function (viewportDimension) {\n viewport = viewportDimension;\n }).unsubscribe;\n return {\n get: function () { return ({ viewport: viewport }); },\n stop: unsubscribeViewport,\n };\n}\n//# sourceMappingURL=displayContext.js.map","import { sendToExtension, createPageExitObservable, addTelemetryConfiguration, startTelemetry, canUseEventBridge, getEventBridge, addTelemetryDebug, } from '@datadog/browser-core';\nimport { createDOMMutationObservable } from '../browser/domMutationObservable';\nimport { startPerformanceCollection } from '../browser/performanceCollection';\nimport { startRumAssembly } from '../domain/assembly';\nimport { startInternalContext } from '../domain/contexts/internalContext';\nimport { LifeCycle } from '../domain/lifeCycle';\nimport { startViewContexts } from '../domain/contexts/viewContexts';\nimport { startRequestCollection } from '../domain/requestCollection';\nimport { startActionCollection } from '../domain/action/actionCollection';\nimport { startErrorCollection } from '../domain/error/errorCollection';\nimport { startLongTaskCollection } from '../domain/longTask/longTaskCollection';\nimport { startResourceCollection } from '../domain/resource/resourceCollection';\nimport { startViewCollection } from '../domain/view/viewCollection';\nimport { startRumSessionManager, startRumSessionManagerStub } from '../domain/rumSessionManager';\nimport { startRumBatch } from '../transport/startRumBatch';\nimport { startRumEventBridge } from '../transport/startRumEventBridge';\nimport { startUrlContexts } from '../domain/contexts/urlContexts';\nimport { createLocationChangeObservable } from '../browser/locationChangeObservable';\nimport { serializeRumConfiguration } from '../domain/configuration';\nimport { startFeatureFlagContexts } from '../domain/contexts/featureFlagContext';\nimport { startCustomerDataTelemetry } from '../domain/startCustomerDataTelemetry';\nimport { startPageStateHistory } from '../domain/contexts/pageStateHistory';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nimport { startDisplayContext } from '../domain/contexts/displayContext';\nexport function startRum(initConfiguration, configuration, recorderApi, globalContextManager, userContextManager, initialViewOptions) {\n var cleanupTasks = [];\n var lifeCycle = new LifeCycle();\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) { return sendToExtension('rum', event); });\n var telemetry = startRumTelemetry(configuration);\n telemetry.setContextProvider(function () {\n var _a, _b;\n return ({\n application: {\n id: configuration.applicationId,\n },\n session: {\n id: (_a = session.findTrackedSession()) === null || _a === void 0 ? void 0 : _a.id,\n },\n view: {\n id: (_b = viewContexts.findView()) === null || _b === void 0 ? void 0 : _b.id,\n },\n action: {\n id: actionContexts.findActionId(),\n },\n });\n });\n var reportError = function (error) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error });\n addTelemetryDebug('Error reported to customer', { 'error.message': error.message });\n };\n var featureFlagContexts = startFeatureFlagContexts(lifeCycle);\n var pageExitObservable = createPageExitObservable(configuration);\n var pageExitSubscription = pageExitObservable.subscribe(function (event) {\n lifeCycle.notify(9 /* LifeCycleEventType.PAGE_EXITED */, event);\n });\n cleanupTasks.push(function () { return pageExitSubscription.unsubscribe(); });\n var session = !canUseEventBridge() ? startRumSessionManager(configuration, lifeCycle) : startRumSessionManagerStub();\n if (!canUseEventBridge()) {\n var batch_1 = startRumBatch(configuration, lifeCycle, telemetry.observable, reportError, pageExitObservable, session.expireObservable);\n cleanupTasks.push(function () { return batch_1.stop(); });\n startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batch_1.flushObservable);\n }\n else {\n startRumEventBridge(lifeCycle);\n }\n var domMutationObservable = createDOMMutationObservable();\n var locationChangeObservable = createLocationChangeObservable(configuration, location);\n var _a = startRumEventCollection(lifeCycle, configuration, location, session, locationChangeObservable, domMutationObservable, function () { return buildCommonContext(globalContextManager, userContextManager, recorderApi); }, reportError), viewContexts = _a.viewContexts, pageStateHistory = _a.pageStateHistory, urlContexts = _a.urlContexts, actionContexts = _a.actionContexts, addAction = _a.addAction, stopRumEventCollection = _a.stop;\n cleanupTasks.push(stopRumEventCollection);\n addTelemetryConfiguration(serializeRumConfiguration(initConfiguration));\n startLongTaskCollection(lifeCycle, session);\n startResourceCollection(lifeCycle, configuration, session, pageStateHistory);\n var _b = startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, initialViewOptions), addTiming = _b.addTiming, startView = _b.startView, stopViewCollection = _b.stop;\n cleanupTasks.push(stopViewCollection);\n var addError = startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts).addError;\n startRequestCollection(lifeCycle, configuration, session);\n startPerformanceCollection(lifeCycle, configuration);\n var internalContext = startInternalContext(configuration.applicationId, session, viewContexts, actionContexts, urlContexts);\n return {\n addAction: addAction,\n addError: addError,\n addTiming: addTiming,\n addFeatureFlagEvaluation: featureFlagContexts.addFeatureFlagEvaluation,\n startView: startView,\n lifeCycle: lifeCycle,\n viewContexts: viewContexts,\n session: session,\n stopSession: function () { return session.expire(); },\n getInternalContext: internalContext.get,\n stop: function () {\n cleanupTasks.forEach(function (task) { return task(); });\n },\n };\n}\nfunction startRumTelemetry(configuration) {\n var telemetry = startTelemetry(\"browser-rum-sdk\" /* TelemetryService.RUM */, configuration);\n if (canUseEventBridge()) {\n var bridge_1 = getEventBridge();\n telemetry.observable.subscribe(function (event) { return bridge_1.send('internal_telemetry', event); });\n }\n return telemetry;\n}\nexport function startRumEventCollection(lifeCycle, configuration, location, sessionManager, locationChangeObservable, domMutationObservable, buildCommonContext, reportError) {\n var viewContexts = startViewContexts(lifeCycle);\n var urlContexts = startUrlContexts(lifeCycle, locationChangeObservable, location);\n var pageStateHistory = startPageStateHistory(configuration);\n var _a = startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory), addAction = _a.addAction, actionContexts = _a.actionContexts;\n var displayContext = startDisplayContext(configuration);\n startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, displayContext, buildCommonContext, reportError);\n return {\n viewContexts: viewContexts,\n pageStateHistory: pageStateHistory,\n urlContexts: urlContexts,\n addAction: addAction,\n actionContexts: actionContexts,\n stop: function () {\n displayContext.stop();\n pageStateHistory.stop();\n urlContexts.stop();\n viewContexts.stop();\n pageStateHistory.stop();\n },\n };\n}\n//# sourceMappingURL=startRum.js.map","import { INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_EU1 } from '@datadog/browser-core';\nexport function getSessionReplayUrl(configuration, _a) {\n var session = _a.session, viewContext = _a.viewContext, errorType = _a.errorType;\n var sessionId = session ? session.id : 'no-session-id';\n var parameters = [];\n if (errorType !== undefined) {\n parameters.push(\"error-type=\".concat(errorType));\n }\n if (viewContext) {\n parameters.push(\"seed=\".concat(viewContext.id));\n parameters.push(\"from=\".concat(viewContext.startClocks.timeStamp));\n }\n var origin = getDatadogSiteUrl(configuration);\n var path = \"/rum/replay/sessions/\".concat(sessionId);\n return \"\".concat(origin).concat(path, \"?\").concat(parameters.join('&'));\n}\nexport function getDatadogSiteUrl(rumConfiguration) {\n var site = rumConfiguration.site;\n var subdomain = rumConfiguration.subdomain || getSiteDefaultSubdomain(rumConfiguration);\n return \"https://\".concat(subdomain ? \"\".concat(subdomain, \".\") : '').concat(site);\n}\nfunction getSiteDefaultSubdomain(configuration) {\n switch (configuration.site) {\n case INTAKE_SITE_US1:\n case INTAKE_SITE_EU1:\n return 'app';\n case INTAKE_SITE_STAGING:\n return 'dd';\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=getSessionReplayUrl.js.map","export { makeRumPublicApi } from './boot/rumPublicApi';\nexport { startRum } from './boot/startRum';\nexport { LifeCycle } from './domain/lifeCycle';\nexport { getMutationObserverConstructor } from './browser/domMutationObservable';\nexport { initViewportObservable, getViewportDimension } from './browser/viewportObservable';\nexport { getScrollX, getScrollY } from './browser/scroll';\nexport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './domain/action/getActionNameFromElement';\nexport { STABLE_ATTRIBUTES } from './domain/getSelectorFromElement';\nexport * from './browser/htmlDomUtils';\nexport { getSessionReplayUrl } from './domain/getSessionReplayUrl';\n//# sourceMappingURL=index.js.map","export var RecordType = {\n FullSnapshot: 2,\n IncrementalSnapshot: 3,\n Meta: 4,\n Focus: 6,\n ViewEnd: 7,\n VisualViewport: 8,\n FrustrationRecord: 9,\n};\nexport var NodeType = {\n Document: 0,\n DocumentType: 1,\n Element: 2,\n Text: 3,\n CDATA: 4,\n DocumentFragment: 11,\n};\nexport var IncrementalSource = {\n Mutation: 0,\n MouseMove: 1,\n MouseInteraction: 2,\n Scroll: 3,\n ViewportResize: 4,\n Input: 5,\n TouchMove: 6,\n MediaInteraction: 7,\n StyleSheetRule: 8,\n // CanvasMutation : 9,\n // Font : 10,\n};\nexport var MouseInteractionType = {\n MouseUp: 0,\n MouseDown: 1,\n Click: 2,\n ContextMenu: 3,\n DblClick: 4,\n Focus: 5,\n Blur: 6,\n TouchStart: 7,\n TouchEnd: 9,\n};\nexport var MediaInteractionType = {\n Play: 0,\n Pause: 1,\n};\n//# sourceMappingURL=sessionReplayConstants.js.map","export * from './sessionReplay';\nexport * from './sessionReplayConstants';\n//# sourceMappingURL=index.js.map","import { assign, timeStampNow } from '@datadog/browser-core';\nimport { RecordType } from '../../types';\nexport function assembleIncrementalSnapshot(source, data) {\n return {\n data: assign({\n source: source,\n }, data),\n type: RecordType.IncrementalSnapshot,\n timestamp: timeStampNow(),\n };\n}\n//# sourceMappingURL=assembly.js.map","import { DefaultPrivacyLevel } from '@datadog/browser-core';\nexport var NodePrivacyLevel = {\n IGNORE: 'ignore',\n HIDDEN: 'hidden',\n ALLOW: DefaultPrivacyLevel.ALLOW,\n MASK: DefaultPrivacyLevel.MASK,\n MASK_USER_INPUT: DefaultPrivacyLevel.MASK_USER_INPUT,\n};\nexport var PRIVACY_ATTR_NAME = 'data-dd-privacy';\n// Privacy Attrs\nexport var PRIVACY_ATTR_VALUE_ALLOW = 'allow';\nexport var PRIVACY_ATTR_VALUE_MASK = 'mask';\nexport var PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input';\nexport var PRIVACY_ATTR_VALUE_HIDDEN = 'hidden';\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport var PRIVACY_CLASS_ALLOW = 'dd-privacy-allow';\nexport var PRIVACY_CLASS_MASK = 'dd-privacy-mask';\nexport var PRIVACY_CLASS_MASK_USER_INPUT = 'dd-privacy-mask-user-input';\nexport var PRIVACY_CLASS_HIDDEN = 'dd-privacy-hidden';\n// Private Replacement Templates\nexport var CENSORED_STRING_MARK = '***';\nexport var CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';\nexport var FORM_PRIVATE_TAG_NAMES = {\n INPUT: true,\n OUTPUT: true,\n TEXTAREA: true,\n SELECT: true,\n OPTION: true,\n DATALIST: true,\n OPTGROUP: true,\n};\n//# sourceMappingURL=constants.js.map","import { isElementNode, getParentNode, isTextNode } from '@datadog/browser-rum-core';\nimport { NodePrivacyLevel, PRIVACY_ATTR_NAME, PRIVACY_ATTR_VALUE_ALLOW, PRIVACY_ATTR_VALUE_MASK, PRIVACY_ATTR_VALUE_MASK_USER_INPUT, PRIVACY_ATTR_VALUE_HIDDEN, PRIVACY_CLASS_ALLOW, PRIVACY_CLASS_MASK, PRIVACY_CLASS_MASK_USER_INPUT, PRIVACY_CLASS_HIDDEN, FORM_PRIVATE_TAG_NAMES, CENSORED_STRING_MARK, } from '../../constants';\nexport var MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 100000;\nvar TEXT_MASKING_CHAR = 'x';\n/**\n * Get node privacy level by iterating over its ancestors. When the direct parent privacy level is\n * know, it is best to use something like:\n *\n * derivePrivacyLevelGivenParent(getNodeSelfPrivacyLevel(node), parentNodePrivacyLevel)\n */\nexport function getNodePrivacyLevel(node, defaultPrivacyLevel) {\n var parentNode = getParentNode(node);\n var parentNodePrivacyLevel = parentNode ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel) : defaultPrivacyLevel;\n var selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n return reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel);\n}\n/**\n * Reduces the next privacy level based on self + parent privacy levels\n */\nexport function reducePrivacyLevel(childPrivacyLevel, parentNodePrivacyLevel) {\n switch (parentNodePrivacyLevel) {\n // These values cannot be overridden\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return parentNodePrivacyLevel;\n }\n switch (childPrivacyLevel) {\n case NodePrivacyLevel.ALLOW:\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.MASK_USER_INPUT:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return childPrivacyLevel;\n default:\n return parentNodePrivacyLevel;\n }\n}\n/**\n * Determines the node's own privacy level without checking for ancestors.\n */\nexport function getNodeSelfPrivacyLevel(node) {\n // Only Element types can have a privacy level set\n if (!isElementNode(node)) {\n return;\n }\n var privAttr = node.getAttribute(PRIVACY_ATTR_NAME);\n // Overrules for replay purpose\n if (node.tagName === 'BASE') {\n return NodePrivacyLevel.ALLOW;\n }\n // Overrules to enforce end-user protection\n if (node.tagName === 'INPUT') {\n var inputElement = node;\n if (inputElement.type === 'password' || inputElement.type === 'email' || inputElement.type === 'tel') {\n return NodePrivacyLevel.MASK;\n }\n if (inputElement.type === 'hidden') {\n return NodePrivacyLevel.MASK;\n }\n var autocomplete = inputElement.getAttribute('autocomplete');\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year]\n if (autocomplete && autocomplete.indexOf('cc-') === 0) {\n return NodePrivacyLevel.MASK;\n }\n }\n // Check HTML privacy attributes and classes\n if (privAttr === PRIVACY_ATTR_VALUE_HIDDEN || node.classList.contains(PRIVACY_CLASS_HIDDEN)) {\n return NodePrivacyLevel.HIDDEN;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK || node.classList.contains(PRIVACY_CLASS_MASK)) {\n return NodePrivacyLevel.MASK;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK_USER_INPUT || node.classList.contains(PRIVACY_CLASS_MASK_USER_INPUT)) {\n return NodePrivacyLevel.MASK_USER_INPUT;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_ALLOW || node.classList.contains(PRIVACY_CLASS_ALLOW)) {\n return NodePrivacyLevel.ALLOW;\n }\n if (shouldIgnoreElement(node)) {\n return NodePrivacyLevel.IGNORE;\n }\n}\n/**\n * Helper aiming to unify `mask` and `mask-user-input` privacy levels:\n *\n * In the `mask` case, it is trivial: we should mask the element.\n *\n * In the `mask-user-input` case, we should mask the element only if it is a \"form\" element or the\n * direct parent is a form element for text nodes).\n *\n * Other `shouldMaskNode` cases are edge cases that should not matter too much (ex: should we mask a\n * node if it is ignored or hidden? it doesn't matter since it won't be serialized).\n */\nexport function shouldMaskNode(node, privacyLevel) {\n switch (privacyLevel) {\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return true;\n case NodePrivacyLevel.MASK_USER_INPUT:\n return isTextNode(node) ? isFormElement(node.parentNode) : isFormElement(node);\n default:\n return false;\n }\n}\nfunction isFormElement(node) {\n if (!node || node.nodeType !== node.ELEMENT_NODE) {\n return false;\n }\n var element = node;\n if (element.tagName === 'INPUT') {\n switch (element.type) {\n case 'button':\n case 'color':\n case 'reset':\n case 'submit':\n return false;\n }\n }\n return !!FORM_PRIVATE_TAG_NAMES[element.tagName];\n}\n/**\n * Text censoring non-destructively maintains whitespace characters in order to preserve text shape\n * during replay.\n */\nexport var censorText = function (text) { return text.replace(/\\S/g, TEXT_MASKING_CHAR); };\nexport function getTextContent(textNode, ignoreWhiteSpace, parentNodePrivacyLevel) {\n var _a;\n // The parent node may not be a html element which has a tagName attribute.\n // So just let it be undefined which is ok in this use case.\n var parentTagName = (_a = textNode.parentElement) === null || _a === void 0 ? void 0 : _a.tagName;\n var textContent = textNode.textContent || '';\n if (ignoreWhiteSpace && !textContent.trim()) {\n return;\n }\n var nodePrivacyLevel = parentNodePrivacyLevel;\n var isScript = parentTagName === 'SCRIPT';\n if (isScript) {\n // For perf reasons, we don't record script (heuristic)\n textContent = CENSORED_STRING_MARK;\n }\n else if (nodePrivacyLevel === NodePrivacyLevel.HIDDEN) {\n // Should never occur, but just in case, we set to CENSORED_MARK.\n textContent = CENSORED_STRING_MARK;\n }\n else if (shouldMaskNode(textNode, nodePrivacyLevel)) {\n if (\n // Scrambling the child list breaks text nodes for DATALIST/SELECT/OPTGROUP\n parentTagName === 'DATALIST' ||\n parentTagName === 'SELECT' ||\n parentTagName === 'OPTGROUP') {\n if (!textContent.trim()) {\n return;\n }\n }\n else if (parentTagName === 'OPTION') {\n //