{"version":3,"file":"static/chunks/5536-93b8c0b97bab96c6.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/@datadog/browser-core/esm/boot/displayAlreadyInitializedError.js?6d65","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/boot/init.js?1cef","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/addEventListener.js?3ab6","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/cookie.js?b528","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/fetchObservable.js?7ea4","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js?dc3f","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js?6c04","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/xhrObservable.js?21a7","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js?c2d0","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js?456c","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js?f222","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/tags.js?40f5","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js?90e0","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/connectivity/connectivity.js?2d9c","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js?9553","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/contextUtils.js?c31f","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/contextManager.js?26b3","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/customerDataTracker.js?aa8e","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/storeContextManager.js?8891","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/error.js?4be7","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/error.types.js?bc78","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js?23a3","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js?eeab","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js?7bd4","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js?2890","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js?6354","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js?6caa","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionStateValidation.js?e944","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionState.js?888d","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js?9f2c","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js?ae65","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js?272a","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js?c635","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js?418a","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js?cf41","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js?0be1","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js?8265","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/trackingConsent.js?6646","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js?93d0","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js?ae58","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js?7f54","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/display.js?8026","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/encoder.js?5f6f","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js?49c8","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js?1dff","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js?064d","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js?ca8b","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/mergeInto.js?1b27","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/monitor.js?aad6","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/observable.js?5658","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js?9789","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/requestIdleCallback.js?39f8","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/sendToExtension.js?f0f8","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js?57df","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js?9749","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/stackTrace/computeStackTrace.js?94d7","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/stackTrace/handlingStack.js?8dba","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/timer.js?62c0","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/arrayUtils.js?1def","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js?3267","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js?ec64","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js?98cb","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js?25e0","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js?776b","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js?67bc","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js?ed7e","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js?b154","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js?bba3","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js?5589","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js?16cd","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/valueHistory.js?d63c","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/eventBridge.js?11ff","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js?401a","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/httpRequest.js?6a52","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/batch.js?0983","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/flushController.js?5e3d","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js?25eb","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js?8c74","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/vital/vitalCollection.js?f3ce","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/plugins.js?d724","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/matchOption.js?991f","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/identifier.js?ed7a","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/sampler.js?4501","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js?5d58","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/configuration/configuration.js?5c02","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/configuration/remoteConfiguration.js?45c0","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/boot/preStartRum.js?1856","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js?54bd","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js?ffcf","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/windowOpenObservable.js?cb9a","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js?6ead","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/assembly.js?00b1","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js?08f6","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js?31f1","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewHistory.js?d2ec","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js?102a","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js?68c3","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/discardNegativeDuration.js?54bd","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js?07d9","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/firstInputPolyfill.js?7b4f","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/performanceObservable.js?a36e","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js?8824","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js?e59d","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/privacy.js?9536","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js?a0e6","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/getSelectorFromElement.js?aab0","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js?e412","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js?ba48","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js?9737","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/interactionSelectorCache.js?9289","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js?0ec7","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js?9f6d","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js?9c70","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js?d995","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js?87f3","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/taskQueue.js?431b","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestResourceEntry.js?6e36","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js?fa8b","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/performanceUtils.js?78d7","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/retrieveInitialDocumentResourceTiming.js?bd72","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js?0dc5","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js?6cee","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js?1606","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInput.js?9a0c","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js?aa83","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js?77d3","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js?f58e","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js?4c5d","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js?be06","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js?f582","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js?fc75","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js?ac1a","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/scroll.js?ca5f","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js?5552","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js?5d0a","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js?9136","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js?c683","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js?bded","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js?7fe4","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js?387a","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js?f4ec","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js?f800","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js?ecb1","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js?55f4","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js?82d3","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js?a761","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js?e1f4","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/cookieObservable.js?2b7c","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciVisibilityContext.js?5063","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/longAnimationFrame/longAnimationFrameCollection.js?f18f","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js?96dc","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/hooks.js?4ebe","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js?c55f","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/boot/startRum.js?2ea1","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js?4a15","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/index.js?9687","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/replayStats.js?e2c4"],"sourcesContent":["import { display } from '../tools/display';\nexport function displayAlreadyInitializedError(sdkName, initConfiguration) {\n if (!initConfiguration.silentMultipleInit) {\n display.error(`${sdkName} is already initialized.`);\n }\n}\n//# sourceMappingURL=displayAlreadyInitializedError.js.map","import { catchUserErrors } from '../tools/catchUserErrors';\nimport { setDebugMode } from '../tools/monitor';\nimport { display } from '../tools/display';\nexport function makePublicApi(stub) {\n const publicApi = {\n version: \"6.5.1\",\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(callback) {\n callback();\n },\n ...stub,\n };\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() {\n return setDebugMode;\n },\n enumerable: false,\n });\n return publicApi;\n}\nexport function defineGlobal(global, name, api) {\n const existingGlobalVariable = global[name];\n if (existingGlobalVariable && !existingGlobalVariable.q && existingGlobalVariable.version) {\n display.warn('SDK is loaded more than once. This is unsupported and might have unexpected behavior.');\n }\n global[name] = api;\n if (existingGlobalVariable && existingGlobalVariable.q) {\n existingGlobalVariable.q.forEach((fn) => catchUserErrors(fn, 'onReady callback threw an error:')());\n }\n}\n//# sourceMappingURL=init.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(configuration, eventTarget, eventNames, listener, { once, capture, passive } = {}) {\n const listenerWithMonitor = monitor((event) => {\n if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {\n return;\n }\n if (once) {\n stop();\n }\n listener(event);\n });\n const options = passive ? { capture, passive } : capture;\n // Use the window.EventTarget.prototype when possible to avoid wrong overrides (e.g: https://github.com/salesforce/lwc/issues/1824)\n const listenerTarget = window.EventTarget && eventTarget instanceof EventTarget ? window.EventTarget.prototype : eventTarget;\n const add = getZoneJsOriginalValue(listenerTarget, 'addEventListener');\n eventNames.forEach((eventName) => add.call(eventTarget, eventName, listenerWithMonitor, options));\n function stop() {\n const remove = getZoneJsOriginalValue(listenerTarget, 'removeEventListener');\n eventNames.forEach((eventName) => remove.call(eventTarget, eventName, listenerWithMonitor, options));\n }\n return {\n stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, findCommaSeparatedValues, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay = 0, options) {\n const date = new Date();\n date.setTime(date.getTime() + expireDelay);\n const expires = `expires=${date.toUTCString()}`;\n const sameSite = options && options.crossSite ? 'none' : 'strict';\n const domain = options && options.domain ? `;domain=${options.domain}` : '';\n const secure = options && options.secure ? ';secure' : '';\n const partitioned = options && options.partitioned ? ';partitioned' : '';\n document.cookie = `${name}=${value};${expires};path=/;samesite=${sameSite}${domain}${secure}${partitioned}`;\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nlet initCookieParsed;\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie);\n }\n return initCookieParsed.get(name);\n}\nexport function resetInitCookies() {\n initCookieParsed = undefined;\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 const testCookieName = `dd_cookie_test_${generateUUID()}`;\n const testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n const 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 */\nlet 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 const testCookieName = `dd_site_test_${generateUUID()}`;\n const testCookieValue = 'test';\n const domainLevels = window.location.hostname.split('.');\n let candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = `${domainLevels.pop()}.${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 { instrumentMethod } from '../tools/instrumentMethod';\nimport { monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nlet fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nexport function resetFetchObservable() {\n fetchObservable = undefined;\n}\nfunction createFetchObservable() {\n return new Observable((observable) => {\n if (!window.fetch) {\n return;\n }\n const { stop } = instrumentMethod(window, 'fetch', (call) => beforeSend(call, observable), {\n computeHandlingStack: true,\n });\n return stop;\n });\n}\nfunction beforeSend({ parameters, onPostCall, handlingStack }, observable) {\n const [input, init] = parameters;\n let methodFromParams = init && init.method;\n if (methodFromParams === undefined && input instanceof Request) {\n methodFromParams = input.method;\n }\n const method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET';\n const url = input instanceof Request ? input.url : normalizeUrl(String(input));\n const startClocks = clocksNow();\n const context = {\n state: 'start',\n init,\n input,\n method,\n startClocks,\n url,\n handlingStack,\n };\n observable.notify(context);\n // Those properties can be changed by observable subscribers\n parameters[0] = context.input;\n parameters[1] = context.init;\n onPostCall((responsePromise) => afterSend(observable, responsePromise, context));\n}\nfunction afterSend(observable, responsePromise, startContext) {\n const context = startContext;\n function reportFetch(partialContext) {\n context.state = 'resolve';\n Object.assign(context, partialContext);\n observable.notify(context);\n }\n responsePromise.then(monitor((response) => {\n reportFetch({\n response,\n responseType: response.type,\n status: response.status,\n isAborted: false,\n });\n }), monitor((error) => {\n var _a, _b;\n reportFetch({\n status: 0,\n isAborted: ((_b = (_a = context.init) === null || _a === void 0 ? void 0 : _a.signal) === null || _b === void 0 ? void 0 : _b.aborted) || (error instanceof DOMException && error.code === DOMException.ABORT_ERR),\n error,\n });\n }));\n}\n//# sourceMappingURL=fetchObservable.js.map","import { Observable } from '../tools/observable';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport const PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n return new Observable((observable) => {\n const { stop: stopListeners } = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */], (event) => {\n 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 });\n const stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, () => {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n return () => {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n}\nexport function isPageExitReason(reason) {\n return objectValues(PageExitReason).includes(reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { noop } from '../tools/utils/functionUtils';\nimport { addEventListener } from './addEventListener';\nexport function runOnReadyState(configuration, expectedReadyState, callback) {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback();\n return { stop: noop };\n }\n const eventName = expectedReadyState === 'complete' ? \"load\" /* DOM_EVENT.LOAD */ : \"DOMContentLoaded\" /* DOM_EVENT.DOM_CONTENT_LOADED */;\n return addEventListener(configuration, window, eventName, callback, { once: true });\n}\nexport function asyncRunOnReadyState(configuration, expectedReadyState) {\n return new Promise((resolve) => {\n runOnReadyState(configuration, expectedReadyState, resolve);\n });\n}\n//# sourceMappingURL=runOnReadyState.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nlet xhrObservable;\nconst xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n return new Observable((observable) => {\n const { stop: stopInstrumentingStart } = instrumentMethod(XMLHttpRequest.prototype, 'open', openXhr);\n const { stop: stopInstrumentingSend } = instrumentMethod(XMLHttpRequest.prototype, 'send', (call) => {\n sendXhr(call, configuration, observable);\n }, { computeHandlingStack: true });\n const { stop: stopInstrumentingAbort } = instrumentMethod(XMLHttpRequest.prototype, 'abort', abortXhr);\n return () => {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n}\nfunction openXhr({ target: xhr, parameters: [method, url] }) {\n xhrContexts.set(xhr, {\n state: 'open',\n method: String(method).toUpperCase(),\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr({ target: xhr, handlingStack }, configuration, observable) {\n const context = xhrContexts.get(xhr);\n if (!context) {\n return;\n }\n const startContext = context;\n startContext.state = 'start';\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = xhr;\n startContext.handlingStack = handlingStack;\n let hasBeenReported = false;\n const { stop: stopInstrumentingOnReadyStateChange } = instrumentMethod(xhr, 'onreadystatechange', () => {\n if (xhr.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 an onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n });\n const onEnd = () => {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n const completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = xhr.status;\n observable.notify(shallowClone(completeContext));\n };\n const { stop: unsubscribeLoadEndListener } = addEventListener(configuration, xhr, 'loadend', onEnd);\n observable.notify(startContext);\n}\nfunction abortXhr({ target: xhr }) {\n const context = xhrContexts.get(xhr);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';\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 { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { TrackingConsent } from '../trackingConsent';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport const DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport const TraceContextInjection = {\n ALL: 'all',\n SAMPLED: 'sampled',\n};\nfunction isString(tag, tagName) {\n if (tag !== undefined && tag !== null && typeof tag !== 'string') {\n display.error(`${tagName} must be defined as a string`);\n return false;\n }\n return true;\n}\nfunction isDatadogSite(site) {\n if (site && typeof site === 'string' && !/(datadog|ddog|datad0g|dd0g)/.test(site)) {\n display.error(`Site should be a valid Datadog site. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/site/.`);\n return false;\n }\n return true;\n}\nexport function isSampleRate(sampleRate, name) {\n if (sampleRate !== undefined && !isPercentage(sampleRate)) {\n display.error(`${name} Sample Rate should be a number between 0 and 100`);\n return false;\n }\n return true;\n}\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n if (!isDatadogSite(initConfiguration.site) ||\n !isSampleRate(initConfiguration.sessionSampleRate, 'Session') ||\n !isSampleRate(initConfiguration.telemetrySampleRate, 'Telemetry') ||\n !isSampleRate(initConfiguration.telemetryConfigurationSampleRate, 'Telemetry Configuration') ||\n !isSampleRate(initConfiguration.telemetryUsageSampleRate, 'Telemetry Usage') ||\n !isString(initConfiguration.version, 'Version') ||\n !isString(initConfiguration.env, 'Env') ||\n !isString(initConfiguration.service, 'Service')) {\n return;\n }\n if (initConfiguration.trackingConsent !== undefined &&\n !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)) {\n display.error('Tracking Consent should be either \"granted\" or \"not-granted\"');\n return;\n }\n return {\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n telemetryUsageSampleRate: (_d = initConfiguration.telemetryUsageSampleRate) !== null && _d !== void 0 ? _d : 5,\n service: initConfiguration.service || undefined,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,\n trackingConsent: (_e = initConfiguration.trackingConsent) !== null && _e !== void 0 ? _e : TrackingConsent.GRANTED,\n trackAnonymousUser: (_f = initConfiguration.trackAnonymousUser) !== null && _f !== void 0 ? _f : true,\n storeContextsAcrossPages: !!initConfiguration.storeContextsAcrossPages,\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 };\n}\nexport function serializeConfiguration(initConfiguration) {\n return {\n session_sample_rate: initConfiguration.sessionSampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n telemetry_usage_sample_rate: initConfiguration.telemetryUsageSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: !!initConfiguration.proxy,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n track_anonymous_user: initConfiguration.trackAnonymousUser,\n session_persistence: initConfiguration.sessionPersistence,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,\n tracking_consent: initConfiguration.trackingConsent,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_US1, INTAKE_SITE_FED_STAGING, PCI_INTAKE_HOST_US1 } from './intakeSites';\nexport function createEndpointBuilder(initConfiguration, trackType, configurationTags) {\n const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);\n return {\n build(api, payload) {\n const parameters = buildEndpointParameters(initConfiguration, trackType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n trackType,\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, trackType) {\n const path = `/api/v2/${trackType}`;\n const proxy = initConfiguration.proxy;\n if (typeof proxy === 'string') {\n const normalizedProxyUrl = normalizeUrl(proxy);\n return (parameters) => `${normalizedProxyUrl}?ddforward=${encodeURIComponent(`${path}?${parameters}`)}`;\n }\n if (typeof proxy === 'function') {\n return (parameters) => proxy({ path, parameters });\n }\n const host = buildEndpointHost(trackType, initConfiguration);\n return (parameters) => `https://${host}${path}?${parameters}`;\n}\nexport function buildEndpointHost(trackType, initConfiguration) {\n const { site = INTAKE_SITE_US1, internalAnalyticsSubdomain } = initConfiguration;\n if (trackType === 'logs' && initConfiguration.usePciIntake && site === INTAKE_SITE_US1) {\n return PCI_INTAKE_HOST_US1;\n }\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return `${internalAnalyticsSubdomain}.${INTAKE_SITE_US1}`;\n }\n if (site === INTAKE_SITE_FED_STAGING) {\n return `http-intake.logs.${site}`;\n }\n const domainParts = site.split('.');\n const extension = domainParts.pop();\n return `browser-intake-${domainParts.join('-')}.${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({ clientToken, internalAnalyticsSubdomain }, trackType, configurationTags, api, { retry, encoding }) {\n const tags = [`sdk_version:${\"6.5.1\"}`, `api:${api}`].concat(configurationTags);\n if (retry) {\n tags.push(`retry_count:${retry.count}`, `retry_after:${retry.lastFailureStatus}`);\n }\n const parameters = [\n 'ddsource=browser',\n `ddtags=${encodeURIComponent(tags.join(','))}`,\n `dd-api-key=${clientToken}`,\n `dd-evp-origin-version=${encodeURIComponent(\"6.5.1\")}`,\n 'dd-evp-origin=browser',\n `dd-request-id=${generateUUID()}`,\n ];\n if (encoding) {\n parameters.push(`dd-evp-encoding=${encoding}`);\n }\n if (trackType === 'rum') {\n parameters.push(`batch_time=${timeStampNow()}`);\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","export const INTAKE_SITE_STAGING = 'datad0g.com';\nexport const INTAKE_SITE_FED_STAGING = 'dd0g-gov.com';\nexport const INTAKE_SITE_US1 = 'datadoghq.com';\nexport const INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport const INTAKE_SITE_US1_FED = 'ddog-gov.com';\nexport const PCI_INTAKE_HOST_US1 = 'pci.browser-intake-datadoghq.com';\nexport const INTAKE_URL_PARAMETERS = ['ddsource', 'ddtags'];\n//# sourceMappingURL=intakeSites.js.map","import { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';\nexport const TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n const { env, service, version, datacenter } = configuration;\n const 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}\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 const valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || hasForbiddenCharacters(rawValue)) {\n display.warn(`${key} value doesn't meet tag requirements and will be sanitized. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/tagging/#defining-tags`);\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 const sanitizedValue = rawValue.replace(/,/g, '_');\n return `${key}:${sanitizedValue}`;\n}\nfunction hasForbiddenCharacters(rawValue) {\n // Unicode property escapes is not supported in all browsers, so we use a try/catch.\n // Todo: Remove the try/catch when dropping support for Chrome 63 and Firefox 67\n // see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape#browser_compatibility\n if (!supportUnicodePropertyEscapes()) {\n return false;\n }\n // We use the Unicode property escapes to match any character that is a letter including other languages like Chinese, Japanese, etc.\n // p{Ll} matches a lowercase letter.\n // p{Lo} matches a letter that is neither uppercase nor lowercase (ex: Japanese characters).\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape#unicode_property_escapes_vs._character_classes\n return new RegExp('[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]', 'u').test(rawValue);\n}\nexport function supportUnicodePropertyEscapes() {\n try {\n new RegExp('[\\\\p{Ll}]', 'u');\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n//# sourceMappingURL=tags.js.map","import { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1, INTAKE_URL_PARAMETERS } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n const site = initConfiguration.site || INTAKE_SITE_US1;\n const tags = buildTags(initConfiguration);\n const endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n const replicaConfiguration = computeReplicaConfiguration(initConfiguration, tags);\n return {\n replica: replicaConfiguration,\n site,\n ...endpointBuilders,\n };\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n const replicaConfiguration = {\n ...initConfiguration,\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n };\n const replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n return { applicationId: initConfiguration.replica.applicationId, ...replicaEndpointBuilders };\n}\nexport function isIntakeUrl(url) {\n // check if tags is present in the query string\n return INTAKE_URL_PARAMETERS.every((param) => url.includes(param));\n}\n//# sourceMappingURL=transportConfiguration.js.map","export function getConnectivity() {\n var _a;\n const navigator = window.navigator;\n return {\n status: navigator.onLine ? 'connected' : 'not_connected',\n interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : undefined,\n effective_type: (_a = navigator.connection) === null || _a === void 0 ? void 0 : _a.effectiveType,\n };\n}\n//# sourceMappingURL=connectivity.js.map","import { flattenErrorCauses, isError, tryToGetFingerprint, tryToGetErrorContext } 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 { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { ErrorSource } from '../error/error.types';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { createHandlingStack, toStackTraceString, formatErrorMessage } from '../../tools/stackTrace/handlingStack';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nlet consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n const consoleObservables = apis.map((api) => {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api); // we are sure that the observable created for this api will yield the expected ConsoleLog type\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables(...consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n return new Observable((observable) => {\n const originalConsoleApi = globalConsole[api];\n globalConsole[api] = (...params) => {\n originalConsoleApi.apply(console, params);\n const handlingStack = createHandlingStack('console error');\n callMonitored(() => {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return () => {\n globalConsole[api] = originalConsoleApi;\n };\n });\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n const message = params.map((param) => formatConsoleParameters(param)).join(' ');\n let error;\n if (api === ConsoleApiName.error) {\n const firstErrorParam = params.find(isError);\n error = {\n stack: firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined,\n fingerprint: tryToGetFingerprint(firstErrorParam),\n causes: firstErrorParam ? flattenErrorCauses(firstErrorParam, 'console') : undefined,\n startClocks: clocksNow(),\n message,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack,\n context: tryToGetErrorContext(firstErrorParam),\n };\n }\n return {\n api,\n message,\n error,\n handlingStack,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (isError(param)) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\n/**\n * Simple check to ensure an object is a valid context\n */\nexport function checkContext(maybeContext) {\n const isValid = getType(maybeContext) === 'object';\n if (!isValid) {\n display.error('Unsupported context:', maybeContext);\n }\n return isValid;\n}\n//# sourceMappingURL=contextUtils.js.map","import { deepClone } from '../../tools/mergeInto';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nimport { display } from '../../tools/display';\nimport { checkContext } from './contextUtils';\nfunction ensureProperties(context, propertiesConfig, name) {\n const newContext = { ...context };\n for (const [key, { required, type }] of Object.entries(propertiesConfig)) {\n /**\n * Ensure specified properties are strings as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\n if (type === 'string' && key in newContext) {\n /* eslint-disable @typescript-eslint/no-base-to-string */\n newContext[key] = String(newContext[key]);\n }\n if (required && !(key in context)) {\n display.warn(`The property ${key} of ${name} is required; context will not be sent to the intake.`);\n }\n }\n return newContext;\n}\nexport function createContextManager(name = '', { customerDataTracker, propertiesConfig = {}, } = {}) {\n let context = {};\n const changeObservable = new Observable();\n const contextManager = {\n getContext: () => deepClone(context),\n setContext: (newContext) => {\n if (checkContext(newContext)) {\n context = sanitize(ensureProperties(newContext, propertiesConfig, name));\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: (key, property) => {\n context = sanitize(ensureProperties({ ...context, [key]: property }, propertiesConfig, name));\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n changeObservable.notify();\n },\n removeContextProperty: (key) => {\n delete context[key];\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n ensureProperties(context, propertiesConfig, name);\n changeObservable.notify();\n },\n clearContext: () => {\n context = {};\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.resetCustomerData();\n changeObservable.notify();\n },\n changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","import { ONE_KIBI_BYTE, computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from '../../tools/display';\nimport { isEmptyObject } from '../../tools/utils/objectUtils';\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 const CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\n// We observed that the compression ratio is around 8 in general, but we also want to keep a margin\n// because some data might not be compressed (ex: last view update on page exit). We chose 16KiB\n// because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this\n// is a bit arbitrary.\nexport const CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * ONE_KIBI_BYTE;\nexport const BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createCustomerDataTrackerManager(compressionStatus = 2 /* CustomerDataCompressionStatus.Disabled */) {\n const customerDataTrackers = new Map();\n let alreadyWarned = false;\n function checkCustomerDataLimit(initialBytesCount = 0) {\n if (alreadyWarned || compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n return;\n }\n const bytesCountLimit = compressionStatus === 2 /* CustomerDataCompressionStatus.Disabled */\n ? CUSTOMER_DATA_BYTES_LIMIT\n : CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT;\n let bytesCount = initialBytesCount;\n customerDataTrackers.forEach((tracker) => {\n bytesCount += tracker.getBytesCount();\n });\n if (bytesCount > bytesCountLimit) {\n displayCustomerDataLimitReachedWarning(bytesCountLimit);\n alreadyWarned = true;\n }\n }\n return {\n /**\n * Creates a detached tracker. The manager will not store a reference to that tracker, and the\n * bytes count will be counted independently from other detached trackers.\n *\n * This is particularly useful when we don't know when the tracker will be unused, so we don't\n * leak memory (ex: when used in Logger instances).\n */\n createDetachedTracker: () => {\n const tracker = createCustomerDataTracker(() => checkCustomerDataLimit(tracker.getBytesCount()));\n return tracker;\n },\n /**\n * Creates a tracker if it doesn't exist, and returns it.\n */\n getOrCreateTracker: (type) => {\n if (!customerDataTrackers.has(type)) {\n customerDataTrackers.set(type, createCustomerDataTracker(checkCustomerDataLimit));\n }\n return customerDataTrackers.get(type);\n },\n setCompressionStatus: (newCompressionStatus) => {\n if (compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n compressionStatus = newCompressionStatus;\n checkCustomerDataLimit();\n }\n },\n getCompressionStatus: () => compressionStatus,\n stop: () => {\n customerDataTrackers.forEach((tracker) => tracker.stop());\n customerDataTrackers.clear();\n },\n };\n}\nexport function createCustomerDataTracker(checkCustomerDataLimit) {\n let bytesCountCache = 0;\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 const { throttled: computeBytesCountThrottled, cancel: cancelComputeBytesCount } = throttle((context) => {\n bytesCountCache = computeBytesCount(jsonStringify(context));\n checkCustomerDataLimit();\n }, BYTES_COMPUTATION_THROTTLING_DELAY);\n const resetBytesCount = () => {\n cancelComputeBytesCount();\n bytesCountCache = 0;\n };\n return {\n updateCustomerData: (context) => {\n if (isEmptyObject(context)) {\n resetBytesCount();\n }\n else {\n computeBytesCountThrottled(context);\n }\n },\n resetCustomerData: resetBytesCount,\n getBytesCount: () => bytesCountCache,\n stop: () => {\n cancelComputeBytesCount();\n },\n };\n}\nfunction displayCustomerDataLimitReachedWarning(bytesCountLimit) {\n display.warn(`Customer data exceeds the recommended ${bytesCountLimit / ONE_KIBI_BYTE}KiB threshold. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#customer-data-exceeds-the-recommended-threshold-warning`);\n}\n//# sourceMappingURL=customerDataTracker.js.map","import { addEventListener } from '../../browser/addEventListener';\nimport { combine } from '../../tools/mergeInto';\nimport { isEmptyObject } from '../../tools/utils/objectUtils';\nconst CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nconst storageListeners = [];\nexport function storeContextManager(configuration, contextManager, productKey, customerDataType) {\n const storageKey = buildStorageKey(productKey, customerDataType);\n storageListeners.push(addEventListener(configuration, window, \"storage\" /* DOM_EVENT.STORAGE */, ({ key }) => {\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n const contextFromStorage = combine(getFromStorage(), contextManager.getContext());\n if (!isEmptyObject(contextFromStorage)) {\n contextManager.setContext(contextFromStorage);\n }\n function synchronizeWithStorage() {\n contextManager.setContext(getFromStorage());\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n function getFromStorage() {\n const rawContext = localStorage.getItem(storageKey);\n return rawContext ? JSON.parse(rawContext) : {};\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return `${CONTEXT_STORE_KEY_PREFIX}_${productKey}_${customerDataType}`;\n}\nexport function removeStorageListeners() {\n storageListeners.map((listener) => listener.stop());\n}\n//# sourceMappingURL=storeContextManager.js.map","import { sanitize } from '../../tools/serialisation/sanitize';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nexport const NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError({ stackTrace, originalError, handlingStack, componentStack, startClocks, nonErrorPrefix, source, handling, }) {\n const isErrorInstance = isError(originalError);\n const message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n const stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n const causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n const type = stackTrace ? stackTrace.name : undefined;\n const fingerprint = tryToGetFingerprint(originalError);\n const context = tryToGetErrorContext(originalError);\n return {\n startClocks,\n source,\n handling,\n handlingStack,\n componentStack,\n originalError,\n type,\n message,\n stack,\n causes,\n fingerprint,\n context,\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 ? `${nonErrorPrefix} ${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 isError(originalError) && 'dd_fingerprint' in originalError ? String(originalError.dd_fingerprint) : undefined;\n}\nexport function tryToGetErrorContext(originalError) {\n if (originalError !== null && typeof originalError === 'object' && 'dd_context' in originalError) {\n return originalError.dd_context;\n }\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function isError(error) {\n return error instanceof Error || Object.prototype.toString.call(error) === '[object Error]';\n}\nexport function flattenErrorCauses(error, parentSource) {\n let currentError = error;\n const causes = [];\n while (isError(currentError === null || currentError === void 0 ? void 0 : currentError.cause) && causes.length < 10) {\n const 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","export const 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 { instrumentMethod } from '../../tools/instrumentMethod';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nimport { computeStackTrace, computeStackTraceFromOnErrorMessage } from '../../tools/stackTrace/computeStackTrace';\nimport { computeRawError, isError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n const handleRuntimeError = (stackTrace, originalError) => {\n const rawError = computeRawError({\n stackTrace,\n originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n errorObservable.notify(rawError);\n };\n const { stop: stopInstrumentingOnError } = instrumentOnError(handleRuntimeError);\n const { stop: stopInstrumentingOnUnhandledRejection } = instrumentUnhandledRejection(handleRuntimeError);\n return {\n stop: () => {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\nexport function instrumentOnError(callback) {\n return instrumentMethod(window, 'onerror', ({ parameters: [messageObj, url, line, column, errorObj] }) => {\n let stackTrace;\n if (isError(errorObj)) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n stackTrace = computeStackTraceFromOnErrorMessage(messageObj, url, line, column);\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n });\n}\nexport function instrumentUnhandledRejection(callback) {\n return instrumentMethod(window, 'onunhandledrejection', ({ parameters: [e] }) => {\n const reason = e.reason || 'Empty reason';\n const stack = computeStackTrace(reason);\n callback(stack, reason);\n });\n}\n//# sourceMappingURL=trackRuntimeError.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 let eventCount = 0;\n let allowNextEvent = false;\n return {\n isLimitReached() {\n if (eventCount === 0) {\n setTimeout(() => {\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 ${eventType}s by minute: ${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 { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nimport { ErrorSource } from '../error/error.types';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nexport const RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n const observables = [];\n if (apis.includes(RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n const reportTypes = apis.filter((api) => api !== RawReportType.cspViolation);\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables(...observables);\n}\nfunction createReportObservable(reportTypes) {\n return new Observable((observable) => {\n if (!window.ReportingObserver) {\n return;\n }\n const handleReports = monitor((reports, _) => reports.forEach((report) => observable.notify(buildRawReportErrorFromReport(report))));\n const observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return () => {\n observer.disconnect();\n };\n });\n}\nfunction createCspViolationReportObservable(configuration) {\n return new Observable((observable) => {\n const { stop } = addEventListener(configuration, document, \"securitypolicyviolation\" /* DOM_EVENT.SECURITY_POLICY_VIOLATION */, (event) => {\n observable.notify(buildRawReportErrorFromCspViolation(event));\n });\n return stop;\n });\n}\nfunction buildRawReportErrorFromReport(report) {\n const { type, body } = report;\n return buildRawReportError({\n type: body.id,\n message: `${type}: ${body.message}`,\n originalError: report,\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n });\n}\nfunction buildRawReportErrorFromCspViolation(event) {\n const message = `'${event.blockedURI}' blocked by '${event.effectiveDirective}' directive`;\n return buildRawReportError({\n type: event.effectiveDirective,\n message: `${RawReportType.cspViolation}: ${message}`,\n originalError: event,\n csp: {\n disposition: event.disposition,\n },\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? `${message} of the policy \"${safeTruncate(event.originalPolicy, 100, '...')}\"`\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n });\n}\nfunction buildRawReportError(partial) {\n return {\n startClocks: clocksNow(),\n source: ErrorSource.REPORT,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n ...partial,\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name,\n 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 { ONE_HOUR, ONE_MINUTE, ONE_YEAR } from '../../tools/utils/timeUtils';\nexport const SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport const SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\nexport const SESSION_COOKIE_EXPIRATION_DELAY = ONE_YEAR;\nexport const SessionPersistence = {\n COOKIE: 'cookie',\n LOCAL_STORAGE: 'local-storage',\n};\n//# sourceMappingURL=sessionConstants.js.map","import { Observable } from '../../tools/observable';\nimport { createValueHistory } 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 const VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nconst SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nlet stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState, trackingConsentState) {\n const renewObservable = new Observable();\n const expireObservable = new Observable();\n // TODO - Improve configuration type and remove assertion\n const sessionStore = startSessionStore(configuration.sessionStoreStrategyType, configuration, productKey, computeSessionState);\n stopCallbacks.push(() => sessionStore.stop());\n const sessionContextHistory = createValueHistory({\n expireDelay: SESSION_CONTEXT_TIMEOUT_DELAY,\n });\n stopCallbacks.push(() => sessionContextHistory.stop());\n sessionStore.renewObservable.subscribe(() => {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n renewObservable.notify();\n });\n sessionStore.expireObservable.subscribe(() => {\n expireObservable.notify();\n sessionContextHistory.closeActive(relativeNow());\n });\n // We expand/renew session unconditionally as tracking consent is always granted when the session\n // manager is started.\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackingConsentState.observable.subscribe(() => {\n if (trackingConsentState.isGranted()) {\n sessionStore.expandOrRenewSession();\n }\n else {\n sessionStore.expire();\n }\n });\n trackActivity(configuration, () => {\n if (trackingConsentState.isGranted()) {\n sessionStore.expandOrRenewSession();\n }\n });\n trackVisibility(configuration, () => sessionStore.expandSession());\n trackResume(configuration, () => sessionStore.restartSession());\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n isReplayForced: !!sessionStore.getSession().forcedReplay,\n anonymousId: sessionStore.getSession().anonymousId,\n };\n }\n return {\n findSession: (startTime, options) => sessionContextHistory.find(startTime, options),\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,\n expire: sessionStore.expire,\n updateSessionState: sessionStore.updateSessionState,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach((e) => e());\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n const { 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 });\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n const expandSessionWhenVisible = () => {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n const { stop } = addEventListener(configuration, document, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, expandSessionWhenVisible);\n stopCallbacks.push(stop);\n const visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(() => {\n clearInterval(visibilityCheckInterval);\n });\n}\nfunction trackResume(configuration, cb) {\n const { stop } = addEventListener(configuration, window, \"resume\" /* DOM_EVENT.RESUME */, cb, { capture: true });\n stopCallbacks.push(stop);\n}\n//# sourceMappingURL=sessionManager.js.map","export const SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","export const SESSION_ENTRY_REGEXP = /^([a-zA-Z]+)=([a-z0-9-]+)$/;\nexport const SESSION_ENTRY_SEPARATOR = '&';\nexport function isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionStateValidation.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { isValidSessionString, SESSION_ENTRY_REGEXP, SESSION_ENTRY_SEPARATOR } from './sessionStateValidation';\nexport const EXPIRED = '1';\nexport function getExpiredSessionState(previousSessionState, configuration) {\n const expiredSessionState = {\n isExpired: EXPIRED,\n };\n if (configuration.trackAnonymousUser) {\n if (previousSessionState === null || previousSessionState === void 0 ? void 0 : previousSessionState.anonymousId) {\n expiredSessionState.anonymousId = previousSessionState === null || previousSessionState === void 0 ? void 0 : previousSessionState.anonymousId;\n }\n else {\n expiredSessionState.anonymousId = generateUUID();\n }\n }\n return expiredSessionState;\n}\nexport function isSessionInNotStartedState(session) {\n return isEmptyObject(session);\n}\nexport function isSessionStarted(session) {\n return !isSessionInNotStartedState(session);\n}\nexport function isSessionInExpiredState(session) {\n return session.isExpired !== undefined || !isActiveSession(session);\n}\n// An active session is a session in either `Tracked` or `NotTracked` state\nfunction 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}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return (objectEntries(session)\n // we use `aid` as a key for anonymousId\n .map(([key, value]) => (key === 'anonymousId' ? `aid=${value}` : `${key}=${value}`))\n .join(SESSION_ENTRY_SEPARATOR));\n}\nexport function toSessionState(sessionString) {\n const session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach((entry) => {\n const matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n const [, key, value] = matches;\n if (key === 'aid') {\n // we use `aid` as a key for anonymousId\n session.anonymousId = value;\n }\n else {\n session[key] = value;\n }\n }\n });\n }\n return session;\n}\n//# sourceMappingURL=sessionState.js.map","import { getInitCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionStarted } from './sessionState';\nexport const OLD_SESSION_COOKIE_NAME = '_dd';\nexport const OLD_RUM_COOKIE_NAME = '_dd_r';\nexport const OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport const RUM_SESSION_KEY = 'rum';\nexport const 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 const sessionString = getInitCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n const oldSessionId = getInitCookie(OLD_SESSION_COOKIE_NAME);\n const oldRumType = getInitCookie(OLD_RUM_COOKIE_NAME);\n const oldLogsType = getInitCookie(OLD_LOGS_COOKIE_NAME);\n const 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 (isSessionStarted(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, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_COOKIE_EXPIRATION_DELAY, SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY, SessionPersistence, } from '../sessionConstants';\nimport { toSessionString, toSessionState, getExpiredSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n const cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: SessionPersistence.COOKIE, cookieOptions } : undefined;\n}\nexport function initCookieStrategy(configuration, cookieOptions) {\n const 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 expireSession: (sessionState) => expireSessionCookie(cookieOptions, sessionState, configuration),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return (session) => {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction expireSessionCookie(options, sessionState, configuration) {\n const expiredSessionState = getExpiredSessionState(sessionState, configuration);\n // we do not extend cookie expiration date\n setCookie(SESSION_STORE_KEY, toSessionString(expiredSessionState), configuration.trackAnonymousUser ? SESSION_COOKIE_EXPIRATION_DELAY : SESSION_TIME_OUT_DELAY, options);\n}\nfunction retrieveSessionCookie() {\n const sessionString = getCookie(SESSION_STORE_KEY);\n const sessionState = toSessionState(sessionString);\n return sessionState;\n}\nexport function buildCookieOptions(initConfiguration) {\n const cookieOptions = {};\n cookieOptions.secure =\n !!initConfiguration.useSecureSessionCookie || !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;\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 { SessionPersistence } from '../sessionConstants';\nimport { toSessionString, toSessionState, getExpiredSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nconst LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n const id = generateUUID();\n const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`;\n localStorage.setItem(testKey, id);\n const retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: SessionPersistence.LOCAL_STORAGE } : undefined;\n }\n catch (_a) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy(configuration) {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n expireSession: (sessionState) => expireSessionFromLocalStorage(sessionState, configuration),\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n const sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction expireSessionFromLocalStorage(previousSessionState, configuration) {\n persistInLocalStorage(getExpiredSessionState(previousSessionState, configuration));\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport const LOCK_RETRY_DELAY = 10;\nexport const LOCK_MAX_TRIES = 100;\nconst bufferedOperations = [];\nlet ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries = 0) {\n var _a;\n const { isLockEnabled, persistSession, expireSession } = sessionStoreStrategy;\n const persistWithLock = (session) => persistSession({ ...session, lock: currentLock });\n const retrieveStore = () => {\n const session = sessionStoreStrategy.retrieveSession();\n const lock = session.lock;\n if (session.lock) {\n delete session.lock;\n }\n return {\n session,\n lock,\n };\n };\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 let currentLock;\n let currentStore = retrieveStore();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentStore.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n persistWithLock(currentStore.session);\n // if lock is not acquired, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n let processedSession = operations.process(currentStore.session);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n expireSession(processedSession);\n }\n else {\n expandSessionState(processedSession);\n if (isLockEnabled) {\n persistWithLock(processedSession);\n }\n else {\n persistSession(processedSession);\n }\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 currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n persistSession(currentStore.session);\n processedSession = currentStore.session;\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 || currentStore.session);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(() => {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n const 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 { display } from '../../tools/display';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { getExpiredSessionState, isSessionInExpiredState, isSessionInNotStartedState, isSessionStarted, } from './sessionState';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\nimport { SessionPersistence } from './sessionConstants';\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 const STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Selects the correct session store strategy type based on the configuration and storage\n * availability.\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n switch (initConfiguration.sessionPersistence) {\n case SessionPersistence.COOKIE:\n return selectCookieStrategy(initConfiguration);\n case SessionPersistence.LOCAL_STORAGE:\n return selectLocalStorageStrategy();\n case undefined: {\n let sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n }\n default:\n display.error(`Invalid session persistence '${String(initConfiguration.sessionPersistence)}'`);\n }\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, configuration, productKey, computeSessionState) {\n const renewObservable = new Observable();\n const expireObservable = new Observable();\n const sessionStateUpdateObservable = new Observable();\n const sessionStoreStrategy = sessionStoreStrategyType.type === SessionPersistence.COOKIE\n ? initCookieStrategy(configuration, sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy(configuration);\n const { expireSession } = sessionStoreStrategy;\n const watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n let sessionCache;\n startSession();\n const { throttled: throttledExpandOrRenewSession, cancel: cancelExpandOrRenewSession } = throttle(() => {\n processSessionStoreOperations({\n process: (sessionState) => {\n if (isSessionInNotStartedState(sessionState)) {\n return;\n }\n const synchronizedSession = synchronizeSession(sessionState);\n expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: (sessionState) => {\n if (isSessionStarted(sessionState) && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }, STORAGE_POLL_DELAY);\n function expandSession() {\n processSessionStoreOperations({\n process: (sessionState) => (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: (sessionState) => isSessionInExpiredState(sessionState) ? getExpiredSessionState(sessionState, configuration) : undefined,\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (isSessionInExpiredState(sessionState)) {\n sessionState = getExpiredSessionState(sessionState, configuration);\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionStateUpdateObservable.notify({ previousState: sessionCache, newState: sessionState });\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function startSession() {\n processSessionStoreOperations({\n process: (sessionState) => {\n if (isSessionInNotStartedState(sessionState)) {\n return getExpiredSessionState(sessionState, configuration);\n }\n },\n after: (sessionState) => {\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandOrRenewSessionState(sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return false;\n }\n const { trackingType, isTracked } = computeSessionState(sessionState[productKey]);\n sessionState[productKey] = trackingType;\n delete sessionState.isExpired;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\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 = getExpiredSessionState(sessionCache, configuration);\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function updateSessionState(partialSessionState) {\n processSessionStoreOperations({\n process: (sessionState) => ({ ...sessionState, ...partialSessionState }),\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n return {\n expandOrRenewSession: throttledExpandOrRenewSession,\n expandSession,\n getSession: () => sessionCache,\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable,\n restartSession: startSession,\n expire: () => {\n cancelExpandOrRenewSession();\n expireSession(sessionCache);\n synchronizeSession(getExpiredSessionState(sessionCache, configuration));\n },\n stop: () => {\n clearInterval(watchSessionTimeoutId);\n },\n updateSessionState,\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { getInitCookie } from '../../browser/cookie';\nexport const SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport const SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport const SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n const value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n const value = window._DATADOG_SYNTHETICS_RESULT_ID || getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","export const TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n usage: 'usage',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { NO_ERROR_STACK_PRESENT_MESSAGE, isError } from '../error/error';\nimport { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { getConnectivity } from '../connectivity';\nimport { createBoundedBuffer } from '../../tools/boundedBuffer';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nconst 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];\nconst TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\n// eslint-disable-next-line local-rules/disallow-side-effects\nlet preStartTelemetryBuffer = createBoundedBuffer();\nlet onRawTelemetryEventCollected = (event) => {\n preStartTelemetryBuffer.add(() => onRawTelemetryEventCollected(event));\n};\nexport function startTelemetry(telemetryService, configuration) {\n let contextProvider;\n const observable = new Observable();\n const alreadySentEvents = new Set();\n const telemetryEnabled = !TELEMETRY_EXCLUDED_SITES.includes(configuration.site) && performDraw(configuration.telemetrySampleRate);\n const telemetryEnabledPerType = {\n [TelemetryType.log]: telemetryEnabled,\n [TelemetryType.configuration]: telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate),\n [TelemetryType.usage]: telemetryEnabled && performDraw(configuration.telemetryUsageSampleRate),\n };\n const runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = (rawEvent) => {\n const stringifiedEvent = jsonStringify(rawEvent);\n if (telemetryEnabledPerType[rawEvent.type] &&\n alreadySentEvents.size < configuration.maxTelemetryEventsPerPage &&\n !alreadySentEvents.has(stringifiedEvent)) {\n const event = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event);\n sendToExtension('telemetry', event);\n alreadySentEvents.add(stringifiedEvent);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"6.5.1\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n connectivity: getConnectivity(),\n sdk_setup: \"npm\",\n }),\n experimental_features: Array.from(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: (provider) => {\n contextProvider = provider;\n },\n observable,\n enabled: 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 const events = [];\n onRawTelemetryEventCollected = (event) => {\n events.push(event);\n };\n return events;\n}\n// need to be called after telemetry context is provided and observers are registered\nexport function drainPreStartTelemetry() {\n preStartTelemetryBuffer.drain();\n}\nexport function resetTelemetry() {\n preStartTelemetryBuffer = createBoundedBuffer();\n onRawTelemetryEventCollected = (event) => {\n preStartTelemetryBuffer.add(() => onRawTelemetryEventCollected(event));\n };\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 onRawTelemetryEventCollected({\n type: TelemetryType.log,\n message,\n status: \"debug\" /* StatusType.debug */,\n ...context,\n });\n}\nexport function addTelemetryError(e, context) {\n onRawTelemetryEventCollected({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n ...formatError(e),\n ...context,\n });\n}\nexport function addTelemetryConfiguration(configuration) {\n onRawTelemetryEventCollected({\n type: TelemetryType.configuration,\n configuration,\n });\n}\nexport function addTelemetryUsage(usage) {\n onRawTelemetryEventCollected({\n type: TelemetryType.usage,\n usage,\n });\n}\nexport function formatError(e) {\n if (isError(e)) {\n const 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: `${\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */} ${jsonStringify(e)}`,\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter((frame) => !frame.url || ALLOWED_FRAME_URLS.some((allowedFrameUrl) => frame.url.startsWith(allowedFrameUrl)));\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { Observable } from '../tools/observable';\nexport const TrackingConsent = {\n GRANTED: 'granted',\n NOT_GRANTED: 'not-granted',\n};\nexport function createTrackingConsentState(currentConsent) {\n const observable = new Observable();\n return {\n tryToInit(trackingConsent) {\n if (!currentConsent) {\n currentConsent = trackingConsent;\n }\n },\n update(trackingConsent) {\n currentConsent = trackingConsent;\n observable.notify();\n },\n isGranted() {\n return currentConsent === TrackingConsent.GRANTED;\n },\n observable,\n };\n}\n//# sourceMappingURL=trackingConsent.js.map","// eslint-disable-next-line no-restricted-syntax\nexport class AbstractLifeCycle {\n constructor() {\n this.callbacks = {};\n }\n notify(eventType, data) {\n const eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach((callback) => callback(data));\n }\n }\n subscribe(eventType, callback) {\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: () => {\n this.callbacks[eventType] = this.callbacks[eventType].filter((other) => callback !== other);\n },\n };\n }\n}\n//# sourceMappingURL=abstractLifeCycle.js.map","import { removeItem } from './utils/arrayUtils';\nconst BUFFER_LIMIT = 500;\nexport function createBoundedBuffer() {\n const buffer = [];\n const add = (callback) => {\n const length = buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n buffer.splice(0, 1);\n }\n };\n const remove = (callback) => {\n removeItem(buffer, callback);\n };\n const drain = (arg) => {\n buffer.forEach((callback) => callback(arg));\n buffer.length = 0;\n };\n return {\n add,\n remove,\n drain,\n };\n}\n//# sourceMappingURL=boundedBuffer.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return (...args) => {\n try {\n return fn(...args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","/* 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 const ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\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 const globalConsole = console;\nexport const originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach((name) => {\n originalConsoleMethods[name] = globalConsole[name];\n});\nconst PREFIX = 'Datadog Browser SDK:';\nexport const display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n};\nexport const DOCS_ORIGIN = 'https://docs.datadoghq.com';\nexport const DOCS_TROUBLESHOOTING = `${DOCS_ORIGIN}/real_user_monitoring/browser/troubleshooting`;\nexport const MORE_DETAILS = 'More details:';\n//# sourceMappingURL=display.js.map","import { computeBytesCount } from './utils/byteUtils';\nexport function createIdentityEncoder() {\n let output = '';\n let outputBytesCount = 0;\n return {\n isAsync: false,\n get isEmpty() {\n return !output;\n },\n write(data, callback) {\n const additionalEncodedBytesCount = computeBytesCount(data);\n outputBytesCount += additionalEncodedBytesCount;\n output += data;\n if (callback) {\n callback(additionalEncodedBytesCount);\n }\n },\n finish(callback) {\n callback(this.finishSync());\n },\n finishSync() {\n const result = {\n output,\n outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: '',\n };\n output = '';\n outputBytesCount = 0;\n return result;\n },\n estimateEncodedBytesCount(data) {\n return data.length;\n },\n };\n}\n//# sourceMappingURL=encoder.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\nimport { objectHasValue } from './utils/objectUtils';\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"WRITABLE_RESOURCE_GRAPHQL\"] = \"writable_resource_graphql\";\n ExperimentalFeature[\"MISSING_URL_CONTEXT_TELEMETRY\"] = \"missing_url_context_telemetry\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nconst enabledExperimentalFeatures = new Set();\nexport function initFeatureFlags(enableExperimentalFeatures) {\n if (Array.isArray(enableExperimentalFeatures)) {\n addExperimentalFeatures(enableExperimentalFeatures.filter((flag) => objectHasValue(ExperimentalFeature, flag)));\n }\n}\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach((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","/**\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() {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n let 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","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 const browserWindow = getGlobalObject();\n let 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 { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nimport { createHandlingStack } from './stackTrace/handlingStack';\n/**\n * Instruments a method on a object, calling the given callback before the original method is\n * invoked. The callback receives an object with information about the method call.\n *\n * This function makes sure that we are \"good citizens\" regarding third party instrumentations: when\n * removing the instrumentation, the original method is usually restored, but if a third party\n * instrumentation was set after ours, we keep it in place and just replace our instrumentation with\n * a noop.\n *\n * Note: it is generally better to instrument methods that are \"owned\" by the object instead of ones\n * that are inherited from the prototype chain. Example:\n * * do: `instrumentMethod(Array.prototype, 'push', ...)`\n * * don't: `instrumentMethod([], 'push', ...)`\n *\n * This method is also used to set event handler properties (ex: window.onerror = ...), as it has\n * the same requirements as instrumenting a method:\n * * if the event handler is already set by a third party, we need to call it and not just blindly\n * override it.\n * * if the event handler is set by a third party after us, we need to keep it in place when\n * removing ours.\n *\n * @example\n *\n * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {\n * console.log('Before calling fetch on', target, 'with parameters', parameters)\n *\n * onPostCall((result) => {\n * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)\n * })\n * })\n */\nexport function instrumentMethod(targetPrototype, method, onPreCall, { computeHandlingStack } = {}) {\n let original = targetPrototype[method];\n if (typeof original !== 'function') {\n if (method in targetPrototype && method.startsWith('on')) {\n original = noop;\n }\n else {\n return { stop: noop };\n }\n }\n let stopped = false;\n const instrumentation = function () {\n if (stopped) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return original.apply(this, arguments);\n }\n const parameters = Array.from(arguments);\n let postCallCallback;\n callMonitored(onPreCall, null, [\n {\n target: this,\n parameters,\n onPostCall: (callback) => {\n postCallCallback = callback;\n },\n handlingStack: computeHandlingStack ? createHandlingStack('instrumented method') : undefined,\n },\n ]);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n const result = original.apply(this, parameters);\n if (postCallCallback) {\n callMonitored(postCallCallback, null, [result]);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n targetPrototype[method] = instrumentation;\n return {\n stop: () => {\n stopped = true;\n // If the instrumentation has been removed by a third party, keep the last one\n if (targetPrototype[method] === instrumentation) {\n targetPrototype[method] = original;\n }\n },\n };\n}\nexport function instrumentSetter(targetPrototype, property, after) {\n const originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n const stoppedInstrumentation = noop;\n let instrumentation = (target, value) => {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(() => {\n if (instrumentation !== stoppedInstrumentation) {\n after(target, value);\n }\n }, 0);\n };\n const instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(targetPrototype, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: () => {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(targetPrototype, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(targetPrototype, property, originalDescriptor);\n }\n instrumentation = stoppedInstrumentation;\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.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 = 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 const 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 const merged = Array.isArray(destination) ? destination : [];\n for (let i = 0; i < source.length; ++i) {\n merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker);\n }\n return merged;\n }\n const merged = getType(destination) === 'object' ? destination : {};\n for (const 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(...sources) {\n let destination;\n for (const source of sources) {\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 const set = new WeakSet();\n return {\n hasAlreadyBeenSeen(value) {\n const has = set.has(value);\n if (!has) {\n set.add(value);\n }\n return has;\n },\n };\n }\n const array = [];\n return {\n hasAlreadyBeenSeen(value) {\n const 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 { display } from './display';\nlet onMonitorErrorCollected;\nlet 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 const originalMethod = descriptor.value;\n descriptor.value = function (...args) {\n const 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 monitorError(e);\n }\n}\nexport function monitorError(e) {\n displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n}\nexport function displayIfDebugEnabled(...args) {\n if (debugMode) {\n display.error('[MONITOR]', ...args);\n }\n}\n//# sourceMappingURL=monitor.js.map","// eslint-disable-next-line no-restricted-syntax\nexport class Observable {\n constructor(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n subscribe(f) {\n this.observers.push(f);\n if (this.observers.length === 1 && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined;\n }\n return {\n unsubscribe: () => {\n this.observers = this.observers.filter((other) => f !== other);\n if (!this.observers.length && this.onLastUnsubscribe) {\n this.onLastUnsubscribe();\n }\n },\n };\n }\n notify(data) {\n this.observers.forEach((observer) => observer(data));\n }\n}\nexport function mergeObservables(...observables) {\n return new Observable((globalObservable) => {\n const subscriptions = observables.map((observable) => observable.subscribe((data) => globalObservable.notify(data)));\n return () => subscriptions.forEach((subscription) => subscription.unsubscribe());\n });\n}\n//# sourceMappingURL=observable.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 const reader = stream.getReader();\n const chunks = [];\n let readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor((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((error) => 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 let bytes;\n let limitExceeded;\n if (options.collectStreamBody) {\n let completeBuffer;\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 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer = new Uint8Array(readBytesCount);\n let offset = 0;\n chunks.forEach((chunk) => {\n completeBuffer.set(chunk, offset);\n offset += chunk.length;\n });\n }\n bytes = completeBuffer.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { setTimeout, clearTimeout } from './timer';\nimport { monitor } from './monitor';\nimport { dateNow } from './utils/timeUtils';\n/**\n * 'requestIdleCallback' with a shim.\n */\nexport function requestIdleCallback(callback, opts) {\n // Note: check both 'requestIdleCallback' and 'cancelIdleCallback' existence because some polyfills only implement 'requestIdleCallback'.\n if (window.requestIdleCallback && window.cancelIdleCallback) {\n const id = window.requestIdleCallback(monitor(callback), opts);\n return () => window.cancelIdleCallback(id);\n }\n return requestIdleCallbackShim(callback);\n}\nexport const MAX_TASK_TIME = 50;\n/*\n * Shim from https://developer.chrome.com/blog/using-requestidlecallback#checking_for_requestidlecallback\n * Note: there is no simple way to support the \"timeout\" option, so we ignore it.\n */\nexport function requestIdleCallbackShim(callback) {\n const start = dateNow();\n const timeoutId = setTimeout(() => {\n callback({\n didTimeout: false,\n timeRemaining: () => Math.max(0, MAX_TASK_TIME - (dateNow() - start)),\n });\n }, 0);\n return () => clearTimeout(timeoutId);\n}\n//# sourceMappingURL=requestIdleCallback.js.map","export function sendToExtension(type, payload) {\n const callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type, payload });\n }\n}\n//# sourceMappingURL=sendToExtension.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 const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n const restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n const 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 const object = value;\n const objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return () => {\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, ...\nconst SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nconst 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.\nconst KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT) {\n // Unbind any toJSON function we may have on [] or {} prototypes\n const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n const containerQueue = [];\n const visitedObjectsWithPath = new WeakMap();\n const sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n const serializedSanitizedData = JSON.stringify(sanitizedData);\n let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n const containerToProcess = containerQueue.shift();\n let 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 (let key = 0; key < containerToProcess.source.length; key++) {\n const 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 (const key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n const 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 const sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n const 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 const sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return `[Reference seen at ${visitedObjectsWithPath.get(sourceAsObject)}]`;\n }\n // Add processed source to queue\n const currentPath = key !== undefined ? `${parentPath}.${key}` : parentPath;\n const target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, 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] ${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] ${value.name || 'unknown'}`;\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return `[Symbol] ${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 */\nfunction sanitizeObjects(value) {\n try {\n if (value instanceof Event) {\n return sanitizeEvent(value);\n }\n if (value instanceof RegExp) {\n return `[RegExp] ${value.toString()}`;\n }\n // Handle all remaining object types in a generic way\n const result = Object.prototype.toString.call(value);\n const match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return `[${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}\nfunction sanitizeEvent(event) {\n return {\n type: event.type,\n isTrusted: event.isTrusted,\n currentTarget: event.currentTarget ? sanitizeObjects(event.currentTarget) : null,\n target: event.target ? sanitizeObjects(event.target) : null,\n };\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n const 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 ${changeType} as it is over the limit of ${maxCharacterCount} characters:`, source);\n}\n//# sourceMappingURL=sanitize.js.map","/**\n * Cross-browser stack trace computation.\n *\n * Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js\n */\nconst UNKNOWN_FUNCTION = '?';\nexport function computeStackTrace(ex) {\n const stack = [];\n let stackProperty = tryToGetString(ex, 'stack');\n const exString = String(ex);\n if (stackProperty && stackProperty.startsWith(exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach((line) => {\n const 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,\n };\n}\nconst fileUrl = '((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nconst filePosition = '(?::(\\\\d+))';\nconst CHROME_LINE_RE = new RegExp(`^\\\\s*at (.*?) ?\\\\(${fileUrl}${filePosition}?${filePosition}?\\\\)?\\\\s*$`, 'i');\nconst CHROME_EVAL_RE = new RegExp(`\\\\((\\\\S*)${filePosition}${filePosition}\\\\)`);\nfunction parseChromeLine(line) {\n const parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n const isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n const 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}\nconst CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(`^\\\\s*at ?${fileUrl}${filePosition}?${filePosition}??\\\\s*$`, 'i');\nfunction parseChromeAnonymousLine(line) {\n const 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}\nconst WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n const 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}\nconst GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n const parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n const 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 const value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\nexport function computeStackTraceFromOnErrorMessage(messageObj, url, line, column) {\n const stack = [{ url, column, line }];\n const { name, message } = tryToParseMessage(messageObj);\n return {\n name,\n message,\n stack,\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nconst ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\nfunction tryToParseMessage(messageObj) {\n let name;\n let message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n [, name, message] = ERROR_TYPES_RE.exec(messageObj);\n }\n return { name, message };\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { callMonitored } from '../monitor';\nimport { computeStackTrace } from './computeStackTrace';\n/**\n * Creates a stacktrace without SDK internal frames.\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(type) {\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 const internalFramesToSkip = 2;\n const error = new Error(type);\n error.name = 'HandlingStack';\n let formattedStack;\n callMonitored(() => {\n const stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function toStackTraceString(stack) {\n let result = formatErrorMessage(stack);\n stack.stack.forEach((frame) => {\n const func = frame.func === '?' ? '' : frame.func;\n const args = frame.args && frame.args.length > 0 ? `(${frame.args.join(', ')})` : '';\n const line = frame.line ? `:${frame.line}` : '';\n const column = frame.line && frame.column ? `:${frame.column}` : '';\n result += `\\n at ${func}${args} @ ${frame.url}${line}${column}`;\n });\n return result;\n}\nexport function formatErrorMessage(stack) {\n return `${stack.name || 'Error'}: ${stack.message}`;\n}\n//# sourceMappingURL=handlingStack.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","export function removeDuplicates(array) {\n const set = new Set();\n array.forEach((item) => set.add(item));\n return Array.from(set);\n}\nexport function removeItem(array, item) {\n const index = array.indexOf(item);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrayUtils.js.map","export function isChromium() {\n return detectBrowserCached() === 0 /* Browser.CHROMIUM */;\n}\nexport function isSafari() {\n return detectBrowserCached() === 1 /* Browser.SAFARI */;\n}\nlet browserCache;\nfunction detectBrowserCached() {\n return browserCache !== null && browserCache !== void 0 ? browserCache : (browserCache = detectBrowser());\n}\n// Exported only for tests\nexport function detectBrowser(browserWindow = window) {\n var _a;\n const userAgent = browserWindow.navigator.userAgent;\n if (browserWindow.chrome || /HeadlessChrome/.test(userAgent)) {\n return 0 /* Browser.CHROMIUM */;\n }\n if (\n // navigator.vendor is deprecated, but it is the most resilient way we found to detect\n // \"Apple maintained browsers\" (AKA Safari). If one day it gets removed, we still have the\n // useragent test as a semi-working fallback.\n ((_a = browserWindow.navigator.vendor) === null || _a === void 0 ? void 0 : _a.indexOf('Apple')) === 0 ||\n (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))) {\n return 1 /* Browser.SAFARI */;\n }\n return 2 /* Browser.OTHER */;\n}\n//# sourceMappingURL=browserDetection.js.map","export const ONE_KIBI_BYTE = 1024;\nexport const ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nconst 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 const length = buffers.reduce((total, buffer) => total + buffer.length, 0);\n const result = new Uint8Array(length);\n let offset = 0;\n for (const buffer of buffers) {\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n const needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n const needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n let inWaitPeriod = false;\n let pendingExecutionWithParameters;\n let pendingTimeoutId;\n return {\n throttled: (...parameters) => {\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn(...parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(() => {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn(...pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: () => {\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 * 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","export function shallowClone(object) {\n return { ...object };\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some((key) => object[key] === value);\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n const newObject = {};\n for (const key of Object.keys(object)) {\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","export function findLast(array, predicate) {\n for (let i = array.length - 1; i >= 0; i -= 1) {\n const item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\n// Keep the following wrapper functions as it can be mangled and will result in smaller bundle size that using\n// the native Object.values and Object.entries directly\nexport function objectValues(object) {\n return Object.values(object);\n}\nexport function objectEntries(object) {\n return Object.entries(object);\n}\n//# sourceMappingURL=polyfills.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (_a) {\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","/**\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 : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateUUID);\n}\nconst COMMA_SEPARATED_KEY_VALUE = /([\\w-]+)\\s*=\\s*([^;]+)/g;\nexport function findCommaSeparatedValue(rawString, name) {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n if (match[1] === name) {\n return match[2];\n }\n }\n else {\n break;\n }\n }\n}\nexport function findCommaSeparatedValues(rawString) {\n const result = new Map();\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n result.set(match[1], match[2]);\n }\n else {\n break;\n }\n }\n return result;\n}\nexport function safeTruncate(candidate, length, suffix = '') {\n const lastChar = candidate.charCodeAt(length - 1);\n const isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n const correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return `${candidate.slice(0, correctedLength)}${suffix}`;\n}\n//# sourceMappingURL=stringUtils.js.map","import { isNumber, round } from './numberUtils';\nexport const ONE_SECOND = 1000;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\nexport const ONE_DAY = 24 * ONE_HOUR;\nexport const ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nexport function timeStampToClocks(timeStamp) {\n return { relative: getRelativeTime(timeStamp), timeStamp };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n const 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// Get the time since the navigation was started.\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 */\nlet navigationStart;\n/**\n * Notes: this does not use `performance.timeOrigin` because:\n * - It doesn't seem to reflect the actual time on which the navigation has started: it may be much farther in the past,\n * at least in Firefox 71. (see: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926)\n * - It is not supported in Safari <15\n */\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\n//# sourceMappingURL=timeUtils.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 { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, location.href).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getPathName(url) {\n const pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : `/${pathname}`;\n}\nexport function buildUrl(url, base) {\n const 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: ${String(error)} ${jsonStringify({ url, base })}`);\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(`Invalid URL: '${url}'`);\n }\n let doc = document;\n const anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n const 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}\nconst originalURL = URL;\nlet isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n const 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}\n//# sourceMappingURL=urlPolyfill.js.map","import { setInterval, clearInterval } from './timer';\nimport { removeItem } from './utils/arrayUtils';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nconst END_OF_TIMES = Infinity;\nexport const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\nlet cleanupHistoriesInterval = null;\nconst cleanupTasks = new Set();\nfunction cleanupHistories() {\n cleanupTasks.forEach((task) => task());\n}\nexport function createValueHistory({ expireDelay, maxEntries, }) {\n let entries = [];\n const deletedEntries = [];\n if (!cleanupHistoriesInterval) {\n cleanupHistoriesInterval = setInterval(() => cleanupHistories(), CLEAR_OLD_VALUES_INTERVAL);\n }\n const clearExpiredValues = () => {\n const oldTimeThreshold = relativeNow() - expireDelay;\n while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {\n const entry = entries.pop();\n if (entry) {\n deletedEntries.push(entry.startTime);\n }\n }\n };\n cleanupTasks.add(clearExpiredValues);\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 function add(value, startTime) {\n const entry = {\n value,\n startTime,\n endTime: END_OF_TIMES,\n remove: () => {\n removeItem(entries, entry);\n },\n close: (endTime) => {\n entry.endTime = endTime;\n },\n };\n if (maxEntries && entries.length >= maxEntries) {\n entries.pop();\n }\n 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 * If `option.returnInactive` is true, returns the value at `startTime` (active or not).\n */\n function find(startTime = END_OF_TIMES, options = { returnInactive: false }) {\n for (const entry of entries) {\n if (entry.startTime <= startTime) {\n if (options.returnInactive || 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 function closeActive(endTime) {\n const latestEntry = 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 function findAll(startTime = END_OF_TIMES, duration = 0) {\n const endTime = addDuration(startTime, duration);\n return entries\n .filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)\n .map((entry) => entry.value);\n }\n function getAllEntries() {\n return entries.map(({ startTime, endTime, value }) => ({\n startTime,\n endTime: endTime === END_OF_TIMES ? 'Infinity' : endTime,\n value,\n }));\n }\n function getDeletedEntries() {\n return deletedEntries;\n }\n /**\n * Remove all entries from this collection.\n */\n function reset() {\n entries = [];\n }\n /**\n * Stop internal garbage collection of past entries.\n */\n function stop() {\n cleanupTasks.delete(clearExpiredValues);\n if (cleanupTasks.size === 0 && cleanupHistoriesInterval) {\n clearInterval(cleanupHistoriesInterval);\n cleanupHistoriesInterval = null;\n }\n }\n return { add, find, closeActive, findAll, reset, stop, getAllEntries, getDeletedEntries };\n}\n//# sourceMappingURL=valueHistory.js.map","import { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n const eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getCapabilities() {\n var _a;\n return JSON.parse(((_a = eventBridgeGlobal.getCapabilities) === null || _a === void 0 ? void 0 : _a.call(eventBridgeGlobal)) || '[]');\n },\n getPrivacyLevel() {\n var _a;\n return (_a = eventBridgeGlobal.getPrivacyLevel) === null || _a === void 0 ? void 0 : _a.call(eventBridgeGlobal);\n },\n getAllowedWebViewHosts() {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send(eventType, event, viewId) {\n const view = viewId ? { id: viewId } : undefined;\n eventBridgeGlobal.send(JSON.stringify({ eventType, event, view }));\n },\n };\n}\nexport function bridgeSupports(capability) {\n const bridge = getEventBridge();\n return !!bridge && bridge.getCapabilities().includes(capability);\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 const bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some((allowedHost) => currentHost === allowedHost || currentHost.endsWith(`.${allowedHost}`)));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.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 const MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport const MAX_ONGOING_REQUESTS = 32;\nexport const MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport const MAX_BACKOFF_TIME = ONE_MINUTE;\nexport const INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, trackType, 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: () => retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, trackType, reportError),\n onFailure: () => {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, trackType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(() => {\n const payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: () => {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, trackType, reportError);\n },\n onFailure: () => {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, { onSuccess, onFailure }) {\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, (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, trackType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: `Reached max ${trackType} events size queued for upload: ${MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE}MiB`,\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n const previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, trackType, 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 const queue = [];\n return {\n bytesCount: 0,\n enqueue(payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first() {\n return queue[0];\n },\n dequeue() {\n const payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size() {\n return queue.length;\n },\n isFull() {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle(payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add(payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove(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(endpointBuilder, bytesLimit, reportError) {\n const retryState = newRetryState();\n const sendStrategyForRetry = (payload, onResponse) => fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse);\n return {\n send: (payload) => {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.trackType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: (payload) => {\n sendBeaconStrategy(endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(endpointBuilder, bytesLimit, payload) {\n const canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n const beaconUrl = endpointBuilder.build('beacon', payload);\n const isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n const xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(xhrUrl, payload.data);\n}\nlet hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse) {\n const canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n const fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor((response) => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type })), monitor(() => {\n const xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n const xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(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(url, data, onResponse) {\n const request = new XMLHttpRequest();\n request.open('POST', url, true);\n if (data instanceof Blob) {\n // When using a Blob instance, IE does not use its 'type' to define the 'Content-Type' header\n // automatically, so the intake request ends up being rejected with an HTTP status 415\n // Defining the header manually fixes this issue.\n request.setRequestHeader('Content-Type', data.type);\n }\n addEventListener(\n // allow untrusted event to acount for synthetic event dispatched by third party xhr wrapper\n { allowUntrustedEvents: true }, request, 'loadend', () => {\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 { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nexport function createBatch({ encoder, request, flushController, messageBytesLimit, }) {\n let upsertBuffer = {};\n const flushSubscription = flushController.flushObservable.subscribe((event) => flush(event));\n function push(serializedMessage, estimatedMessageBytesCount, key) {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);\n if (key !== undefined) {\n upsertBuffer[key] = serializedMessage;\n flushController.notifyAfterAddMessage();\n }\n else {\n encoder.write(encoder.isEmpty ? serializedMessage : `\\n${serializedMessage}`, (realMessageBytesCount) => {\n flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount);\n });\n }\n }\n function hasMessageFor(key) {\n return key !== undefined && upsertBuffer[key] !== undefined;\n }\n function remove(key) {\n const removedMessage = upsertBuffer[key];\n delete upsertBuffer[key];\n const messageBytesCount = encoder.estimateEncodedBytesCount(removedMessage);\n flushController.notifyAfterRemoveMessage(messageBytesCount);\n }\n function addOrUpdate(message, key) {\n const serializedMessage = jsonStringify(message);\n const estimatedMessageBytesCount = encoder.estimateEncodedBytesCount(serializedMessage);\n if (estimatedMessageBytesCount >= messageBytesLimit) {\n display.warn(`Discarded a message whose size was bigger than the maximum allowed size ${messageBytesLimit}KB. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#technical-limitations`);\n return;\n }\n if (hasMessageFor(key)) {\n remove(key);\n }\n push(serializedMessage, estimatedMessageBytesCount, key);\n }\n function flush(event) {\n const upsertMessages = objectValues(upsertBuffer).join('\\n');\n upsertBuffer = {};\n const isPageExit = isPageExitReason(event.reason);\n const send = isPageExit ? request.sendOnExit : request.send;\n if (isPageExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n encoder.isAsync) {\n const encoderResult = encoder.finishSync();\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult));\n }\n // Send messages that are not yet encoded at this point\n const pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\\n');\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages),\n });\n }\n }\n else {\n if (upsertMessages) {\n encoder.write(encoder.isEmpty ? upsertMessages : `\\n${upsertMessages}`);\n }\n encoder.finish((encoderResult) => {\n send(formatPayloadFromEncoder(encoderResult));\n });\n }\n }\n return {\n flushController,\n add: addOrUpdate,\n upsert: addOrUpdate,\n stop: flushSubscription.unsubscribe,\n };\n}\nfunction formatPayloadFromEncoder(encoderResult) {\n let data;\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output;\n }\n else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain',\n });\n }\n return {\n data,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n };\n}\n//# sourceMappingURL=batch.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({ messagesLimit, bytesLimit, durationLimit, pageExitObservable, sessionExpireObservable, }) {\n const pageExitSubscription = pageExitObservable.subscribe((event) => flush(event.reason));\n const sessionExpireSubscription = sessionExpireObservable.subscribe(() => flush('session_expire'));\n const flushObservable = new Observable(() => () => {\n pageExitSubscription.unsubscribe();\n sessionExpireSubscription.unsubscribe();\n });\n let currentBytesCount = 0;\n let currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n const messagesCount = currentMessagesCount;\n const bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount,\n bytesCount,\n });\n }\n let durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(() => {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n 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 * @param estimatedMessageBytesCount: an estimation of the message bytes count once it is\n * actually added.\n */\n notifyBeforeAddMessage(estimatedMessageBytesCount) {\n if (currentBytesCount + estimatedMessageBytesCount >= 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 += estimatedMessageBytesCount;\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 * @param messageBytesCountDiff: the difference between the estimated message bytes count and\n * its actual bytes count once added to the pool.\n */\n notifyAfterAddMessage(messageBytesCountDiff = 0) {\n currentBytesCount += messageBytesCountDiff;\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 * @param messageBytesCount: the message bytes count that was added to the pool. Should\n * correspond to the sum of bytes counts passed to `notifyBeforeAddMessage` and\n * `notifyAfterAddMessage`.\n */\n notifyAfterRemoveMessage(messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { createBatch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable, batchFactoryImp = createBatch) {\n const primaryBatch = createBatchFromConfig(configuration, primary);\n const replicaBatch = replica && createBatchFromConfig(configuration, replica);\n function createBatchFromConfig(configuration, { endpoint, encoder }) {\n return batchFactoryImp({\n encoder,\n request: createHttpRequest(endpoint, configuration.batchBytesLimit, reportError),\n flushController: createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable,\n sessionExpireObservable,\n }),\n messageBytesLimit: configuration.messageBytesLimit,\n });\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add(message, replicated = true) {\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: (message, key) => {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: () => {\n primaryBatch.stop();\n if (replicaBatch) {\n replicaBatch.stop();\n }\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","export function buildCommonContext(globalContextManager, userContextManager, accountContextManager, recorderApi) {\n return {\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n account: accountContextManager.getContext(),\n hasReplay: recorderApi.isRecording() ? true : undefined,\n };\n}\n//# sourceMappingURL=commonContext.js.map","import { clocksNow, combine, elapsed, generateUUID, toServerDuration } from '@datadog/browser-core';\nexport function createCustomVitalsState() {\n const vitalsByName = new Map();\n const vitalsByReference = new WeakMap();\n return { vitalsByName, vitalsByReference };\n}\nexport function startVitalCollection(lifeCycle, pageStateHistory, customVitalsState) {\n function isValid(vital) {\n return !pageStateHistory.wasInPageStateDuringPeriod(\"frozen\" /* PageState.FROZEN */, vital.startClocks.relative, vital.duration);\n }\n function addDurationVital(vital) {\n if (isValid(vital)) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processVital(vital, true));\n }\n }\n return {\n addDurationVital,\n startDurationVital: (name, options = {}) => startDurationVital(customVitalsState, name, options),\n stopDurationVital: (nameOrRef, options = {}) => {\n stopDurationVital(addDurationVital, customVitalsState, nameOrRef, options);\n },\n };\n}\nexport function startDurationVital({ vitalsByName, vitalsByReference }, name, options = {}) {\n const vital = {\n name,\n startClocks: clocksNow(),\n context: options.context,\n description: options.description,\n };\n // To avoid leaking implementation details of the vital, we return a reference to it.\n const reference = { __dd_vital_reference: true };\n vitalsByName.set(name, vital);\n // To avoid memory leaks caused by the creation of numerous references (e.g., from improper useEffect implementations), we use a WeakMap.\n vitalsByReference.set(reference, vital);\n return reference;\n}\nexport function stopDurationVital(stopCallback, { vitalsByName, vitalsByReference }, nameOrRef, options = {}) {\n const vitalStart = typeof nameOrRef === 'string' ? vitalsByName.get(nameOrRef) : vitalsByReference.get(nameOrRef);\n if (!vitalStart) {\n return;\n }\n stopCallback(buildDurationVital(vitalStart, vitalStart.startClocks, options, clocksNow()));\n if (typeof nameOrRef === 'string') {\n vitalsByName.delete(nameOrRef);\n }\n else {\n vitalsByReference.delete(nameOrRef);\n }\n}\nfunction buildDurationVital(vitalStart, startClocks, stopOptions, stopClocks) {\n var _a;\n return {\n name: vitalStart.name,\n type: \"duration\" /* VitalType.DURATION */,\n startClocks,\n duration: elapsed(startClocks.timeStamp, stopClocks.timeStamp),\n context: combine(vitalStart.context, stopOptions.context),\n description: (_a = stopOptions.description) !== null && _a !== void 0 ? _a : vitalStart.description,\n };\n}\nfunction processVital(vital, valueComputedBySdk) {\n const rawRumEvent = {\n date: vital.startClocks.timeStamp,\n vital: {\n id: generateUUID(),\n type: vital.type,\n name: vital.name,\n duration: toServerDuration(vital.duration),\n description: vital.description,\n },\n type: \"vital\" /* RumEventType.VITAL */,\n };\n if (valueComputedBySdk) {\n rawRumEvent._dd = {\n vital: {\n computed_value: true,\n },\n };\n }\n return {\n rawRumEvent,\n startTime: vital.startClocks.relative,\n duration: vital.duration,\n customerContext: vital.context,\n domainContext: {},\n };\n}\n//# sourceMappingURL=vitalCollection.js.map","export function callPluginsMethod(plugins, methodName, parameter) {\n if (!plugins) {\n return;\n }\n for (const plugin of plugins) {\n const method = plugin[methodName];\n if (method) {\n method(parameter);\n }\n }\n}\n//# sourceMappingURL=plugins.js.map","import { display } from './display';\nimport { getType } from './utils/typeUtils';\nexport function isMatchOption(item) {\n const 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 = false) {\n return list.some((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 ? value.startsWith(item) : item === value;\n }\n }\n catch (e) {\n display.error(e);\n }\n return false;\n });\n}\n//# sourceMappingURL=matchOption.js.map","export function createTraceIdentifier() {\n return createIdentifier(64);\n}\nexport function createSpanIdentifier() {\n return createIdentifier(63);\n}\nfunction createIdentifier(bits) {\n const buffer = crypto.getRandomValues(new Uint32Array(2));\n if (bits === 63) {\n // eslint-disable-next-line no-bitwise\n buffer[buffer.length - 1] >>>= 1; // force 63-bit\n }\n // The `.toString` function is intentionally similar to Number and BigInt `.toString` method.\n //\n // JavaScript numbers can represent integers up to 48 bits, this is why we need two of them to\n // represent a 64 bits identifier. But BigInts don't have this limitation and can represent larger\n // integer values.\n //\n // In the future, when we drop browsers without BigInts support, we could use BigInts directly\n // represent identifiers by simply returning a BigInt from this function (as all we need is a\n // value with a `.toString` method).\n //\n // Examples:\n // const buffer = getCrypto().getRandomValues(new Uint32Array(2))\n // return BigInt(buffer[0]) + BigInt(buffer[1]) << 32n\n //\n // // Alternative with BigUint64Array (different Browser support than plain bigints!):\n // return crypto.getRandomValues(new BigUint64Array(1))[0]\n //\n // For now, let's keep using two plain numbers as having two different implementations (one for\n // browsers with BigInt support and one for older browsers) don't bring much value.\n return {\n toString(radix = 10) {\n let high = buffer[1];\n let low = buffer[0];\n let str = '';\n do {\n const 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}\nexport function toPaddedHexadecimalString(id) {\n return id.toString(16).padStart(16, '0');\n}\n//# sourceMappingURL=identifier.js.map","import { performDraw } from '@datadog/browser-core';\nlet sampleDecisionCache;\nexport function isTraceSampled(sessionId, sampleRate) {\n // Shortcuts for common cases. This is not strictly necessary, but it makes the code faster for\n // customers willing to ingest all traces.\n if (sampleRate === 100) {\n return true;\n }\n if (sampleRate === 0) {\n return false;\n }\n if (sampleDecisionCache && sessionId === sampleDecisionCache.sessionId) {\n return sampleDecisionCache.decision;\n }\n let decision;\n // @ts-expect-error BigInt might not be defined in every browser we support\n if (window.BigInt) {\n decision = sampleUsingKnuthFactor(BigInt(`0x${sessionId.split('-')[4]}`), sampleRate);\n }\n else {\n // For simplicity, we don't use consistent sampling for browser without BigInt support\n // TODO: remove this when all browser we support have BigInt support\n decision = performDraw(sampleRate);\n }\n sampleDecisionCache = { sessionId, decision };\n return decision;\n}\n// Exported for tests\nexport function resetSampleDecisionCache() {\n sampleDecisionCache = undefined;\n}\n/**\n * Perform sampling using the Knuth factor method. This method offer consistent sampling result\n * based on the provided identifier.\n *\n * @param identifier The identifier to use for sampling.\n * @param sampleRate The sample rate in percentage between 0 and 100.\n */\nexport function sampleUsingKnuthFactor(identifier, sampleRate) {\n // The formula is:\n //\n // (identifier * knuthFactor) % 2^64 < sampleRate * 2^64\n //\n // Because JavaScript numbers are 64-bit floats, we can't represent 64-bit integers, and the\n // modulo would be incorrect. Thus, we are using BigInts here.\n //\n // Implementation in other languages:\n // * Go https://github.com/DataDog/dd-trace-go/blob/ec6fbb1f2d517b7b8e69961052adf7136f3af773/ddtrace/tracer/sampler.go#L86-L91\n // * Python https://github.com/DataDog/dd-trace-py/blob/0cee2f066fb6e79aa15947c1514c0f406dea47c5/ddtrace/sampling_rule.py#L197\n // * Ruby https://github.com/DataDog/dd-trace-rb/blob/1a6e255cdcb7e7e22235ea5955f90f6dfa91045d/lib/datadog/tracing/sampling/rate_sampler.rb#L42\n // * C++ https://github.com/DataDog/dd-trace-cpp/blob/159629edc438ae45f2bb318eb7bd51abd05e94b5/src/datadog/trace_sampler.cpp#L58\n // * Java https://github.com/DataDog/dd-trace-java/blob/896dd6b380533216e0bdee59614606c8272d313e/dd-trace-core/src/main/java/datadog/trace/common/sampling/DeterministicSampler.java#L48\n //\n // Note: All implementations have slight variations. Some of them use '<=' instead of '<', and\n // use `sampleRate * 2^64 - 1` instead of `sampleRate * 2^64`. The following implementation\n // should adhere to the spec and is a bit simpler than using a 2^64-1 limit as there are less\n // BigInt arithmetic to write. In practice this does not matter, as we are using floating point\n // numbers in the end, and Number(2n**64n-1n) === Number(2n**64n).\n const knuthFactor = BigInt('1111111111111111111');\n const twoPow64 = BigInt('0x10000000000000000'); // 2n ** 64n\n const hash = (identifier * knuthFactor) % twoPow64;\n return Number(hash) <= (sampleRate / 100) * Number(twoPow64);\n}\n//# sourceMappingURL=sampler.js.map","import { objectEntries, shallowClone, getType, isMatchOption, matchList, TraceContextInjection, } from '@datadog/browser-core';\nimport { createSpanIdentifier, createTraceIdentifier, toPaddedHexadecimalString } from './identifier';\nimport { isTraceSampled } from './sampler';\nexport function isTracingOption(item) {\n const 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,\n traceFetch: (context) => injectHeadersIfTracingAllowed(configuration, context, sessionManager, (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((key) => {\n ;\n context.input.headers.append(key, tracingHeaders[key]);\n });\n }\n else {\n context.init = shallowClone(context.init);\n const headers = [];\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach((value, key) => {\n headers.push([key, value]);\n });\n }\n else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach((header) => {\n headers.push(header);\n });\n }\n else if (context.init.headers) {\n Object.keys(context.init.headers).forEach((key) => {\n headers.push([key, context.init.headers[key]]);\n });\n }\n context.init.headers = headers.concat(objectEntries(tracingHeaders));\n }\n }),\n traceXhr: (context, xhr) => injectHeadersIfTracingAllowed(configuration, context, sessionManager, (tracingHeaders) => {\n Object.keys(tracingHeaders).forEach((name) => {\n xhr.setRequestHeader(name, tracingHeaders[name]);\n });\n }),\n };\n}\nfunction injectHeadersIfTracingAllowed(configuration, context, sessionManager, inject) {\n const session = sessionManager.findTrackedSession();\n if (!session) {\n return;\n }\n const tracingOption = configuration.allowedTracingUrls.find((tracingOption) => matchList([tracingOption.match], context.url, true));\n if (!tracingOption) {\n return;\n }\n const traceSampled = isTraceSampled(session.id, configuration.traceSampleRate);\n const shouldInjectHeaders = traceSampled || configuration.traceContextInjection === TraceContextInjection.ALL;\n if (!shouldInjectHeaders) {\n return;\n }\n context.traceSampled = traceSampled;\n context.traceId = createTraceIdentifier();\n context.spanId = createSpanIdentifier();\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes));\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 const tracingHeaders = {};\n propagatorTypes.forEach((propagatorType) => {\n switch (propagatorType) {\n case 'datadog': {\n Object.assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toString(),\n });\n break;\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n Object.assign(tracingHeaders, {\n traceparent: `00-0000000000000000${toPaddedHexadecimalString(traceId)}-${toPaddedHexadecimalString(spanId)}-0${traceSampled ? '1' : '0'}`,\n tracestate: `dd=s:${traceSampled ? '1' : '0'};o:rum`,\n });\n break;\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n Object.assign(tracingHeaders, {\n b3: `${toPaddedHexadecimalString(traceId)}-${toPaddedHexadecimalString(spanId)}-${traceSampled ? '1' : '0'}`,\n });\n break;\n }\n case 'b3multi': {\n Object.assign(tracingHeaders, {\n 'X-B3-TraceId': toPaddedHexadecimalString(traceId),\n 'X-B3-SpanId': toPaddedHexadecimalString(spanId),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n });\n break;\n }\n }\n });\n return tracingHeaders;\n}\n//# sourceMappingURL=tracer.js.map","import { getType, isMatchOption, serializeConfiguration, DefaultPrivacyLevel, TraceContextInjection, display, objectHasValue, validateAndBuildConfiguration, isSampleRate, isNumber, } from '@datadog/browser-core';\nimport { isTracingOption } from '../tracing/tracer';\nexport const DEFAULT_PROPAGATOR_TYPES = ['tracecontext', 'datadog'];\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (initConfiguration.trackFeatureFlagsForEvents !== undefined &&\n !Array.isArray(initConfiguration.trackFeatureFlagsForEvents)) {\n display.warn('trackFeatureFlagsForEvents should be an array');\n }\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.');\n return;\n }\n if (!isSampleRate(initConfiguration.sessionReplaySampleRate, 'Session Replay') ||\n !isSampleRate(initConfiguration.traceSampleRate, 'Trace')) {\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 const allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration);\n if (!allowedTracingUrls) {\n return;\n }\n const baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n if (!baseConfiguration) {\n return;\n }\n const sessionReplaySampleRate = (_a = initConfiguration.sessionReplaySampleRate) !== null && _a !== void 0 ? _a : 0;\n return {\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version || undefined,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate,\n startSessionReplayRecordingManually: initConfiguration.startSessionReplayRecordingManually !== undefined\n ? !!initConfiguration.startSessionReplayRecordingManually\n : sessionReplaySampleRate === 0,\n traceSampleRate: (_b = initConfiguration.traceSampleRate) !== null && _b !== void 0 ? _b : 100,\n rulePsr: isNumber(initConfiguration.traceSampleRate) ? initConfiguration.traceSampleRate / 100 : undefined,\n allowedTracingUrls,\n excludedActivityUrls: (_c = initConfiguration.excludedActivityUrls) !== null && _c !== void 0 ? _c : [],\n workerUrl: initConfiguration.workerUrl,\n compressIntakeRequests: !!initConfiguration.compressIntakeRequests,\n trackUserInteractions: !!((_d = initConfiguration.trackUserInteractions) !== null && _d !== void 0 ? _d : true),\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: !!((_e = initConfiguration.trackResources) !== null && _e !== void 0 ? _e : true),\n trackLongTasks: !!((_f = initConfiguration.trackLongTasks) !== null && _f !== void 0 ? _f : true),\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK,\n enablePrivacyForActionName: !!initConfiguration.enablePrivacyForActionName,\n customerDataTelemetrySampleRate: 1,\n traceContextInjection: objectHasValue(TraceContextInjection, initConfiguration.traceContextInjection)\n ? initConfiguration.traceContextInjection\n : TraceContextInjection.SAMPLED,\n plugins: initConfiguration.plugins || [],\n trackFeatureFlagsForEvents: initConfiguration.trackFeatureFlagsForEvents || [],\n ...baseConfiguration,\n };\n}\n/**\n * Validates allowedTracingUrls and converts match options to tracing options\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\n if (initConfiguration.allowedTracingUrls === undefined) {\n return [];\n }\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 const tracingOptions = [];\n initConfiguration.allowedTracingUrls.forEach((option) => {\n if (isMatchOption(option)) {\n tracingOptions.push({ match: option, propagatorTypes: DEFAULT_PROPAGATOR_TYPES });\n }\n else if (isTracingOption(option)) {\n tracingOptions.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;\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls\n */\nfunction getSelectedTracingPropagators(configuration) {\n const usedTracingPropagators = new Set();\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach((option) => {\n if (isMatchOption(option)) {\n DEFAULT_PROPAGATOR_TYPES.forEach((propagatorType) => usedTracingPropagators.add(propagatorType));\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((propagatorType) => usedTracingPropagators.add(propagatorType));\n }\n });\n }\n return Array.from(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var _a;\n const baseSerializedConfiguration = serializeConfiguration(configuration);\n return {\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n trace_sample_rate: configuration.traceSampleRate,\n trace_context_injection: configuration.traceContextInjection,\n action_name_attribute: configuration.actionNameAttribute,\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 enable_privacy_for_action_name: configuration.enablePrivacyForActionName,\n use_excluded_activity_urls: Array.isArray(configuration.excludedActivityUrls) && configuration.excludedActivityUrls.length > 0,\n use_worker_url: !!configuration.workerUrl,\n compress_intake_requests: configuration.compressIntakeRequests,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: configuration.trackUserInteractions,\n track_resources: configuration.trackResources,\n track_long_task: configuration.trackLongTasks,\n plugins: (_a = configuration.plugins) === null || _a === void 0 ? void 0 : _a.map((plugin) => {\n var _a;\n return ({\n name: plugin.name,\n ...(_a = plugin.getConfigurationTelemetry) === null || _a === void 0 ? void 0 : _a.call(plugin),\n });\n }),\n track_feature_flags_for_events: configuration.trackFeatureFlagsForEvents,\n ...baseSerializedConfiguration,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { display, addEventListener, buildEndpointHost } from '@datadog/browser-core';\nconst REMOTE_CONFIGURATION_VERSION = 'v1';\nexport function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {\n fetchRemoteConfiguration(initConfiguration, (remoteInitConfiguration) => {\n callback(applyRemoteConfiguration(initConfiguration, remoteInitConfiguration));\n });\n}\nexport function applyRemoteConfiguration(initConfiguration, remoteInitConfiguration) {\n return { ...initConfiguration, ...remoteInitConfiguration };\n}\nexport function fetchRemoteConfiguration(configuration, callback) {\n const xhr = new XMLHttpRequest();\n addEventListener(configuration, xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText);\n callback(remoteConfiguration.rum);\n }\n else {\n displayRemoteConfigurationFetchingError();\n }\n });\n addEventListener(configuration, xhr, 'error', function () {\n displayRemoteConfigurationFetchingError();\n });\n xhr.open('GET', buildEndpoint(configuration));\n xhr.send();\n}\nexport function buildEndpoint(configuration) {\n return `https://sdk-configuration.${buildEndpointHost('rum', configuration)}/${REMOTE_CONFIGURATION_VERSION}/${encodeURIComponent(configuration.remoteConfigurationId)}.json`;\n}\nfunction displayRemoteConfigurationFetchingError() {\n display.error('Error fetching the remote configuration.');\n}\n//# sourceMappingURL=remoteConfiguration.js.map","import { createBoundedBuffer, display, canUseEventBridge, displayAlreadyInitializedError, willSyntheticsInjectRum, noop, timeStampNow, clocksNow, getEventBridge, initFeatureFlags, addTelemetryConfiguration, initFetchObservable, } from '@datadog/browser-core';\nimport { validateAndBuildRumConfiguration, } from '../domain/configuration';\nimport { startDurationVital, stopDurationVital } from '../domain/vital/vitalCollection';\nimport { fetchAndApplyRemoteConfiguration, serializeRumConfiguration } from '../domain/configuration';\nimport { callPluginsMethod } from '../domain/plugins';\nexport function createPreStartStrategy({ ignoreInitIfSyntheticsWillInjectRum, startDeflateWorker }, getCommonContext, trackingConsentState, customVitalsState, doStartRum) {\n const bufferApiCalls = createBoundedBuffer();\n let firstStartViewCall;\n let deflateWorker;\n let cachedInitConfiguration;\n let cachedConfiguration;\n const trackingConsentStateSubscription = trackingConsentState.observable.subscribe(tryStartRum);\n const emptyContext = {};\n function tryStartRum() {\n if (!cachedInitConfiguration || !cachedConfiguration || !trackingConsentState.isGranted()) {\n return;\n }\n trackingConsentStateSubscription.unsubscribe();\n let initialViewOptions;\n if (cachedConfiguration.trackViewsManually) {\n if (!firstStartViewCall) {\n return;\n }\n // An initial view is always created when starting RUM.\n // When tracking views automatically, any startView call before RUM start creates an extra\n // view.\n // When tracking views manually, we use the ViewOptions from the first startView call as the\n // initial view options, and we remove the actual startView call so we don't create an extra\n // view.\n bufferApiCalls.remove(firstStartViewCall.callback);\n initialViewOptions = firstStartViewCall.options;\n }\n const startRumResult = doStartRum(cachedConfiguration, deflateWorker, initialViewOptions);\n bufferApiCalls.drain(startRumResult);\n }\n function doInit(initConfiguration) {\n const eventBridgeAvailable = canUseEventBridge();\n if (eventBridgeAvailable) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n // Update the exposed initConfiguration to reflect the bridge and remote configuration overrides\n cachedInitConfiguration = initConfiguration;\n addTelemetryConfiguration(serializeRumConfiguration(initConfiguration));\n if (cachedConfiguration) {\n displayAlreadyInitializedError('DD_RUM', initConfiguration);\n return;\n }\n const 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.compressIntakeRequests && !eventBridgeAvailable && startDeflateWorker) {\n deflateWorker = startDeflateWorker(configuration, 'Datadog RUM', \n // Worker initialization can fail asynchronously, especially in Firefox where even CSP\n // issues are reported asynchronously. For now, the SDK will continue its execution even if\n // data won't be sent to Datadog. We could improve this behavior in the future.\n noop);\n if (!deflateWorker) {\n // `startDeflateWorker` should have logged an error message explaining the issue\n return;\n }\n }\n cachedConfiguration = configuration;\n // Instrumuent fetch to track network requests\n // This is needed in case the consent is not granted and some cutsomer\n // library (Apollo Client) is storing uninstrumented fetch to be used later\n // The subscrption is needed so that the instrumentation process is completed\n initFetchObservable().subscribe(noop);\n trackingConsentState.tryToInit(configuration.trackingConsent);\n tryStartRum();\n }\n const addDurationVital = (vital) => {\n bufferApiCalls.add((startRumResult) => startRumResult.addDurationVital(vital));\n };\n const strategy = {\n init(initConfiguration, publicApi) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n initFeatureFlags(initConfiguration.enableExperimentalFeatures);\n // Expose the initial configuration regardless of initialization success.\n cachedInitConfiguration = initConfiguration;\n // If we are in a Synthetics test configured to automatically inject a RUM instance, we want\n // to completely discard the customer application RUM instance by ignoring their init() call.\n // But, 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 callPluginsMethod(initConfiguration.plugins, 'onInit', { initConfiguration, publicApi });\n if (initConfiguration.remoteConfigurationId) {\n fetchAndApplyRemoteConfiguration(initConfiguration, doInit);\n }\n else {\n doInit(initConfiguration);\n }\n },\n get initConfiguration() {\n return cachedInitConfiguration;\n },\n getInternalContext: noop,\n stopSession: noop,\n addTiming(name, time = timeStampNow()) {\n bufferApiCalls.add((startRumResult) => startRumResult.addTiming(name, time));\n },\n startView(options, startClocks = clocksNow()) {\n const callback = (startRumResult) => {\n startRumResult.startView(options, startClocks);\n };\n bufferApiCalls.add(callback);\n if (!firstStartViewCall) {\n firstStartViewCall = { options, callback };\n tryStartRum();\n }\n },\n setViewName(name) {\n bufferApiCalls.add((startRumResult) => startRumResult.setViewName(name));\n },\n setViewContext(context) {\n bufferApiCalls.add((startRumResult) => startRumResult.setViewContext(context));\n },\n setViewContextProperty(key, value) {\n bufferApiCalls.add((startRumResult) => startRumResult.setViewContextProperty(key, value));\n },\n getViewContext: () => emptyContext,\n addAction(action, commonContext = getCommonContext()) {\n bufferApiCalls.add((startRumResult) => startRumResult.addAction(action, commonContext));\n },\n addError(providedError, commonContext = getCommonContext()) {\n bufferApiCalls.add((startRumResult) => startRumResult.addError(providedError, commonContext));\n },\n addFeatureFlagEvaluation(key, value) {\n bufferApiCalls.add((startRumResult) => startRumResult.addFeatureFlagEvaluation(key, value));\n },\n startDurationVital(name, options) {\n return startDurationVital(customVitalsState, name, options);\n },\n stopDurationVital(name, options) {\n stopDurationVital(addDurationVital, customVitalsState, name, options);\n },\n addDurationVital,\n };\n return strategy;\n}\nfunction overrideInitConfigurationForBridge(initConfiguration) {\n var _a, _b;\n return {\n ...initConfiguration,\n applicationId: '00000000-aaaa-0000-aaaa-000000000000',\n clientToken: 'empty',\n sessionSampleRate: 100,\n defaultPrivacyLevel: (_a = initConfiguration.defaultPrivacyLevel) !== null && _a !== void 0 ? _a : (_b = getEventBridge()) === null || _b === void 0 ? void 0 : _b.getPrivacyLevel(),\n };\n}\n//# sourceMappingURL=preStartRum.js.map","import { addTelemetryUsage, createContextManager, deepClone, makePublicApi, monitor, clocksNow, callMonitored, createHandlingStack, sanitize, createIdentityEncoder, createCustomerDataTrackerManager, storeContextManager, displayAlreadyInitializedError, createTrackingConsentState, timeStampToClocks, } from '@datadog/browser-core';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nimport { createCustomVitalsState } from '../domain/vital/vitalCollection';\nimport { callPluginsMethod } from '../domain/plugins';\nimport { createPreStartStrategy } from './preStartRum';\nconst RUM_STORAGE_KEY = 'rum';\nexport function makeRumPublicApi(startRumImpl, recorderApi, options = {}) {\n const customerDataTrackerManager = createCustomerDataTrackerManager(0 /* CustomerDataCompressionStatus.Unknown */);\n const globalContextManager = createContextManager('global context', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(2 /* CustomerDataType.GlobalContext */),\n });\n const userContextManager = createContextManager('user', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(1 /* CustomerDataType.User */),\n propertiesConfig: {\n id: { type: 'string' },\n name: { type: 'string' },\n email: { type: 'string' },\n },\n });\n const accountContextManager = createContextManager('account', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(1 /* CustomerDataType.User */),\n propertiesConfig: {\n id: { type: 'string', required: true },\n name: { type: 'string' },\n },\n });\n const trackingConsentState = createTrackingConsentState();\n const customVitalsState = createCustomVitalsState();\n function getCommonContext() {\n return buildCommonContext(globalContextManager, userContextManager, accountContextManager, recorderApi);\n }\n let strategy = createPreStartStrategy(options, getCommonContext, trackingConsentState, customVitalsState, (configuration, deflateWorker, initialViewOptions) => {\n if (configuration.storeContextsAcrossPages) {\n storeContextManager(configuration, globalContextManager, RUM_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n storeContextManager(configuration, userContextManager, RUM_STORAGE_KEY, 1 /* CustomerDataType.User */);\n storeContextManager(configuration, accountContextManager, RUM_STORAGE_KEY, 4 /* CustomerDataType.Account */);\n }\n customerDataTrackerManager.setCompressionStatus(deflateWorker ? 1 /* CustomerDataCompressionStatus.Enabled */ : 2 /* CustomerDataCompressionStatus.Disabled */);\n const startRumResult = startRumImpl(configuration, recorderApi, customerDataTrackerManager, getCommonContext, initialViewOptions, deflateWorker && options.createDeflateEncoder\n ? (streamId) => options.createDeflateEncoder(configuration, deflateWorker, streamId)\n : createIdentityEncoder, trackingConsentState, customVitalsState);\n recorderApi.onRumStart(startRumResult.lifeCycle, configuration, startRumResult.session, startRumResult.viewHistory, deflateWorker);\n strategy = createPostStartStrategy(strategy, startRumResult);\n callPluginsMethod(configuration.plugins, 'onRumStart', { strategy });\n return startRumResult;\n });\n const startView = monitor((options) => {\n const sanitizedOptions = typeof options === 'object' ? options : { name: options };\n if (sanitizedOptions.context) {\n customerDataTrackerManager.getOrCreateTracker(3 /* CustomerDataType.View */).updateCustomerData(sanitizedOptions.context);\n }\n strategy.startView(sanitizedOptions);\n addTelemetryUsage({ feature: 'start-view' });\n });\n const rumPublicApi = makePublicApi({\n init: monitor((initConfiguration) => {\n strategy.init(initConfiguration, rumPublicApi);\n }),\n setTrackingConsent: monitor((trackingConsent) => {\n trackingConsentState.update(trackingConsent);\n addTelemetryUsage({ feature: 'set-tracking-consent', tracking_consent: trackingConsent });\n }),\n setViewName: monitor((name) => {\n strategy.setViewName(name);\n addTelemetryUsage({ feature: 'set-view-name' });\n }),\n setViewContext: monitor((context) => {\n strategy.setViewContext(context);\n addTelemetryUsage({ feature: 'set-view-context' });\n }),\n setViewContextProperty: monitor((key, value) => {\n strategy.setViewContextProperty(key, value);\n addTelemetryUsage({ feature: 'set-view-context-property' });\n }),\n getViewContext: monitor(() => {\n addTelemetryUsage({ feature: 'set-view-context-property' });\n return strategy.getViewContext();\n }),\n setGlobalContext: monitor((context) => {\n globalContextManager.setContext(context);\n addTelemetryUsage({ feature: 'set-global-context' });\n }),\n getGlobalContext: monitor(() => globalContextManager.getContext()),\n setGlobalContextProperty: monitor((key, value) => {\n globalContextManager.setContextProperty(key, value);\n addTelemetryUsage({ feature: 'set-global-context' });\n }),\n removeGlobalContextProperty: monitor((key) => globalContextManager.removeContextProperty(key)),\n clearGlobalContext: monitor(() => globalContextManager.clearContext()),\n getInternalContext: monitor((startTime) => strategy.getInternalContext(startTime)),\n getInitConfiguration: monitor(() => deepClone(strategy.initConfiguration)),\n addAction: (name, context) => {\n const handlingStack = createHandlingStack('action');\n callMonitored(() => {\n strategy.addAction({\n name: sanitize(name),\n context: sanitize(context),\n startClocks: clocksNow(),\n type: \"custom\" /* ActionType.CUSTOM */,\n handlingStack,\n });\n addTelemetryUsage({ feature: 'add-action' });\n });\n },\n addError: (error, context) => {\n const handlingStack = createHandlingStack('error');\n callMonitored(() => {\n strategy.addError({\n error, // Do not sanitize error here, it is needed unserialized by computeRawError()\n handlingStack,\n context: sanitize(context),\n startClocks: clocksNow(),\n });\n addTelemetryUsage({ feature: 'add-error' });\n });\n },\n addTiming: monitor((name, time) => {\n // TODO: next major decide to drop relative time support or update its behaviour\n strategy.addTiming(sanitize(name), time);\n }),\n setUser: monitor((newUser) => {\n userContextManager.setContext(newUser);\n addTelemetryUsage({ feature: 'set-user' });\n }),\n getUser: monitor(userContextManager.getContext),\n setUserProperty: monitor((key, property) => {\n userContextManager.setContextProperty(key, property);\n addTelemetryUsage({ feature: 'set-user' });\n }),\n removeUserProperty: monitor(userContextManager.removeContextProperty),\n clearUser: monitor(userContextManager.clearContext),\n setAccount: monitor(accountContextManager.setContext),\n getAccount: monitor(accountContextManager.getContext),\n setAccountProperty: monitor(accountContextManager.setContextProperty),\n removeAccountProperty: monitor(accountContextManager.removeContextProperty),\n clearAccount: monitor(accountContextManager.clearContext),\n startView,\n stopSession: monitor(() => {\n strategy.stopSession();\n addTelemetryUsage({ feature: 'stop-session' });\n }),\n addFeatureFlagEvaluation: monitor((key, value) => {\n strategy.addFeatureFlagEvaluation(sanitize(key), sanitize(value));\n addTelemetryUsage({ feature: 'add-feature-flag-evaluation' });\n }),\n getSessionReplayLink: monitor(() => recorderApi.getSessionReplayLink()),\n startSessionReplayRecording: monitor((options) => {\n recorderApi.start(options);\n addTelemetryUsage({ feature: 'start-session-replay-recording', force: options && options.force });\n }),\n stopSessionReplayRecording: monitor(() => recorderApi.stop()),\n addDurationVital: monitor((name, options) => {\n addTelemetryUsage({ feature: 'add-duration-vital' });\n strategy.addDurationVital({\n name: sanitize(name),\n type: \"duration\" /* VitalType.DURATION */,\n startClocks: timeStampToClocks(options.startTime),\n duration: options.duration,\n context: sanitize(options && options.context),\n description: sanitize(options && options.description),\n });\n }),\n startDurationVital: monitor((name, options) => {\n addTelemetryUsage({ feature: 'start-duration-vital' });\n return strategy.startDurationVital(sanitize(name), {\n context: sanitize(options && options.context),\n description: sanitize(options && options.description),\n });\n }),\n stopDurationVital: monitor((nameOrRef, options) => {\n addTelemetryUsage({ feature: 'stop-duration-vital' });\n strategy.stopDurationVital(typeof nameOrRef === 'string' ? sanitize(nameOrRef) : nameOrRef, {\n context: sanitize(options && options.context),\n description: sanitize(options && options.description),\n });\n }),\n });\n return rumPublicApi;\n}\nfunction createPostStartStrategy(preStartStrategy, startRumResult) {\n return {\n init: (initConfiguration) => {\n displayAlreadyInitializedError('DD_RUM', initConfiguration);\n },\n initConfiguration: preStartStrategy.initConfiguration,\n ...startRumResult,\n };\n}\n//# sourceMappingURL=rumPublicApi.js.map","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core';\nexport function createDOMMutationObservable() {\n const MutationObserver = getMutationObserverConstructor();\n return new Observable((observable) => {\n if (!MutationObserver) {\n return;\n }\n const observer = new MutationObserver(monitor(() => observable.notify()));\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n return () => observer.disconnect();\n });\n}\nexport function getMutationObserverConstructor() {\n let constructor;\n const 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 const patchedInstance = new browserWindow.MutationObserver(noop);\n const 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 { instrumentMethod, Observable } from '@datadog/browser-core';\nexport function createWindowOpenObservable() {\n const observable = new Observable();\n const { stop } = instrumentMethod(window, 'open', () => observable.notify());\n return { observable, stop };\n}\n//# sourceMappingURL=windowOpenObservable.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Allows declaring and enforcing modifications to specific fields of an object.\n * Only supports modifying properties of an object (even if nested in an array).\n * Does not support array manipulation (adding/removing items).\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n const clone = deepClone(object);\n const result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(([fieldPath, fieldType]) => \n // Traverse both object and clone simultaneously up to the path and apply the modification from the clone to the original object when the type is valid\n setValueAtPath(object, clone, fieldPath.split(/\\.|(?=\\[\\])/), fieldType));\n return result;\n}\nfunction setValueAtPath(object, clone, pathSegments, fieldType) {\n const [field, ...restPathSegments] = pathSegments;\n if (field === '[]') {\n if (Array.isArray(object) && Array.isArray(clone)) {\n object.forEach((item, i) => setValueAtPath(item, clone[i], restPathSegments, fieldType));\n }\n return;\n }\n if (!isValidObject(object) || !isValidObject(clone)) {\n return;\n }\n if (restPathSegments.length > 0) {\n return setValueAtPath(object[field], clone[field], restPathSegments, fieldType);\n }\n setNestedValue(object, field, clone[field], fieldType);\n}\nfunction setNestedValue(object, field, value, fieldType) {\n const newType = getType(value);\n if (newType === fieldType) {\n object[field] = sanitize(value);\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n object[field] = {};\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, round, isExperimentalFeatureEnabled, ExperimentalFeature, getConnectivity, addTelemetryDebug, } from '@datadog/browser-core';\nimport { limitModification } from './limitModification';\nconst VIEW_MODIFIABLE_FIELD_PATHS = {\n 'view.name': 'string',\n 'view.url': 'string',\n 'view.referrer': 'string',\n};\nconst USER_CUSTOMIZABLE_FIELD_PATHS = {\n context: 'object',\n};\nconst ROOT_MODIFIABLE_FIELD_PATHS = {\n service: 'string',\n version: 'string',\n};\nlet modifiableFieldPathsByEvent;\nexport function startRumAssembly(configuration, lifeCycle, hooks, sessionManager, viewHistory, urlContexts, displayContext, getCommonContext, reportError) {\n modifiableFieldPathsByEvent = {\n [\"view\" /* RumEventType.VIEW */]: {\n 'view.performance.lcp.resource_url': 'string',\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n },\n [\"error\" /* RumEventType.ERROR */]: {\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n ...ROOT_MODIFIABLE_FIELD_PATHS,\n },\n [\"resource\" /* RumEventType.RESOURCE */]: {\n 'resource.url': 'string',\n ...(isExperimentalFeatureEnabled(ExperimentalFeature.WRITABLE_RESOURCE_GRAPHQL)\n ? { 'resource.graphql': 'object' }\n : {}),\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n ...ROOT_MODIFIABLE_FIELD_PATHS,\n },\n [\"action\" /* RumEventType.ACTION */]: {\n 'action.target.name': 'string',\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n ...ROOT_MODIFIABLE_FIELD_PATHS,\n },\n [\"long_task\" /* RumEventType.LONG_TASK */]: {\n 'long_task.scripts[].source_url': 'string',\n 'long_task.scripts[].invoker': 'string',\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n },\n [\"vital\" /* RumEventType.VITAL */]: {\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n },\n };\n const eventRateLimiters = {\n [\"error\" /* RumEventType.ERROR */]: createEventRateLimiter(\"error\" /* RumEventType.ERROR */, configuration.eventRateLimiterThreshold, reportError),\n [\"action\" /* RumEventType.ACTION */]: createEventRateLimiter(\"action\" /* RumEventType.ACTION */, configuration.eventRateLimiterThreshold, reportError),\n [\"vital\" /* RumEventType.VITAL */]: createEventRateLimiter(\"vital\" /* RumEventType.VITAL */, configuration.eventRateLimiterThreshold, reportError),\n };\n lifeCycle.subscribe(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, ({ startTime, duration, rawRumEvent, domainContext, savedCommonContext, customerContext }) => {\n const viewHistoryEntry = viewHistory.findView(startTime);\n const urlContext = urlContexts.findUrl(startTime);\n const session = sessionManager.findTrackedSession(startTime);\n if (session &&\n viewHistoryEntry &&\n !urlContext &&\n isExperimentalFeatureEnabled(ExperimentalFeature.MISSING_URL_CONTEXT_TELEMETRY)) {\n addTelemetryDebug('Missing URL entry', {\n debug: {\n eventType: rawRumEvent.type,\n startTime,\n urlEntries: urlContexts.getAllEntries(),\n urlDeletedEntries: urlContexts.getDeletedEntries(),\n viewEntries: viewHistory.getAllEntries(),\n viewDeletedEntries: viewHistory.getDeletedEntries(),\n },\n });\n }\n if (session && viewHistoryEntry && urlContext) {\n const commonContext = savedCommonContext || getCommonContext();\n const rumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\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() ? \"6.5.1\" : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n source: 'browser',\n session: {\n id: session.id,\n type: \"user\" /* SessionType.USER */,\n },\n display: displayContext.get(),\n connectivity: getConnectivity(),\n context: commonContext.context,\n };\n const serverRumEvent = combine(rumContext, hooks.triggerHook(0 /* HookNames.Assemble */, {\n eventType: rawRumEvent.type,\n startTime,\n duration,\n }), { context: customerContext }, rawRumEvent);\n if (!('has_replay' in serverRumEvent.session)) {\n ;\n serverRumEvent.session.has_replay = commonContext.hasReplay;\n }\n if (serverRumEvent.type === 'view') {\n ;\n serverRumEvent.session.sampled_for_replay =\n session.sessionReplay === 1 /* SessionReplayState.SAMPLED */;\n }\n if (session.anonymousId && !commonContext.user.anonymous_id && !!configuration.trackAnonymousUser) {\n commonContext.user.anonymous_id = session.anonymousId;\n }\n if (!isEmptyObject(commonContext.user)) {\n ;\n serverRumEvent.usr = commonContext.user;\n }\n if (!isEmptyObject(commonContext.account) && commonContext.account.id) {\n ;\n serverRumEvent.account = commonContext.account;\n }\n if (shouldSend(serverRumEvent, configuration.beforeSend, domainContext, eventRateLimiters)) {\n if (isEmptyObject(serverRumEvent.context)) {\n delete serverRumEvent.context;\n }\n lifeCycle.notify(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, serverRumEvent);\n }\n }\n });\n}\nfunction shouldSend(event, beforeSend, domainContext, eventRateLimiters) {\n var _a;\n if (beforeSend) {\n const result = limitModification(event, modifiableFieldPathsByEvent[event.type], (event) => beforeSend(event, domainContext));\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 const rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\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, viewHistory, actionContexts, urlContexts) {\n return {\n get: (startTime) => {\n const viewContext = viewHistory.findView(startTime);\n const urlContext = urlContexts.findUrl(startTime);\n const session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n const 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","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport const LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { SESSION_TIME_OUT_DELAY, createValueHistory } from '@datadog/browser-core';\nexport const VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startViewHistory(lifeCycle) {\n const viewValueHistory = createValueHistory({ expireDelay: VIEW_CONTEXT_TIME_OUT_DELAY });\n lifeCycle.subscribe(1 /* LifeCycleEventType.BEFORE_VIEW_CREATED */, (view) => {\n viewValueHistory.add(buildViewHistoryEntry(view), view.startClocks.relative);\n });\n lifeCycle.subscribe(6 /* LifeCycleEventType.AFTER_VIEW_ENDED */, ({ endClocks }) => {\n viewValueHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(3 /* LifeCycleEventType.BEFORE_VIEW_UPDATED */, (viewUpdate) => {\n const currentView = viewValueHistory.find(viewUpdate.startClocks.relative);\n if (currentView && viewUpdate.name) {\n currentView.name = viewUpdate.name;\n }\n if (currentView && viewUpdate.context) {\n currentView.context = viewUpdate.context;\n }\n });\n lifeCycle.subscribe(10 /* LifeCycleEventType.SESSION_RENEWED */, () => {\n viewValueHistory.reset();\n });\n function buildViewHistoryEntry(view) {\n return {\n service: view.service,\n version: view.version,\n context: view.context,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n };\n }\n return {\n findView: (startTime) => viewValueHistory.find(startTime),\n getAllEntries: () => viewValueHistory.getAllEntries(),\n getDeletedEntries: () => viewValueHistory.getDeletedEntries(),\n stop: () => {\n viewValueHistory.stop();\n },\n };\n}\n//# sourceMappingURL=viewHistory.js.map","import { addTelemetryDebug, elapsed, getPathName, isValidUrl, toServerDuration, isIntakeUrl, } from '@datadog/browser-core';\nexport const FAKE_INITIAL_DOCUMENT = 'initial_document';\nconst RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, (initiatorType) => FAKE_INITIAL_DOCUMENT === initiatorType],\n [\"xhr\" /* ResourceType.XHR */, (initiatorType) => 'xmlhttprequest' === initiatorType],\n [\"fetch\" /* ResourceType.FETCH */, (initiatorType) => 'fetch' === initiatorType],\n [\"beacon\" /* ResourceType.BEACON */, (initiatorType) => 'beacon' === initiatorType],\n [\"css\" /* ResourceType.CSS */, (_, path) => /\\.css$/i.test(path)],\n [\"js\" /* ResourceType.JS */, (_, path) => /\\.js$/i.test(path)],\n [\n \"image\" /* ResourceType.IMAGE */,\n (initiatorType, path) => ['image', 'img', 'icon'].includes(initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null,\n ],\n [\"font\" /* ResourceType.FONT */, (_, path) => /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null],\n [\n \"media\" /* ResourceType.MEDIA */,\n (initiatorType, path) => ['audio', 'video'].includes(initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null,\n ],\n];\nexport function computeResourceEntryType(entry) {\n const url = entry.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(`Failed to construct URL for \"${entry.name}\"`);\n return \"other\" /* ResourceType.OTHER */;\n }\n const path = getPathName(url);\n for (const [type, isType] of RESOURCE_TYPES) {\n if (isType(entry.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder(...numbers) {\n for (let 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 isResourceEntryRequestType(entry) {\n return entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch';\n}\nexport function computeResourceEntryDuration(entry) {\n const { duration, startTime, responseEnd } = entry;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return elapsed(startTime, responseEnd);\n }\n return duration;\n}\nexport function computeResourceEntryDetails(entry) {\n if (!hasValidResourceEntryTimings(entry)) {\n return undefined;\n }\n const { startTime, fetchStart, workerStart, redirectStart, redirectEnd, domainLookupStart, domainLookupEnd, connectStart, secureConnectionStart, connectEnd, requestStart, responseStart, responseEnd, } = entry;\n const details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a worker processing time is recorded\n if (0 < workerStart && workerStart < fetchStart) {\n details.worker = formatTiming(startTime, workerStart, fetchStart);\n }\n // Make sure a connection occurred\n if (fetchStart < connectEnd) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (connectStart <= secureConnectionStart && secureConnectionStart <= connectEnd) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (fetchStart < domainLookupEnd) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n // Make sure a redirection occurred\n if (startTime < redirectEnd) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\n/**\n * Entries with negative duration are unexpected and should be dismissed. The intake will ignore RUM\n * Resource events with negative durations anyway.\n * Since Chromium 128, more entries have unexpected negative durations, see\n * https://issues.chromium.org/issues/363031537\n */\nexport function hasValidResourceEntryDuration(entry) {\n return entry.duration >= 0;\n}\nexport function hasValidResourceEntryTimings(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 const areCommonTimingsInOrder = areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd);\n const areRedirectionTimingsInOrder = hasRedirection(entry)\n ? areInOrder(entry.startTime, entry.redirectStart, entry.redirectEnd, entry.fetchStart)\n : true;\n return areCommonTimingsInOrder && areRedirectionTimingsInOrder;\n}\nfunction hasRedirection(entry) {\n return entry.redirectEnd > entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n if (origin <= start && start <= end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n }\n}\n/**\n * The 'nextHopProtocol' is an empty string for cross-origin resources without CORS headers,\n * meaning the protocol is unknown, and we shouldn't report it.\n * https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/nextHopProtocol#cross-origin_resources\n */\nexport function computeResourceEntryProtocol(entry) {\n return entry.nextHopProtocol === '' ? undefined : entry.nextHopProtocol;\n}\n/**\n * Handles the 'deliveryType' property to distinguish between supported values ('cache', 'navigational-prefetch'),\n * undefined (unsupported in some browsers), and other cases ('other' for unknown or unrecognized values).\n * see: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/deliveryType\n */\nexport function computeResourceEntryDeliveryType(entry) {\n return entry.deliveryType === '' ? 'other' : entry.deliveryType;\n}\nexport function computeResourceEntrySize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n const { encodedBodySize, decodedBodySize, transferSize } = entry;\n return {\n size: decodedBodySize,\n encoded_body_size: encodedBodySize,\n decoded_body_size: decodedBodySize,\n transfer_size: transferSize,\n };\n }\n return {\n size: undefined,\n encoded_body_size: undefined,\n decoded_body_size: undefined,\n transfer_size: undefined,\n };\n}\nexport function isAllowedRequestUrl(url) {\n return url && !isIntakeUrl(url);\n}\nconst DATA_URL_REGEX = /data:(.+)?(;base64)?,/g;\nexport const MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 24000;\nexport function isLongDataUrl(url) {\n if (url.length <= MAX_ATTRIBUTE_VALUE_CHAR_LENGTH) {\n return false;\n }\n else if (url.substring(0, 5) === 'data:') {\n // Avoid String.match RangeError: Maximum call stack size exceeded\n url = url.substring(0, MAX_ATTRIBUTE_VALUE_CHAR_LENGTH);\n return true;\n }\n return false;\n}\nexport function sanitizeDataUrl(url) {\n return `${url.match(DATA_URL_REGEX)[0]}[...]`;\n}\n//# sourceMappingURL=resourceUtils.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nlet nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n const tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n const subscription = initXhrObservable(configuration).subscribe((rawContext) => {\n const context = rawContext;\n if (!isAllowedRequestUrl(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(7 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'complete':\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(8 /* 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 isAborted: context.isAborted,\n handlingStack: context.handlingStack,\n });\n break;\n }\n });\n return { stop: () => subscription.unsubscribe() };\n}\nexport function trackFetch(lifeCycle, tracer) {\n const subscription = initFetchObservable().subscribe((rawContext) => {\n const context = rawContext;\n if (!isAllowedRequestUrl(context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceFetch(context);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(7 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'resolve':\n waitForResponseToComplete(context, (duration) => {\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(8 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n 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 isAborted: context.isAborted,\n handlingStack: context.handlingStack,\n });\n });\n break;\n }\n });\n return { stop: () => subscription.unsubscribe() };\n}\nfunction getNextRequestIndex() {\n const result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n const 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, () => {\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 { isNumber } from '@datadog/browser-core';\nexport function discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=discardNegativeDuration.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts({ lifeCycle, isChildEvent, onChange: callback = noop, }) {\n const eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n const subscription = lifeCycle.subscribe(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, (event) => {\n var _a;\n if (event.type === 'view' || event.type === 'vital' || !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: () => {\n subscription.unsubscribe();\n },\n eventCounts,\n };\n}\n//# sourceMappingURL=trackEventCounts.js.map","import { addEventListeners, dateNow, relativeNow } from '@datadog/browser-core';\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nexport function retrieveFirstInputTiming(configuration, callback) {\n const startTimeStamp = dateNow();\n let timingSent = false;\n const { stop: 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 */], (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 const timing = {\n entryType: 'first-input',\n processingStart: relativeNow(),\n processingEnd: relativeNow(),\n startTime: evt.timeStamp,\n duration: 0, // arbitrary value to avoid nullable duration and simplify INP logic\n name: '',\n cancelable: false,\n target: null,\n toJSON: () => ({}),\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 });\n return { stop: removeEventListeners };\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 */], (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 const delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\n//# sourceMappingURL=firstInputPolyfill.js.map","import { addEventListener, Observable, setTimeout, clearTimeout, monitor } from '@datadog/browser-core';\nimport { hasValidResourceEntryDuration, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\nimport { retrieveFirstInputTiming } from './firstInputPolyfill';\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[\"LONG_ANIMATION_FRAME\"] = \"long-animation-frame\";\n RumPerformanceEntryType[\"NAVIGATION\"] = \"navigation\";\n RumPerformanceEntryType[\"PAINT\"] = \"paint\";\n RumPerformanceEntryType[\"RESOURCE\"] = \"resource\";\n})(RumPerformanceEntryType || (RumPerformanceEntryType = {}));\nexport function createPerformanceObservable(configuration, options) {\n return new Observable((observable) => {\n if (!window.PerformanceObserver) {\n return;\n }\n const handlePerformanceEntries = (entries) => {\n const rumPerformanceEntries = filterRumPerformanceEntries(entries);\n if (rumPerformanceEntries.length > 0) {\n observable.notify(rumPerformanceEntries);\n }\n };\n let timeoutId;\n let isObserverInitializing = true;\n const observer = new PerformanceObserver(monitor((entries) => {\n // In Safari the performance observer callback is synchronous.\n // Because the buffered performance entry list can be quite large we delay the computation to prevent the SDK from blocking the main thread on init\n if (isObserverInitializing) {\n timeoutId = setTimeout(() => handlePerformanceEntries(entries.getEntries()));\n }\n else {\n handlePerformanceEntries(entries.getEntries());\n }\n }));\n try {\n observer.observe(options);\n }\n catch (_a) {\n // Some old browser versions (<= chrome 74 ) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to getEntriesByType and PerformanceObserver with entryTypes\n // TODO: remove this fallback in the next major version\n const fallbackSupportedEntryTypes = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ];\n if (fallbackSupportedEntryTypes.includes(options.type)) {\n if (options.buffered) {\n timeoutId = setTimeout(() => handlePerformanceEntries(performance.getEntriesByType(options.type)));\n }\n try {\n observer.observe({ entryTypes: [options.type] });\n }\n catch (_b) {\n // Old versions of Safari are throwing \"entryTypes contained only unsupported types\"\n // errors when observing only unsupported entry types.\n //\n // We could use `supportPerformanceTimingEvent` to make sure we don't invoke\n // `observer.observe` with an unsupported entry type, but Safari 11 and 12 don't support\n // `Performance.supportedEntryTypes`, so doing so would lose support for these versions\n // even if they do support the entry type.\n return;\n }\n }\n }\n isObserverInitializing = false;\n manageResourceTimingBufferFull(configuration);\n let stopFirstInputTiming;\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT) &&\n options.type === RumPerformanceEntryType.FIRST_INPUT) {\n ;\n ({ stop: stopFirstInputTiming } = retrieveFirstInputTiming(configuration, (timing) => {\n handlePerformanceEntries([timing]);\n }));\n }\n return () => {\n observer.disconnect();\n if (stopFirstInputTiming) {\n stopFirstInputTiming();\n }\n clearTimeout(timeoutId);\n };\n });\n}\nlet resourceTimingBufferFullListener;\nfunction manageResourceTimingBufferFull(configuration) {\n if (!resourceTimingBufferFullListener && supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n resourceTimingBufferFullListener = addEventListener(configuration, performance, 'resourcetimingbufferfull', () => {\n performance.clearResourceTimings();\n });\n }\n return () => {\n resourceTimingBufferFullListener === null || resourceTimingBufferFullListener === void 0 ? void 0 : resourceTimingBufferFullListener.stop();\n };\n}\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}\nfunction filterRumPerformanceEntries(entries) {\n return entries.filter((entry) => !isForbiddenResource(entry));\n}\nfunction isForbiddenResource(entry) {\n return (entry.entryType === RumPerformanceEntryType.RESOURCE &&\n (!isAllowedRequestUrl(entry.name) || !hasValidResourceEntryDuration(entry)));\n}\n//# sourceMappingURL=performanceObservable.js.map","import { matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout } from '@datadog/browser-core';\nimport { createPerformanceObservable, RumPerformanceEntryType } from '../browser/performanceObservable';\n// Delay to wait for a page activity to validate the tracking process\nexport const PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport const 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, windowOpenObservable, configuration, pageActivityEndCallback, maxDuration) {\n const pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, windowOpenObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n let pageActivityEndTimeoutId;\n let hasCompleted = false;\n const validationTimeoutId = setTimeout(monitor(() => complete({ hadActivity: false })), PAGE_ACTIVITY_VALIDATION_DELAY);\n const maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(() => complete({ hadActivity: true, end: timeStampNow() })), maxDuration)\n : undefined;\n const pageActivitySubscription = pageActivityObservable.subscribe(({ isBusy }) => {\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n const lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(() => complete({ hadActivity: true, end: lastChangeTime })), PAGE_ACTIVITY_END_DELAY);\n }\n });\n const stop = () => {\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 };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, windowOpenObservable, configuration) {\n return new Observable((observable) => {\n const subscriptions = [];\n let firstRequestIndex;\n let pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), windowOpenObservable.subscribe(notifyPageActivity), createPerformanceObservable(configuration, { type: RumPerformanceEntryType.RESOURCE }).subscribe((entries) => {\n if (entries.some((entry) => !isExcludedUrl(configuration, entry.name))) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(7 /* LifeCycleEventType.REQUEST_STARTED */, (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(8 /* LifeCycleEventType.REQUEST_COMPLETED */, (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 return () => {\n subscriptions.forEach((s) => s.unsubscribe());\n };\n function notifyPageActivity() {\n observable.notify({ isBusy: pendingRequestsCount > 0 });\n }\n });\n}\nfunction isExcludedUrl(configuration, requestUrl) {\n return matchList(configuration.excludedActivityUrls, requestUrl);\n}\n//# sourceMappingURL=waitPageActivityEnd.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 const shadowRoot = node;\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);\n}\nexport function hasChildNodes(node) {\n return node.childNodes.length > 0 || isNodeShadowHost(node);\n}\nexport function forEachChildNodes(node, callback) {\n let child = node.firstChild;\n while (child) {\n callback(child);\n child = child.nextSibling;\n }\n if (isNodeShadowHost(node)) {\n callback(node.shadowRoot);\n }\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 { DefaultPrivacyLevel } from '@datadog/browser-core';\nimport { isElementNode, getParentNode, isTextNode } from '../browser/htmlDomUtils';\nexport const 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 const PRIVACY_ATTR_NAME = 'data-dd-privacy';\n// Privacy Attrs\nexport const PRIVACY_ATTR_VALUE_ALLOW = 'allow';\nexport const PRIVACY_ATTR_VALUE_MASK = 'mask';\nexport const PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input';\nexport const PRIVACY_ATTR_VALUE_HIDDEN = 'hidden';\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport const PRIVACY_CLASS_PREFIX = 'dd-privacy-';\n// Private Replacement Templates\nexport const CENSORED_STRING_MARK = '***';\nexport const CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';\nexport const 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};\nconst 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, cache) {\n if (cache && cache.has(node)) {\n return cache.get(node);\n }\n const parentNode = getParentNode(node);\n const parentNodePrivacyLevel = parentNode\n ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel, cache)\n : defaultPrivacyLevel;\n const selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n const nodePrivacyLevel = reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel);\n if (cache) {\n cache.set(node, nodePrivacyLevel);\n }\n return nodePrivacyLevel;\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 // 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 const 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 const autocomplete = inputElement.getAttribute('autocomplete');\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year/new-password/current-password]\n if (autocomplete && (autocomplete.startsWith('cc-') || autocomplete.endsWith('-password'))) {\n return NodePrivacyLevel.MASK;\n }\n }\n // Check HTML privacy attributes and classes\n if (node.matches(getPrivacySelector(NodePrivacyLevel.HIDDEN))) {\n return NodePrivacyLevel.HIDDEN;\n }\n if (node.matches(getPrivacySelector(NodePrivacyLevel.MASK))) {\n return NodePrivacyLevel.MASK;\n }\n if (node.matches(getPrivacySelector(NodePrivacyLevel.MASK_USER_INPUT))) {\n return NodePrivacyLevel.MASK_USER_INPUT;\n }\n if (node.matches(getPrivacySelector(NodePrivacyLevel.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 const 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 const censorText = (text) => 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 const parentTagName = (_a = textNode.parentElement) === null || _a === void 0 ? void 0 : _a.tagName;\n let textContent = textNode.textContent || '';\n if (ignoreWhiteSpace && !textContent.trim()) {\n return;\n }\n const nodePrivacyLevel = parentNodePrivacyLevel;\n const 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 //